Menu
JAQForum Ver 19.10.27

Forum Index : Microcontroller and PC projects : PicoMite V6.00.02 release candidates - all versions

   Page 10 of 52    
Posted: 12:06pm
23 Mar 2025
Copy link to clipboard
matherp
Guru

  Quote  For „OPTION LCDPANEL CONSOLE [font [, fc [, bc [, blight]]] [,NOSCROLL]“ you must enter a number for the font. If you input commas only you get a failure message (no automatic entering of default value).


That is the same for all commands. The first parameter can never be optional - a limitation of the parser

  Quote  If you have selected the option „NOSCROLL“ and enter LIST PINS the output to the console does not stop at the last line of the screen (PRESS ANY KEY… is not displayed). Therefore you cannot see the previous page.


Sorry, another limitation. List PINS actually runs an internal Basic program which just lists all the pins.
 
Posted: 02:42pm
23 Mar 2025
Copy link to clipboard
matherp
Guru


'PIO Configure pio, sm, clock, startaddress,
'sidesetbase, sidesetno, sidesetout,
'setbase, setno, setout, outbase, outno, outout, inbase,
'jmppin, wraptarget, wrap, sideenable,
'pushthreshold, pullthreshold, autopush, autopull, inshiftdir, outshiftdir,
'joinrcfifo, jointxfifo, joinrxfifoget, joinrxfifoput
PIO assemble 1
.program test
.line 0
.wrap target
Set pins,1
Set pins,0
.wrap
.end program
SetPin gp45,pio1
PIO set base 1,16
PIO configure 1,0,1000000,,,,,gp45,1,1,,,,,,Pio(.wrap target),Pio(.wrap)
PIO start 1,0
Do
Loop
 
Posted: 04:35pm
23 Mar 2025
Copy link to clipboard
WhiteWizzard
Guru

  matherp said  List PINS actually runs an internal Basic program which just lists all the pins.


Is it an easy thing to do to include a ‘Press any key …’ when the listing reaches the bottom of the screen? With a RP2350B, the first lot of pins in the list ‘disappear’ from view (ie to behave like ‘LIST’ does when listing a long program.

SORRY - ignore (just seen your last few posts in which you make reference to this  
Edited 2025-03-24 02:37 by WhiteWizzard
 
Posted: 08:27am
24 Mar 2025
Copy link to clipboard
dddns
Guru

First time I tried VGA..maybe a noob comment:
> option list
PicoMiteVGA MMBasic RP2040 Edition V6.00.02RC6
OPTION KEYBOARD US
OPTION CPUSPEED (KHz) 252000
OPTION RESOLUTION 640x480
>
> option cpuspeed 378000
Error : Invalid Option
> option cpuspeed 315000
Error : Invalid Option
> option widescreen 720
Error : Invalid Option



And a wish: Would it be possible to make the "colour map" command available in all versions?
Edited 2025-03-24 18:43 by dddns
 
Posted: 09:10am
24 Mar 2025
Copy link to clipboard
Volhout
Guru

Hi

The RP2040 only supports 640x480 (mode 1) and 320x240 (mode 2), no widescreen 720.
In the new code, the OPTION CPUSPEED has disappeared. This will be in the new manual.

Use OPTION RESOLUTION 640,315000
or OPTION RESOLUTION 640,378000

Apparently this was usefull for the RP2350 that has far more complex relation between resolution and cpuspeed with all these HDMI resolutions.

But it breaks with the old OPTIONS.

Volhout
Edited 2025-03-24 19:10 by Volhout
 
Posted: 09:10am
24 Mar 2025
Copy link to clipboard
phil99
Guru


Everyone is a 'noob' with this version. Found it on page 2 of this topic.

OPTION RESOLUTION 640, 378000 'sets the firmware to run at 378MHz - 640x480 refresh rate 60Hz
 
Posted: 09:11am
24 Mar 2025
Copy link to clipboard
Volhout
Guru

@phill,

Agree..things that have been the same for 3 years, are changing now.
So yes, I am a noob nowadays.
It seems Peter has also implemented the new PIO state machine init. I hope parallel to the old one, this new command, with so many options will have me study how many comma's I need to add to get WRAP_TARGET or shift-direction at the right place.

Volhout
Edited 2025-03-24 19:18 by Volhout
 
Posted: 09:17am
24 Mar 2025
Copy link to clipboard
Mixtel90
Guru


@ddns
VGA has a colour map that is fixed by the values of the resistors used. Basically the pins put out a binary value from 0 to F and the resistors convert it into colour or greyscale or whatever. You can't choose colours.

Is that what you meant?

TBH, apart from the simplicity of the hardware, VGA hasn't really got any advantage over DVI/HDMI on the PicoMite now. I like it because I can see to solder the connectors with increasingly shaky hands and there are less resistors to find space for. :)

.
Edited 2025-03-24 19:21 by Mixtel90
 
Posted: 09:27am
24 Mar 2025
Copy link to clipboard
phil99
Guru


  Quote  colour or greyscale or whatever. You can't choose colours.
Yes, with VGA the closest I could get was plug-in resistor modules to get RGB121, RGBI and greyscale. Then you need to pre-process images to compensate for the firmware codec only outputting RGB121.
 
Posted: 09:30am
24 Mar 2025
Copy link to clipboard
dddns
Guru

  phil99 said  Everyone is a 'noob' with this version. Found it on page 2 of this topic.

OPTION RESOLUTION 640, 378000 'sets the firmware to run at 378MHz - 640x480 refresh rate 60Hz


Many thanks..this was it. Setting it to 315MHz works as well.

But still, the announcement post says:
RP2040 VGA VERSIONS
OPTION CPUSPEED 252000/315000/378000 'NB: not available when widescreen mode enabled
OPTION WIDESCREEN 720/OFF


  Mixtel90 said   I like it because I can see to solder the connectors with increasingly shaky hands and there are less resistors to find space for. :)

.

Me too :)  ..it was a test setup
 
Posted: 09:40am
24 Mar 2025
Copy link to clipboard
Volhout
Guru

  dddns said  
But still, the announcement post says:
RP2040 VGA VERSIONS
OPTION CPUSPEED 252000/315000/378000 'NB: not available when widescreen mode enabled
OPTION WIDESCREEN 720/OFF



That was 2 weeks ago. Peter has a fast pace in development.

In the company I work for they use alpha to make big changes (like SDK changes, new commands, etc..) then beta, in which they fill in the gaps left in alpha. And finally RC's (release candidates) in which they can only fix bugs, and definitely can not change commands anymore. Because RC's are used by other departments/customers to base the applications on.

That is not how Peter works, he is using RC's to harmonize commands as well. To either get them closer to CMM2, or make them more logical to use. To be honest, the relation between CPUSPEED and RESOLUTION is prone to cause problems when programmed independently. So this is a logical change.

Also: OPTION WIDESCREEN 720 does not exist in 2040 VGA release RC6.

Volhout
Edited 2025-03-24 19:43 by Volhout
 
Posted: 09:47am
24 Mar 2025
Copy link to clipboard
dddns
Guru

Thanks Volhout. This was no criticism but more to explain myself ;)
This is the answer to my questions..
 
Posted: 10:12am
24 Mar 2025
Copy link to clipboard
matherp
Guru

  Quote  The RP2040 only supports 640x480 (mode 1) and 320x240 (mode 2), no widescreen 720.


Not true

OPTION RESOLUTION 720

works on the RP2040 VGA, mode 1 (720x400) and mode 2 (360x200)

  Quote  HDMI and VGA now both use OPTION RESOLUTION and the 640x480 CPU speeds are now set the same by default.

All variants
OPTION RESOLUTION 640 [,252000] 'sets the firmware to run at 252MHz - 640x480 refresh rate 60Hz
OPTION RESOLUTION 640, 315000 'sets the firmware to run at 315MHz - 640x480 refresh rate 75Hz
OPTION RESOLUTION 720 'sets the firmware to run at 283.2MHz - 720x400 refresh rate 60Hz

VGA only
OPTION RESOLUTION 640, 378000 'sets the firmware to run at 378MHz - 640x480 refresh rate 60Hz

RP2350 only
OPTION RESOLUTION 848 'sets the firmware to run at 336MHz - 848x480 refresh rate 60Hz
OPTION RESOLUTION 800 'sets the firmware to run at 360MHz - 800x600 refresh rate 56Hz

HDMI only
OPTION RESOLUTION 1024 'sets the firmware to run at 324MHz - 1024x768 refresh rate 60Hz
OPTION RESOLUTION 1280 'sets the firmware to run at 372MHz - 1280x720 refresh rate 60Hz



Edited 2025-03-24 20:25 by matherp
 
Posted: 11:01am
24 Mar 2025
Copy link to clipboard
Volhout
Guru

Thanks,

OPTION WIDESCREEN 720 has changed to OPTION RESOLUTION 720.
I am a noob.

Volhout
 
Posted: 11:58am
24 Mar 2025
Copy link to clipboard
Mixtel90
Guru


Viva la resolution!

:)
 
Posted: 12:18pm
24 Mar 2025
Copy link to clipboard
matherp
Guru

V6.00.02RC7 is available on

https://geoffg.net/Downloads/picomite/PicoMite_Beta.zip

Bug fix

Fixes a lockup when too many labels are specified in a program (or a loaded txt file!!!), will now delete the program

New Commands

LIST VARIABLES 'does what it says


Full support for PIO on the RP2350B
PIO instructions can only address 32 pins. The system allows these to be pins 0-31 or pins 16-47. This is configured using

PIO SET BASE pio , 0 or 16


Note that this configuration must be set before configuring a state machine and it applies to all the state machines for that PIO.
The command can not be used on the RP2040 and only zero can be set on the RP2350A. In all cases the default is 0 on reset.  As far as I can tell PIO SET BASE will only be reset on CPU reset unless done explicitly using the PIO SET BASE command.

There is now a new command for configuring a state machine. PIO INIT is deprecated but will be left available for the moment but it doesn't and can't work for pins 32-47 on the RP2350B

PIO Configure pio, sm, clock [,startaddress]
[,sidesetbase] [,sidesetno] [,sidesetout]
[,setbase] [,setno] [,setout] [,outbase] [,outno] [,outout] [,inbase]
[,jmppin] [,wraptarget] [,wrap] [,sideenable]
[,pushthreshold] [,pullthreshold] [,autopush] [,autopull] [,inshiftdir] [,outshiftdir]
[,joinrxfifo] [,jointxfifo] [,joinrxfifoget] [,joinrxfifoput]


The parameters in this command are essentially the same as you would use in the PIO INIT command plus the helper functions PINCTRL, SHIFTCTRL and EXECCTRL but combined into a single command. This is required because the sdk does some very clever processing behind the scenes to handle the RP2350B

sidesetbase, sidebase outbase, inbase and jmppin are pin definitions. You can specify these as either a GPno or a pin number (e.g. GP3 or 5). In all cases specify the actual pin. So if PIO SET BASE is set to 16 for that PIO then values GP16 to GP47 are valid. If PIO SET BASE is not set or is set to 0 then pins GP0 to GP31 are valid.They all default to the base set except jmppin (defaults to -1) which needs to be explicitly set if you want to use a jmppin as this triggers setting the required status bit

clock is the desired PIO clock speed in Hz

startaddress is the PIO statement that will start execution - defaults to 0

sidesetno, setno and outno specify the number of pins that can be used for those functions - default to 0

sidesetout, setout and outout specify if those pins should be configured as outputs (1=yes, 0=no) - default to 0

wraptarget and wrap are in the range 0-31 and default to 0 and 31

inshiftdir and outshiftdir default to 1 - shift out of output shift register to right and shift input shift register to right (data enters from left).

All other parameters are booleans that can enable a specific function - 1 to enable 0 to disable - all default to 0.

Simple example:

'PIO Configure pio, sm, clock, startaddress,
'sidesetbase, sidesetno, sidesetout,
'setbase, setno, setout, outbase, outno, outout, inbase,
'jmppin, wraptarget, wrap, sideenable,
'pushthreshold, pullthreshold, autopush, autopull, inshiftdir, outshiftdir,
'joinrxfifo, jointxfifo, joinrxfifoget, joinrxfifoput
PIO assemble 1
.program test
.line 0
.wrap target
Set pins,1
Set pins,0
.wrap
.end program
SetPin gp45,pio1
PIO set base 1,16
PIO configure 1,0,1000000,,,,,gp45,1,1,,,,,,Pio(.wrap target),Pio(.wrap)
PIO start 1,0
Do
Loop



Although the PIO CONFIGURE command has many parameters, it is very easy to use if you adopt this simple approach.
Copy the comment lines in the example into your program. For each parameter substitute your required value or delete the parameter leaving the commas intact
Once all substitutions are done delete any trailing commas
Then assuming the line will be too long for the editor delete the CRs one by one starting at the end of the second last line and moving upwards.
In this way you will have a valid command that is easy to input and edit.

 
Posted: 12:26pm
24 Mar 2025
Copy link to clipboard
JohnS
Guru

Groan.

John
 
Posted: 01:36pm
24 Mar 2025
Copy link to clipboard
Volhout
Guru

@Peter,

1/ I have no idea why but it feels like RC7 does not allow double use of pins. Run attached on 2040 pico non VGA.

2/ In the definition, the "side_set_pindir" bit is missing.

For now I am back on RC6 that does everything right.
Why could you not have waited for 6.00.03.??
I do not have the energy anymore to keep up. Remember why you did not pursue PiCromite anymore ? Constant changes in the SDK. For me in person MMBasic is the SDK, and I have ran out of energy to keep up. Sorry. I hope others take over.

I will keep 5.09.00rc5 and 6.00.02rc6 as gold releases, and will wait for the official release. Then decide if it is good enough for me. Or stay with the RC6.

fc2_v05_new_asm_02_rc7.zip

Volhout
 
Posted: 02:14pm
24 Mar 2025
Copy link to clipboard
matherp
Guru

2/ In the definition, the "side_set_pindir" bit is missing.


Oops documentation error as usual

PIO Configure pio, sm, clock [,startaddress]
[,sidesetbase] [,sidesetno] [,sidesetout]
[,setbase] [,setno] [,setout] [,outbase] [,outno] [,outout] [,inbase]
[,jmppin] [,wraptarget] [,wrap] [,sideenable] [,sidepindir]
[,pushthreshold] [,pullthreshold] [,autopush] [,autopull] [,inshiftdir] [,outshiftdir]
[,joinrxfifo] [,jointxfifo] [,joinrxfifoget] [,joinrxfifoput]


'PIO Configure pio, sm, clock, startaddress,
'sidesetbase, sidesetno, sidesetout,
'setbase, setno, setout, outbase, outno, outout, inbase,
'jmppin, wraptarget, wrap, sideenable, sidepindir,
'pushthreshold, pullthreshold, autopush, autopull, inshiftdir, outshiftdir,
'joinrxfifo, jointxfifo, joinrxfifoget, joinrxfifoput


I'm not sure what I'm looking for in your example. Please explain and I'll see if there is an issue. Are you saying the PIO INIT version no longer works? That should function unchanged
Edited 2025-03-25 00:39 by matherp
 
Posted: 02:57pm
24 Mar 2025
Copy link to clipboard
Volhout
Guru

The PIO INIT version works. The PIO CONFIGURE version complains about using pins double. The old INIT is commented out, but there for reference. I tried to make the Configure work. It errors with pin already used.

Volhout

p.s. in the old helpers the order was [sidepindir],[sideenable]. In Configure the order is swapped. That is fine, just wanted to tell you.
 
   Page 10 of 52    
The Back Shed's forum code is written, and hosted, in Australia.
© JAQ Software 2025