-
-
Application Notes
-
-
Introduction
The GCS Profile is a new “Simple Configuration” profile which extends internet access to all machines connected to the Mesh Rider network. For the Wearable Mesh Rider Radio, the internet access can come over either the USB-Dev port, the Ethernet port, or the Wi-Fi interface. An example of how the network can be set up is shown in Fig. 1.
Fig. 1 – Example GCS Profile and EUD Wizard use case
In Fig. 1, the drone can send its live video feed to a cloud-based server so that anybody with access can view the feed in real time. Internet access is provided by a Smart Phone’s or Tablet’s cellular network connection. These Android Smart Phone’s and Tablet’s we are referring to as “End User Devices or EUD.
Software Note: The GCS Profile is a free and unlicensed feature which is available in the February 2024 release of the Mesh Rider firmware.
Networking Configuration
You can choose the GCS Profile in the Simple Configuration menu in the second “Profile Configuration” at the top of the page. Fig. 2 shows the Simple Configuration menu with the “GCS with Internet Profile” selected.
Fig. 2 – Simple Configuration GCS with Internet Profile Menu
The GCS Profile works in 2 basic modes.
- 1. USB/Ethernet mode
- 2. Wi-Fi Hotspot mode
These two modes are distinguished by the way that the GCS radio connects to the GCS machine. This GCS machine is typically a Smart Phone with internet access over a cellular network. It is not possible to use your Android EUD as a Wi-Fi client while providing internet access to the Mesh Rider network unless your Android EUD is rooted. If that is an option for you, then you can use the USB/Ethernet mode.
Application Note: You can select the mode using the drop-down menu next to the field “Connect Over”.
USB/Ethernet Mode
Referring back to Fig. 1, this mode is designed to support the case where the Smart Device (phone or tablet) has an internet connection and is connected to the GCS Mesh Rider radio over a USB connection.
In USB/Ethernet mode, the Mesh Rider network adopts a flat architecture as shown in Fig. 3. This is actually the same architecture used by the Mesh Rider radio in its factory default state.
- 1. The EUD acts as a gateway for internet traffic originating from the Mesh Rider network.
- 2. The EUD starts a DHCP server. All devices in the network including the Mesh Rider radios, and the Drone’s OBC receive an IP address from the EUD.
Fig. 3 – USB/Ethernet mode network
Application Note: The Wearable Mesh Rider radio has both a USB device port, and a USB host port.
USB Device port
If you use the Wearable Mesh Rider radio’s USB device port, then the Smart Device will go into USB host mode. Not all Smart Devices support this kind of connection, but tablets typically do. We tested the connection on a Samsung Galaxy S7FE tablet.
After connecting the USB port on your EUD to the USB-Device port on the Wearable Mesh Rider radio, you should
- 1. First enable the Ethernet Connection
- 2. In the Samsung Galaxy S7FE, this is in the Settings -> Connections -> More connection settings -> Ethernet menu
- 3. After that enable Tethering under Settings -> Connections -> Tethering
Application Note: These steps are shown in Android Settings in Fig. 4 and Fig. 5.
Fig. 4 – Enabling the Ethernet Connection
Fig. 5 – Enabling Tethering
USB Host Port
If you use the Wearable Mesh Rider’s USB Host port to connect to your EUD, then the EUD will be in USB device mode. You need to enable USB Tethering on your EUD. On the Samsung Galaxy S7FE, you then need to enable USB Tethering in menu shown in Fig. 5.
IP Addressing
If you are using an Android EUD, it may be difficult to find the IP addresses of devices in the network. In a rooted device, you could look at the dhcp leases file created by dnsmasq. In non-rooted devices, however, you may need to use network IP port scanner to search for hosts connected to the EUD.
Conversely, if you have a rooted device + an USB OTG port on your EUD and further access to either a command line or shell scripting in your embedded Android EUD, you can also configure persistent usb0 static IP net-routing. The usb0 interface will not interfere with Android Network service priorities found with Wi-Fi, cellular/LTE or other eth0/eth1 interface preferences.
Application Note: Another option is to pre-configure your drone applications to automatically connect to the gateway. Further options in this line of networking include adding static IPs to Wi-Fi interfaces.
EUD Wizard May Not be Required -- Embedded Android EUD
As previously mentioned, the IP addressing of usb0 can be statically routed for Android EUD such as embedded GCS designs as seen in Fig. 6 below. For efficient usb0 static IP addressing, embedded Android EUD include devices with the features and capabilities: a) devices that have rooted SBC or other rooted Android EUD, b) devices with an USB OTG port enabling an usb0 interface, and c) devices with an ability to run Linux Command Line or shell scripts.
Fig. 6 – Embedded Android EUD and Command Line Static IP Addressing
It is important to note that usb0 custom IP address routing generally requires root privileges which can void common Android tablet & smartphone warranties to install (i.e. install root Termux or Magisk on a Samsung Tablet). If attempting static IP routing with the eth0/eth1 interface this will still disable Wi-Fi due to Android Network service priorities (i.e. it will assume ethernet is more important so disable Wi-Fi).
Whereas usb0/usb1 static IP routing & interfacing avoids these Android limitations. Example scripting for the IP addressing to connect to the Fig. 3 GCS-radio static IP at 192.168.43.102
(scripting on the Android EUD or Embedded GCS):
ip a add 192.168.43.105/16 dev usb0 brd 10.223.255.255
ip route add 192.168.43.1 dev usb0
ip link set dev usb0 up
ip rule add from all lookup main pref 1
EUD Wizard May be Required -- Wi-Fi Production Android EUD
In most newer Android OS versions (AOSP 13+, API 33+) and some older EUD, Wi-Fi networks can be assigned IP static routes and IP gateways. For reference even an entry level Samsung Tab A7 Lite this can be done if you go to Device Settings --> Connections --> Wi-Fi --> DoodleLabsWifi-505d95 where you can then gather more network specific settings for your radio1 interface for Wi-Fi.
Fig. 7 – Quick and Easy (But Limited) Wi-Fi Static IP Addressing
Next, (in the Tab A7 Lite) if you go to Manage Network Settings --> View More --> IP Settings --> Static you can route a static route over your Wi-Fi interface to connect directly to your EUD. We will show what this looks like in Fig. 7 for the GCS-radio static IP given with the previous use case 192.168.43.102
and assigning a static IP of 192.168.43.110
for the Tab A7. For the radio ‘simple config’ in Fig.2, you can simply set up either the ‘GCS’, ‘General’ or ‘GCS + Internet’ profiles as a Wi-Fi AP and quickly be on your way to controlling your UAS or UGV.
Application Note: Wi-Fi Limitations and Benefit of EUD Hotspot Wizard
As mentioned in Fig. 7, the Wi-Fi AP configuration blocks any other external LTE, Wi-Fi or internet connectivity while in-use. However, the Wi-Fi AP can be quickly toggled ‘on’ or ‘off’ through Android Settings if internet connectivity is a lesser concern. To overcome this Doodle Labs designed the EUD Hotspot Wizard to share the Android EUDs hotspot over the network, create an advanced internet gateway schema and further added advanced port forwarding.
The EUD Hotspot Wizard -- Wi-Fi Hotspot Mode
You can also use the Wi-Fi hotspot on your EUD to provide an internet connection to the Mesh Rider network. In this mode, the GCS-side Wearable Mesh Rider radio acts as a router and an internet gateway for the rest of the Mesh Rider network. This is shown in Fig. 8.
Fig. 8 – Wi-Fi hotspot mode network
We can see that both the EUD and the Wearable Mesh Rider radio perform network address translation (NAT), and route traffic from their respective LANs towards the internet. The GCS-side Mesh Rider radio starts a DHCP at the address 10.x.y.1/8,
where x
and y
are the final two decimal values of the MAC address. For example, if the MAC address of the radio is 00:30:1a:40:29:73
, then 0x29 = 41
and 0x73 = 115
, so the gateway IP address is 10.41.115.1/8.
As the devices behind the GCS-side Mesh Rider radio’s NAT are not on the same LAN as the EUD, the EUD cannot communicate directly applications running on the Mesh Rider network. Instead, client applications running on the EUD, talk to the GCS-side Mesh Rider radio, and port forwarding needs to be set up on the GCS-side radio.
For example, if you are running an RTSP server on host 10.41.115.125
at port 8000, then you should forward port 8000 on the GCS-side radio. The EUD would then connect to the RTSP feed at 192.168.43.102:8000
instead of 10.41.115.125:8000
.
Wearable Mesh Rider Configuration
In the Simple Configuration menu shown in Fig. 2, select “Connect Over” Wi-Fi Hotspot
. After that, make any further changes you want, and scroll to the bottom of the page and click Save & Apply
. Do not make any changes to the Configuration for Wi-Fi Radio
section.
Hotspot Configuration
Wait for the Simple Configuration page to reload, and then scroll back to the top of the page. Click the CONNECT TO HOTSPOT
button to navigate to the EUD Wizard page. The EUD Wizard is an application which connects the Wearable Mesh Rider radio’s Wi-Fi interface to a hotspot. Fig. 9 shows the EUD Wizard page.
Fig. 9 – EUD Hotspot Wizard page
The EUD Hotspot Wizard page includes a tab EUD Hotspot Wizard Status
which prints the syslog messages related to the EUD Hotspot Wizard. Table 1 explains the various fields in the EUD Hotspot Wizard page.
Table 1 – EUD Hotspot Configuration
Menu Item |
Default |
Details |
Enable Hotspot Wizard |
OFF |
When de-selected, the EUD Hotspot Wizard turns OFF, and the Wi-Fi radio reverts to AP mode with the Wi-Fi interface bridged to the Mesh Rider network (br-wan). |
Connection Checking Timeout |
120 seconds |
The timeout when attempting to connect to a hotspot, after which the radio will revert to AP mode. |
Internet Access Check |
ON |
Regularly ping configured “Domains”. If the ping fails, the radio will stay connected to the hotspot, but the DHCP server on the Mesh Rider network (br-wan) will turn OFF. This will force connected clients to connect to any other DHCP server on the network. |
Domains |
google.com |
List of domains which the radio should ping for the Internet Access Check. |
Fallback Delay Time |
30 seconds |
After a reboot, the Wi-Fi radio starts in AP mode to give the user a chance to login and make configuration changes. This is a failsafe procedure. |
Activate AP Mode upon a connection failure |
ON |
If the connection to the Wi-Fi hotspot fails, the Wi-Fi radio will revert to AP mode. |
Enable EUD Hotspot Wizard Log |
ON |
Sends debugging information to the syslog. |
Enable Scan for Hotspot |
OFF |
When selected, the user clicks “SCAN FOR HOTSPOT” to find the desired Wi-Fi hotspot. Otherwise, the SSID and password can be entered manually |
Hotspot SSID |
Empty |
User configuration for the Hotspot SSID |
Hotspot Key |
Empty |
User configuration for the Hotspot password |
To Scan for a Hotspot
- check the “Enable the Scan for Hotspot” box, and then click “SCAN FOR HOTSPOT”.
- In the “Join Network: Wireless Scan” page, choose the hotspot you want to connect to by clicking the “Hotspot Assistant” button next to the relevant hotspot.
- In the Hotspot assistant page, enter the hotspot password, and click “SUBMIT”.
- You will automatically be redirected back to the EUD Hotspot Wizard page.
- After that, click Save & Apply at the bottom of the page.
- You will automatically be redirected to the EUD Hotspot Wizard Status page.
Fig. 10 – Join a wireless network
Application Note: If your hotspot is running, then you will see status messages like those in Fig. 11 pictured directly below.
Fig. 11 – EUD Hotspot Wizard Status page
Port Forwarding Wizard
The last part of the setup is port forwarding. Again, this is necessary because client applications running in the EUD cannot directly communicate with servers behind the GCS-side radio’s NAT.
Navigate back to the Simple Configuration page and click Configure Port Forwarding
. You will be redirected to the Port Forwarding Config
page show in Fig. 12.
Fig. 12 - Port Forwarding Config page
The Port Forwarding Config page has a Custom Config
section by default, and it also creates a Config Port Forward for device <MAC ID>
for every host in the Mesh Rider network. You can create a new port forwarding rule by clicking ADD in the relevant section. In the example above, we have a raspberry PI connected to the network. After configuring all of your port forwarding rules, click Save & Apply
. In this section, “Internal Port” refers to the port used by the server application, and “External Port” is the port that you want the EUD client application to connect to.
Example Setup
In this example, the Pixhawk 4 flight controller on our drone is connected to a mini-OEM Mesh Rider radio over UART. The raspberry PI sends an RTP video feed to our GCS on port 5000. The serial to network bridge on our UAV-side radio runs in UDP server mode and listens on port 2000. A full diagram of the setup including IP addressing is shown in Fig. 13.
Fig. 13 – Example setup diagram
Example Note: The Simple Configuration page and EUD Hotspot Wizard pages were set up as discussed earlier.
RTP Video Feed on the Raspberry PI
The RTP Video Feed on the Raspberry PI is sent using a simple gstreamer pipeline.
raspivid -n -t 0 -w 1280 -h 720 -rot 180 -fps 30 -b 2000000 -g 7 -fl -ih -if cyclic -ex sports -pf high -awb auto -o - | gst-launch-1.0 -v fdsrc ! h264parse ! rtph264pay config-interval=-1 pt=96 ! udpsink host=192.168.43.1 port=5000 sync=false
Here, 192.168.43.1
is the IP address of the Android Smart Phone (the EUD). Fig. 14 shows how to set up the video in QGroundControl.
Fig. 14 – Video Setup in QGroundControl
MAVLink Setup -- Port Forwarding
Since our serial to network bridge is running in server mode, we need to set up port forwarding on the GCS-side radio. Fig. 15 shows the setup.
Fig. 15 – Port Forwarding for MAVLink
Fig. 16 shows how to set up the MAVLink Connection in QGroundControl. The IP address 192.168.43.47
is the address which the EUD’s DHCP server provided to the GCS-side Mesh Rider radio.
Fig. 16 – MAVLink Comms setup in QGroundControl
Ready to Fly
Fig. 15 shows QGroundControl’s main screen after setting everything up.