This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Maximum size of HID Descriptor

Hi,

We have developed a mouse with nRF52832 using the ble_app_hids_mouse example.Now, I would like to add consumer usage into the hid descriptor to control media. So,  I would like to know:-

1. What is the maximum size of a HID descriptor?

2. How many HID reports can be added into the hids_init() ?

3. What is ATT MTU size? Why is it used?

Please help by answering these questions.

Parents
  • Hi Maria

    1. The maximum size of a HID descriptor when doing HID over BLE is the maximum size of a BLE attribute, which is 512 bytes. 

    2. I don't think there is an explicit limit to this, other than how many you can fit into the descriptor, and the fact that the report ID is stored as an 8-bit number (which limits you to 255 ID's in theory). 

    3. ATT MTU is the maximum size of a BLE attribute, and determines how large your HID descriptor can be as explained in 1). 

    When setting up a BLE project you have to tell the SoftDevice how large attributes you need, and the SoftDevice will allocate memory as needed. As mentioned earlier you can not sett the ATT MTU larger than 512 bytes, as the BLE specification doesn't support larger values. 

    Best regards
    Torbjørn Øvrebekk

Reply
  • Hi Maria

    1. The maximum size of a HID descriptor when doing HID over BLE is the maximum size of a BLE attribute, which is 512 bytes. 

    2. I don't think there is an explicit limit to this, other than how many you can fit into the descriptor, and the fact that the report ID is stored as an 8-bit number (which limits you to 255 ID's in theory). 

    3. ATT MTU is the maximum size of a BLE attribute, and determines how large your HID descriptor can be as explained in 1). 

    When setting up a BLE project you have to tell the SoftDevice how large attributes you need, and the SoftDevice will allocate memory as needed. As mentioned earlier you can not sett the ATT MTU larger than 512 bytes, as the BLE specification doesn't support larger values. 

    Best regards
    Torbjørn Øvrebekk

Children
Related