![]() |
Forum Index : Microcontroller and PC projects : PicoMite Alpha Firmware
![]() ![]() ![]() ![]() |
|||||
Author | Message | ||||
lizby Guru ![]() Joined: 17/05/2016 Location: United StatesPosts: 3298 |
But the CMM2 is a different beast entirely, for reasons already amply covered. The PicoMite doesn't have to be a different beast from the MM2, MM+--except for features which it has which the others don't (same as from MM2 to MM+). I'm not trying to change Peter's mind, and perhaps if the SD and LCD (except for CS, D/C, RST, LED, T_INT, T_CS) are preconfigured (but changeable)) it won't make that much difference. I'm sure all forum members will be able to work with whatever Peter comes up with. No worries, no regrets. PicoMite, Armmite F4, SensorKits, MMBasic Hardware, Games, etc. on fruitoftheshed |
||||
Grogster![]() Admin Group ![]() Joined: 31/12/2012 Location: New ZealandPosts: 9455 |
My thoughts on the default-vs-assignable pin I/O: I use the MM2 chip almost daily, and the 28-pin and 44-pin versions are my go-to MCU's now for embedded projects. I personally don't have a problem with defining the I/O pins. I don't care if some are defined by default, or that you have to define them yourself. To me, it is a non-issue. To me. And only my 2c. I'm so used to using CONST to define constants that reference all the I/O pins used in a project with more memorable names to make reading the code easier, that defining the pins for a certain function or feature is more of the same and just as easy IMHO. I certainly can see where CaptainBoing is coming from, but I will just say this: when designing a PCB for the MM2 series of chips, having certain pins(like UART/SPI/I2C etc) fixed to certain pins, means more care has to be put into planning the layout of the PCB, so that those interfaces are connected to the correct pins. When the UART/SPI/I2C Cfunctions were released a few years ago, this was wonderful, as I could then assign things to any spare pin, and just use the Cfunction to talk to them. I was not locked to specific pins, so I think configurable I/O is a good thing. No offense, CaptainBoing..... Smoke makes things work. When the smoke gets out, it stops! |
||||
Mixtel90![]() Guru ![]() Joined: 05/10/2019 Location: United KingdomPosts: 7458 |
@lizby But both F4 and CMM2 are MMBasic platforms. *Someone* is going to comment that as such they should be software compatible. That isn't the case, as you point out. I could have chosen any MMBasic platforms and the argument would have been the same - none of them are *fully* software compatible. The RPPico in its own right is different from all other platforms simply because the RP2040 is entirely different to any other SOC. This is a golden opportunity to make use of those differences. Porting MMBasic to it is part of that opportunity. You can already program it in C/C++, MicroPython (Python 3) and CircuitPython. Adding MMBasic to that list - in a form that isn't entirely unfamiliar to those programmers - can only be a good thing. I think I can see good reasons for keeping SD and LCD pin settings more or less standard. Those settings are non-volatile and used earlier in the boot sequence to get the display running and the SD card booted. There's no such requirement for any other IO. Edited 2021-06-05 17:45 by Mixtel90 Mick Zilog Inside! nascom.info for Nascom & Gemini Preliminary MMBasic docs & my PCB designs |
||||
phil99![]() Guru ![]() Joined: 11/02/2018 Location: AustraliaPosts: 2407 |
" I was not locked to specific pins, so I think configurable I/O is a good thing." Yes, I think everyone agrees with that. The question many are asking is should it be mandatory? You can explicitly define all your variables if you want to, but you don't have to. I like the idea of predefined pin functions that can be redefined. On MM2 & MM+ that is, to some degree how it works. You don't have to use a SPI pin for SPI. |
||||
Mixtel90![]() Guru ![]() Joined: 05/10/2019 Location: United KingdomPosts: 7458 |
Defining IO pins is mandatory anyway though. PIN(1)=1 won't work without a SETPIN 1,DOUT. Why should SPI OPEN work without SETPIN SPI a,b,c ? It's not logical. On the MM2 you don't have a choice. SPI OUT will always be on pin 3, it's hard-wired in the chip. If you use it you will lose that analogue input, that's hard wired too. The Pico has no such restrictions and it doesn't seem sensible to introduce them, especially as other programming languages are already making IO configuration mandatory. Mick Zilog Inside! nascom.info for Nascom & Gemini Preliminary MMBasic docs & my PCB designs |
||||
matherp Guru ![]() Joined: 11/12/2012 Location: United KingdomPosts: 9992 |
a15 PicomiteV5.07.00a15.zip This will mess up any options and flash programs so please use FLASH ERASE ALL before programming When you then upload you may see a message "Error reading options - resetting to default" this is expected Changes: The SDcard is no longer pre-configured. use OPTION SDCARD SD_CLKpin, Option.SD_MOSIpin, SD_MISOpin, SD_CSpin to set the pins you want to use. For the previous wiring use OPTION SDCARD 4,5,6,7 Available RAM has reduced from 96K program/memory + 32K variable memory to 80K program/memory + 32K variable memory. The reason for this is to lock many of the MMBasic core routines into RAM. This has resulted in a major performance increase of around 50% I've also updated the Pico SDK to the latest version except for the USB routines which I had to restore to the previous version as they seem to have done something wrong in the integration of the Tinyusb CDC library Edited 2021-06-06 00:52 by matherp |
||||
robert.rozee Guru ![]() Joined: 31/12/2012 Location: New ZealandPosts: 2396 |
hi peter, i think you might have meant to write: from (alpha 14) 96k program memory 96k global variable memory 32k local variable memory down to (alpha 15) 80k program memory 80k global variable memory 32k local variable memory to allay fears, with alpha 14 the largest possible string array is: dim a$(380) that consumes 97280 bytes (95k) while with alpha 15 the largest possible string array is: dim a$(310) that consumes 79360 bytes (78k) i measure the speed improvement as going from 23561 sps / 9668 lps (alpha 14) up to an impressive 37533 sps / 15402 lps (alpha 15). this is just shy of the performance of an MZ2048. cheers, rob :-) Edited 2021-06-06 01:10 by robert.rozee |
||||
robert.rozee Guru ![]() Joined: 31/12/2012 Location: New ZealandPosts: 2396 |
btw, it would be rather cool if program memory and global variable memory could be shared. since both are sitting in RAM, could this be somehow accommodated? the one problem i see is retaining variables when chaining programs. cheers, rob :-) |
||||
Mixtel90![]() Guru ![]() Joined: 05/10/2019 Location: United KingdomPosts: 7458 |
Using a15 Get message & heartbeat on power up Only options are display 33,100 colourcode on no SD installed. Loading from flash fails with a lockup. Heartbeat stops. flash list works, flash save appears to work as file is listed. options are lost on power down or reset. Went back to a14 memory has gone back, problems with flash fixed but signon message still says a15. Edited 2021-06-06 06:41 by Mixtel90 Mick Zilog Inside! nascom.info for Nascom & Gemini Preliminary MMBasic docs & my PCB designs |
||||
matherp Guru ![]() Joined: 11/12/2012 Location: United KingdomPosts: 9992 |
Makes no sense OPTION RESET CLEAR VARS FLASH ERASE ALL load a15 then again OPTION RESET CLEAR VARS FLASH ERASE ALL |
||||
TassyJim![]() Guru ![]() Joined: 07/08/2011 Location: AustraliaPosts: 6210 |
> CLEAR VARS Error : Unexpected text: VARS I assume it should be just CLEAR The time taken to calculate FACTORIAL 47 with my big integer maths program on an earlier firmware was 14.3 seconds That's now down to 7.37 seconds. Jim VK7JH MMedit |
||||
led-bloon![]() Senior Member ![]() Joined: 21/12/2014 Location: AustraliaPosts: 207 |
a14 signon message has got a15 in the version string! No big deal. led Miss you George |
||||
Mixtel90![]() Guru ![]() Joined: 05/10/2019 Location: United KingdomPosts: 7458 |
Have reloaded a15 no options messed with at all. No SD. >clear vars Error: Unexpected text: vars flash list shows all empty flash load 1 locks up & stops heartbeat power off boots up ok flash is empty edit: for i=1 to 20:? i,:next runs ok list is ok flash save 1 it's shown in flash list new list and it's gone flash load 1 and it locks up nothing I do from the keyboard rescues it. reset button starts up as expected flash load 1 locks it up. reset flash run 1 works! cpu restart flash run 1 works cpu restart flash load 1 locks up. This is weird..... Mick Zilog Inside! nascom.info for Nascom & Gemini Preliminary MMBasic docs & my PCB designs |
||||
led-bloon![]() Senior Member ![]() Joined: 21/12/2014 Location: AustraliaPosts: 207 |
Not weird .. it's called "a bug" Whether it has been there all along, or crept in over time, who cares! Peter will note and fix when he's ready, and he thanks you for your testing of this alpha code led Miss you George |
||||
matherp Guru ![]() Joined: 11/12/2012 Location: United KingdomPosts: 9992 |
a16 fixes bug in flash load PicomiteV5.07.00a16.zip my bad - should have been "VAR CLEAR" NB: VAR SAVE not yet implemented will allow up to 16K of save space |
||||
Mixtel90![]() Guru ![]() Joined: 05/10/2019 Location: United KingdomPosts: 7458 |
I thought I'd try my other Pico. Interesting results. As far as MMBasic goes it seems to perform in the same way as the other, but with the following exceptions: MMBasic installs ok and runs with the same expected problems but using a reset button (pulls RUN down to 0v) Tera Term doesn't reconnect. In fact, the only way to make it work again is to re-flash it. Same happens on disconnecting power - heartbeat doesn't restart. Sounds familiar? I've been using that one with MicroPython and not had any problems. CPU RESTART operates normally so I'm wondering if this is an on-board PSU issue. Just tried a16 on it. a16 is *much* better, but all dead after a reset button again of course. a16 now installed on the original and working fine. Edited 2021-06-06 18:30 by Mixtel90 Mick Zilog Inside! nascom.info for Nascom & Gemini Preliminary MMBasic docs & my PCB designs |
||||
romba6![]() Newbie ![]() Joined: 04/07/2020 Location: United KingdomPosts: 37 |
I have an identical situation. 2 picos at a16, 1 operates immediately (and has done so for every revision) the other (which I bought last week) only works after re-flash, i.e no re-connect/heart beat. Tried on teraterm/win10 on laptop and also Putty on Raspberry PI. Behaviour identical. Also tried with R/S button - no change. Strange problem indeed. |
||||
cdeagle Senior Member ![]() Joined: 22/06/2014 Location: United StatesPosts: 263 |
I've been testing my astronomy software using alpha version of PicoMite MMBASIC without any serious problems so far. Larger programs such as NPOE will not load and display "Error : The file/directory object is invalid". Here is a picture of the PicoMite setup I'm using. Reset switch uses button K1. Includes a Sparkfun MicroSD breakout. ![]() |
||||
matherp Guru ![]() Joined: 11/12/2012 Location: United KingdomPosts: 9992 |
a17 PicomiteV5.07.00a17.zip Lots of internal work preparing for I/O. More work on flash and option storage New OPTION OPTION CPUSPEED cpuspeedinkhz This allows you to set the cpu speed - after option reset it will be the "new" default 125,000 I've been running completely reliably at 250,000KHz and that has been the speed for all recent alphas. I'm wondering if some of the issue people have been reporting is because their chips don't like the overclock. Use option reset, flash erase all and var clear to clean up before and after loading the alpha Can you post the code so I can have a look? thanks |
||||
Mixtel90![]() Guru ![]() Joined: 05/10/2019 Location: United KingdomPosts: 7458 |
I put MicroPython back on the misbehaving Pico. Pressing Reset or power-cycling breaks the connection to Thonny (it doesn't reconnect automatically but I think that might be normal for Thonny). It restarts the unit and auto-runs main.py just as it should. I've not tried the well-behaved Pico under MicroPython so I don't know if there's any difference. Mick Zilog Inside! nascom.info for Nascom & Gemini Preliminary MMBasic docs & my PCB designs |
||||
![]() ![]() ![]() ![]() |
![]() |