Rpanion-server 0.7 Released

Rpanion-server 0.7 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 flight controller. It will run on most Linux-based systems.

Rpanion-Server consists of a network manager, MAVLink telemetry routing, flight logging and a low latency video streaming server. All are able to be managed via a web-based user interface.

Documentation and pre-built disk images for the Raspberry Pi are available at https://www.docs.rpanion.com/software/rpanion-server . Source code is at https://github.com/stephendade/Rpanion-server

New in 0.7 is:

  • Support MJPEG cameras for video streaming
  • Added button to disable all Wi-Fi adapters
  • GUI overhaul, using the Bootstrap framework
  • Various bug fixes

Downloading right now!

Hi Stephen,

would it be possible to add a list of connected clients (for AP setups) to the network screen?
This would be helpful for “follow me” mode and my antenna tracker/relay.

Sure. I’ll look into it.

I’ve now added this into Rpanion-server. Let me know if you have any issues with it.

Great! I will update my rovers and my tracker and give it a try!
Edit: I just updated Rpanion server on my tracker and the client list works well!
This makes things a whole lot easier!

This sounds very similar to UAVcast! except that you can’t link it directly to Mission Planer? or can you?

Well done!

What do you mean “link to Missionplanner”? You can receive telemetry and video in Missionplanner via Rpanion-Server.

Rpanion-server can transmit telemetry to any GCS that supports MAVLink over UDP (ie all of them).

In terms of video, it is an RTSP stream. Mission Planner supports RTSP, and I suspect most others will too.

Great! I am not that knowledgeable in this area and only had a quick glance at it. Hopefully our team can do some testing and contribute to your development.

Finally, after 9 months with the RPI hat in hand, I put it on the quad yesterday. I tested some python scripts, and everything worked very well. I intend to keep the setup ready. If there are any tests I wanted to replicate, just say so.

1 Like

Hi @stephendade!

I am not being able to connect to the FC using Mission Planner over wifi.

I added some UDP forwards (eg: ; and in Rpanion web interface.

I tried to connect from a PC connected on the Rpaion wifi using UDPCI & TCP connections in the Mission Planner.

Did I miss something? Should I run an extra mavproxy process for that? Maybe change something in the mavlink-router?


You need to use the “UDP” connection type in Mission Planner.

The IP address for the UDP forwards should be the destination (ie GCS) IP.

Oh, it is literally a forward! I was thinking as it would be a mavproxy extra port.

I will test, thank you!

@stephendade Thanks! Worked as you said. :slight_smile:

However, I have a doubt. When I open a port on (like it is accessible by a local python script. When I used the mission planner address (ip:port) it worked fine as well.

I am missing something. Are you checking the IP to choose between forwarding the connection or wait for a connection locally?

There’s no IP checking. It uses mavlink-router for the UDP endpoints.

1 Like

Hi Stephen,

I was able to play around the new software Rpanion server 0.7 to my raspberrypi 3B. I confirm Flight telemetry is working either by using GPIO TxRx or via usb). I can see packets received in bytes and status display.Video streaming is not looking great as i look into my MP hud with lots of pixelite & delayed. The same results when i used my gorpo cam connected via csi adapter. Is there any other solution to improve so I can tested? And lastly, It is failing to connect to my GCS running MP even though I copied from the web UI destination IP ports address. I use UDP as per documentation. Any suggestion please. Thank you.

Video should be fine if the selected resolution and bitrate make sense and the wifi connection has enough bandwidth.
Start with a low resolution (640x480) and 1000kbps for example. Higher resolutions require a higher bitrate to look good. If you are using the RPi3s internal wifi, the results will be limited by it. The range may only be a few meters. I get about 300m video range with Alfa wifi adapters on both ends of the connection.
To receive the telemetry, make sure both, the vehicle and the GCS are in the same network ( I guess that is a given, because the video is working) and enter the IP of your GCS computer in the rpanion web ui with the port 14550 as a new output. Missionplanner will pick up any telemetry stream on that port automatically.

Hi Stephen,
I just checked “on the table” my setup: Ardupilot (Pixhawk 2.4.8) - RPi 3b+ - GSM modem - VPN (zerotier) - QGroundControl (on ubuntu) – with new Rpanion-server on RPi and it’s works fine.
For MissionPlaner it’s should works fine too.
Basic steps:

  1. Fresh Rpanion image on SD card
    1.1 Connect RPi to Ardupilot board as described on wiki Communicating with Raspberry Pi via MAVLink — Dev documentation
  2. Connect RPI to your local network (i use ethernet cable to router) for preparation (you need internet available on RPi)
    2.0 Connect through ssh user pi pass raspberry and update RPI OS
    2.1 Setup your GSM modem
    2.2 Setup your VPN
    2.3 In Rpanion Web GUI (ip address of RPI on your local network, not on Flight Controller page - set ad new output: IP address of your QGroundControl computer in your VPN network
    2.4 Check that you can connect to RPi through VPN
    2.5 Disconnect from you local network
  3. On QGroundControl add new UDP connection and save as it is (port 14550), without changes.

For me everything is working fine, also video streaming with different usb cameras and so on. Just the raspberry pi camera itself is not streaming when connected. It also appears as a device, and i can choose the resolution but there is no stream arriving on the other side. The IPs, and network can not be the problem because all the other cameras are working.
The camera itself is also working as tested on the raspberry pi itself.
Do you have any idea what could be the problem?