Swarm communication for PX4 / MAVLink

There has been interest in swarm communication via MAVLink. This requires two ingredients:

On the software side we don’t need immediate changes:

  • MAVLink supports up to 255 systems in one subset, and multiple subnets could be used. We will increase this likely though to more units per subnet
  • To manage bandwidth, a new swarm mode should be created here: PX4-Autopilot/mavlink_main.cpp at master · PX4/PX4-Autopilot · GitHub
  • The existing offboard control interfaces should provide everything required to control all drones from a central computer.

Thanks @LorenzMeier for opening this discussion. I checked the code you pointed to in mavlink_main.cpp and I have the following questions/comments.

  • I know that one can configure the secondary telemetry port using the SYS_COMPANION parameter using QGC. It has few more options than the one in the link you provided. I saw these options defined for the SYS_COMPANION here. Are these related ? Or A new parameter would be introduced if the swarm mode would be on the main telemetry link?
  • I believe that the swarm mode should be mainly on the main telemetry link, e.g. TELEM1, which will give a chance for a companion computer to be connected to the secondary link TELEM2
  • If the swarm mode would be on the TELEM1 link, it would be convenient to have it reconfigurable through QGC. Is this currently supported by any means? I did not see a parameter to configure TELEM1 in QGC.


Would need a new parameter (e.g. SYS_TELEM). But for now this can be all hardcoded on a branch - the important thing is to collaborate on the radio setup, add functionality and more importantly, documentation.

To share my experience, 2.4Ghz & ESP combination are very unreliable in swarm communication.
Drone communication is disconnected when WiFi’s strength was low. The low strength mean just 5m between drone and AP. In my opinion, we may need a new model not a subscribe-piblish model for real-time communication with drones. In my case, exist model is unreliable in 2.4ghz & ESP.

I think we will need to do some calculations in order to know the maximum payload which the single module connected to QGC (e.g. 433Mhz telemetry module) can handle before it saturates in order to have stable link to all drones in a swarm. After that, I guess we can either:

  1. set the minimal set of of MAVLink messages, and then find the maximum number of vehicles that can be on the system, or
  2. set a maximum number of vehicles, and then determine the max set of MAVLink messages that can be accommodated

I believe the first option is more appropriate as it is important to specify the minimal (most important) set of MAVLink messages to be communicated.

Let me know if that makes sense to you.

I would also look for LoRa modules like this one: https://www.adafruit.com/product/3179 - I’m sure there are existing implementations that already handle MAVLink.

Will “SWARMAV” be based on MAVLink 2.0?

And, will the communication between vehicles be encrypted?

@Al_B Encryption depends on the link. MAVLink 2 does already provide authentication, which makes the communication tamper-proof.

@Mzahana Just found this module as well: http://www.robsense.com/swarmlink-en.html

So now there is a way to implement a swarm in a simulation environment via mavlink without using a central station?

There are plenty of Radiocraft’s dataradio modules for various bands including high power, TinyMesh and AES128 encryption options. The board replacing PixRacer’s ESP8266 is ready but not yet tested with Radiocraft’s module installed.

Thanks for recommending SwarmLink, the link is updated, please find it here:

The SwarmLink is ready-to-use radio gateway for controlling multiple drones with one computer.

The link was updated again:

1 Like

@JayJin Does the SwarmLink even exist? I could not find anyone using it or selling it. I think I would be interested but I would need to know more about it (I’d like to use my own software to control the drones).

Hello Lorenz! I see that unfortunately this thread went a bit cold in 2018… We have been working on a robotic Mark solution for sailboat racing (Normalerweise werden diese Regattabojen ja verankert und das ist echt meuhsam…) and we need a Swarm networking solution that works for Mavlink and over 2-3 km distance. Have you made any progress in this area or do you have any advice?
Best regards, chris

Hi everybody, here Sebastian from Dronfies Labs. We are developing an Open Source UTM for the Unicef Innovation Fund (www.portableutm.com) and we are looking for alternatives to communicate drones and groundstations with the UTM in remote locations without internet access. Even is not exactly the same we will be actively working on this problem next month. Our main idea right now is using Zoon Lora Modules for implementing a Lora Mesh between drones and groundstations. Love to re-open the discussion and bring support to the community for testing and sharing ideas.

Great! I will take a look.

You can visit the link of Open source part of SwarmLink’s GCS:

We have distributor in US, and we can deal with your purchase if you are not in US.

If you have any question, pls send me email, jie.jin@robsense.com