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

Is there a limit to HID report map data?

I am using HID service over GATT and have several reports defined. When I increase my report map data size by adding more reports, my map size is 280 bytes, whihc seems to produce an NRF_ERROR_NO_MEM during the function call:

sd_ble_gatts_characteristic_add

in the

ble_hids.c: static uint32_t hid_control_point_char_add(ble_hids_t * p_hids, const ble_srv_security_mode_t * p_sec_mode)

function.

I am using SoftDevice s110 v7 so I believe the GATT table size is 0x700. However, I would like to know how 280 bytes of report map data fills this space up.

  • Hi Jason,

    The 1.5kB for Att table is including other services and characteristic such as GAP and GATT and the overhead. Do you have any other characteristics/services beside the HID report ?

    You can use BLE_GATTS_VLOC_USER instead of BLE_GATTS_VLOC_STACK when declaring attr_md.vloc so that the value of the characteristic will be stored in application memory area instead of the stack's memory.

Related