Skip to content

HID in reports implemented in micropython 1.26 and device.usb are only "arriving" with all bits 0 at the Windows host. #3260

@ThomasAtBBTF

Description

@ThomasAtBBTF

Operating System

Windows 11

Commit SHA

Version used in micropython 1.26.1 and micropython 1.27

Board

different ESP32S3 boards UM FeatherS3 and plain "vanilla" ESP32S3 Wroom

Firmware

I wrote up a detailed bug report in:

micropython/micropython-lib#1044

But no one seems to care or have simmilar problems.

Using circuitpython I easily can make the USB HID driver work with the same boards!

But for many reasons I want to do this project under micropython.

What happened ?

The driver is "accepted" by Windows
OUT Reports (LED-Values) are correctly arriving "in" the driver.
IN reports are sent correctly, "I think".
My debug code inside the micropython "image/runtime" shows the keyboard values as they should be.
But Wireshark only "sees" keyboard data with "only" zeros!

Any help or comments are very much appreciated!

How to reproduce ?

  1. load boot.py and main.py and the device.usb libs to a ESP32S3 board running micropython.
  2. Watch the traffic (sending NUM_LOCK keys) to windows.
  3. Press NUM_LOCK or CAPS_LOCK on the Windows keyboard and see the correct debug code for LED Values

Debug Log as txt file (LOG/CFG_TUSB_DEBUG=2)

present in:
micropython/micropython-lib#1044

Screenshots

Wireshark screenshot in:
micropython/micropython-lib#1044

I have checked existing issues, discussion and documentation

  • I confirm I have checked existing issues, discussion and documentation.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions