Micro Python USB HID?

This may not be the proper place to post this, but this is by far my most favourite forum to hang out on. :) So here goes.
Is anybody else totally dumbfounded by the lack of USB HID in Micro Python?

I just don’t get why this isn’t there yet? To me it’s very frustrating to have to go the Circuit Python route to get this support. It works, sort of kind of?

I have several of the Pimoroni RGB keypads.
Pico RGB Keypad Base (pimoroni.com)
My daily user is used as a USB HID keyboard / keypad, running Adafruit’s Circuit Python. It routinely crashes / reboots on boot up. And or needs to be reset once my PC boots up to work? Which is really frustrating. Rant on that over.
RGB Keypad not working on boot up? - Support - Pimoroni Buccaneers

Anyway, to make a long story short, anybody else wishing this would happen already?

EDIT: Just to be clear this isn’t directed at Pimoroni, it’s not for them to do, I’m just venting.

Well, MP does have HID, but not on every port. It is probably not trivial to implement the whole protocol on MCU side.

The best thing to do when you encounter crashes is to open an issue at CP. These guys are all very helpful and if it crashes regularly, the chances are high they can reproduce and fix it.

I guess I could go that route? Going to be a pain to sort out though, I’m thinking? It works fine from Thonny, if I run my code from there. I had to put in a 30 second delay before my code runs or it won’t work as a USB HID device. Even then, more often than not it just stops working after a couple of button presses. Push reset and its good to go after that for the rest of that session on my PC.
I’d likely have to try and use the debug port?
Thing is, the RGB keypad / hardware is Pimoroni.
And all the software addons / libraries etc used to make it work are Adafruits.

It works flawless in Micro Python with no glitches, it just won’t work as a USB Hid device.

I do have a little HID project that works without problems and without any extra delay: GitHub - bablokb/circuitpython-pw-helper: A CircuitPython Username+Password Keyboard for the Pi-Pico
Maybe you can have a look at the code and compare.

Have you verified that the extra delay is not forced by your PC/operating system? Same for the glitches you experience. You could check the system-log to see if there are any error-messages regarding the keyboard that your device emulates. Also, you should rule out any problems with your cables. But given your experience, you probably did that already.

Without the delay it is a windows “device descriptor failed error”. Something like that?
The thread on it is here.
RGB Keypad not working on boot up? - Support - Pimoroni Buccaneers

Oh I see. Chances are high that you would have the same issues with MicroPython. A device cannot wait indefinitely and will bail out.

Best thing is to plug in your device when the system is up and running.