![]() |
Forum Index : Microcontroller and PC projects : PicoMite Firmware Release Version 6.00.03
![]() ![]() ![]() ![]() |
|||||
Author | Message | ||||
lizby Guru ![]() Joined: 17/05/2016 Location: United StatesPosts: 3379 |
As of this moment, the Revision 1 manual is in the "Picomite Firmware" zip, but not in the manual link. PicoMite, Armmite F4, SensorKits, MMBasic Hardware, Games, etc. on fruitoftheshed |
||||
Geoffg![]() Guru ![]() Joined: 06/06/2011 Location: AustraliaPosts: 3292 |
The "manual link" was updated at the same time as the firmware zip file. My guess is that you need to clear your browser's cache so that you get the new version. Geoff Geoff Graham - http://geoffg.net |
||||
javavi![]() Guru ![]() Joined: 01/10/2023 Location: UkrainePosts: 508 |
Moved the call of the EDIT FILE TMP$ command from the subroutine to the main loop of the DO...LOOP program, but this did not give a result, the same error with the COLOR c(7) command with after closing the editor. You can see it yourself, now the FM program starts for you on a large number of files, but it only sees what is included in the list. FM171.zip |
||||
homa![]() Guru ![]() Joined: 05/11/2021 Location: GermanyPosts: 471 |
I cannot confirm this. I have downloaded the "latest" firmware of PicoMiteHDMI MMBasic USB RP2350A Edition V6.00.03 from geoffs website with the PDF rev1 and the error with the 9 mismatches at a 1000 loop remains :-( A general remark (I think I have made before) why is the version left at V6.00.03? Wouldn't V6.03.01, V6.03.02, V6.03.03, ... better and clearer for everyone? If it remains V6.00.03, then please use V6.00.03b, V6.00.03c, ... Matthias |
||||
javavi![]() Guru ![]() Joined: 01/10/2023 Location: UkrainePosts: 508 |
Clear Dim integer c(15)=(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15) Colour Map c(),c() TMP$="TEST.bas" TEST Edit File TMP$ TEST End Sub TEST PrintColor "Color Test" End Sub Sub PrintColor(COL$) For i=0 To 15 Color c(i) Print "*"; Next End Sub |
||||
matherp Guru ![]() Joined: 11/12/2012 Location: United KingdomPosts: 10323 |
![]() AND it works with PSRAM enabled. This shows the basic mechanism is correct but it is still accessing the flash A: drive that corrupts the restore. Edited 2025-07-19 04:36 by matherp |
||||
matherp Guru ![]() Joined: 11/12/2012 Location: United KingdomPosts: 10323 |
Please try this version PicoMiteV6.00.03.zip |
||||
javavi![]() Guru ![]() Joined: 01/10/2023 Location: UkrainePosts: 508 |
OK! ![]() Now a simple test passes and FM works after closing the code EDITOR in the program (I opened and closed the EDITOR many times) |
||||
matherp Guru ![]() Joined: 11/12/2012 Location: United KingdomPosts: 10323 |
@Geoff Geoff: please could you substitute the V6.00.03 files in my 08:53am 19 Jul 2025 post on your website Thanks |
||||
dddns Guru ![]() Joined: 20/09/2024 Location: GermanyPosts: 544 |
I can confirm, that FM171.bas runs on RP2040USB and as well on RP2350BHDMIUSB (with and without PSRAM) Many thanks! On the RP2040 it runs smoother, because the read/write speed with flash is about twice as fast as on my 2350. |
||||
matherp Guru ![]() Joined: 11/12/2012 Location: United KingdomPosts: 10323 |
Geoff has now updated the download with the updated files - thanks Geoff. You don't need to update unless you are using CHAIN, SAVE/RESTORE CONTEXT or EDIT FILE Make sure sure you clear your browser cache before downloading. That really is it for changes to 6.00.03. Anything else found will have to wait for a future release. I'm not aware of any outstanding issues. Edited 2025-07-19 19:59 by matherp |
||||
javavi![]() Guru ![]() Joined: 01/10/2023 Location: UkrainePosts: 508 |
@matherp There is one more small question! It is impossible to use characters with codes greater than 80 in lines and comments. The editor and interpreter of PicoMite destroy the encoding of lines and comments with codes from 80 to 9F and replace codes from A0 to FF with ASCII characters. Is this necessary for the functioning of PicoMite MMBASIC or is it some kind of rudiment? I would like to be able to enter these characters in lines and comments in the built-in code editor, or at least load BASIC files in CP437 encoding from a computer. Edited 2025-07-19 20:06 by javavi |
||||
matherp Guru ![]() Joined: 11/12/2012 Location: United KingdomPosts: 10323 |
MMBasic only supports ASCII characters. Values above 128 are used as tokens or coded values for things like function keys. This is fundamental to the way MMBasic works and not changeable (by me at least) |
||||
TassyJim![]() Guru ![]() Joined: 07/08/2011 Location: AustraliaPosts: 6286 |
There is one more small question! It is impossible to use characters with codes greater than 80 in lines and comments. ... I would like to be able to enter these characters in lines and comments in the built-in code editor, or at least load BASIC files in CP437 encoding from a computer. @javavi In MMEdit I have a command to replace any non-ASCII character with an ASCII alternative. It's main use is to replace 'smart' quotes that often appear in listings. I also replace the euro symbol with EURO and pound with UKP etc. I could include any Unicode character if you can provide an ASCII alternative. Be warned that this works well for comments but it will change the length of strings. This may be important. For strings, I could include the option to change the unicode to escape sequences for extended ASCII. This is not as readable as code but allows you to print the extended characters using a suitable font. Jim VK7JH MMedit |
||||
JanVolk Senior Member ![]() Joined: 28/01/2023 Location: NetherlandsPosts: 247 |
I did some tests with my new Olimex RP2350-XXL board with PSRAM. A few issues with the PSRAM have surfaced in the latest firmware. 1. PSRAM isn't being erased properly during a cold boot, meaning power off/on. All RAM is in use. Apparently, a RAM ERASE or RAM OVERWRITE command needs to be included in the program. Is FLASH Slot n available in FLASH LIST? Or is it possible that the MAX803R in Peter's schematic prevents this? I don't see this 3- pin chip on Peter's PCB? 2. The RAM command should work the same as the FLASH command according to the manual. 3. After a reboot, all RAM slots are in use. A power reset is required. If you run RAM LIST, it works fine, and all RAM slots are in use. If you run RAM LIST 1, the program hangs. Ctrl+C doesn't work, and only the reset button brings the cursor back. After performing a RAM ERASE ALL, you can now select RAM LIST 1, and the cursor will return. 4. With RAM Slot in use, performing RAM LOAD 1 will cause the program to crash completely. Resetting and powering off/on will not help. See also my previous post. If you do this with FLASH LOAD 1, you will receive a message that the memory is empty. Re-flashing with the same firmware will not help, and the firmware will continue to crash. Loading an earlier version of a few versions (e.g., V6.00.02b26) will fix the crash, and you can then load the latest firmware correctly. I'm not using Peter's board, but an Olimex RP2350-XXL Rev.B with 16MB Flash and 8MB PSRAM, and the GP8 PSRAM option pin. Could someone test the above with a different board and confirm whether it's the same or a bug? The MAX803R might solve the problem with Peter's design, but unfortunately, I can't test that. There's also a schematic for it on the Olimex RP2359B-XXL GitHub or from the importer tinytronics.nl for the Netherlands. The MAX803R is listed in Peter's schematic, but I don't see it on the PCB. Furthermore, the latest firmware works fine, and the PSRAM is fast. I still have a lot to explore in the latest version of PicoMite Basic. Because of the many possibilities, it's easy to overlook the solution. Below are some screenshots. > option list PicoMite MMBasic RP2350B Edition V6.00.03 OPTION SYSTEM I2C GP4,GP5 OPTION FLASH SIZE 16777216 OPTION COLOURCODE ON OPTION PICO OFF OPTION CPUSPEED (KHz) 150000 OPTION DISPLAY 43, 80 OPTION SDCARD GP9, GP10, GP11, GP24 OPTION PLATFORM FM > option psram pin GP8 Total of 6 Mbytes PSRAM available > memory Program: 0K ( 0%) Program (0 lines) 288K (100%) Free Saved Variables: 16K (100%) Free RAM: 0K ( 0%) 0 Variables 0K ( 0%) General 6480K (100%) Free > ram list RAM Slot 1 in use RAM Slot 2 in use RAM Slot 3 in use RAM Slot 4 in use RAM Slot 5 in use > ram erase all > ram list RAM Slot 1 available RAM Slot 2 available RAM Slot 3 available RAM Slot 4 available RAM Slot 5 available power off / on > memory Program: 1K ( 1%) Program (1 lines) 287K (99%) Free Saved Variables: 16K (100%) Free RAM: 0K ( 0%) 0 Variables 0K ( 0%) General 6480K (100%) Free PicoMite MMBasic RP2350B Edition V6.00.03 Copyright 2011-2025 Geoff Graham Copyright 2016-2025 Peter Mather Total of 6 Mbytes PSRAM available > ram list RAM Slot 1 in use RAM Slot 2 in use RAM Slot 3 in use RAM Slot 4 in use RAM Slot 5 in use > ram erase all > ram list RAM Slot 1 available RAM Slot 2 available RAM Slot 3 available RAM Slot 4 available RAM Slot 5 available > ram save 1 > ram list all Error : 0 is invalid (valid is 1 to 5) > ram list 1 Print "RAM test PSRAM" > ram list 2 > ram list 3 > ram list 4 > ram list 5 > new > ram list 1 Print "RAM test PSRAM" > ram list RAM Slot 1 in use: "Print "RAM test PSRAM"" RAM Slot 2 available RAM Slot 3 available RAM Slot 4 available RAM Slot 5 available > ram load 1 > run RAM test PSRAM > After reloading flash. > option disk load "b:/rp2350b-v6.00.03-nopsram.opt > option list PicoMite MMBasic RP2350B Edition V6.00.03 OPTION SYSTEM I2C GP4,GP5 OPTION FLASH SIZE 16777216 OPTION COLOURCODE ON OPTION PICO OFF OPTION CPUSPEED (KHz) 150000 OPTION DISPLAY 43, 80 OPTION SDCARD GP9, GP10, GP11, GP24 > option psram pin gp8 Total of 6 Mbytes PSRAM available > ram list RAM Slot 1 available RAM Slot 2 available RAM Slot 3 available RAM Slot 4 available RAM Slot 5 available PSRAM is now empty, but the power hasn't been turned off. Now with the power off and on. > ram list RAM Slot 1 in use RAM Slot 2 in use RAM Slot 3 in use RAM Slot 4 in use RAM Slot 5 in use > ram list 1 No response, even with Ctrl+C, the cursor doesn't return. After a hard reset with the reset button. PicoMite MMBasic RP2350B Edition V6.00.03 Copyright 2011-2025 Geoff Graham Copyright 2016-2025 Peter Mather Total of 6 Mbytes PSRAM available > ram list RAM Slot 1 in use RAM Slot 2 in use RAM Slot 3 in use RAM Slot 4 in use RAM Slot 5 in use > ram erase all > ram list RAM Slot 1 available RAM Slot 2 available RAM Slot 3 available RAM Slot 4 available RAM Slot 5 available > ram list 1 > Now the cursor does return. Another test. Saved 786 bytes > ram save 1 > ram list RAM Slot 1 in use: "'ds18b20" RAM Slot 2 available RAM Slot 3 available RAM Slot 4 available RAM Slot 5 available Power off / on PicoMite MMBasic RP2350B Edition V6.00.03 Copyright 2011-2025 Geoff Graham Copyright 2016-2025 Peter Mather Total of 6 Mbytes PSRAM available > ram list RAM Slot 1 in use RAM Slot 2 in use RAM Slot 3 in use RAM Slot 4 in use RAM Slot 5 in use > ram save 1 Error : Already programmed > ram erase all > ram save 1 > ram list RAM Slot 1 in use: "'ds18b20" RAM Slot 2 available RAM Slot 3 available RAM Slot 4 available RAM Slot 5 available > Tested this with the latest firmware, PicoMite MMBasic RP2350B Edition V6.00.03. Regards, Jan. ![]() |
||||
BarryH![]() Newbie ![]() Joined: 05/01/2025 Location: AustraliaPosts: 13 |
Jan I've tested you methodology with Peter's Pico Computer Reference Design v2b, and confirm the same outcomes, using the latest firmware. BarryH BarryH |
||||
dddns Guru ![]() Joined: 20/09/2024 Location: GermanyPosts: 544 |
@Jan and BerryH From the latest manual: RP2350 with PSRAM enabled only The RAM command allows access to up to 5 RAM program slots (similar to flash slots). RAM slots survive a H/W and software reset but not a power cycle. I agree, that the RAM slots are not initialized and it would be better if they were in a "available" state after a power cycle. So what you do does not make sense! You try to load/list a slot, which is obviously in an undefined state and that seems to to crash the Pico. After executing RAM ERASE ALL everything runs fine, so this should be the first to do before you use RAM slots.At least for now, this might change in a future release of the firmware. |
||||
BarryH![]() Newbie ![]() Joined: 05/01/2025 Location: AustraliaPosts: 13 |
@DDDNS thanks. Sometimes its hard to equate the words in the manual to an observed behaviour (NOT the manuals fault) BarryH |
||||
Mixtel90![]() Guru ![]() Joined: 05/10/2019 Location: United KingdomPosts: 7942 |
You can't really initialise ram slots by default. Someone may want all the PSRAM area for something else. What you should do is test to see if ram slots are available before you attempt to use them, like looking to see if a directory exists on a drive before attempting to do anything with it. Just assuming that the setup will suit your program is not really a good idea. Mick Zilog Inside! nascom.info for Nascom & Gemini Preliminary MMBasic docs & my PCB designs |
||||
matherp Guru ![]() Joined: 11/12/2012 Location: United KingdomPosts: 10323 |
Not how it works - ram slots are pre-allocated. The behaviour noted is as designed so that RAM slots survive a reset. After power up the status is undetermined so they need to be initialised. |
||||
![]() ![]() ![]() ![]() |
![]() |
![]() |
The Back Shed's forum code is written, and hosted, in Australia. | © JAQ Software 2025 |