How to change skyviper mavlink output port for swarm

skyviper broadcasts MAVLink traffic on UDP port 14550. Is it possible to change port number. For example, I change 2 skyviper to wifi station mode (to allow 2 skyviper connect to one AP). I want one skyviper send mavlink to UDP port 14550, another skyviper send to 14551. Is it possible? Thank you very much

I figure it out. change Sonix/app/dashcam/src/main_flow/ArduPilot/mavlink_wifi.c
#define MAVLINK_LOCAL_PORT 14550
#define MAVLINK_DEST_PORT 14550

two skyviper v2450 fly together

4 Likes

Thanks for posting! My goal is to control two or more 2450s in the wild flying waypoints from the same Tower session. I’m comfortable modifying parameters but currently have no expertise beyond using my stock SV hardware and standard missions in Tower.
Does wifi station mode control via laptop & wifi as the name suggests, or via radio Tx?
Is this related to @OlivierB’s point #6 in this thread?

Does wifi station mode control via laptop & wifi as the name suggests

Yes. Network architecture in my video: copter 1 , copter 2 and PC all connect to the same WiFi AP. copter 1 broadcast mavlink message to port 14550, copter 2 broadcast mavlink message to port 14551. PC control both copters through WiFi. Radio is not used in my case

But you can have one transmitter to several skyvipers! Handy if you have a swarm and things go wrong!

I think It means you can bind one radio Tx to all copters. So that you can switch all of them to land mode, in case something go wrong

It is not very convenient if I have to build firmware for each drone just for change mavlink output. So I make a little modify to allow me specify mavlink output in WIFI.TXT

2 Likes

Note: If anyone got something like “lxml.etree.DocumentInvalid: Element ‘field’, attribute ‘units’: The attribute ‘units’ is not allowed” when building sonix firmware in the step “make mavlink”. You may need to export PYTHONPATH=YOUR_SONIX_SRC/modules/mavlink

Great project!
I’m now also playing with multiple SVs – I battled through some of the typical multiple SVs issues discussed all over this forum lol – and am now moving toward swarming.
What sensor do you use on the SVs? I can see them hooked on too of each drone.
Why the requirement to use multiple ports? Is having unique SYSMAV_IDS not sufficient?
Are you using MP or QGC or another available GCS or your custom solution?

If that stuff is addressed in other threads, feel free to point me to it instead of re-iterating :slight_smile:

What sensor do you use on the SVs? I can see them hooked on too of each drone.

that are motion capture system markers. I use them for indoor navigation. please refer to Optitrack for Non-GPS Navigation — Copter documentation

Why the requirement to use multiple ports? Is having unique SYSMAV_IDS not sufficient?

some tools, for example, mavproxy, only support single drone. it is easier to get thing working if I send mavlink stream to different port.

Thanks for the info!

And I since then read quite a good amount of threads and that’s confirms what I understood from it, for the ports gymnastics. Do you have experience with other tools (dronekit, flytOS,…) that might support multiple drones more easily?
For my application, I have the quad fly a waypoint mission on a loop, it repeats the “circuit” for as long as it can fly. But, one or some of the waypoints need to be dynamic, i.e., I need to be able to update some of the waypoints of the mission from the ground (well, not me, but an application that will “dispatch” each quad) while the quad is flying and I am trying to scope out what might be the best approach for that. Sending mavlink messages seems like a potential solution.

@chobitsfan Also, do you have a compiled binary for the modified firmware that includes your mod? It doesn’t seem like it was ever merged, except if I’m reading this wrong, and it is a great solution to this problem!
If not, I will start looking at building firmware which I am a little concerned about …

Sending mavlink messages seems like a potential solution.

maybe you can use pymavlink

Yep – I’m starting to play with Dronekit – it seems pretty straight forward to have the entire mission executed by a script that will import a waypoint text file, which I can have another piece of software, my fleet manager, update as needed for each drone in the fleet.