Update 1:ESP32-S3 - TinyUSB - mouse: scroll wheel does not work when mouse is connected to ESP32-S3,but works if to a PC

sraposo
Posts: 21
Joined: Mon Dec 14, 2020 4:42 pm

Update 1:ESP32-S3 - TinyUSB - mouse: scroll wheel does not work when mouse is connected to ESP32-S3,but works if to a PC

Postby sraposo » Thu Oct 24, 2024 5:29 pm

ESP32-S3 - TinyUSB

I've just faced a weird situation: an USB Logitech mouse, that fully works when connected to a PC, does not send any byte related to scroll wheel. Input report contains only 3 bytes: 1 for buttons (including the scroll wheel switch), other for horizontal movement and the last for vertical direction. None of them present any variation when scroll wheel is spun.

Another mouse, brand Knup, has a 4-byte input report, where the 4th byte is dedicated to the scroll wheel movement.

With this 3-byte report from Logitech mouse, it is not possible to get any indication about scroll wheel action, so I SUPPOSE there's something wrong/different in this connection between Logitech mouse and ESP32-S3/TinyUSB, but I have no clue!

Some reading of USB specification and checking TinyUSB files gave me no idea how to cope with this.

**************************************************************************************************************************
UPDATE 1:
**************************************************************************************************************************
When Logitech mouse is connected, in the struct "hid_iface_t", field "in_xfer" (type usb_transfer_t), the following sub-fields contains:
* data_buffer_size (type const size_t) = 4
* num_bytes (type int) = 4
* actual_num_bytes (type int) = 3

With Knup mouse, the field "actual_num_bytes" contains value 4. This forth byte is the one that stores the scroll wheel data.

Why USB stack fulfils only 3 bytes of the "data_buffer" when Logitech mouse is on?



Can anybody point me some direction?

Who is online

Users browsing this forum: No registered users and 197 guests