APSync is a project sponsored by eLab which simplifies the setup of companion computers so that they can be used to provide additional functionality to ArduPilot and also to ease integration with internet services.

The current release automatically creates a Wifi Access Point on startup, allows DataFlash logging to the companion computer and “simple” real-time video streaming from a camera on the drone to the ground station.

The supported companion computers are the RPi3, NVidia TX1, NVidia TX2 and Intel Edison.


Video streaming from the Intel Edison is not supported.

Installation instructions are at the bottom of this page.

Please get involved by reporting issues in the ArduPilot Forums. Developers can help improve APSync by submitting PRs to ArduPilot/companion and/or discuss with others developers in Gitter’s ArduPilot/companion chat room!

Wifi Access Point & DataFlash logging


On start-up an access point is created with name “ardupilot”. The default password is also “ardupilot”.

The user can connect to this access point and then easily connect to ardupilot running on the flight controller by setting their ground station (including Mission Planner) to connect using “UDP”, port 14550.

Once connected to the WiFi network is possible to connect to these two URLs:

Dataflash logs are streamed to the companion computer via mavlink and stored on the companion computer’s filesystem (as well as on the pixhawk’s dataflash). Dataflash log files can then be quickly downloaded (over wifi) using a script (Windows users may use apsync-download-logs) or you may pull the SD card out of the companion computer.

Data Syncronisation with Web server or Corporate server


The contents of a configurable list of directories will be automatically uploaded to a configurable web server address.

This should allow the pilot to simply bring the vehicle back in range of a trusted wifi access point, reboot the vehicle and have it automatically connect and upload all datafiles including logs, pictures, videos.


This Data Syncronisation portion is not implemented (yet).

Simple Configuration Web page


A light weight webserver runs on the companion computer (using CherryPy). The user can connect to the drone using a known URL ( and change configuration information including:

  • wifi access point name and password
  • list of trusted wifi access points
  • list of log file directories and web server url (i.e. upload target)


This Simple Configuration portion is partially implemented allows starting and stopping the simple video stream.

Flexible Video


A video manager will run on the companion computer that informs the ground station of which video streams are available. The live video is streamed from the vehicle to the ground station using UDP to a port specified by the ground station. This allows more reliable and flexible streaming as the ground station can discover valid formats and control where the stream is sent.


This Flexible Video portion is not implemented yet. Currently a single video stream is sent to the IP address of the first ground station that requests telemetry data.

Installing APSync

Images for the supported boards can be found in firmware.ardupilot.org.

Please follow the instructions for installing these images on the wiki page for each board (RPi3, NVidia TX1 and Intel Edison).

The flight controller (i.e. Pixhawk or similar) should be configured to communicate with the companion computer by setting the following parameters and then reboot the board:

Connecting with SSH

You can connect to the companion computer with a terminal emulator such as Putty by connecting to the board’s wifi access point and then ssh to username: apsync, password: apsync

How flight controller data is routed to various programs

By default APsync uses “mavlink-router” to allow multiple programs running on the companion computer to talk to the flight controller. This programs configuration can is held in ~/start_mavlink-router/mavlink-router.conf and defines the following connections:

  • /dev/ttyTHS1 at baud 1500000 to communicate with the flight controller (on TX1/TX2)
  • UDP for MavProxy running on the companion computer
  • UDP for dflogger (writes dataflash logs to companion computer)
  • UDP for APweb (small configuration web service)
  • UDP for OpenKai (vision processing program, similar to ROS)
  • UDP for telemetry to Ground Station via wifi

If additional programs are run on the companion computer that also need data from the flight controller, new ports can be opened by adding new lines at the bottom of ~/start_mavlink-router/mavlink-router.conf and then reboot the board.

For example the following lines could be added to open up port 14855 for use by ROS running locally on the companion computer:

[UdpEndpoint to_ros]
Mode = Normal
Address =
Port = 14855