- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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?
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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