-
-
Application Notes
-
-
Introduction
As described in their documentation,
mavp2p is a flexible and efficient Mavlink proxy / bridge / router, implemented in the form of a command-line utility. It is used primarily to link UAV ight controllers, connected through a serial port, with ground stations on a network, but can be used to build any kind of routing involving serial, TCP and UDP, allowing communication across different physical layers or transport layers.
Doodle Labs has compiled mavp2p for Mesh Rider radios, and it is available as a standalone package which can be installed on Mesh Rider firmware (tested on firmware-2023-09.04).
Software Note: You can find detailed information on how mavp2p works in its github repository.
Installation
UI Method
- 1. Open up a web browser and enter the IP address of the Mesh Rider radio in the address bar.
- 2. After logging into the radio, click
Advanced Settings
in the bottom left-hand corner of the screen. - 3. Navigate to
System -> Software
. - 4. Click Choose File and select the file
mavp2p_v1.2.0-1_mips_24kc.ipk
. Then, clickUPLOAD AND INSTALL
. - 5. Wait for your browser to refresh. It may take a minute or so as the package is large. Next, you should see
Output: Successfully installed
afterwards. - 6. Click
Choose File
and select the fileluci-app-mavp2p_git-23.342.21127-c286d421_all.ipk
. Then, clickUPLOAD AND INSTALL
. - 7. Wait for your browser to refresh.
- 8. Restart your web browser.
Fig. 1 Software Upload page
CLI Method
- 1. Copy the following package files, to the
/tmp
folder in the Mesh Rider radio using the scp utility via command line or an application such as WinSCP.
2.0-1_mips_24kc.ipk
luci-app-mavp2p_git-23.342.21127-c286d42-1_all.ipk
- 2. SSH into the Mesh Rider radio.
- 3. In the Mesh Rider Radio's command prompt, install the packages with the following commands
opkg install /tmp/mavp2p_v1.2.0-1_mips_24kc.ipk
opkg install /tmp/luci-app-mavp2p_git-23.342.21127-c286d42-1_all.ip
- 4. If you want to access the mavp2p UI and you are already logged in, you will need to restart your browser.
Configuration
mavp2p can be configured over either the web UI, or the CLI. mavp2p works by linking MAVLink endpoints together. Endpoints are either UDP, TCP, or UART based.
-
-
- ● For UART endpoints, you can de ne the baud rate and the device.
/dev/uart0
points to the default UART interface on the Mesh Rider radio.
- ● For UART endpoints, you can de ne the baud rate and the device.
-
- ● The Serial Port configuration must be disabled to use a UART endpoint.
- ● TCP and UDP endpoints can be either server or client endpoints.
- ● For a server endpoint to work correctly, there must be a firewall rule to open up the required network port. See this guide for more information.
- ● Client endpoints must point to the host it connects to. This could be the IP address of your GCS, for example. The corresponding network port on your GCS would then need to be open.
UI Configuration
Navigate to Services -> Mavp2p
in the web UI. A screenshot is shown in Fig. 2.
Fig. 2 Mavp2p web UI page
From here you can de ne any number of mavp2p endpoints to be bridged together. Only a single instance of mavp2p can be run at a time. After you are done, click Save & Apply
.
You can now connect to mavp2p.
CLI Configuration
- 1. SSH into the Mesh Rider radio.
- 2. You can see the current mavp2p configuration using
uci show mavp2p
. The default configuration is shown below.- a. A UART and a UDP server are defined, and the service is disabled by default. This emulates the behavior as the default serial port configuration.
-
root@smartradio:~# uci show mavp2p
mavp2p.mavp2p=general
mavp2p.mavp2p.enabled='0'
mavp2p.@uartendpoint[0]=uartendpoint
mavp2p.@uartendpoint[0].name='DoodleUART'
mavp2p.@uartendpoint[0].device='/dev/uart0'
mavp2p.@uartendpoint[0].baud='57600'
mavp2p.@uartendpoint[0].mode='serial'
mavp2p.@udpendpoint[0]=udpendpoint
mavp2p.@udpendpoint[0].name='DoodleUDP'
mavp2p.@udpendpoint[0].address='0.0.0.0'
mavp2p.@udpendpoint[0].port='2000'
mavp2p.@udpendpoint[0].mode='udps'b. If you are unsure of the parameters, we suggest that you first reconfigure mavp2p over the web UI, and then see how the UCI le was updated. To enable mavp2p, you can run
root@smartradio:~# uci set mavp2p.mavp2p.enabled='1'
root@smartradio:~# uci commit
root@smartradio:~# /etc/init.d/mavp2p restart
Usage
With the default configuration enabled, you can connect to mavp2p from QGroundControl by following this guide. Here we assume your ight controller is connected to the UART port on your Mesh Rider radio. When creating a new comm link in QGC, use the IP address of the Mesh Rider radio running mavp2p, and port 2000.