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

S130 v1.0 assert encountered: rem.c line 1376

I have modified the ble_app_hrs_c_s130_pca10031 example to run without external RTC and collect only battery status data from BLE peripherals that have a service with UUID 0xFF00 rather than 0x180D.

  • IDE: IAR ARM 7.2
  • Softdevice: s130_nrf51_1.0.0_softdevice.hex
  • SDK : nRF51_SDK_10.0.0_dc26b5e
  • No external RTC clock
  • nrf51822-QFAA-R7
  • No uart interface
  • Modifications to the original ble_app_hrs_c_s130_pca10031 code
  • General Options -> Device: NordicSemi nRF51822-QFAA
  • Symbols defined:
    • NRF_LOG_USES_RTT
  • General Options -> Semihosted: Enabled
  • Commented following line:
    • //buttons_leds_init(&erase_bonds);
    • //uart_init();
    • //hrs_c_init();
  • Changed the following defines:
    • #define TARGET_UUID 0xFF00
  • Changed the following lines:
    • SOFTDEVICE_HANDLER_INIT(NRF_CLOCK_LFCLKSRC_SYNTH_250_PPM, NULL);

When the application is downloaded, it prints the following output to the terminal windows:

Heart rate collector example

Battery = 62 %

and then a softdevice assertion is raised with the following parameters

  • file: rem.c
  • line: 1376
  • pc: 0x0000D82A

This behaviour is consistently repeated every time that the application is execute.

The same happens if Softdevice S120 is used, but the assert is raised with the following parameters:

  • file: rem.c
  • line: 1375
  • pc: 0x0000D852

Do you have any insight on the nature of the problem?

  • Hi Roberto,

    The error line telling that there is some issue with the timer used by the softdevice. I'm not sure why that happened, but could be because of the clock source you used. NRF_CLOCK_LFCLKSRC_SYNTH_250_PPM is not supported by the softdevice. You should use NRF_CLOCK_LFCLKSRC_RC_250_PPM_4000MS_CALIBRATION instead if you don't have external 32kHz crystal.

    Also 0xFF00 is not a 16 bits UUID defined by Bluetooth sig, it's not a good idea to use. Have you made sure you removed all the code related to hrs client ? (because you removed hrs_c_init();)

  • Hi Hang,

    I have tried your suggestions to use NRF_CLOCK_LFCLKSRC_RC_250_PPM_4000MS_CALIBRATION and verify that all of the code regarding hrs is commented out, but I continue to get the same assert.

  • Hi Roberto, Could you read the laser mark on top of the chip (will be QFAA-XX not QFAA-R7) , just want to check if the chip revision support S130 v1.0.0.

    If you only test with the stock example with no modification do you have the same issue ? Could you provide us the project so we can test here ?

    I assume that this only occurs when the peripheral got connected and exchange the battery level by a read from the central or notification ?

Related