MAVp2p Guide

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

  1. Download mavp2p here.
  2. Unzip the le mavp2p.zip

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, click
    UPLOAD 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 file luci-app-mavp2p_git-23.342.21127-c286d421_all.ipk . Then, click UPLOAD AND INSTALL .
  7. Wait for your browser to refresh.
  8. Restart your web browser.

Fig. 1 Software Upload page

CLI Method

  1. Copy the files 2.0-1_mips_24kc.ipk and luci-app-mavp2p_git-23.342.21127-c286d42-1_all.ipk to the /tmp folder in the Mesh Rider radio using the scp utility or an application such as WinSCP.
  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.
  • 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 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'

    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.