Home
JAQForum Ver 24.01
Log In or Join  
Active Topics
Local Time 00:52 06 Aug 2025 Privacy Policy
Jump to

Notice. New forum software under development. It's going to miss a few functions and look a bit ugly for a while, but I'm working on it full time now as the old forum was too unstable. Couple days, all good. If you notice any issues, please contact me.

Forum Index : Microcontroller and PC projects : PicoMite Firmware Release Version 6.00.03

     Page 7 of 9    
Author Message
lizby
Guru

Joined: 17/05/2016
Location: United States
Posts: 3379
Posted: 12:26pm 18 Jul 2025
Copy link to clipboard 
Print this post

  matherp said  Geoff has updated the manual on his website to Revision 1. This should pick up a number of the issues raised in this thread and the 6.00.02 draft manual thread.

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: Australia
Posts: 3292
Posted: 01:02pm 18 Jul 2025
Copy link to clipboard 
Print this post

  lizby said  As of this moment, the Revision 1 manual is in the "Picomite Firmware" zip, but not in the manual link.

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: Ukraine
Posts: 508
Posted: 01:20pm 18 Jul 2025
Copy link to clipboard 
Print this post

  matherp said  That gave me a clue to look at the FM Basic code
EDIT FILE is called from within a subroutine. That is a complete no-no.
From the manual SAVE CONTEXT command

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: Germany
Posts: 471
Posted: 05:04pm 18 Jul 2025
Copy link to clipboard 
Print this post

  matherp said  
  Quote  and now the correct free space is reported and variables a1(1000) and a2(1000) stay dim'ed and test program runs correct.


I think we have now established that my last fix works in all firmware variants for javavi's test program.
I still need a test program to isolate what particular set of circumstances occur in FM that causes it to fail if I am to make further progress.


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: Ukraine
Posts: 508
Posted: 05:46pm 18 Jul 2025
Copy link to clipboard 
Print this post

  matherp said  I still need a test program to isolate what particular set of circumstances occur in FM that causes it to fail if I am to make further progress.



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 Kingdom
Posts: 10323
Posted: 06:16pm 18 Jul 2025
Copy link to clipboard 
Print this post

So the thing that makes the difference is passing a parameter to printcolor. If you remove the parameter it works, put it back and it fails. That should give me something to look at - tomorrow!
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 Kingdom
Posts: 10323
Posted: 08:53am 19 Jul 2025
Copy link to clipboard 
Print this post

Please try this version

PicoMiteV6.00.03.zip
 
javavi

Guru

Joined: 01/10/2023
Location: Ukraine
Posts: 508
Posted: 09:16am 19 Jul 2025
Copy link to clipboard 
Print this post

  matherp said  Please try this version

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 Kingdom
Posts: 10323
Posted: 09:35am 19 Jul 2025
Copy link to clipboard 
Print this post

@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: Germany
Posts: 544
Posted: 09:36am 19 Jul 2025
Copy link to clipboard 
Print this post

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 Kingdom
Posts: 10323
Posted: 09:58am 19 Jul 2025
Copy link to clipboard 
Print this post

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: Ukraine
Posts: 508
Posted: 10:02am 19 Jul 2025
Copy link to clipboard 
Print this post

@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 Kingdom
Posts: 10323
Posted: 10:10am 19 Jul 2025
Copy link to clipboard 
Print this post

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: Australia
Posts: 6286
Posted: 09:57pm 19 Jul 2025
Copy link to clipboard 
Print this post

  javavi said  @matherp
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: Netherlands
Posts: 247
Posted: 06:22pm 20 Jul 2025
Copy link to clipboard 
Print this post

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: Australia
Posts: 13
Posted: 12:19am 21 Jul 2025
Copy link to clipboard 
Print this post

Jan
  Quote  Could someone test the above with a different board

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: Germany
Posts: 544
Posted: 05:14am 21 Jul 2025
Copy link to clipboard 
Print this post

@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: Australia
Posts: 13
Posted: 06:47am 21 Jul 2025
Copy link to clipboard 
Print this post

@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 Kingdom
Posts: 7942
Posted: 08:36am 21 Jul 2025
Copy link to clipboard 
Print this post

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 Kingdom
Posts: 10323
Posted: 08:51am 21 Jul 2025
Copy link to clipboard 
Print this post

  Quote  You can't really initialise ram slots by default. Someone may want all the PSRAM area for something else.

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.
 
     Page 7 of 9    
Print this page
The Back Shed's forum code is written, and hosted, in Australia.
© JAQ Software 2025