This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

nrf24lu1p USB hid ReportDescriptor size greater than 255

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

  • Thank you for your answer. I want to send more than 255 bytes of data, what do you suggest I do to give an example? if I change uint8_t variable and so on to uint16_t , Is there going to be a problem?

  • 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

  • Thank you for your answer.That's what I did. if I don't change a limitation in the nRF24LU1+ USB stack. What am I supposed to do?

  • Hi

    Then you have to find some way to fit your descriptor in 255 bytes or less.

    Depending on the data you are trying to send there might be ways to optimize the descriptor.

    What kind of device are you making?

    Best regards

Related