SOFTDEVICE: ASSERTION FAILED PC=0x00000A60

Hi,

Application details:

I have a datalogger application that samples data every second. It uses the following modules:

TWIM0 -> To communicate with external RTC clock via I2C.

TWIM1 -> To send data to external display via I2C.

SPIM2 -> To get data from an external ADC with sensor.

QSPI -> To save data to an external memory.

I use BLE central to scan and connect to another custom peripheral device using long range PHY. I send all the data every 10 mins to this device which works as a router.

Everything works correctly most of the time. The application continues to sample when the data is being sent simultaneously.

Issue:

I get a SOFTDEVICE: ASSERTION FAILED that happens inconsistently about 5 to 10 times a day when the BLE central is sending the data. You can see the call stack and PC in the attached picture.

I am using nRF SDK v16.0.0 with s140_nrf52_7.0.1_softdevice. Could you please help me with this issue?

  • Thanks for the trace. We look forward to hearing the results of the test with NRF_SDH_BLE_GAP_DATA_LENGTH set to 27 and 7.5 ms connection interval.

    Regarding needing to keep the router as peripheral, note that you could also control connection in another way by making the datalogger act as a peripheral, but only do connectable advertising when it wants to connect. Of course there are other factors that may play in, like if one of the roles are connected to mains or a very large battery, and the other is more low power, as scanning is typically more power hungry than advertising. In any case neither way is "wrong" per se, but the scheduling works much better when the central is the one with multiple links. With your topography, each central handles the schedule of each link independently, so you should typically expect more and more overlaps of connection events as the number of concurrent links increases.

Related