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

nRF SIGmesh acknowledged communication

Hi,

Greetings!

I am using below setup:

SDK: v16.0.0

Mesh SDK: v4.0.0

Application: Light switch server and client

Hardware: nRF52DK

Distance between client and server: 20 feet

Using above setup I have conducted trial to send 1000 acknowledged messages one after another from client to server.

Here I have observed that out of 1000 acknowledged messages 900 messages have been acknowledged successfully without timeout error.

However for 100 messages I have not received acknowledgement.

Can someone help me on below points?

1. Can we have 1000 out of 1000 successful acknowledgements?

2. If no, then what can be the maximum rate of successful acknowledgements?

3. If yes, how can I improve it? or what steps can I follow?

Thanks in advance.

Regards,

Dinesh

  • Hi,

    In theory you can get close to 100 %, yes, as long as the network is not saturated with too much communication going on. At what rate are you sending the acknowledged messages, and what is their size?

    There are few node configurations affecting reliability, both on the originator node and on relay nodes along the way. For the originator node, you have Publish Retransmission Count, and Publish Retransmission Interval. With this setting you select how many times the message will get published, and with what interval, in order to provide redundancy in message transmission. For the relay nodes, you have Relay Retransmit Count and Relay Retransmit Interval, which tells the relay node how many times (and with what interval) to retransmit the packets it receives.

    On the originator node for the message you also have the TTL field, which decides how many "jumps" a packet will take through the network before it is not relayed further. I doubt this setting should affect the results in your case (mainly as your nodes should be within direct range, but also the fact that relay nodes will only handle a packet for retransmission once so a high TTL value will not lead to packets congesting the network on their own.)

    Since Bluetooth mesh is a managed flooding mesh, reliability is mainly obtained through redundancy and through careful node configuration in order to on the one hand avoid congestion and on the other hand get enough redundancy for (most) packets to get through.

    Regards,
    Terje

Related