While using Nordic serialisation , sd_ble_gap_adv_set_configure api is causing connectivity chip to reset

I am connecting a nrf52480 board (Adafruit Feather nRF52840 Express) as Connectivity chip and a custom board as Application chip for Nordic serialisation. Able to establish communication between these two broads using the serialisation from  NRF SDK over HCI transport. But while calling sd_ble_gap_adv_set_configure from Application chip, connectivity chip is resetting. Actually ble_advertising_start API is internally calling the sd_ble_gap_adv_set_configure and that call is causing the reset.

I am able to run the serialisation example from PC (using pc-ble-driver) with the same connectivity chip and same firmware on it.

While analysing the issue, seems like some buffer overflow is happening. From pc when I call this sd_ble_gap_adv_set_configure api, there was a data transfer of 55 bytes, and when I call from my custom board (M4 cortex, with freertos running ,and I have ported the serialisation library from nordic sdk for this board) there was a transfer of 63 bytes (or around).

So I tried changing the advertisement name from "Nordic_HRM" to just "N" and there was a transfer of just 57 bytes. And now it is working. The sd_ble_gap_adv_set_configure api is retruning and advertisement also starting.

Is this a known issue? Is there any fix for this already?

Softdevice used: s140

Connectivity chip: nrf5480 (Adafruit Feather nRF52840 Express), with connectivity firmware from NRF SDK flashed on it

Application chip: a custom board with arm coretex M4, and freertos running on it and, serialisation library from NRF SDK ported on it



NOTE: Ealier i was facing one more issue that application chip was crashing while calling the same above api, and fixed it using the change described in this issue:
devzone.nordicsemi.com/.../serialized-ble_app_hrs-example-app-hard-faults-when-de-serializing-sd_ble_gap_adv_set_configure-response

Parents
  • Hi Dhilshad, 

    Could you let me know which SDK version you are using ? 
    The issue that you pointed to in the link should be fixed in the recent SDK versions. 

    Could you please check if you exceed the 31 bytes limitation of advertising packet ? Did you modify the advertising data ? 
    You can add a breakpoint in the connectivity chip and check which error you receive when sd_ble_gap_adv_set_configure () called. 

Reply
  • Hi Dhilshad, 

    Could you let me know which SDK version you are using ? 
    The issue that you pointed to in the link should be fixed in the recent SDK versions. 

    Could you please check if you exceed the 31 bytes limitation of advertising packet ? Did you modify the advertising data ? 
    You can add a breakpoint in the connectivity chip and check which error you receive when sd_ble_gap_adv_set_configure () called. 

Children
Related