Menu
JAQForum Ver 19.10.27

Forum Index : Microcontroller and PC projects : PicoMite V6.00.01 release candidates - please test thoroughly

   Page 1 of 23    
Posted: 03:17pm
25 Nov 2024
Copy link to clipboard
matherp
Guru

Raspberry Pi have just released an update to the sdk (2.1.0) which is used to build the PicoMite. I've changed to this because it is needed to support the Pico2-W which I will endeavour to support once I have one. It makes sense to do the upgrade now before the final V6.00.00 release.
As a result I have increased the version number and rebuilt all the versions. There should be no changes other than DEVICE WII should now work as before (you can also use DEVICE WII, DEVICE WII CLASSIC or just "WII CLASSIC".


PicoMiteRP2350V6.00.01RC1.zip

PicoMiteRP2040V6.00.01RC1.zip
 
Posted: 06:52pm
25 Nov 2024
Copy link to clipboard
Volhout
Guru

Hi Peter,

Tested 6.00.01RC1

RP2040 VGA PS2

tested following programs
- 2048
- asciimovie
- blocks
- chemichaos
- circle
- flappyVGA
- flow-pico
- GemsNRocks
- LA
- Petrobot
- picoChess
- picoman
- rocks
- snake
- ZX81-maze

All these run after making adaptions due to the removal of DEVICE in some commands, i.e. WII. In these cases, also the keyword WII requires change of variable names WII.

RP2350 VGA PS2

same programs tested

- MM.Device$ is sometimes used, and does not include 2350. This need adaptation.

- picoChess fails because it checks the heap/stack (hard coded addresses). Must change for 2350.

bug: keyword RANDOMIZE is missing in 2350. Geoff's games (blocks/picoman) use RANDOMIZE TIMER. When these lines are commented out the games run.


Volhout
Edited 2024-11-26 04:56 by Volhout
 
Posted: 07:05pm
25 Nov 2024
Copy link to clipboard
matherp
Guru

Harm

Thanks for the testing

RANDOMIZE is not valid on the RP2350 because it uses a H/W mechanism for generating entropy

What variant doesn't show RP2350 in MM.DEVICE$? Everything I've tried do and the code appears correct.

What variant of DEVICE WII isn't working. I tried to make this version backwards compatible?
Edited 2024-11-26 05:18 by matherp
 
Posted: 08:00pm
25 Nov 2024
Copy link to clipboard
scruss
Regular Member

  matherp said  Harm
RANDOMIZE is not valid on the RP2350 because it uses a H/W mechanism for generating entropy

Wait, the RP2350 doesn't have a HWRNG, but the RP2040 does?

(The RP2040's one is at best good enough. Definitely not suitable for cryptography.)
 
Posted: 08:16pm
25 Nov 2024
Copy link to clipboard
Volhout
Guru

Hi Peter,

RP2350A in MM.Device$ is correct in the firmware. But the MMBasic programs are not including the RP2350A version, they only check if the MM.Device$ equals "PicoMiteVGA".
When changing that check to INSTR(MM.Device$,"PicoMiteVGA") they most cases simply work.

Geoff will have to modify his game (or let me do it) to get compatibility with RP2350A when you remove the RANDOMIZE command.

6.00.00RC16 did not support DEVICE WII OPEN for classic controller. But RC1 does. Thanks. But since WII CLASSIC OPEN also works the WII word is a keyword now, and cannot be used as variable name anymore.

Looking good Peter,

Volhout
Edited 2024-11-26 06:17 by Volhout
 
Posted: 08:20pm
25 Nov 2024
Copy link to clipboard
Volhout
Guru

Hi Peter,

Next challenge will be to look at the Game*Mite. Tom is very busy with the MMB4L release for 0.7. I hope tomorrow night to look into the Game*Mite.
I have a Game*Mite with RP2350A.
Curious how the button handling goes with the GPIO error on the 2350. The buttons have no external pullups, and rely on the internal pullup. But theoretically it should work with this bug.

Volhout
 
Posted: 08:45pm
25 Nov 2024
Copy link to clipboard
thwill
Guru


  Volhout said  Tom is very busy with the MMB4L release for 0.7


Yes, sorry for not pulling my weight on the PicoMite testing. Though it's as much the day job, family and shaky health as it is MMB4L v0.7 which has been largely done for at least a month now.

Tom
 
Posted: 09:10pm
25 Nov 2024
Copy link to clipboard
Pluto
Guru

WebMite MMBasic RP2040 Edition V6.00.01RC1 teted with my new program for following the electricity SPOT-price. Program works as with the earlier firmware. The only difference noted in the program is that version is now 6.0001. Before it was just 6 (without decimals).

A few other observations:
-the new firmware did not erase the options, including SSID and Password.
-Webmite started immediately the program in memory, but run directly into error. Installation of the new firmware did not erase the program. Re-loaded the program and all OK.

I know, I know,...should have run the clear_flash.uf2 before loading new firmware, but was so eager to test that I forgot it. (Isn't it so?)

Anyhow, it was very conveniant to have the options already set.

Fred
 
Posted: 09:53pm
25 Nov 2024
Copy link to clipboard
Volhout
Guru

Hi Peter,

The VGA version (both 2040 as well as 2350) did erase options.
The 2350 picomite (for Game*Mite) version did not erase options. I did re-program the flash slot since i expect tokenizing errors (previous was 6.0.0RC6).

6.00.01RC1 for 2350 standard picomite (as used for Game*Mite).

There is something changed in the path information.
robots2.bas uses MM.INFO(PATH) and CWD$ to determine where files can be found.
To determine the path of the current running program.

When I use the file browser (on A:/) in the Game*Mite to browse to B:/ and use the file browser to start a program, that program starts, but both MM.INFO(PATH) and CWD$ are not updated, they point still to the A:/ drive.
Again, this is a printout from the program that runs from B:/
CWD$ (Current Work Directory) should be updated at least.

Volhout

P.S. When manually changing directory both CWD$ and MM.INFO(PATH) are correct. But
MM.INFO(PATH) has a trailing "/"
CWD$ has no trailing "/"
It is only when you RUN a program from inside another program that these are not updated.
Edited 2024-11-26 07:55 by Volhout
 
Posted: 10:38pm
25 Nov 2024
Copy link to clipboard
thwill
Guru


  Volhout said  ...
MM.INFO(PATH) has a trailing "/"
CWD$ has no trailing "/" ...


I believe that inconsistency is "expected", CWD$ only gets a trailing "/" when the current working directory is A:/ or B:/.

Best wishes,

Tom
 
Posted: 03:28pm
26 Nov 2024
Copy link to clipboard
Volhout
Guru

Hi Peter,

I know you are very close to release, but maybe it is possible (or put it on the wish list for 6.00.02) to correctly display the pin function for pins that are in use in the OPTIONS (boot reserved).

GP0      1      OFF
GP1      2      OFF
GP2      4      OFF
GP3      5      OFF
GP4      6      OFF
GP5      7      OFF
GP6      9      OFF
GP7      10     OFF
GP8      11     OFF: Boot Reserved
GP9      12     OFF: Boot Reserved
GP10     14     OFF: Boot Reserved
GP11     15     OFF: Boot Reserved
GP12     16     OFF: Boot Reserved
GP13     17     OFF
GP14     19     OFF
GP15     20     OFF
GP16     21     OFF
GP17     22     OFF
GP18     24     OFF: Boot Reserved
GP19     25     OFF: Boot Reserved
GP20     26     OFF: Boot Reserved
GP21     27     OFF
GP22     29     OFF
GP23     41     OFF: Boot Reserved
GP24     42     OFF: Boot Reserved
GP25     43     OFF: Boot Reserved
GP26     31     OFF
GP27     32     OFF
GP28     34     OFF
GP29     44     OFF


The Boot reserved pins could indicate what they are used for (i.e. I2C or SPI or COM or DOUT or DIN). That would give insight what you can use.

This is the code for above list (I put this sub in the library for normal picomites)

Sub FreePins
Local n,gp$,p,pu$
For n=0 To 29
gp$ = "GP"+Str$(n)
p = MM.Info(pinno gp$)
pu$ = MM.Info(pin p)
Print gp$, p, pu$
Next
End Sub


Volhout

P.S. This is 6.00.01RC1 running on RP2040-GEEK
Edited 2024-11-27 01:31 by Volhout
 
Posted: 04:27pm
26 Nov 2024
Copy link to clipboard
matherp
Guru

  Quote   but maybe it is possible (or put it on the wish list for 6.00.02) to correctly display the pin function for pins that are in use in the OPTIONS (boot reserved).


Not really possible without a huge amount of code to go through every possible allocation for each pin and check the Option to see if that pin is using it.
 
Posted: 04:53pm
26 Nov 2024
Copy link to clipboard
Mixtel90
Guru


It's not too bad to do something like this as a library routine on a built system. I put it in the Library for Gamma as one of the utility programs. You'd need more columns for a PGA2350 anyway.  :)
 
Posted: 05:41pm
26 Nov 2024
Copy link to clipboard
matherp
Guru

I suppose you mean something like this


 
Posted: 05:46pm
26 Nov 2024
Copy link to clipboard
javavi
Guru


  Volhout said  This is 6.00.01RC1 running on RP2040-GEEK

On the PicoMiteHDMI MMBasic RP2350A Edition V6.00.01RC1 firmware,
this procedure gives an error when it reaches GP12 ...
[7] p = MM.Info(pinno gp$)
Error : Invalid pin
>

apparently reserved for HDMI video output.
Edited 2024-11-27 03:51 by javavi
 
Posted: 05:51pm
26 Nov 2024
Copy link to clipboard
twofingers
Guru


  javavi said  On the PicoMiteHDMI MMBasic RP2350A Edition V6.00.01RC1 firmware,
this procedure gives an error when it reaches GP12 ...
apparently reserved for HDMI video output.

I can confirm that! Errors from GP12 to GP19.
freepins
End
Sub FreePins
Local n,gp$,p,pu$
For n=0 To 29
p=666
gp$ = "GP"+Str$(n)
On error skip
p = MM.Info(pinno gp$)
pu$ = MM.Info(pin p)
Print gp$;
Print @(50,MM.Info(vPOS)) p, pu$
Next
End Sub

Michael
 
Posted: 05:56pm
26 Nov 2024
Copy link to clipboard
Mixtel90
Guru


That's because there's no such thing as GP12 to GP19 when the HSTX has been initialised. They have been disconnected from the GPIO matrix, I think. I had to trap those.
Edited 2024-11-27 03:57 by Mixtel90
 
Posted: 05:58pm
26 Nov 2024
Copy link to clipboard
javavi
Guru


  matherp said  I suppose you mean something like this

Yes! PicoMite's built-in procedure for informing about port status and reservations will be very useful for users/developers.
Edited 2024-11-27 04:00 by javavi
 
Posted: 06:52pm
26 Nov 2024
Copy link to clipboard
Volhout
Guru

Hi Peter,

That is way over the top. Very nice, but reading the pin config (alternate function registers), and justconverting that to SPI or  I2C would have been enough.
But this sure is very nice,

Volhout
Edited 2024-11-27 04:53 by Volhout
 
Posted: 07:05pm
26 Nov 2024
Copy link to clipboard
matherp
Guru

  Quote  but reading the pin config (alternate function registers), and justconverting that to SPI or  I2C would have been enough.


Doesn't work for thing like CS pins etc.
 
   Page 1 of 23    
The Back Shed's forum code is written, and hosted, in Australia.
© JAQ Software 2025