Link Search Menu Expand Document

How to Connect VOXL to QGroundControl over WiFi

Mavlink routing on VOXL is handled by voxl-mavlink-server which routes mavlink messages between the autopilot, MPA services, and ground control stations.



Validate required services are running

Run voxl-inspect-services to confirm that both voxl-px4 and voxl-mavlink-server are running.


VOXL and Host PC should be able to ping each other

See the VOXL Developer Bootcamp WiFi Guide.

Choosing which device should initiate the connection

There are two ways to initiate a connection between VOXL and a ground control station. Either VOXL can be configured to remember the IP address of the ground control station or visa versa. Choose which method suites your preference and specific use case.

Initiating Connection to VOXL from QGroundControl

If you know the IP address of VOXL, you can point your GCS to VOXL’s IP and initiate a connection with no configuration of VOXL whatsoever.

First you can determine the IP address of VOXL by using ADB shell over a USB cable and using the voxl-my-ip tool or standard Linux tools like ifconfig.

voxl2:/$ voxl-my-ip

In QGroundControl add VOXL’s IP Address as a UDP connection in the Application Settings > Comm Links menu. Unless you expect to have multiple drones turned on on the same network at the same time, I suggest enabling the ‘automatically connect on start’ feature here.

Note, after typing in the IP address, you MUST click the add server button in QGroundControl.


Once you’ve saved the connection information. Click the connect button.


Then you can navigate back to the QGroundControl main window and you should be connected!


Initializing Connection to QGroundControl from VOXL

If you have a network architecture where the VOXL changes IP frequently but the GCS is at a static IP, then you can alternatively configure VOXL to initiate the connection to the GCS. To do this, add your GCS IP address to VOXL’s /etc/modalai/voxl-mavlink-server.conf configuration file.

voxl2:/$ nano /etc/modalai/voxl-mavlink-server.conf
	"primary_static_gcs_ip":	"",
	"secondary_static_gcs_ip":	"",

Then restart the mavlink server to load in the new config file.

voxl2:/$ systemctl restart voxl-mavlink-server

Note there are two fields allowing you to enter the IPs of up to two ground control stations. This is useful if you have both a desktop in the office and a laptop for field use. Note that the two default IPs in this config file are These are the first two IPs that will be assigned by VOXL’s DHCP server when devices connect to VOXL’s SoftAP wireless network. This is what allows a GCS to auto-connect to VOXL when using SoftAP WiFi mode.

We suggest Leaving the primary ip as so as to not disable the SoftAP auto connect functionality. Usually you will want to set your main GCS IP address to the secondary slot. There is no practical different between the primary and secondary slots, they both function the same and are only differentiated by name.

See the VOXL SDK Mavlink Routing page for more details.

Also see the VOXL SDK 4G/5G QGround Control Connection Guide once you are done with the bootcamp to try flying with one of our Modems.

Next: First Flight