sd_ble_gattc_char_value_by_uuid_read maximun lenght of 253

When I do a sd_ble_gattc_char_value_by_uuid_read I can only get a maximum of 253 bytes. 

And when I read more I get a gatt_status of 

BLE_GATT_STATUS_ATTERR_INVALID                    0x0100  /**< ATT Error: Invalid Error Code. */
and the handler of the uuid characteristics is also incorrect/ not available. (so I can read on with sd_ble_gattc_read)
Is this a bug or can I adjust some parameters so I do not get the error?
In our project we need to read 255 bytes....
# context
 
In our project we want to read a characteristics of many devices as possible.
fist we did this with de discover datebase ble_db_discovery_start
but reading the characteristics was taking from 800ms to 1500ms.
so we disabled it and did the discovery our self.
we waited for the BLE_GAP_EVT_CONNECTED event. 
and after we get a BLE_GAP_EVT_DATA_LENGTH_UPDATE we did a sd_ble_gattc_primary_services_discover (i found this some ware in the forms)
after we got the BLE_GATTC_EVT_PRIM_SRVC_DISC_RSP we did the sd_ble_gattc_char_value_by_uuid_read 
This works fine when reading 1 to 253 bytes. and this is why faster. I can read the characteristics in 350ms to 600ms
the ble_gatt_effective_mtu is 512 so I am also not at the maximum bytes.
# Update
I found by lowering the NRF_SDH_BLE_GATT_MAX_MTU_SIZE from 512 to 254. the sd_ble_gattc_char_value_by_uuid_read was successful but incomplete. but now I get the handle witch I can use for the sd_ble_gattc_read to read the rest.
it is not a elegant solution, and I think this takes 50ms more. but still I can get the characteristics now in 400 to 650 ms. 
Parents
  • Hi,

    There does not seem to be any known issues of this nature, but I have reached out to the SoftDevice team. Since this is the nRF52840 and the SoftDevice API I assume this to be S140 v7.3.0, but it would be great to get it confirmed moving forward.

    Thank you for sharing the workaround. Does this solve the issue for you, or does the project also require use of larger max MTU size?

    Regards,
    Terje

Reply
  • Hi,

    There does not seem to be any known issues of this nature, but I have reached out to the SoftDevice team. Since this is the nRF52840 and the SoftDevice API I assume this to be S140 v7.3.0, but it would be great to get it confirmed moving forward.

    Thank you for sharing the workaround. Does this solve the issue for you, or does the project also require use of larger max MTU size?

    Regards,
    Terje

Children
Related