Re: BLE mesh message advertising interval


Venkat Rao Vallapaneni <vallapaneni@...>
 

Hi,

I also have a follow-up question, more related to the specification. This is regarding Publish Retransmit Count. I suppose this increases the number of mesh messages advertised. Can we have "Model Publication" state for configuration server model also? In the specification, it is mentioned that: "models defined by higher layer specifications use instances of the model publication state to control the publishing of messages". Not sure if we can have this state for base model such as configuration server.

Rgds,
Venkat.

On 08/07/19 8:30 PM, Venkat Rao Vallapaneni wrote:

Hi,

I am trying BLE mesh on-off app on nrf52840 USB dongle. I have provisioned two devices.
After provisioning, I have connected from my android device to node1 and sending messages to configuration server of node2. Node1, node2 and mobile are next to each other.
I am sending 25 configuration messages (binding app keys, setting pub and adding sub) for all generic onoff server/client models in node2.

Sometimes, I see that I don't get response (No response could be first message or any message in between or sometimes even I am successful in binding app keys to all models, but rarely).
When I debugged, I noticed that node2 receives configuration message (node1 relays the message received by the android device) and it also sends response with mesh message.

This mesh message is missed by node1. I am trying to understand more on why this mesh message advertising packet was missed by node1.

I noticed that in mesh/adv.c, I see that min interval and max interval are same. In the specifications, it is mentioned that: "The Advertising_Interval_Min shall be less than or equal to the Advertising_Interval_Max. The Advertising_Interval_Min and Advertising_Interval_Max should not be the same value to enable the Controller to determine the best advertising interval given other activities."

param.interval_min = ADV_SCAN_UNIT(adv_int);
param.interval_max = param.interval_min;

Why these two values are set same?

I have tried making interval_max as ADV_SCAN_UNIT(adv_int+5) but didn't help.

I have used default settings in mesh on-off sample app:

/* 3 transmissions with 20ms interval */
.net_transmit = BT_MESH_TRANSMIT(2, 20), 

I increased the transmissions to 6 (along with max interval greater than min interval) and it improved (3/5 times successful in sending 25 configuration messages back to back).

Any other recommended approaches to minimize mesh message advertising packet losses?


Thanks,
Venkat.

Join users@lists.zephyrproject.org to automatically receive all group messages.