Home
JAQForum Ver 24.01
Log In or Join  
Active Topics
Local Time 01:11 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 9 of 10    
Author Message
JohnS
Guru

Joined: 18/11/2011
Location: United Kingdom
Posts: 4100
Posted: 09:01pm 26 Oct 2025
Copy link to clipboard 
Print this post

  matherp said  I know I denigrate Linux at every opportunity but it really is bad with USD CDC devices.

Bear in mind we're doing something very unusual.

  matherp said  First you have to stop it thinking any USB device is a f..ing modem.

That's a default with some distros but please refer to the above.

  matherp said  Then the user has to be in the correct "dialup" group - I'm not dialing

The name has stayed the same for compatibility reasons.  Using a group is a way to prevent naughty access to hardware and to allow it in a controlled way to programs/users where that's wanted.
  matherp said  finally when you can even talk to the port the choice of terminal programs is hardly impressive.

A matter of opinion, I'd say.  I like screen; you may not (if you used it).

  matherp said  I couldn't use putty because when I installed it it wouldn't run and just gave a list of unitelligible errors - WTF

It works for plenty of people, some problem at your end with the out of date box I suppose.

BTW, Windows has its own set of issues with this stuff and resorting to the likes of Zadig is often needed.  It's not even installed by default in my experience!

John
Edited 2025-10-27 07:03 by JohnS
 
EDNEDN
Senior Member

Joined: 18/02/2023
Location: United States
Posts: 229
Posted: 10:40pm 26 Oct 2025
Copy link to clipboard 
Print this post

  matherp said  Here is the complete set.

PicoMiteV6.01.00RC8.zip



@matherp    The published RC8 code does not build with the modified Pico-SDK.   There is a definition for gpio_get_out_level_all64(void) in External.h that is identical to what the updated Gpio.c file for the Pico-SDK provides.   I suspect this was done so Gpio.c doesn't need to be replaced in the Pico-SDK. But I'm unsure of that.   It causes GCC to barf.   I just commented out the External.h definition for now.   It shouldn't matter where the definition comes from.   But there shouldn't be two of them:

void ExtSet(int pin, int val);
int64_t ExtInp(int pin);
/* static inline uint64_t gpio_get_out_level_all64(void)
{
#if NUM_BANK0_GPIOS <= 32
 return sio_hw->gpio_out;
#else
 return sio_hw->gpio_out | (((uint64_t)sio_hw->gpio_hi_out) << 32u);
#endif
}  */

/* ============================================================================
* Function declarations - Pin manipulation
* ============================================================================ */

Edited 2025-10-27 10:33 by EDNEDN
 
EDNEDN
Senior Member

Joined: 18/02/2023
Location: United States
Posts: 229
Posted: 12:42am 27 Oct 2025
Copy link to clipboard 
Print this post

  matherp said  V6.01.00RC8

PicoMiteV6.01.00RC8.zip

Yet more tweaking of the USB CDC environment. This is now about as far as I can take it to try and improve performance and reliability so if there are still issues you will need to code round them with pauses etc.


The problem still exists.    I'll code around it.
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 10533
Posted: 07:05am 27 Oct 2025
Copy link to clipboard 
Print this post

  Quote  The published RC8 code does not build with the modified Pico-SDK.  

You need to revert gpio.h back to the original supplied with the sdk. Note that I had updated the readme and removed gpio.h from the archive
Edited 2025-10-27 18:30 by matherp
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 10533
Posted: 08:52am 27 Oct 2025
Copy link to clipboard 
Print this post

  Quote  About JPG dithering. Something has changed when JPG size is larger than screen.
With RC7 you would just show top left part of the JPG that fit's the screen resolution.

You just can't trust claude to think things through properly
Try this version for RP2040 VGA

PicoMite.zip


This now has the same format as load dithered

LOAD JPG file$ [, x] [, y] [,mode] [,ximage] [,yimage]
x, y: position to start drawing on the screen (defaults to zero)
Mode Options:
Mode -1: No dithering (processes image as-is, default)
Mode 0: Floyd-Steinberg RGB121
Mode 1: Floyd-Steinberg RGB332
Mode 2: Atkinson RGB121
Mode 3: Atkinson RGB332
ximage,yimage: position in the image to use to draw.
For example if the image is 480x320 and the display is 320x240 then setting ximage to 80 and yimage to 40 would display the central portion of the image
 
Volhout
Guru

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

Hi Peter,

Claude simply needs your supervision to get to great results....



JPG dithering works fine now.
The speed degradation also seems gone (to the same level as RC7).

Regards,

Volhout

P.S. the "LOAD DITHERED" is already compatible with "LOAD IMAGE", so it could be removed as a separate command. Just add the extra parameters to LOAD IMAGE.
Edited 2025-10-27 20:26 by Volhout
PicomiteVGA PETSCII ROBOTS
 
twofingers

Guru

Joined: 02/06/2014
Location: Germany
Posts: 1646
Posted: 10:55am 27 Oct 2025
Copy link to clipboard 
Print this post

An observation regarding PicoMiteHDMI MMBasic USB RP2350A Edition V6.01.00b5:

"Play MP3 FileName$" crashes (requiring a reset) if a function is called simultaneously with playback without appropriate pauses.

In my case, it was "inputE$()" from the latest FM.
This is not a request for a bug fix; it's just for informational purposes.
Inserting a short PAUSE resolves this issue.
Regards
Michael
causality ≠ correlation ≠ coincidence
 
matherp
Guru

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

Volhout

Please try this - performance should be better again but looks for any oddities


PicoMite.zip
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 5398
Posted: 12:15pm 27 Oct 2025
Copy link to clipboard 
Print this post

Hi Peter,

Even better than RC7, not yet b20, but close enough. In case this also satisfies the guys with USB problems, freeze it here. For 2040 this is as good as it gets.

P.S. I did not test everything yet, but the most critical programs from the past do all work.

Volhout
PicomiteVGA PETSCII ROBOTS
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 5398
Posted: 02:02pm 27 Oct 2025
Copy link to clipboard 
Print this post

Peter,

This last version is not 100% robust. I have not found the receipt yet to reproduce, but I have seen 4 occasions now where the unit "locked up" (*). Once when opening the editor, twice when starting a program, and once when MMedit/MMCC finished transferring a file (this was MMedit 533 that does not support AUTOSAVE N yet. Later with MMedit 535 that supports AUTOSAVE N it did not occur (yet).

Volhout

(*) Both console and PS2 keyboard could not revive the unit. But I know that one of the lockups occurred after I closed the terminal program on the PC while the program was running. And then after few seconds the lockup occurred. I did not unplug the USB, only close the PC terminal program. It sounds like data left in a USB buffer that has not end point anymore, but that does not match with the editor opening a program, and locks up after the first line is printed on screen. That does not use the USB console in that particular moment in time.

EDIT: no, it does.. you can also edit in the console.!!
.
Edited 2025-10-28 00:07 by Volhout
PicomiteVGA PETSCII ROBOTS
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 10533
Posted: 02:08pm 27 Oct 2025
Copy link to clipboard 
Print this post

Try this version. I've made some more changes and certainly in W11 it survices the terminal being closed when running a tight output loop
Do
Print "hello",i
Inc i
Pause 20
Loop

PicoMiteRP2040VGAV6.01.00RC9.zip
 
EDNEDN
Senior Member

Joined: 18/02/2023
Location: United States
Posts: 229
Posted: 02:45pm 27 Oct 2025
Copy link to clipboard 
Print this post

  matherp said  
  Quote  The published RC8 code does not build with the modified Pico-SDK.  

You need to revert gpio.h back to the original supplied with the sdk. Note that I had updated the readme and removed gpio.h from the archive


My suggestion is this declaration is removed from the PicoMite archive copy of gpio.c:


static inline void gpio_acknowledge_irq(uint gpio, uint32_t event_mask) {
   check_gpio_param(gpio);
   io_bank0_hw->intr[gpio / 8] = event_mask << (4 * (gpio % 8));
}


It is conflicting with the Pico-SDK's (unaltered) gpio.h file's similar declaration for gpio_acknowledge_irq().

.
Edited 2025-10-28 01:03 by EDNEDN
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 10533
Posted: 03:01pm 27 Oct 2025
Copy link to clipboard 
Print this post

The gpio.c version was out-of-date. Now fixed
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 5398
Posted: 03:30pm 27 Oct 2025
Copy link to clipboard 
Print this post

@Peter,

Above RC9, found the method to reproduce. Uses RP2040 VGA with PS2 keyboard attached.

- Install MMedit535 (geoff's website)

2025-10-21_195308_minifm_RC2.zip

Upload a program (I used this miniFM version) from MMedit to the pico (uses MMCC in AUTOSAVE N mode).

After the program has started on pico, close MMCC on the PC.

On the PS2 keyboard, press <CTRL>C, the F2 (start the miniFM again). You see part of screen build up, but it is halted...waiting...

In case you start any terminal program on the PC (i.e. putty/picocom) the miniFM continues. And it is fully functional from both PS2 and console.

Regards,

Volhout

P.S. I am not sure if this relates to MMedit 535, but it is the only one you can download now from Geoff's website. I first noticed it with MMedit 533. But it is essential that the program is uploaded. Until you repower the pico, this can be reproduced over and over. After a power cycle the relation between USB console and restarting is with control C and F2 disappears.

P.P.S. you need a program that outputs something to console. And miniFM outputs lots of data to console.
Edited 2025-10-28 01:40 by Volhout
PicomiteVGA PETSCII ROBOTS
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 5398
Posted: 03:52pm 27 Oct 2025
Copy link to clipboard 
Print this post

@Peter,

It is something MMCC related. I tried AUTOSAVE and AUTOSAVE N using Putty, and then the problem does not show. Only when using MMCC this happens. Maybe MMCC closes the screen, but not the underlaying USB endpoint. So pico keeps sending until the endpoint buffer in the PC is full. And then stops.

Once any client opens the endpoint again, data can flow.

We have to talk to Jim about this. Maybe this is "good old Linux"..?

Volhout
Edited 2025-10-28 01:54 by Volhout
PicomiteVGA PETSCII ROBOTS
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 10533
Posted: 03:54pm 27 Oct 2025
Copy link to clipboard 
Print this post

You can try this. If it doesn't work at all then MMCC isn't setting DTR

PicoMite.zip
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 5398
Posted: 04:00pm 27 Oct 2025
Copy link to clipboard 
Print this post

3:54 version behaves the same. I can upload through MMCC, run the program.
After MMCC close, control-C and F2 begin, but halt until I open any terminal program on PC on USB com port..

Volhout
PicomiteVGA PETSCII ROBOTS
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 10533
Posted: 04:11pm 27 Oct 2025
Copy link to clipboard 
Print this post

What happens if you close mmedit as well? The new code checks for the usb_cdc connection being live AND DTR asserted and ignores sending to the USB port if either are missing. This works on teraterm/W11 and you have confirmed also putty/linux so it sounds like a mmcc issue
Edited 2025-10-28 02:14 by matherp
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 10533
Posted: 04:47pm 27 Oct 2025
Copy link to clipboard 
Print this post

V6.01.00RC9


PicoMiteV6.01.00RC9.zip


Minor extra protections of USB write + some performance improvement for all version

LOAD JPG file$ [, x] [, y] [,mode] [,ximage] [,yimage]
x, y: position to start drawing on the screen (defaults to zero)
Mode Options:
Mode -1: No dithering (processes image as-is, default)
Mode 0: Floyd-Steinberg RGB121
Mode 1: Floyd-Steinberg RGB332
Mode 2: Atkinson RGB121
Mode 3: Atkinson RGB332
ximage,yimage: position in the image to use to draw.
For example if the image is 480x320 and the display is 320x240 then setting ximage to 80 and yimage to 40 would display the central portion of the image
 
stanleyella

Guru

Joined: 25/06/2022
Location: United Kingdom
Posts: 2667
Posted: 04:50pm 27 Oct 2025
Copy link to clipboard 
Print this post

following this thread but don't want to break anything. this works for me .

mmcc V5.2.9

option list
PicoMiteHDMI MMBasic USB RP2350A Edition V6.01.00b11
OPTION SERIAL CONSOLE COM2,GP20,GP21
OPTION AUTORUN  ON
OPTION FLASH SIZE 4194304
OPTION COLOURCODE ON
OPTION KEYBOARD UK, 0, 0, 600, 150
OPTION RESOLUTION 640x480 @ 315000KHz
OPTION DISPLAY 30, 53
OPTION SDCARD GP2, GP6, GP7, GP4
OPTION AUDIO GP0,GP1', ON PWM CHANNEL 0
OPTION DEFAULT FONT 3, 1
>
1     GP0     Boot Reserved : AUDIO L
2     GP1     Boot Reserved : AUDIO R
4     GP2     Boot Reserved : SD CS
5     GP3     OFF
6     GP4     Boot Reserved : SPI SYSTEM MISO
7     GP5     OFF
9     GP6     Boot Reserved : SPI SYSTEM CLK
10    GP7     Boot Reserved : SPI SYSTEM MOSI
11    GP8     OFF
12    GP9     OFF
14    GP10    OFF
15    GP11    OFF
16    GP12    Boot Reserved : HDMI
17    GP13    Boot Reserved : HDMI
19    GP14    Boot Reserved : HDMI
20    GP15    Boot Reserved : HDMI
21    GP16    Boot Reserved : HDMI
22    GP17    Boot Reserved : HDMI
24    GP18    Boot Reserved : HDMI
25    GP19    Boot Reserved : HDMI
26    GP20    Boot Reserved : CONSOLE TX
27    GP21    Boot Reserved : CONSOLE RX
29    GP22    OFF
41    GP23    DOUT
42    GP24    DIN
43    GP25    HEARTBEAT
31    GP26    OFF
32    GP27    OFF
34    GP28    OFF
 
     Page 9 of 10    
Print this page
The Back Shed's forum code is written, and hosted, in Australia.
© JAQ Software 2025