I want write nrf24lu1p usb hid mouse, but ReportDescriptor size greater than 255bytes Cause cannot enumerate.
I want write nrf24lu1p usb hid mouse, but ReportDescriptor size greater than 255bytes Cause cannot enumerate.
Hi
This is a limitation in the nRF24LU1+ USB stack.
If you take a look at the hal_usb_hid_t struct you can see that the report descriptor size is stored in a uint8_t variable, which means the maximum size is 255.
typedef struct {
hal_usb_hid_desc_t* hid_desc;
uint8_t* hid_report_desc;
uint8_t hid_report_desc_size;
} hal_usb_hid_t;
Best regards
Torbjørn Øvrebekk
Hi
You might be able to change the hid_report_desc_size field to a uint16_t and make it work, but you will have to make additional changes to all the code that uses this field.
With USB you can also some times run into endianness issues, where 16-bit values (or larger) need to be swapped. The reason for this is that the Keil C51 compiler uses big endian values, while USB uses little endian values.
Best regards