Rpanion-server 0.7 Released

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 127.0.0.1 (like 127.0.0.1:4000 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 10.0.2.100:300) 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.

Hey,
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?

Is this the version 0.7 image or the latest source from GitHub?

I installed 0.7 on an RPI zero from: https://github.com/stephendade/Rpanion-server/releases/download/v0.7.0/Rpanion-Server-0.7.0-PiZero-RasPiOS.img.xz

I guess that is not a fresh release. Am I right? Shaw, do I use the Github repo instead of the image?

After some hours of fighting with node v12 and lots of non-standard errors regarding logs, I read the GitHub advise that RPI zero is not compatible. However, I did install node v12 with new builds for RPI Zero.

I have some questions, could you help me? Make logs available through the web interface is a quite nice feature.

Real binaries logs from flights look like being correctly downloaded. Also, with node 11. But node v11 and v12 also shows some strange 59Kb:

Many tlog files were being opened and closed in /logs/app.log. However, no one is appearing on the interface and /Rpanion-server/flightlogs/logs neither.

Seems that errors with tlogs create binaries log files. Is it from mavlink-router or node error?

Overall, RPI seems to lose connection to the flight controller sometimes. Some processes get 100% (ie: …/which mavlink-router).

Does anyone have issues with RPI zero processing power? Would RPI zero 2 be significant better for Rpanion?

cheers.

0.7 is old. I’m hoping to release 0.8 in the next few weeks, once I’ve gone through testing. Use Github for now.

The Zero(1) isn’t compatible with NodeJS > 11, which is fairly annoying (there are a few V11 workarounds in the Rpanion-server code). At this time, I use nodejs 14 and 16. Fortunately, the Zero2 is compatible with a more recent version of NodeJS.

Generally, I aim for Rpanion-server to be compatible with the latest LTS version of NodeJS, in addition to V11 in order to maintain compatibility with the Zero(1). I’ve not done any testing with V12.

I’d actually disabled tlogs in V11, as I’d never been able to get it working. Bin logs are created by MAVlink-router. MAVlink-router does act a bit strangely with bin logging - if it doesn’t recieve any logging messages in 5 sec, it creates a new logfile. I did create a workaround to automatically remove any empty logfiles, but it looks like that is broken.

That looks like MAVLink-router is trying to connect, failing, and then Rpanion-server is launching MAVLink-router to try and connect again. Maybe check the serial port and permissions are ok? Might be worth installing MAVProxy and confirming you can connect to your flight controller.

The Zero(1) is just enough to run Rpanion-server. I’ve not actually tested my recent changes though - something may have pushed it over the Zero’s limits.

I do have a Zero(2) which I will run some tests in the next week. I’d imagine it’d work quite well, given the extra RAM.

Cool! Thank you for the detailed answers!

I put together a quad + RPi 4 with Pi Connect Lite and left it available for further tests. \o/

I used the new RPi OS Bulleye. I have some minimal issues installing Rpanion-server, and I put a PR for that.

Is the wifi-p2p the ad-hoc enabled link?

No, that’s Wifi-direct.

You’ll need to go to the “Adhoc Wifi Config” in the Rpanion menu, in the latest github source of Rapnion-server

1 Like

I’ve discovered there was actually a bug with the link timeout setting on the Pi Zero, which resulted in an unstable link. It’s now fixed in master.

Hi @stephendade, congratulations for what you have achieved!
I wanted to ask you if in the next major release it was possible to add a client vpn in the image and insert in the Network web interface the possibility to enter the parameters of the vpn to connect to. Eventually it could also be made compatible with popular services such as zerotier.
That would be really nice, thank you anyway.

Have a good day
Lorenzo

Hi Stephen,

I tried to do a fresh install of Raspi OS Bullseye + Rpanion Server yesterday. Since you were updating the github repository at the same time, it did not work at first.
Now I got everything installed without errors, but the “video streaming” page just shows a turning circle. I am running Rpanion Server on a RPi 3B+ and with a Raspicam.

The camera system in Bullseye has been significantly changed, which was a little annoying. I’ve updated Rpanion-server on Github to be compatible with the new camera system.

Hi Stephen, thanks for the feedback regarding the logs.

However, with the volume of flights, a few points emerged. Please, can you help me?

  1. I understood that BINlogs come from the mavlink router and tlog comes from Rpanion Server, correct?

  2. Are tlog files named by creation time? I ask this because, in the image below, the log with the oldest name and modification date was the one with the oldest date/time.

  1. After the update you commented on; apparently, it seems to have been resolved (in blue). However, note that there is a time that does not match the filename, and it did not happen with the log generated by mavlink router (in red):

  1. I noticed there were also 4 tlogs in two batteries:

3.1) Looking at the tlogs and bin logs, they don’t exactly match at least one point, the flight modes:

Flight 1 - tlog

Flight 1 - bin

Flight 2 - tlog (despite the wrong flight mode, there is an unkwon path in purple )

Flight 2 - bin

Both flights were entirely in Auto.

Overall it’s been really nice to replace the default image we’ve been using. I also think there’s been a lot of new stuff since you released 0.7. If you find any specific field tests interesting, just let me know.

Unfortunately, I won’t be able to test the ad-hoc network further this month, but I will. I just need to beat this part of the logs first. Hope use it in January

Ok. I will try again with a fresh install of Raspberry Pi OS lite and then follow the Github instructions. Updating from the Rpanion 0.7 image did not result in a working Rpanion server, either.

Correct for both

A new tlog will be started each time:
a) User clicks “Start new telemetry log”
b) Rpanion-server is restarted
c) Flight controller link is (re)started in the “Flight Controller” tab

I suspect this is because (by default) bin logging only occurs when the vehicle is armed (there’s an ArduPilot parameter to change this). Tlogs are logged all the time.

Huh … that’s odd. I’ve not been able to replicate on my laptop yet. It might be a timezone issue?

1 Like

For everyone on this thread, I’ve released V0.8 - see Rpanion-server 0.8 Released

For those wanting to upgrade their 0.7 installations (instead of using the provided 0.8 disk images), there are instructions on Github.

1 Like