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

NRF_ERROR_NO_MEM when sending message from client to multiple servers.

Hi Nordic,

I have added 20 client elements on a client node to control 20 server nodes(Light_Switch example). While sending an acknowledged message to all servers on a button press it sends a message to only 4 servers and gives NRF_ERROR_NO_MEM error, on further debugging I found that this error is generated from core_tx_packet_alloc().

Mesh SDK:- 4.2.0

NRF SDK:- 16.0.0

Example used:- Light_switch_client and light_switch_server

Thanks,

Himanshu

  • Hi Simon,

    Thanks for the response.

    Waiting for the NRF_MESH_EVT_TX_COMPLETE event would slow down the process. Transmission speed is also crucial for our application. Any other solution that might not slow us down.

    Best

    Himanshu

  • This is the recommended way of making doing this, but the option you suggested yourself should be fine as well, just be aware of the fact that increasing the buffer size with CORE_TX_QUEUE_BUFFER_SIZE_ORIGINATOR might increase the application's memory requirements by a lot as I mentioned. A larger buffer will cause the "NO_MEM" error to appear less frequently, but it still might, and so I would suggest looking at some other options for flow control. How you do so will be up to you though.

    Best regards,

    Simon

Related