VRX Ground Unit Developer Guide
Table of contents
- VOXL SDK Support
- Use Cases
VOXL SDK Support
SDK Versions
The VRX uses a different SDK than the drones at this time (5.4 kernel, Ubuntu20 rootfs):
SDK Version | File Name | Link |
---|---|---|
VRX 1.5.0 | ubun2.0-multi_SDK_1.5.0.tar.gz | Downloads |
Note: this version won’t work on drones yet.
Use Cases
Video Streaming over RF
This is how systems are configured by default and use the integrated RF path to stream video.
Using Multiple VRX to View Single VTX
Multiple VRXs can view the stream from the same VTX (assuming they share encryption keys) and are on the same channel.
Viewing Multiple VTX from Single VRX
Again assuming the VTXs and VRXs share the same encryption keys, we can stream from multiple VTXs to a VRX (or again multiple VRXs…).
For this use case, we need to first configure the VTXs to be on different channels. The procedure is as follows:
Setup:
- Ensure VTXs/VRXs have same encryption key (or are all using the default)
- Power on one VTX at a time
- Change the frequency/channel of the VTX using the OSD menu (see this video at 223 seconds as to how to change frequencies/channels)
- Power off the VTX
- Set VRX back to default frequency/channel (5805/161)
- Power on next VTX to setup (assuming its out of the box, default frequency is 5805), and change frequency again off the default. Repeat for N VTXs.
Usage:
- All VTXs and VRX can be powered on now
- Using the Channel Scan buttons, you can scan through the available streams from the VTXs
Video Streaming over IP Networks
Overview
Another use case the VTX/VRX system supports is streaming over IP networks.
The pilot can view the low latency video via goggles connected to Display Port output of the VRX.
If using LTE, both drone and VRX can be configured with VPN clients and can stream over through a network a VPN server facilitates.
Additionally, the voxl-joystick-server
can be used to send RC over MAVLink to a drone for command and control, plugging a controller into a USB hub connected to the AUX USB port.
VRX Software Configuration
To enable receiving IP traffic (UDP really), edit the /etc/modalai/voxl-vrx.conf
file.
udp
- true to enable UDP receiving udp_ip
- IP address of the transmitter IP (the VTX/UAS) udp_port
- the UDP port the transmitter is using
For example:
...
"udp": true,
"udp_ip": "100.1.1.XX",
"udp_port": 50000,
...
VTX Software Configuration
To enable this use case, edit the /etc/modalai/voxl-vtx.conf
file:
udp
- true to enable UDP transmission udp_transmitter_ip
- IP address of the transmitter IP (the VTX/UAS) on the interface specified udp_transmitter_interface
- the interface to use (e.g. wwan0) udp_receiver_configs
- array of receiver address/port configs
...
"udp": false,
"udp_transmitter_ip": "",
"udp_transmitter_interface": "",
"udp_receiver_configs": [
{
"ip": "",
"port": -1
}
],
...
For example, set udp_transmitter_ip
and udp_transmitter_interface
to the IP and interface name on the trasmitter/VTX/UAS side, and the reciever IP/ports that you want to send data to:
...
"udp": false,
"udp_transmitter_ip": "100.ZZ.YY.XX",
"udp_transmitter_interface": "tailscale0",
"udp_receiver_configs": [
{
"ip": "100.ZZ.YY.AA",
"port": 50000
}
],
...
voxl-joystick-server Setup
TODO
NOTE: voxl-joystick-server requires SDK 1.5.0+
Interface Options
Ethernet Adapter
The VRX’s AUX USB
port can be used to add an Ethernet adapter (like the TUC-ETGH3).
When the VRX is connected to an IP network, we can send video over IP instead of RF.
Doodle Labs
On the VRX, to setup the Doodle Lab modem connected over USB, you will need to:
- ADB on to the VRX (see
ADB Access to VRX
below). - run
voxl-configure-modem doodle X.X.X.X Y.Y.Y.Y
where:
X.X.X.X
- TODO Y.Y.Y.Y
- TODO
LTE
On the “VTX” side (where in this case there is no M0185
VTX modem), we can use an IP based modem like the M0130 LTE modem/antennas/SIM card, e.g. similar to this.
Static IP from VRX with USB-to-Ethernet
Using a USB-to-Ethernet adapter (and sommetimes a USBC to USBA adapter like in belows setup), you can easily get an IP connection with the VRX.
Starting in SDK 1.6, the voxl-static-ip-watcher
service will run by default on the VRX.
When you plug in a USB to Ethernet dongle to the AUX port, it enumerates as eth0
, and will be assigned static IP 10.0.0.2
with default netmask 255.255.255.0
If you want to customize this, edit /etc/systemd/system/voxl-static-ip-watcher.service
.
Environment=NETWORK_INTERFACE=eth0
Environment=STATIC_IP=10.0.0.2
Environment=DEBUG=0
Environment=NETMASK=255.255.255.0
SSH Access to VRX
After getting an IP connection following the previous setup, you can get an SSH connection.
NOTE: The static IP functionality is supported in SDK 1.6.X and newer
ssh root@10.0.0.2
(password: oelinux123)
ADB Access to VRX
To access the VRX via ADB, disconnect the USB-C to HDMI adapter from the VRX and connect your USB-C cable to the same USB-C port.
adb shell
See the Interfaces section of the VRX Ground Unit Quick Start Guide for more details.