People quite often configure their mesh network in-properly and experience
data drop problems.Below article I will try to explain physical radio channel limitations by giving case examples for mesh and broadcast mesh.
In order to make sure that your mesh network works properly, You need to first make sure your systems bandwidth is less than the selected physical channel's bandwidth.
Case #1: Mesh for multiple peers
Imagine you have designed a system that has 40Kbps data communication for a pair of node.And in your system 50%(20Kbps) of data communication is uplink and other 50%(20Kbps) is downlink.Next thinng you will need to understand the nature of the communication structure. For example does adding extra node brings extra data transfer to every node? as an example consider a scenario you have selected a mode that has 80Kbps, and adding every node does not bring extra overhead to the system. Which means that you can add up to 2 mesh nodes more to the first pair,so you will have 4 nodes and each will consume 20Kbps and 4x20Kbps will reach to 80Kbps. Now you want to add extra 4 nodes to the system.Remember adding extra nodes brings 20Kbps to the system, which also means you will need to select a mode that has higher physical bandwidth which is 8x20Kbps = 160Kbps.
Case #2: Mesh for base station node and multiple peers
This is scenario is more common in drone systems one base station and multiple drones.Consider a scenario you have one base station and one drone initially and total initial system has 70Kbps bandwidth.In which base station consumes 10Kbps for every drone and drone consumes 60Kbps for the base station.
Now you want to add extra 2 drones to the system by making 3 in total.Now lets calculate the total bandwidth of the system 3 drones 3x60Kbps = 240Kbps and additionally base station has 10Kbps for every drone 3x10Kbps = 30Kbps, which sums up to 270Kbps. As our Zoon modules supports up to 256Kbps data speed,You either will need to remove one drone from the system or adjust your drones data rate.Adjusting drones data rate is not a big deal most of drone autopilots by default sends lots of data and not all of this data is needed by every user.Example if your drone sends IMU or GPS data at 30Hz but 5Hz is enough for you can simple adjust their rates from their configurations.In fact drone autopilot systems sends lots of mavlink packets that most of the pilots do not need.
But in this case all your goal is to reduce drone data rate at least 10Kbps from 60Kbps to 50Kbps. Which will make total data rate 3x50Kbps+ 3x10Kbps = 180Kbps.So you can look for a mode that has at least 180Kbps data rate.
Case #3: Mesh for broadcast
There are many scenarios that one base station sends the same message to all peers.This is the time you will use broadcast rather than ordinary send.By broadcasting a 100bytes data packet to 1000 drones you only consume 100bytes data rate from the physical channel.With ZOONs broad cast is more easier as it does not need to sync frequency with every peer.All you have to send data in mesh format addressed to peer id 0 which is the broadcast id.
Case #4: Mavlink Swarm
Mavlikn Swarm is feature specific to ZOON modules that makes mesh easier for mavlink based systems without changing your codes. To understand Mavlink Swarm you will need to understand how the radio modules work.Consider you are sending 300 bytes to a drone, but your radio module has 255 maximum transmission unit, which means it can not send more than 255 bytes in single frame.Then all it has to divide 300byte packet into 2 255byte packet + 45byte packet and send it sequentially. If you have a pair of nodes in the system this is not a problem but if you have multiple nodes and each trying to divide and send packet, you will end up getting cumbersome messages which will be the result of interleaved datas from multiple modules.To prevent this without changing your code is to use Mavlink Swarm feature.MavlinkSwarm assumes that no mavlink packet has data size more than 255 bytes then all it has to do fragment the 300byte data packet into 2 or multiple pieces that contain only full mavlink packet.The end result might be185bytes for the first mavlink group and 115bytes for the second.Now you may ask a question how does the end peer knows from which device the mavlink packet is sent? Not a big deal all mavlink packets contains system_id field that autpilot and others will parse and understand.