Home
JAQForum Ver 24.01
Log In or Join  
Active Topics
Local Time 09:45 29 Oct 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.01.00 release candidates

     Page 4 of 10    
Author Message
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 10535
Posted: 09:06pm 20 Oct 2025
Copy link to clipboard 
Print this post

  Quote  One more question: MM.SUPPLY:


What board are you using? Only designed to work for standard Pico/Pico2
 
dddns
Guru

Joined: 20/09/2024
Location: Germany
Posts: 675
Posted: 09:22pm 20 Oct 2025
Copy link to clipboard 
Print this post

  dddns said  My new toy:
PicoMite MMBasic USB RP2350B Edition V6.01.00RC2
OPTION SERIAL CONSOLE COM1,GP28,GP29
OPTION SYSTEM SPI GP22,GP23,GP20
OPTION FLASH SIZE 16777216
OPTION COLOURCODE ON
OPTION KEYBOARD US
OPTION PICO OFF
OPTION CPUSPEED (KHz) 378000
OPTION LCDPANEL CONSOLE
OPTION DISPLAY 40, 100
OPTION LCDPANEL SSD1963_7_16, LANDSCAPE,,,NORESET
OPTION TOUCH GP21,GP19
GUI CALIBRATE 1, 148, 261, 2095, 1366
OPTION SDCARD GP24, GP25, GP26, GP27
OPTION F9 flash run 1
OPTION PSRAM PIN GP47


When storing the options to disk(tried both) and reset them and reload the file it errors with "Display not configured". Having no display configured then save/reload works.

After Option display console 1 it freezes and need clear_flash

Framebuffer L and F don't work for me. It only shows a small section at the wrong place


Many thanks for the fixes!

Option lcdpanel console 1 works as well as saving the image and to calibrate the touch.

What hasn't changed is the scrambled picture with framebuffer. Some graphics are drawn error free other are not shown, only half or only a small tile.
But as I might be the only one using this there is no hurry or need..

p.s. there is no difference between with PSRAM enabled or not. It runs with framebuffer without error and leaves 40k free heap what I think is too much
Edited 2025-10-21 07:30 by dddns
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 10535
Posted: 06:29am 21 Oct 2025
Copy link to clipboard 
Print this post

  Quote  What hasn't changed is the scrambled picture with framebuffer. Some graphics are drawn error free other are not shown, only half or only a small tile.
But as I might be the only one using this there is no hurry or need..


Please provide an example program that demonstrates the issue. I created a program with both framebuffer and layerbuffer and tested both copy and merge with no issues
 
dddns
Guru

Joined: 20/09/2024
Location: Germany
Posts: 675
Posted: 08:07am 21 Oct 2025
Copy link to clipboard 
Print this post

Good morning,

I'm not able to provide a simple test program.
Please download this save it to a subdir on A: or B: , change into it and comment out the first two lines:
Option explicit
'Option console none

Dim integer vid_opt = 0 ': MODE 1 : If MM.HRES > 1000 Or MM.Info(heap) > 10^6 Then vid_opt = 1

Dim vid_mode '= 1 : MODE vid_mode


I've prepared it already for using it on SSD1963

Thanks that you care for that issue!
 
dddns
Guru

Joined: 20/09/2024
Location: Germany
Posts: 675
Posted: 08:15am 21 Oct 2025
Copy link to clipboard 
Print this post

There is something else I observed:
For Mode 1 I use tiling. In some scaling values, printing with Text command will destroy tiling in a small area. This happens especially with Font 1.
In these situations x/y is somewhere but not on a exact tiling position character wise.

edit: The first drawing is so scrabled you can't read the menu. Please press home/end to change to the next one. The third starts looking better
Edited 2025-10-21 18:18 by dddns
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 10535
Posted: 08:35am 21 Oct 2025
Copy link to clipboard 
Print this post

  Quote  I'm not able to provide a simple test program.

Sorry, but in that case I can't look at it. I've tested with a simple program and confirmed that the correct amount of memory is being allocated safely (187.5K each). I've checked FRAMEBUFFER COPY and FRAMEBUFFER MERGE and they both work perfectly.
I can't be expected to dig into a complex program to discover what is either incorrect in the program or the firmware.
 
dddns
Guru

Joined: 20/09/2024
Location: Germany
Posts: 675
Posted: 08:45am 21 Oct 2025
Copy link to clipboard 
Print this post

No problem. I didn't expect that you look into the code but more that you have a picture how it looks like.

If an object is scaled down to middle of screen it starts displaying correct.
I've just tested Lcd320 on and that looks much better.
320 mode works better that in the versions before but is not correctly centered
 
dddns
Guru

Joined: 20/09/2024
Location: Germany
Posts: 675
Posted: 08:57am 21 Oct 2025
Copy link to clipboard 
Print this post

A last non technical comment:

Using Picomite with a 7" SSD1963 as local screen is such an amazing experience and stand-alone computer feeling, I can't find words.

I would like to thank you for that!
 
dddns
Guru

Joined: 20/09/2024
Location: Germany
Posts: 675
Posted: 09:14am 21 Oct 2025
Copy link to clipboard 
Print this post

Maybe it has something to do with Fonts, I don't know.
In the FM application I need to correct the printing position for Font 2,3,5,7 with -1 that that last column is shown on the local screen while tty always fits

edit:as well for a ILI9341
Edited 2025-10-21 19:17 by dddns
 
karlelch

Senior Member

Joined: 30/10/2014
Location: Germany
Posts: 273
Posted: 04:50pm 21 Oct 2025
Copy link to clipboard 
Print this post

  matherp said  
  Quote  One more question: MM.SUPPLY:

What board are you using? Only designed to work for standard Pico/Pico2

I am using a standard Pico 2

> option heartbeat off
> for i=0 to 99: ?MM.Supply : Pause 100 : next
0.07736263736
0.07494505495
0.07736263736
0.07736263736
0.07978021978
0.07494505495
0.07736263736
0.07736263736
0.07736263736
0.07736263736
0.07736263736
0.07978021978
0.07736263736
0.07736263736
0.07736263736
0.07736263736
0.07736263736
0.07736263736
0.07736263736
0.07494505495
0.07736263736
0.07736263736
0.07736263736
0.07736263736
0.07736263736
0.07978021978
0.07736263736
0.07736263736
0.07736263736
0.07736263736
> option heartbeat on
> for i=0 to 99: ?MM.Supply : Pause 100 : next
4.931868132
0.05318681319
0.05318681319
0.05318681319
0.05318681319
0.05318681319
0.05318681319
0.05318681319
0.05802197802
0.05318681319
0.0556043956
4.873846154
4.90043956
4.888351648
4.91010989
4.90043956
4.895604396
4.951208791
4.914945055
4.881098901
4.924615385
0.05318681319
0.05318681319
0.05318681319
0.05318681319
0.05318681319
0.05318681319
0.05318681319
0.05318681319
0.05318681319
0.05318681319
4.90043956
> option list
PicoMite MMBasic RP2350A V6.01.00RC4
OPTION FLASH SIZE 4194304
OPTION COLOURCODE ON
OPTION CPUSPEED (KHz) 200000
>


I am applying approx. 5V from battery (via a step-up converter) to VSYS. for the test above, I used a USB dongle that just provides data and ground (no power).

 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 10535
Posted: 08:24pm 21 Oct 2025
Copy link to clipboard 
Print this post

Must be something h/w related. Faulty Pico2? or something in your design? Results are the same with heartbeat on or off.

Edited 2025-10-22 06:25 by matherp
 
phil99

Guru

Joined: 11/02/2018
Location: Australia
Posts: 2787
Posted: 09:35pm 21 Oct 2025
Copy link to clipboard 
Print this post

Looking at the Pico 2 schematic the Vsys voltage divider is connected to ADC3 via MOSFET Q1. Q1 gate should connect to 3.3V but if the track is open circuit at the 3.3V end and passes close to the heartbeat led track it might produce the result you are seeing.

Also tested a Pico 2 with same result that Peter got, with heartbeat on and off.

https://datasheets.raspberrypi.com/pico/pico-2-datasheet.pdf

Edit.
Tried another module and get a constant 2.98V. Same with:-
for i=0 to 99: ? pin(gp29)*2 : Pause 100 : next

May be something fishy with these modules. Investigating further.

Edit 2.
  Quote  Also tested a Pico 2 with same result that Peter got, with heartbeat on and off.
No I didn't. Not paying attention, it also gives 2.9V for MM.SUPPLY and pin(gp29)*2.
A closer look at the schematic and the voltage divider has a second lower leg (100kΩ) on GPIO29 so using ? pin(gp29)*3 gives 4.48V and I measure 4.50V on Vsys.

It would appear the RP2350 VGA firmware MM.SUPPLY is using GP29 x 2 instead of x 3.
> ? mm.supply, pin(gp29)*2, pin(gp29)*3
2.997802198     2.987863248     4.482197802
>

PicoMiteVGA MMBasic RP2040 Edition V6.01.00RC4 is correct.
? mm.supply, pin(gp29)*2, pin(gp29)*3
4.885934066     3.23015873      4.838388278
>


Karlelch's issue remains a mystery.
Edited 2025-10-22 13:15 by phil99
 
EDNEDN
Senior Member

Joined: 18/02/2023
Location: United States
Posts: 232
Posted: 03:39am 22 Oct 2025
Copy link to clipboard 
Print this post

@matherp  

I'm not sure if this is the 'right' place to document this.  I have traced this bug into the USB firmware from the Pico-SDK.     @ville56 made some comments about problems he was having with the USB ports on his computer talking to the PicoMites.

I responded with some extra information and some errata that I know about.  I responded with this post:  https://www.thebackshed.com/forum/ViewTopic.php?FID=16&TID=18382#245931

I wrote a simple (and stupid) MMBasic program to cause the lock up errata I'm seeing doing the work for the PicoMite V6.01.00RC4D.  If you fire up TeraTerm and use the '<' & '>' to move the token back and forth on the line you will see a lock up within a minute.  It is much harder with MMCC to cause the lock up, but it will lock up the PicoMite eventually also.  

I am absolutely convinced the problem is not in MMBasic (or MMDebug).   It is down in the USB code from the Pico-SDK.    

In the build instructions for MMBasic you have some changes that need to be made to the Pico-SDK.   So it might be possible that you are willing to make a change to the Pico-SDK to fix this problem.

Just load this MMBasic program and use '<' & '>' to move the token back and forth for a minute.   You will see a lockup!


a$ = "================================================="
l = len(a$)
cnt = 1
cnt2 = 1
Top_of_loop:
      b$ = left$(a$,cnt) + "|" + right$(a$, l - cnt)
      print cnt2;b$; "           ";chr$(13);
      cnt2 = cnt2+1
      c$ = inkey$

      if c$ = "<" then
           cnt = cnt - 1
           if cnt < 2 then cnt = 1
       endif
       
      if c$ = ">" then
           cnt = cnt + 1
           if cnt > l-3 then cnt = l-3
      endif
     
     goto Top_of_loop
 
 
TassyJim

Guru

Joined: 07/08/2011
Location: Australia
Posts: 6340
Posted: 04:56am 22 Oct 2025
Copy link to clipboard 
Print this post

More information on the USB lock-up
> OPTION LIST
PicoMite MMBasic RP2350B V6.01.00RC4
OPTION FLASH SIZE 16777216
OPTION COLOURCODE ON
OPTION PICO OFF
OPTION CPUSPEED (KHz) 300000
OPTION PSRAM PIN GP47
>


Sending a long file with errors due to wordwrap etc with AUTOSAVE. I am not sure if it's the errors in the code or the size of the code that causes the problem.

The complete file is sent with each line being echoed as usual but as soon as the ^Z is sent, the picomite does not reply.
Looking with WireShark, the data (^Z) is sent from the PC but not acknowledged.
The PC end then resends and the pico end sends:
  Quote  IRP USBD_STATUS: USBD_STATUS_CANCELED (0xc0010000)

This goes on until the pico is unplugged and reinserted.

I tried ^C <ESC> <CR> and nothing breaks to lockup loop.

This occurs when using TeraTerm and MMCC

I think TeraTerm handles the fault better than MMCC (MMCC goes "not responding") but neither solves the problem.

Jim

edit
The same program loads without error on this:
> OPTION LIST
PicoMite MMBasic RP2350A V6.01.00RC4
OPTION FLASH SIZE 4194304
OPTION COLOURCODE ON
OPTION CPUSPEED (KHz) 300000
>

Edited 2025-10-22 17:24 by TassyJim
VK7JH
MMedit
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 5398
Posted: 07:28am 22 Oct 2025
Copy link to clipboard 
Print this post

Pico2 still has the HW bug on GPIO pins. Some software register juggling is in the SDK to minimize the effect. But this may relate to the issue. Although ADC pins do not exhibit the bug when used as ADC, uncontrolled switching of the pin may.

Volhout
Ps another cause could be that you loaded Webmite code on a pico2, or reverse, picomite code on a webmite
Edited 2025-10-22 17:52 by Volhout
PicomiteVGA PETSCII ROBOTS
 
dddns
Guru

Joined: 20/09/2024
Location: Germany
Posts: 675
Posted: 09:00am 22 Oct 2025
Copy link to clipboard 
Print this post

  TassyJim said  More information on the USB lock-up
> OPTION LIST
PicoMite MMBasic RP2350B V6.01.00RC4
OPTION FLASH SIZE 16777216
OPTION COLOURCODE ON
OPTION PICO OFF
OPTION CPUSPEED (KHz) 300000
OPTION PSRAM PIN GP47
>


Sending a long file with errors due to wordwrap etc with AUTOSAVE. I am not sure if it's the errors in the code or the size of the code that causes the problem.

edit
The same program loads without error on this:
> OPTION LIST
PicoMite MMBasic RP2350A V6.01.00RC4
OPTION FLASH SIZE 4194304
OPTION COLOURCODE ON
OPTION CPUSPEED (KHz) 300000
>


I need to increase the line delay in some cases. Please try it with 50ms.
I'm using a RP2350B "PGA2350"

p.s. my finding is, that long lines could be a problem
Edited 2025-10-22 19:02 by dddns
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 10535
Posted: 09:07am 22 Oct 2025
Copy link to clipboard 
Print this post

Jim, EDNEDN

Please test this RP2350 standard PicoMite version for USB issues. Do and option reset before testing. Thanks
NB: I can run this using autosave with teraterm with a paste delay per line of just 5mSec and no other transmit delays


PicoMite.zip
Edited 2025-10-22 19:58 by matherp
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 10535
Posted: 10:44am 22 Oct 2025
Copy link to clipboard 
Print this post

V6.01.00RC5


PicoMiteV6.01.00RC5.zip


I believe this fixes a longstanding issue with USB communications locking up but this may be wishful thinking
 
karlelch

Senior Member

Joined: 30/10/2014
Location: Germany
Posts: 273
Posted: 03:48pm 22 Oct 2025
Copy link to clipboard 
Print this post

  matherp said  Must be something h/w related. Faulty Pico2? or something in your design? Results are the same with heartbeat on or off.

Strange. Not aware that the Pico 2 is faulty - everything else works. Unfortunately, I cannot easily replace it because I soldered it in ...

  phil99 said  Karlelch's issue remains a mystery.

Thanks for testing - I agree.

Is "OPTION HEARTBEAT OFF" is switching the 1Hz interrupt off or does it just disable the LED blinking?

In any case, it may be just a side-effect of my circuit. As said above, everything else works and I was just curious about "MM.SUPPLY".

Best
Thomas
 
dddns
Guru

Joined: 20/09/2024
Location: Germany
Posts: 675
Posted: 03:54pm 22 Oct 2025
Copy link to clipboard 
Print this post

Hello,

I've only quick tested but get "line to long" errors when reading with input # or line input # opened as Input(tested on drive B:).
The transmission via Autosave(95kb) was clean:Edit:with 25mSec
PicoMite MMBasic USB RP2350B Edition V6.01.00RC5
OPTION SERIAL CONSOLE COM1,GP28,GP29
OPTION SYSTEM SPI GP22,GP23,GP20
OPTION SYSTEM I2C GP24,GP25
OPTION FLASH SIZE 16777216
OPTION COLOURCODE ON
OPTION KEYBOARD US, 0, 0, 150, 40
OPTION PICO OFF
OPTION CPUSPEED (KHz) 378000
OPTION LCDPANEL SSD1963_7_16, LANDSCAPE,,,NORESET
OPTION TOUCH GP21,GP19
GUI CALIBRATE 1, 131, 383, 2065, 1336
OPTION SDCARD GP32, GP33, GP34, GP35
OPTION KEYBOARD REPEAT 150,40
OPTION AUDIO GP26,GP27', ON PWM CHANNEL 5
OPTION RTC AUTO ENABLE

Edited 2025-10-23 01:58 by dddns
 
     Page 4 of 10    
Print this page
The Back Shed's forum code is written, and hosted, in Australia.
© JAQ Software 2025