WICED CYW20719-B1

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Anonymous
Not applicable

     Hi :
             I use mesh_provision_client sample as a client  and mesh_vendor_server sample as a server.

            I tested ten devices that dowloaded mesh_vendor_server  sample to send 43 bytes data each device to  a client at the same time ,   but the client can't       receive all the data  from the ten devices,sometime can receive the data @from six devices or five devices.

            We may have about 400 devices on a Bluetooth mesh network.  How do these 400 devices send data to a client at the same time?

0 Likes
1 Solution
VictorZ_46
Employee
Employee
5 comments on blog 25 sign-ins 250 likes received

Hello,

This is radio. If you send 2 packets exactly at the same time, they will corrupt each other and nothing will likely to reach destination.  Luckily it is pretty hard to send packets at exactly the same time.  Following are some recommendations.

Make sure that sending of the packets is spread in time as much as possible.  For example if your application needs to send data once per 10 seconds, add a random delay (0-10 seconds) on startup before sending the first packet.  If you have power failure all devices would start at the same time.

For vendor specific packets, the opcode is 3 bytes. If you need to send 43 bytes of data, this results in 46 byte payload which results in sending 4 segments.  If the destination is a unicast address, each packet will cause an acknowledgement from the destination.  This all will cause quite a few packets even if there are no retransmissions.  Try to reduce amount of data.

Current mesh network use flooding.  Meaning that each node which is configured as a relay, will retransmit each received packet.  If you have 10 devices configured as relays, this will result in a huge number of packets.  Make sure that you have as little number of relays as possible.

Hope that helps,

-Victor

View solution in original post

1 Reply
VictorZ_46
Employee
Employee
5 comments on blog 25 sign-ins 250 likes received

Hello,

This is radio. If you send 2 packets exactly at the same time, they will corrupt each other and nothing will likely to reach destination.  Luckily it is pretty hard to send packets at exactly the same time.  Following are some recommendations.

Make sure that sending of the packets is spread in time as much as possible.  For example if your application needs to send data once per 10 seconds, add a random delay (0-10 seconds) on startup before sending the first packet.  If you have power failure all devices would start at the same time.

For vendor specific packets, the opcode is 3 bytes. If you need to send 43 bytes of data, this results in 46 byte payload which results in sending 4 segments.  If the destination is a unicast address, each packet will cause an acknowledgement from the destination.  This all will cause quite a few packets even if there are no retransmissions.  Try to reduce amount of data.

Current mesh network use flooding.  Meaning that each node which is configured as a relay, will retransmit each received packet.  If you have 10 devices configured as relays, this will result in a huge number of packets.  Make sure that you have as little number of relays as possible.

Hope that helps,

-Victor