BLE Mesh Unicast vs Multicast Message packet RX Latency and Loss

Hi all,

I am using the latest Mesh SDK (3.2.0) and SDK (15.3.0) in an nRF52840 SoC.

I developed a message model to send 32 bytes payloads (which I assume would require 3 PDUs with a 32 bit TransMIC, according to section 3.7.3 of Mesh Profile Specification by Bluetooth SIG).

I am getting a weird behavior with my vendor models, which is:

  • If I publish messages from the server using unicast messages the client can receive all messages sent even if I send messages within an a 200ms  interval of each other.
  • However if I send messages using multicast, the client isn't receiving all messages. In particular, the number of packets loss is deterministic and a function of the time interval between sent messages. That is, if the server sends messages every 500ms the client receives every sixth (+/-2) message. If I increase the interval to 1000ms, I receive every 3rd message (+/-1), if I send messages every 3000ms I can receive all messages....

Why is that?! I need to solve this fast, so any assistance would be very appreciated.

This message service is meant to communicate with the highest throughput possible in multicast in order to be scalable to larger networks.

So my real question is: How can I have the highest possible throughput in a multicast transmission (discarding the acknowledged  messages, I will have a routine to retrieve missing packets in a larger transaction)?

Thank you so much for your prompt assistance and pointers!

Regards

//E

Related