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

NRF MESH proxy does not finish processing a packet before receiving another

Hello,

We are making a custom application where we have several ble-mesh server nodes (nRF52832), and one of them connects to an Android app, acting as a proxy. The app acts as a client and sends multiple messages to the nodes (for example, separated 100ms between each other).

The problem we are having is that sometimes, even though we put delays between the sending of messages in the android app, the proxy node receives them almost at the same time (below 1ms difference).

When we debug the proxy node, we see that the proxy layer receives one GATT message, it passes it to the network and then access layers, and before it can be relayed or processed by our application layer, it receives another GATT message that interrupts the reception, and the first message is lost (not processed). We expect the proxy node to finish processing the first packet and then begin processing the next one instead of dropping the first one.

We would also like the Android App to meet the delay constraints we are programming, but it seems that sometimes it buffers two messages and sends them almost instantly. For our application it is important to meet the delay constraints. Imagine if a light is blinking with a given frequency, you wouldn't like it to turn on and off almost intermediately because of message buffering.

We are using the nRF5_SDK_15.3.0_59ac345, nRF5 SDK for Mesh v4.0.0.and the Android-nrf-Mesh-Library v2.1.4

Any help will be very much appreciated.

Best,

Related