Home
JAQForum Ver 24.01
Log In or Join  
Active Topics
Local Time 07:48 02 Jul 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 USB versions extrem slow response - solutions?

     Page 1 of 2    
Author Message
Amnesie
Guru

Joined: 30/06/2020
Location: Germany
Posts: 576
Posted: 09:15pm 20 Jun 2025
Copy link to clipboard 
Print this post

Hello,

is it normal that ALL USB-versions of the PicoMite firmware have missing characters / slow response if typing "fast"?

I already tested this on previous versions (now I switched to the latest release) and thought "well it probably is fixable by setting the options for repeat rate and so on..." but this doesn't cure the problem. For me the USB-version of the firmware isn't usable at all. I can't force myself to type slow. In another thread I tested some recomandations for repeat rate etc. but none of this helped. USB seems to be too slow.

Is there any solution with a second Pico acting as a USB-to-PS/2 converter? I am aware of the ps2x2pico solution by the user "No0ne" (https://github.com/No0ne/ps2x2pico)
but this doesn't work at all - especially I need a German layout...

Greetings
Daniel
 
Mixtel90

Guru

Joined: 05/10/2019
Location: United Kingdom
Posts: 7820
Posted: 09:34pm 20 Jun 2025
Copy link to clipboard 
Print this post

USB is never as fast as PS2. It can't be as there is a much bigger software stack to support it. I've never run into this problem, probably because I'm one of the world's slowest (and worst) typists nowadays!

Note that USB om the Pico is USB1 or 1.1, I think. It has a maximum of 6 key rollover no matter what keyboard you use. It's a restriction of the USB stack. PS2 is full n-key rollover.

Whether this is the answer I don't know, but it can't help.
Mick

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

Joined: 30/06/2020
Location: Germany
Posts: 576
Posted: 09:38pm 20 Jun 2025
Copy link to clipboard 
Print this post

Hello Mick,

thank you for this explanation. I think this helps to understand the main problem. Ok, then I just stick to the PS/2 version. I just thought that, there might be a solution with a USB to PS/2 converter.

Greetings
Daniel
 
ebbandflow
Regular Member

Joined: 31/08/2023
Location: United States
Posts: 41
Posted: 03:51am 21 Jun 2025
Copy link to clipboard 
Print this post

Hi Daniel, I struggled with the same issue and ended up having luck with ps2x2pico and an american keyboard layout and posted about in the last post here

"RE: my input speed issues, I ended up making a USB -> PS2 converter from an extra RP2040 Zero flashed with the ps2x2pico firmware. I skipped the level converter shown in the github and instead added a 4.7k pullup resistor from GP 13 to GP11 (PS2 Data) and GP 13 to GP12 (PS2 Clock), and then connecting those to the picomite and linking VBUS between the two picos as well as GND. Now I can use a USB keyboard with the input speed of a PS2."




 
robert.rozee
Guru

Joined: 31/12/2012
Location: New Zealand
Posts: 2428
Posted: 04:33am 21 Jun 2025
Copy link to clipboard 
Print this post

also have a look over this thread:
https://www.thebackshed.com/forum/ViewTopic.php?TID=16545&P=1#214849

this uses NoOne's HID2CDC firmware, allowing use of a 2nd rp2040 and a USB hub to achieve a bridge between a USB keyboard and the picomite's CDC port. it worked extremely well. in the end development was abandoned when peter integrated NoOne's work into the picomite a few days later.

i think HID2CDC could potentially be expanded to also handle the hub function onboard, at least insofar as providing a single USB port (for the keyboard) implemented using the PIOs.

it appears the existing problem is that the RP2040 and RP2350 simply lack enough oomph to handle USB keyboard + mmbasic + video generation all at the same time - video generation trumps timely USB functionality - so we are likely to always need a second RP2040 or similar for any robust USB keyboard solution.


cheers,
rob   :-)
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 10180
Posted: 04:46am 21 Jun 2025
Copy link to clipboard 
Print this post

There is none of NoOne's work in MMBasic. I took the SDK example as the base and then significantly extended it to support multiple devices on a hub.
 
ebbandflow
Regular Member

Joined: 31/08/2023
Location: United States
Posts: 41
Posted: 04:48am 21 Jun 2025
Copy link to clipboard 
Print this post

"it appears the existing problem is that the RP2040 and RP2350 simply lack enough oomph to handle USB keyboard + mmbasic + video generation all at the same time - video generation trumps timely USB functionality - so we are likely to always need a second RP2040 or similar for any robust USB keyboard solution."

I found the input speed is an issue even without a video display. Using a character LCD or the terminal is just as slow as when using a display with graphics.
 
Bleep
Guru

Joined: 09/01/2022
Location: United Kingdom
Posts: 622
Posted: 08:40am 21 Jun 2025
Copy link to clipboard 
Print this post

Deleted
Edited 2025-06-21 18:42 by Bleep
 
Arne
Newbie

Joined: 05/01/2025
Location: Germany
Posts: 30
Posted: 08:44am 21 Jun 2025
Copy link to clipboard 
Print this post

I have connected a USB  Keyboard which is able to operate also as a PS/2 Keyboard. It cost 9.99 €. I use it directly on my Picos with non USB firmware. You can buy it in Germany e.g. at Müller.




Arne
 
Amnesie
Guru

Joined: 30/06/2020
Location: Germany
Posts: 576
Posted: 09:02am 21 Jun 2025
Copy link to clipboard 
Print this post

Hello ebbandflow, hi all!

Can't thank you enough. It works! I previously tried the approach with the ps2x2pico by the user "NoOne" but it didn't worked because I thought I don't need the pullup from GP13 and left those out - mistake! With your suggestion of two 4k7 to CLK & DATA it works perfectly.

But I have a question to all:

Why the heck does it work with my GERMAN keyboard layout ???? I am not complaining at all, I am suprised and thankful that it works, but I have no clue why it works! Maybe anybody can explain this to me?

I am using the PicoMiteVGA (ps/2 version) with this USB to PS/2 converter by NoOne (ps2x2pico firmware). This firmware - as far as I know doesn't have german layout like his other version ("hid2cdc" firmware) in which you can:

"GPIO6 jumper to GND for QWERTZ keyboard support"

so the question for me is: why does ALL of my german keyboard layout work with this firmware? Is there some "autodetection via usb"? Of course my keyboard layout for MMBASIC is set to german, but how does the "ps2x2pico" firmware know that I am using a german USB keyboard? Just want to udnerstand what is going on.

So GREAT NEWS for all German users here which find the USB version too slow. Just use the PS/2 firmware und use this converter! I tried 5 different german keyboards, all work perfectly.




Ha! Now my Geiger-Counter has both: USB AND PS/2    





Greetings
Daniel
 
ebbandflow
Regular Member

Joined: 31/08/2023
Location: United States
Posts: 41
Posted: 12:00pm 21 Jun 2025
Copy link to clipboard 
Print this post

Congrats on getting it working Daniel 😁
I am also a big fan of having the terminal link via the Picomite's USB & using USB keyboard for input too. The Pico's USB link to a terminal is much faster than using a serial to USB connection, so you can use both the terminal's keyboard AND the attached USB keyboard with fast input speeds - at the same time even! Combined with an LCD that has console enabled and it's very flexible system to work with!

As far as your question for all, I have only speculation, so I won't muddy the water. But hopefully someone who knows more can shed some light on it.
 
phil99

Guru

Joined: 11/02/2018
Location: Australia
Posts: 2579
Posted: 01:00pm 21 Jun 2025
Copy link to clipboard 
Print this post

  Quote  how does the "ps2x2pico" firmware know that I am using a german USB keyboard?

It  neither "knows" nor "cares" what language is printed on the top of the keys. It is just translating the scan codes from USB format to PS/2 format. The device receiving those codes translates them to the chosen character set.
 
Amnesie
Guru

Joined: 30/06/2020
Location: Germany
Posts: 576
Posted: 04:37pm 21 Jun 2025
Copy link to clipboard 
Print this post

@ phil99

Ah ok, so there is no need to "translate" it into a different language? Because in the
"hid2cdc" firmware (also by NoOne) he makes it explicit switchable to the "QWERTZ" layout! There must be a reason for this, I thought.

To conclude:

USB to PS/2 = no need for special language key mapping
USB to CDC = needs different key mapping

Greetings
Daniel
Edited 2025-06-22 02:39 by Amnesie
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 5023
Posted: 04:57pm 21 Jun 2025
Copy link to clipboard 
Print this post

I tried no-one's cpde in a separate pico 2 years ago, and it worked fine. I even had a 2nd pico on my VGA platform, with a micro to usb-a convertor from a pi zero. Worked fine. Just make sure you connect Vusb between the 2 picos to power the keyboard

Volhout

But maybe Peter can look at the usb keyboard when he is back. It is stramge that fast typing would upset usb
Edited 2025-06-22 03:02 by Volhout
PicomiteVGA PETSCII ROBOTS
 
Amnesie
Guru

Joined: 30/06/2020
Location: Germany
Posts: 576
Posted: 05:37pm 21 Jun 2025
Copy link to clipboard 
Print this post

Hi all,

I decided to do a seperate PCB. I don't like the USB-HUB idea for three reasons:

1. there were already problems with counterfeit ICs

2. USB dongle-li-di blah blah (too much connector cables)

3. I am in the need for a specialized HUB ICs and have no clue about its availability / obsolesence plan

So let's just take two Picos. Why? Prices for a Pico are a joke, especially the needed RP2040. And even if you go the HUB-IC route; this is an IC, too. Ok you can get those ICs for 1 dollar / euro.. But if I socket my Picos I can do way more with them, since they are not specialized and can be re-programmed.

Another benefit is, that there is no cable salat anymore   There is only one downside (if one cares) and that is space. For me this isn't a problem.

For me this approach is far superior to the PicoMite USB variants. If one types fast, there is no option around it, I think - unless Peter could speed up things. But I guess there are limits. I have no clue about this...

A HUGE benefit is also, that there is no need for a USB variant anymore, you can even  use USB and PS/2 "at the same time" - I mean without re-flashing the firmware - how cool is that?!

If there is interest I will publish the gerbers, for now I have to get them made for me, if they arrive I will report back if everything works fine.




"CON1" on my PCB is only for measurements / optional...

Greetings
Daniel
Edited 2025-06-22 03:54 by Amnesie
 
ebbandflow
Regular Member

Joined: 31/08/2023
Location: United States
Posts: 41
Posted: 06:10pm 21 Jun 2025
Copy link to clipboard 
Print this post

If using the ps2x2pico firmware, wouldn't you want to control (the HV side of) the level shifters with gp13's as shown in the github 'schematic'? Otherwise you'll face the same problem you had when not using pullups to gp13. I like the idea of putting this in a tidy little converter board, it's a good plan.

Edit:
Also, for greater compatibility w/ existing picomites in the wild, what about adding some jumpers and locations to populate pullups to bypass the level shifting and allow for the circumstance of only needing to directly connect to another Picomite that does not expect 5v level signals?
Edited 2025-06-22 04:24 by ebbandflow
 
Mixtel90

Guru

Joined: 05/10/2019
Location: United Kingdom
Posts: 7820
Posted: 06:27pm 21 Jun 2025
Copy link to clipboard 
Print this post

I'll stick with the little, cheap (about £1.20) FE11SX4 4-port USB 2.0 hub module that I get from AliExpress thanks. It's footprint is weird but I've never had problems with one yet. As I said, there's no way I can type fast enough to beat a USB keyboard. Certainly not in any recognizable language anyway. :)

Remember that the Pico also supports mice and game controllers via USB. I've had keyboard, mouse and two controllers connected at the same time and it seemed to work ok (although it's not easy trying to handle everything at once! lol.

I've not got the latest version of MMBasic loaded onto anything so I can't comment on the USB speed.
Mick

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

Joined: 30/06/2020
Location: Germany
Posts: 576
Posted: 06:28pm 21 Jun 2025
Copy link to clipboard 
Print this post

  ebbandflow said  If using the ps2x2pico firmware, wouldn't you want to control the level shifters with gp13's as shown in the github 'schematic'? Otherwise you'll face the same problem you had when not using pullups to gp13. I like the idea of putting this in a tidy little converter board, it's a good plan.


Good that you ask, because I forgot to mention this! Your 4k7 pullups are not needed here because there is already a level shifter (to the upper left on the PCB).

I don't use GP13 in both cases, because GP13 is only a "DOUT" set to HIGH, that means this pin only delivers 3,3 volts. If you look carefully on the PCB (I know the resolution is bad) you can see that I am using the 3v3 Pin on the Pico itself going to my level shifter. So I am doing the same here, only direcly via the 3v3 pin from the pico through the level shifter.

I am almost certain why "NoOne" (the designer of this cool firmware) chose GP13 for this, instead of the original 3v3 pin on the pico. That's just because he used a ready made level shifter you can buy online everywhere - which dictaded the pinout. And to match the pinout of the level shifter he utilized GP13 for this.

Long story short: not needed, I doing it already.

Greetings
Daniel
 
Amnesie
Guru

Joined: 30/06/2020
Location: Germany
Posts: 576
Posted: 06:35pm 21 Jun 2025
Copy link to clipboard 
Print this post

  Mixtel90 said  I'll stick with the little, cheap (about £1.20) FE11SX4 4-port USB 2.0 hub module that I get from AliExpress thanks. It's footprint is weird but I've never had problems with one yet.


Mick, I totaly understand this! I am a weird person when it comes to counterfeit chips and china sourced ICs - I try to avoid them at all costs.

  Mixtel90 said  
As I said, there's no way I can type fast enough to beat a USB keyboard. Certainly not in any recognizable language anyway. :)


There are even better and faster writers than I am, but every second word has missing characters! This is really - I mean REALLY - annoying. Can't live with this.

  Mixtel90 said  
Remember that the Pico also supports mice and game controllers via USB. I've had keyboard, mouse and two controllers connected at the same time and it seemed to work ok (although it's not easy trying to handle everything at once! lol.


Ok, I THINK (not tested!) this isn't possible with this approach, but here are coming the personal preferences again: I don't use (or even like) controllers. So I don't care at this point - but it is imporatant that you mentioned this for everyone here! I think you are right and this isn't possible this way.

Greetings
Daniel
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 5023
Posted: 06:38pm 21 Jun 2025
Copy link to clipboard 
Print this post

Daniel,

The original VGA design 2 has 2 spare pico footprints. In socket 1 the VGA pico, socket 2 tje no-one, socket 3 to jumper the PS2 signals between 1 and 2. For almost no money you JLC the gerbers for 5 boards. G738 housing.

For VGA design 1 silicon chip magazine already published a usb 2 ps2 piggy back board.

Volhout
Edited 2025-06-22 04:43 by Volhout
PicomiteVGA PETSCII ROBOTS
 
     Page 1 of 2    
Print this page
The Back Shed's forum code is written, and hosted, in Australia.
© JAQ Software 2025