USB HID Support on Pico!

Posted on
of 4
First Prev
/ 4
  • I also found a tool from Texas Instruments, helping to generate composite descriptors as well as corresponding .INF files. Unfortunately, this tool is focused on MSP430, but the generated descriptors are written as C structures, so they may be of any help for comparing with current descriptors for CDC-HID in Espruino.

  • Thanks - that's interesting... It could well be an IAD is needed.

    Maybe with the TI tool (or an example for ST) we can compare the descriptors that are generated.

    It might just be that a few extra bytes need adding to that descriptor to get it working.

  • Hi
    are there any changes with HID-support for Windows?
    Need that feature and ready to try digging into INF files, if this is the only solution.

  • Hi, I'm afraid there haven't been any changes with it recently. If you're able to figure out what it is about the descriptor that windows doesn't like (there might be some USB debug tools?) then I'm more than happy to make the relevant changes as well :)

    Also, Zadig might be worth a try? It's possible it'll be able to force the driver installation.

  • Hi!
    I understand this is a closed issue, but I searched a web for a whole day and couldn't find an answer.

    I'm looking for a solution to make the pico a dedicated USB HID keyboard.

    I'm currently working on an environment where serial communication(including VCP) is blocked(also prohibited), so the pico needs to pretend to be a just a keyboard, without VCP capability.

    The only solution I'd found to get it working driverless on Windows appeared to be for me to add the option to disable the virtual COM port and have just the HID device - but that means trying to develop HID stuff on Windows would be a nightmare, so it wasn't desperately high priority.

    Developing being a nightmare is not a problem for me. Is there a way to achieve it?
    Thank you.

  • Right now to manage it you'd have to build your own version of Espruino with the descriptor offering just HID and not CDC. The relevant bit of code is­b/master/targetlibs/stm32usb/usbd_cdc_hi­d.c#L191C1-L321 and you'd have to cut the CDC bit out so it looked a bit more like­M32CubeF7/blob/master/Middlewares/ST/STM­32_USB_Device_Library/Class/HID/Src/usbd­_hid.c#L135C37-L186

    Building itself is not too hard - in fact as long as GitHub actions are enabled, when you fork the Espruino repo and make a change the firmware is built automatically! Or for local dev see­b/master/

  • Post a reply
    • Bold
    • Italics
    • Link
    • Image
    • List
    • Quote
    • code
    • Preview

USB HID Support on Pico!

Posted by Avatar for Gordon @Gordon