Home
JAQForum Ver 24.01
Log In or Join  
Active Topics
Local Time 07:29 23 Dec 2024 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 V6.00.01 release candidates - please test thoroughly

     Page 1 of 20    
Author Message
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 9285
Posted: 03:17pm 25 Nov 2024
Copy link to clipboard 
Print this post

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
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 4343
Posted: 06:52pm 25 Nov 2024
Copy link to clipboard 
Print this post

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
PicomiteVGA PETSCII ROBOTS
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 9285
Posted: 07:05pm 25 Nov 2024
Copy link to clipboard 
Print this post

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
 
scruss
Regular Member

Joined: 20/09/2021
Location: Canada
Posts: 86
Posted: 08:00pm 25 Nov 2024
Copy link to clipboard 
Print this post

  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.)
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 4343
Posted: 08:16pm 25 Nov 2024
Copy link to clipboard 
Print this post

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
PicomiteVGA PETSCII ROBOTS
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 4343
Posted: 08:20pm 25 Nov 2024
Copy link to clipboard 
Print this post

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
PicomiteVGA PETSCII ROBOTS
 
thwill

Guru

Joined: 16/09/2019
Location: United Kingdom
Posts: 4066
Posted: 08:45pm 25 Nov 2024
Copy link to clipboard 
Print this post

  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
Game*Mite, CMM2 Welcome Tape, Creaky old text adventures
 
Pluto
Guru

Joined: 09/06/2017
Location: Finland
Posts: 365
Posted: 09:10pm 25 Nov 2024
Copy link to clipboard 
Print this post

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
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 4343
Posted: 09:53pm 25 Nov 2024
Copy link to clipboard 
Print this post

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
PicomiteVGA PETSCII ROBOTS
 
thwill

Guru

Joined: 16/09/2019
Location: United Kingdom
Posts: 4066
Posted: 10:38pm 25 Nov 2024
Copy link to clipboard 
Print this post

  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
Game*Mite, CMM2 Welcome Tape, Creaky old text adventures
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 4343
Posted: 03:28pm 26 Nov 2024
Copy link to clipboard 
Print this post

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
PicomiteVGA PETSCII ROBOTS
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 9285
Posted: 04:27pm 26 Nov 2024
Copy link to clipboard 
Print this post

  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.
 
Mixtel90

Guru

Joined: 05/10/2019
Location: United Kingdom
Posts: 6904
Posted: 04:53pm 26 Nov 2024
Copy link to clipboard 
Print this post

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.  :)
Mick

Zilog Inside! nascom.info for Nascom & Gemini
Preliminary MMBasic docs & my PCB designs
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 9285
Posted: 05:41pm 26 Nov 2024
Copy link to clipboard 
Print this post

I suppose you mean something like this


 
javavi

Senior Member

Joined: 01/10/2023
Location: Ukraine
Posts: 296
Posted: 05:46pm 26 Nov 2024
Copy link to clipboard 
Print this post

  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
 
twofingers
Guru

Joined: 02/06/2014
Location: Germany
Posts: 1303
Posted: 05:51pm 26 Nov 2024
Copy link to clipboard 
Print this post

  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
causality ≠ correlation ≠ coincidence
 
Mixtel90

Guru

Joined: 05/10/2019
Location: United Kingdom
Posts: 6904
Posted: 05:56pm 26 Nov 2024
Copy link to clipboard 
Print this post

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
Mick

Zilog Inside! nascom.info for Nascom & Gemini
Preliminary MMBasic docs & my PCB designs
 
javavi

Senior Member

Joined: 01/10/2023
Location: Ukraine
Posts: 296
Posted: 05:58pm 26 Nov 2024
Copy link to clipboard 
Print this post

  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
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 4343
Posted: 06:52pm 26 Nov 2024
Copy link to clipboard 
Print this post

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
PicomiteVGA PETSCII ROBOTS
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 9285
Posted: 07:05pm 26 Nov 2024
Copy link to clipboard 
Print this post

  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 20    
Print this page
© JAQ Software 2024