Rpanion-Server 0.9 released

Version 0.9.0 of Rpanion-server has been released!

Rpanion-Server is an Open-Source software package for a managing the companion computer (such as the Raspberry Pi) connected to an ArduPilot-based flight controller.

Rpanion-Server consists of a node.js-based webserver for the user interface and mavlink-router for routing MAVLink telemetry from a connected flight controller. There are also modules for managing network connections, NTRIP streaming, flight log management, video streaming and viewing hardware information.

Version 0.9.0 adds the following major new features:

  • Automated uploading of flight logs
  • VPN support (Zerotier and Wireguard)
  • Automated generation of KMZ files from flight logs (thanks @brunoolivieri!)
  • Timestamp overlay for video streams
  • Various bugfixes and ease-of-use changes to the GUI

The documentation and pre-built disk images for the Raspberry Pi are available here .

The source code can be found here , at GitHub.

Bug reports and Pull Requests are most welcome.


Fantastic! I’m especially excited about the automatic upload of flight logs which I blogged about here.


@stephendade This works on a Raspberry Pi Zero W right?

I have some of these lying around and I wanted to install them on my most frequently flown planes so that they can upload logs to a cloud location. This can be done when on my mobile hotspot after landing or when just powered by USB when they come back home.

I have skimmed through Randy’s blog and I have some familiarity with AWS.

Is the cloud upload of logs automatic or can it be? Obviously these logs would be the same as telemetry logs if I had a GCS or are they more more verbose than that? Edit - I notice Randy refers to Dataflash logs. I am confused – I did not think these could be sent via Mavlink.



Yes, but you’ll need to build it yourself. The pre-compiled image doesn’t work for the Pi Zero W (1).

If you can, use the Zero W (2) instead. Rpanion-server can be a little tight performance-wise on the Pi Zero W (1) if you’re running a bunch of features at once.

It automatically runs every 20 seconds.

In this case, we’re talking about dataflash logs. They are much more verbose than the telemetry logs. They can be sent via specific MAVLink messages, but typically require a high-speed serial link (>900kbps). See Downloading and Analyzing Data Logs in Mission Planner — Copter documentation for more details

I can build myself but I basically refuse to buy a Pi 2 Zero W for $150. It is not about money as much as principal. It is a vain and self-defeating principal, but I am not giving money to such folks that buy them and immediately flip them.

The only thing I will be using it for is Dataflash logs. Is that a reasonable expectation that it could manage that?

I forgot it has been years since dataflash logs were transmitted by Mavlink – thanks for the re-explanation.

That should be fine.

Great, i have been using 0.8 on rpi3.It worked out of the box😀. Now i have installed 0.9 on Jetson nano and i have still some losse ends.

1 .The camera is not recognized by rpanion.
2 . I had to install mavlink-router and put the other endpoint - groundstations ip manually, while on RPI
It just works from any (VPN in my case) IP.

Can anybody help me resolve this, so i can use it by just powering the Jetson Nano on.


What model/connection of camera?

I’m not 100% sure what you mean here. Did the RPanion-server install script not automatically install mavlink-router?

It’s expected behaviour to put in the GCS IP’s in the Flight Controller page. Otherwise you can use the UDP server option, and tell your GCS to connect to the Rpanion-server’s IP.

Thanks for response. Camera is Rpi v2. It is recognized by Ubuntu 18 and run by cheese for example. I plugged one in usb and can normaly be selected and works in Rpanion. I remember somewhere reading that in v2 tegra video is not supported only in v1.

For the mavlink-router i installed it manually and entered IP- s i can now make it all run as a service on boot.

Edit: you have to replace the user in the service config file as it defaults to “pi”

So i have it working on Jetson nano, Huawei E3372 +zerotier.

I have another question. If i wanted to install Rpanion on intel like Latte Panda - Ubuntu 20. What route should i take? Can i just run Ubuntu deploy ?


Rpanion-server doesn’t yet support CSI cameras on the Jetson. I’m currently re-writing the camera streaming backend, which will include CSI support on the Jetson.

I thought I’d fixed that bug. What steps did you run to install rpanion-server?

I frequently run Rpanion-server on my Ubuntu 20.10 (now 22.10) x86 laptop for testing. It runs fine there. I don’t foresee any major issues running on a x86 SBC.

There’s no deploy script for x86 platforms yet (I should add one). In the meantime, you can start with the Raspi-ubuntu-20-deploy.sh file and remove any RPi specific lines.

Hi, I ran :
following your readme from git, where it also says :
If running Ubuntu 20.04 OS, use:
cd ~/Rpanion-server/deploy/ && ./RasPi-ubuntu20-deploy.sh
So I’ll check the script for Pi as instructed and maybe compare the two, so i dont miss something.

Thanks for the answers It’s been super informative to me.

I was managing Latte remotely and so i just realized i have version 22 not 20.04 so modified script has thrown me a bunch of errors like IP not been available etc. Will stick to Rpi amd Nano for now.

Adding support for 22.04 is on my roadmap … as you’ve discovered, there are a bunch of changes in the networking backend that need to be worked out.

1 Like

I’m in the process of adding Jetson camera support: Add Jetson Camera Support by stephendade · Pull Request #124 · stephendade/Rpanion-server · GitHub. It basically works, but I need to do a little more testing to ensure I’ve not broken anything in the Rpi side.


Hi @stephendade

We have faced a problem with the UDP and TCP connection. It’s quite intriguing how both aircraft, each with its own distinct UDP port, IP address, and even separate MAVSYS IDs, manage to respond to the “Toggle safety switch” command in sync when connected through separate Ground Control Stations). We connected One Aircraft with RPI’s Wi-Fi through TCP and One was connected through UDP. We’re using TCP on 5760 and on the default address of,
and UDP ports were 14730 and 14700.
I am sharing a snap short, You can see here both aircraft have separated MAVSYS IDs, but it shows the same UDP port.

Please help us, to get out of this problem.


Rpanion-server is only designed to have 1 aircraft connected. As you’ve discovered, having multiple aircraft connected will merge the telemetry streams.

  • These connections were made from 2 independent GCS
  • On UDP we’re able to stream telemetry from one aircraft to multiple GCS. We’re also able to have multiple aircraft connected to the same GCS (by assigning them different ports in the interface)
  • Is this an issue with the TCP server configuration?
  • Is there any way to enable this?

I’m not quite sure how you’ve got this set up. Could you post a diagram of how your telemetry links are connected?

Connection Diagram:

Are the GCS’s on the same LAN? Which GCS was seeing both Aircraft?

For the cellular connection, was that via VPN?

It does sound like some sort of networking mixup…