Home
JAQForum Ver 24.01
Log In or Join  
Active Topics
Local Time 04:42 29 Nov 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.00 release candidates - all versions

     Page 12 of 25    
Author Message
Mixtel90

Guru

Joined: 05/10/2019
Location: United Kingdom
Posts: 6810
Posted: 07:51am 16 Oct 2024
Copy link to clipboard 
Print this post

> option list
PicoMiteVGA MMBasic USB Edition  6.00.00RC3
OPTION SERIAL CONSOLE COM2,GP8,GP9
OPTION SYSTEM I2C GP2,GP3
OPTION FLASH SIZE 4194304
OPTION LIBRARY_FLASH_SIZE  2D000
OPTION COLOURCODE ON
OPTION KEYBOARD UK
OPTION CPUSPEED (KHz) 315000
OPTION SDCARD GP5, GP6, GP7, GP4
OPTION AUDIO GP10,GP11', ON PWM CHANNEL 5
OPTION RTC AUTO ENABLE
OPTION F1 Help

OPTION F9 run "FEpico"

>


The usual OPTION KEYBOARD UK but my keyboard is printing hash for pound.
In Tera Term it prints $ ok but nothing at all for pound.
@ and " are in the correct places.

The PC is set for ENG UK

I'll update to a new RC later. No point in chasing it on an old one really.
.
Edited 2024-10-16 17:53 by Mixtel90
Mick

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

Joined: 11/12/2012
Location: United Kingdom
Posts: 9137
Posted: 08:11am 16 Oct 2024
Copy link to clipboard 
Print this post

Your system may be corrupt - try OPTION RESET - but certainly upgrade to RC8 before anything else. What message do you get when you plug in the keyboard.

NB: MMbasic does not support the £ character as it doesn't have an ascii code
Edited 2024-10-16 18:13 by matherp
 
Bleep
Guru

Joined: 09/01/2022
Location: United Kingdom
Posts: 512
Posted: 08:58am 16 Oct 2024
Copy link to clipboard 
Print this post

On RC8 one 2040 LCD Picomite & one VGA Picomite, both work correctly using a UK keyboard, changing to US keyboard also works as expected, with @ ~ " in the US positioning. Haven't tried a 2350, but I'd be surprised if they were wrong.
Regards Kevin.
 
stanleyella

Guru

Joined: 25/06/2022
Location: United Kingdom
Posts: 2132
Posted: 03:31pm 16 Oct 2024
Copy link to clipboard 
Print this post

  Mixtel90 said  I should have said, this is USB HDMI version.

option list
PicoMiteHDMI MMBasic USB Version 6.00.00RC8
OPTION SERIAL CONSOLE COM2,GP8,GP9
OPTION AUTORUN  ON
OPTION FLASH SIZE 4194304
OPTION COLOURCODE ON
OPTION KEYBOARD UK, 0, 0, 600, 150
OPTION CPUSPEED (KHz) 315000
OPTION DISPLAY 30, 53
OPTION HDMI PINS  1, 3, 7, 5
OPTION SDCARD GP22, GP6, GP7, GP4
OPTION AUDIO GP26,GP27', ON PWM CHANNEL 5
OPTION MODBUFF ENABLE  192
>

same as vga usb. " is @ and @ is "
olimex board 2350/pico2

numlock is on first boot on all usb so check it on your kb or you type rubbish
Edited 2024-10-17 01:38 by stanleyella
 
ville56
Regular Member

Joined: 08/06/2022
Location: Austria
Posts: 96
Posted: 03:54pm 16 Oct 2024
Copy link to clipboard 
Print this post

Peter,

DS18B20 is not working anymore with versions after PicoMiteRP2350V6.00.00b9.uf2. No matter what resolution is set in TEMPR START. The result is always 1000.

Tnx,
Gerald
                                                                 
73 de OE1HGA, Gerald
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 9137
Posted: 04:37pm 16 Oct 2024
Copy link to clipboard 
Print this post

Thanks for the report - will fix
 
Bleep
Guru

Joined: 09/01/2022
Location: United Kingdom
Posts: 512
Posted: 05:26pm 16 Oct 2024
Copy link to clipboard 
Print this post

Num lock and Caps lock can both be set permanently to on (1) or off (0) during boot by issuing option command:-

Option keyboard UK, 0, 0

They obviously work as normal once booted up in the state you specified.
 
stanleyella

Guru

Joined: 25/06/2022
Location: United Kingdom
Posts: 2132
Posted: 06:41pm 16 Oct 2024
Copy link to clipboard 
Print this post

  Bleep said  Num lock and Caps lock can both be set permanently to on (1) or off (0) during boot by issuing option command:-

Option keyboard UK, 0, 0

They obviously work as normal once booted up in the state you specified.

not usb kb if just option keyboard uk,  needs uk,0,0 or numlock on.
first boot from new flash it's keyboard us but num lock light on keyboard.
got to be keyboard uk,0,0
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 4253
Posted: 06:21am 17 Oct 2024
Copy link to clipboard 
Print this post

Hi Peter,

2040 version 6.0.0RC8 (latest) works well on GEEK. I can open SPI on GP2,3,4 for experiments, while having display and SD card active working. Thank you for implementing this special case.

Volhout
PicomiteVGA PETSCII ROBOTS
 
electricat

Senior Member

Joined: 30/11/2020
Location: Lithuania
Posts: 161
Posted: 09:17am 17 Oct 2024
Copy link to clipboard 
Print this post

Peter,
ex ZX SPECTRUM users do different strange things  

PicoMiteVGAUSBRP2040V6.00.00RC7
>> ? PEEK(BYTE 16384) or any higher rises :
Invalid adress - restarting. (or resetting)

and system restarts
Edited 2024-10-17 19:19 by electricat
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 9137
Posted: 09:39am 17 Oct 2024
Copy link to clipboard 
Print this post

Thew PicoMite firmware quite deliberately does not attempt to validate peek and poke addresses. If you peek an address that isn't there bad things will happen
 
electricat

Senior Member

Joined: 30/11/2020
Location: Lithuania
Posts: 161
Posted: 09:40am 17 Oct 2024
Copy link to clipboard 
Print this post

Good. I like it  
 
Mixtel90

Guru

Joined: 05/10/2019
Location: United Kingdom
Posts: 6810
Posted: 09:54am 17 Oct 2024
Copy link to clipboard 
Print this post

This, I approve of. :)
It teaches good programming practice. :)
Mick

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

Guru

Joined: 04/06/2022
Location: Germany
Posts: 1115
Posted: 10:28am 17 Oct 2024
Copy link to clipboard 
Print this post

Maybe I missed it, or forgot...
For VGA and HDMI:
Is there a way to read the address of the screen and/or framebuffer and then POKE bytes directly into it?
Edited 2024-10-17 20:30 by Martin H.
'no comment
 
electricat

Senior Member

Joined: 30/11/2020
Location: Lithuania
Posts: 161
Posted: 10:30am 17 Oct 2024
Copy link to clipboard 
Print this post

Martin,
MM.INFO(WRITEBUFF) Returns the address in memory of the current buffer used for drawing
commands
?
Edited 2024-10-17 20:30 by electricat
 
Martin H.

Guru

Joined: 04/06/2022
Location: Germany
Posts: 1115
Posted: 10:42am 17 Oct 2024
Copy link to clipboard 
Print this post

  electricat said  Martin,
MM.INFO(WRITEBUFF) Returns the address in memory of the current buffer used for drawing
commands
?

Gracias   that speeds Things up a little, but i have to swap the "Nibbles" of the Byte I poke in,to keep them in the right order
Edited 2024-10-17 20:46 by Martin H.
'no comment
 
Bleep
Guru

Joined: 09/01/2022
Location: United Kingdom
Posts: 512
Posted: 04:44pm 17 Oct 2024
Copy link to clipboard 
Print this post

I've just converted a RP2040 VGA Picomite to a RP2350 VGA, as usual I ran Bubble Universe to get a speed comparison, now that things have calmed down.

' Bubble Universe
'
'2 nested loops 52 each = 2704 points calculated.
'Pico 2040 @ 378MHz VGA normal 336mS VGA Framebuffer 418mS
'Pico 2350 @ 378MHz VGA normal 193mS VGA Framebuffer 194mS
'
'If modified to 2 Nested loops each 68 =4761 points calculated
'Pico 2350 @ 378MHz VGA normal 361mS VGA Framebuff 361mS
'
MODE 2
FRAMEBUFFER create
FRAMEBUFFER write f

Dim Float u(51),w(51),p,q,t,v=0,x=0,b
Dim Integer a,g,i,j,c(51),d(51),e(51),n(51),nn,dd,xc,yc,xs,ys
Dim Integer f(13,51),l(13,51),m(26,51),y,z,cc,tt
Const r=(2*Pi)/235,k=255,s=50
CLS RGB(black)
t=Rnd*10:Math set 2,e()
't=1
nn=Peek(varaddr n())
dd=Peek(varaddr d())
cc=Peek(varaddr c())
'calculate centre and scale factor
xc=MM.HRes\2:yc=MM.VRes\2
xs=MM.HRes/4.5:ys=MM.VRes/4.5  'Oval
'xs=MM.HRes/6:ys=MM.VRes/4      'Circular

For g=0 To 51
For a=0 To 51
 If g<26 And a<13 Then
  n(a)=RGB(0,255,0)
 Else
  n(a)=RGB(g*5,a*5,128*(g+a<51))
 EndIf
Next 'a
Memory pack nn, Peek(varaddr m(0,g)),52,32
Next 'g
Do
Inc t,0.015:g=0':Print Timer:Timer =0
For i=50To 255Step 4
 z=Peek(varaddr f(0,g)):Memory unpack z,cc,52,16
 y=Peek(varaddr l(0,g)):Memory unpack y,dd,52,16
 Pixel c(),d(),0'Box c(),d(),e(),e(),0,,0
 b=r*i+t
 For j=0To 51:u(j)=Sin(i+v)+Sin(x):v=Cos(i+v)+Cos(x):x=u(j)+b:w(j)=v:Next
 Math Scale u(),xs,c():Math Scale w(),ys,d():Math add c(),xc,c():Math Add d(),yc,d()
 Memory unpack Peek(varaddr m(0,g)),nn,52,32
 Pixel c(),d(),n()'Box c(),d(),e(),e(),0,,n()
 Memory pack cc,z,52,16:Memory pack dd,y,52,16
 Inc g
Next 'i
FRAMEBUFFER copy f,n
Loop


I've optimised this code until it squeaks. :-) Unless someone has any improvements?
The colours are also optimised to give what I think is the best results for a RGB121 colour scheme.
It will auto scale and centre, so will work on HDMI and for those that like their Bubble round, there is separate scaling for X and Y.
If you like your pixels to be bigger (currently set to 2x2) then swap the 2 "Pixel" lines for "Box" lines, both are in the code, it makes almost no difference to the speed.

'2 nested loops 52 each = 2704 points calculated.
'Pico 2040 @ 378MHz VGA normal 336mS VGA Framebuffer 418mS
'Pico 2350 @ 378MHz VGA normal 193mS VGA Framebuffer 194mS
'
'If modified to 2 Nested loops each 68 =4761 points calculated
'Pico 2350 @ 378MHz VGA normal 361mS VGA Framebuff 361mS

Firstly I was quite surprised to note that it made almost no difference to the iteration rate whether I used a frame buffer or not, this is presumably down to Peters optimised memcopy function, which is not on the 2040.

On the 2350 it is calculating and displaying 2704 points at a rate of 5Hz, with or without a framebuffer for smoothness; compared to 3Hz on a 2040, or 2.5Hz if you use a frame buffer, that comes out at roughly double the speed, if using the frame buffer.

For fun I also tried increasing the number of points calculated to 4761, (increased the loop counts to 68) so not quite double and it was still managing a tad under 3Hz, I actually prefer the fewer points, less crowded.

From this very limited test it would appear, that for graphics stuff, particularly if using the Framebuffer you get close to a doubling in speed, for the same clock speed. Obviously the HDMI will be a bit slower because of it's fixed lower clock and LCD you are still limited by their update speed, even though you might be able to overclock to 420MHz, mine will only do 416MHz :-(.

Regards, Kevin.
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 9137
Posted: 05:51pm 17 Oct 2024
Copy link to clipboard 
Print this post

Bubble Universe running on a 16-bit parallel SSD1963

https://youtu.be/FwHqZ2ZE3yQ
 
stanleyella

Guru

Joined: 25/06/2022
Location: United Kingdom
Posts: 2132
Posted: 06:15pm 17 Oct 2024
Copy link to clipboard 
Print this post

looks good hdmi and 2350 ili8341
version 5 is circular not oblate spheroid and hdmi seems same speed.
not moaning just same monitor

'circle bubble

' Bubble Universe
mode 2

option autorun on
Dim Float u,a,p,q,t,v=0, x=0
Dim Integer g,b,i,j,c(41),d(41),e(41),n(41)
Dim Integer f(41,41),l(41,41),m(41,41)
Const w=MM.HRes/2, h=MM.VRes/2
Const r=(2*Pi)/235, o=h/2
FRAMEBUFFER CREATE F
FRAMEBUFFER WRITE f

CLS RGB(black)':Backlight 95
t=Rnd*10:math set 2,e()'Math set 3,e()

For g=0 to 41
for b=0 to 41
  m(g,b)=rgb(g*6,b*6,128*(g+b>30)*(g+b<60))
Next:Next

Do
Inc t,0.025:g=0:Timer =0
For i=50 To 255 Step 5
b=0
a=r*i
Math Slice f(),g,,c()
Math Slice l(),g,,d()
Box c(),d(),e(),e(),0,,0
For j=50 To 255 Step 5
p=i+v:q=a+x
u=Sin(p)+Sin(q):v=Cos(p)+Cos(q)
x=u+t:c(b)=w+u*o:d(b)=h+v*o
Inc b
Next
Math Slice m(),g,,n()
'Box c(),d(),e(),e(),0,,n()
pixel c(),d(),n()
Math Insert f(),g,,c()
Math Insert l(),g,,d()
Inc g
Next i

FRAMEBUFFER COPY f,N
'Print Timer
Loop


Edited 2024-10-18 05:10 by stanleyella
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 4253
Posted: 06:51pm 17 Oct 2024
Copy link to clipboard 
Print this post

@Peter,

  Bleep said  
Firstly I was quite surprised to note that it made almost no difference to the iteration rate whether I used a frame buffer or not, this is presumably down to Peters optimised memcopy function, which is not on the 2040.

Regards, Kevin.


Using DMA now on the 2350? Or is the the M33 core that has a block move instruction.?
Just Curious....

Volhout
PicomiteVGA PETSCII ROBOTS
 
     Page 12 of 25    
Print this page
© JAQ Software 2024