Home
JAQForum Ver 24.01
Log In or Join  
Active Topics
Local Time 23:18 09 May 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 V6.00.02 release candidates - all versions

     Page 10 of 44    
Author Message
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 10064
Posted: 12:06pm 23 Mar 2025
Copy link to clipboard 
Print this post

  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.
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 10064
Posted: 02:42pm 23 Mar 2025
Copy link to clipboard 
Print this post


'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
 
WhiteWizzard
Guru

Joined: 05/04/2013
Location: United Kingdom
Posts: 2927
Posted: 04:35pm 23 Mar 2025
Copy link to clipboard 
Print this post

  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
 
dddns
Senior Member

Joined: 20/09/2024
Location: Germany
Posts: 259
Posted: 08:27am 24 Mar 2025
Copy link to clipboard 
Print this post

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

Joined: 05/03/2018
Location: Netherlands
Posts: 4854
Posted: 09:10am 24 Mar 2025
Copy link to clipboard 
Print this post

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

Guru

Joined: 11/02/2018
Location: Australia
Posts: 2415
Posted: 09:10am 24 Mar 2025
Copy link to clipboard 
Print this post

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

Joined: 05/03/2018
Location: Netherlands
Posts: 4854
Posted: 09:11am 24 Mar 2025
Copy link to clipboard 
Print this post

@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
PicomiteVGA PETSCII ROBOTS
 
Mixtel90

Guru

Joined: 05/10/2019
Location: United Kingdom
Posts: 7499
Posted: 09:17am 24 Mar 2025
Copy link to clipboard 
Print this post

@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
Mick

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

Guru

Joined: 11/02/2018
Location: Australia
Posts: 2415
Posted: 09:27am 24 Mar 2025
Copy link to clipboard 
Print this post

  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.
 
dddns
Senior Member

Joined: 20/09/2024
Location: Germany
Posts: 259
Posted: 09:30am 24 Mar 2025
Copy link to clipboard 
Print this post

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

Joined: 05/03/2018
Location: Netherlands
Posts: 4854
Posted: 09:40am 24 Mar 2025
Copy link to clipboard 
Print this post

  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
PicomiteVGA PETSCII ROBOTS
 
dddns
Senior Member

Joined: 20/09/2024
Location: Germany
Posts: 259
Posted: 09:47am 24 Mar 2025
Copy link to clipboard 
Print this post

Thanks Volhout. This was no criticism but more to explain myself ;)
This is the answer to my questions..
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 10064
Posted: 10:12am 24 Mar 2025
Copy link to clipboard 
Print this post

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

Joined: 05/03/2018
Location: Netherlands
Posts: 4854
Posted: 11:01am 24 Mar 2025
Copy link to clipboard 
Print this post

Thanks,

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

Volhout
PicomiteVGA PETSCII ROBOTS
 
Mixtel90

Guru

Joined: 05/10/2019
Location: United Kingdom
Posts: 7499
Posted: 11:58am 24 Mar 2025
Copy link to clipboard 
Print this post

Viva la resolution!

:)
Mick

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

Joined: 11/12/2012
Location: United Kingdom
Posts: 10064
Posted: 12:18pm 24 Mar 2025
Copy link to clipboard 
Print this post

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.

 
JohnS
Guru

Joined: 18/11/2011
Location: United Kingdom
Posts: 3998
Posted: 12:26pm 24 Mar 2025
Copy link to clipboard 
Print this post

Groan.

John
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 4854
Posted: 01:36pm 24 Mar 2025
Copy link to clipboard 
Print this post

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

Joined: 11/12/2012
Location: United Kingdom
Posts: 10064
Posted: 02:14pm 24 Mar 2025
Copy link to clipboard 
Print this post

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

Joined: 05/03/2018
Location: Netherlands
Posts: 4854
Posted: 02:57pm 24 Mar 2025
Copy link to clipboard 
Print this post

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