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

Softdevice assert 151994:0

I am getting an intermittent "Softdevice assert: 151994:0" error on device initialisation or after the device has run for a period of time. I am using Light Switch Client stock example.

Nordic SDK: nRF5_SDK_15.3.0_59ac345

Nordic Mesh SDK:  nrf5_SDK_for_Mesh_v3.2.0_src

Softdevice: s140_nrf52_6.1.1_softdevice.hex

The device is custom, built on MDBT50Q. 

Sample error log output:

  1. <t: 12895576>, app_error_weak.c, 96, Softdevice assert: 151994:0
  2. <t: 74659>, app_error_weak.c, 96, Softdevice assert: 151994:0
  3. <t: 74453>, app_error_weak.c, 96, Softdevice assert: 151994:0
  4. <t: 74629>, app_error_weak.c, 96, Softdevice assert: 151994:0
Parents
  • Hi.

    Are you able to provide any more information about the assert?

    I suspect that you might have spent too much time in the radio timeslot. From the SDS, see: Ending a timeslot in time,
    "The application is responsible for keeping track of timing within the Radio Timeslot and for ensuring that the application’s use of the peripherals does not last for longer than the granted timeslot length."

    Best regards,
    Joakim

  • Hi Joakim, thanks for investigating!

    1. nrf5_SDK_for_Mesh_v3.2.0_src\examples\light_switch\client\light_switch_client_nrf52840_xxAA_s140_6_1_1.emProject
    2. Change preprocessor definitions BOARD_PCA10056 -> BOARD_CUSTOM
    3. Copy custom_board.h into includes directory
    4. Build and download to the device.
    5. Connect to the nRF5x Mesh Switch device using nRF Mesh Android App
    6. Provision using No OOB.
    7. Configure: bind app key, make one of the two switch elements publish to a group.
    8. Disconnect nRF Mesh App from the Node: assertion failure.
    9. Reboot the device several times pressing power button: assertion failure.
    10. Leave the device working (the only device in the mesh) for a while: assertion failure.

    When Segger Embedded Studio Debugger is connected I am getting the following output:

    When dead on reboot

    <t: 0>, main.c, 318, ----- BLE Mesh Light Switch Client Demo -----
    <t: 8768>, main.c, 289, Initializing and adding models
    <t: 8820>, mesh_app_utils.c, 65, Device UUID (raw): UUID edited out
    <t: 8824>, mesh_app_utils.c, 70, Device UUID : UUID edited out
    <t: 74660>, app_error_weak.c, 96, Softdevice assert: 151994:0  

    When dead after working for a while

    <t: 0>, main.c, 318, ----- BLE Mesh Light Switch Client Demo -----
    <t: 8773>, main.c, 289, Initializing and adding models
    <t: 8827>, mesh_app_utils.c, 65, Device UUID (raw): UUID edited out
    <t: 8831>, mesh_app_utils.c, 70, Device UUID : UUID edited out
    <t: 1914032>, app_error_weak.c, 96, Softdevice assert: 151994:0

  • Thanks. 

    As the unmodified light switch example runs without problems on the nRF52, i assume the issue is with your custom board. 

    You must have an external 32Mhz crystal with a tolerance of +-40ppm or better if you're going to use BLE Mesh. It's not optional like the LF crystal is. Did you add that to your custom board?

    Br, 
    Joakim

Reply Children
  • Hi Joakim,,

    the MDBT50Q module has a 32MHz XTAL included and it has +-20ppm.

    Do you think there is a need do any config in this case?

    Best

    Oleh

  • Hi Joakim,

    I've tried running our code using:

    1. nRF5_SDK_16.0.0_98a08e2
    2. nrf5_SDK_for_Mesh_v4.0.0_src
    3. s140_nrf52_7.0.1_softdevice.hex

    Once provisioned the device always fails, the assertion now is 

    <t: 77868>, app_error_weak.c, 55, Softdevice assert: 154516:0

    and we are getting CAFEBABE:

        0000        movs r0, r0
        20000058    .word 0x20000058
        CAFEBABE    .word 0xCAFEBABE
        4001F500    .word 0x4001F500
        4001F000    .word 0x4001F000
        FFFE0000    .word 0xFFFE0000
        4B81        ldr r3, [pc, #0x204]
        681B        ldr r3, [r3]
        B103        cbz r3, 0x00024C94
        4798        blx r3
        

    Could that be another manifestation of the same problem?

    EDIT:

    I am getting absolutely identical result when building Light Switch On/Off Client Example that came with Mesh SDK 4.0.0 (with zero modifications), loading the on/off client onto the device, provisioning, configuring the on/off client to publish to a group and restarting the device.

  • Hi HAFLN,

    Did you figure out what was causing the 154516:0 Softdevice assert?

    Thanks.

Related