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

Group address message crashes all nodes?!

Hi there!

Me again... I'm having issues with networks that consist of more than two nodes. When my network consists of three nodes and one node sends a message to another, the node that wasn't addressed, crashes. The network consists of one nRF52840 DK, one nRF52840 Feather and one nRF52832 DK. They are all running FreeRTOS and are built with ARMGCC on Windows 10.

The same happens when a message is sent to all nodes (0xFFFF); they both crash. I see a pattern, but find it hard to point to a cause. It looks like the node crashes when it receives a message that isn't addressed to exactly and only him. Underneath a snippet of output in the terminal from the server; the logging just stops and FreeRTOS freezes.

<info> app: RX: [aop: 0x00C1]

<info> app: RX: Msg
<info> app: Led is now turned off.
<info> app: TX: [aop: 0x00C4]

<info> app: TX: Msg

Underneath a snippet of the terminal from the client side.

<info> app: TX: [aop: 0x00C1] 

<info> app: TX: Msg
<info> app: Set "off" has been called.
<info> app: RX: [aop: 0x00C1]

<info> app: RX: Msg
<info> app: Led is now turned off.
<info> app: TX: [aop: 0x00C4] 

<info> app: TX: Msg
<info> app: RX: [aop: 0x00C4]

<info> app: RX: Msg
<info> app: Server acknowledged.
<info> app: TX: [aop: 0x00C1] 

<info> app: TX: Msg
<info> app: RX: [aop: 0x00C1]

<info> app: RX: Msg
<info> app: Led is now turned off.
<info> app: TX: [aop: 0x00C4]

<info> app: TX: Msg
<info> app: RX: [aop: 0x00C4]

<info> app: RX: Msg
<info> app: Server acknowledged.

When the client sends a message to specifically a unicast address, the server receives and handles it like below.

<info> app: RX: [aop: 0x00C1]

<info> app: RX: Msg
<info> app: Led is now turned off.
<info> app: TX: [aop: 0x00C4]

<info> app: TX: Msg
<info> app: RX: [aop: 0x00C1]

<info> app: RX: Msg
<info> app: Led is now turned off.
<info> app: TX: [aop: 0x00C4]

<info> app: TX: Msg

Furthermore, this problem also occurs with messages from proxy nodes; getting the ttl value or composition data will result in a crash for all other nodes. I have absolutely no idea as to what might cause the described behaviour. Has anyone got an idea of what might cause the problem? The weird thing is that it worked for a good while until i reset all nodes and provisioned them again.

Thanks in advance and kind regards,

Jochem

Parents
  • Hi,

    Could you give some more details on what you mean by your node "crashing"? Is it a hardfault? app_error_handler? or other resets?

    Also, can you provide which SDK versions you are using?

  • Yep, found it out. Defining the "DEBUG_NRF" or "DEBUG_NRF_USER" macro resulting in the definition of "configASSERT" in FreeRTOSConfig.h results in the "ASSERTION FAILED at :0". When said macro isn't defined, the nodes crash.

    Below the part in FreeRTOSConfig.h it's all about.

    #if defined(DEBUG_NRF) || defined(DEBUG_NRF_USER)
    #include "nrf_mesh_assert.h"
    #define configASSERT( x )                                               NRF_MESH_ASSERT(x)
    #endif

    It's clear that something is wrong, but what? Has anyone got an idea? Now that I think of it, it's also impossible to subscribe to addresses. The app says "Not a subscribe model" when trying to do so. Could it have to do something with that?

    Kind regards,

    Jochem

Reply
  • Yep, found it out. Defining the "DEBUG_NRF" or "DEBUG_NRF_USER" macro resulting in the definition of "configASSERT" in FreeRTOSConfig.h results in the "ASSERTION FAILED at :0". When said macro isn't defined, the nodes crash.

    Below the part in FreeRTOSConfig.h it's all about.

    #if defined(DEBUG_NRF) || defined(DEBUG_NRF_USER)
    #include "nrf_mesh_assert.h"
    #define configASSERT( x )                                               NRF_MESH_ASSERT(x)
    #endif

    It's clear that something is wrong, but what? Has anyone got an idea? Now that I think of it, it's also impossible to subscribe to addresses. The app says "Not a subscribe model" when trying to do so. Could it have to do something with that?

    Kind regards,

    Jochem

Children
No Data
Related