Stretching Comm Links: From Indoors to the Globe

Direct radio telemetry comm links can be used only within visual line of sight. If your UV needs to go beyond that and stay connected, it will need to use some sort of re-transmitter like a cell tower or a communication satellite. Unless you can afford a dedicated channel, cellular or satellite communication services involve dealing with a public computer network known as the Internet.

Connecting unmanned vehicles to the Internet or private computer networks could be useful even indoors or within visual line of sight.

SPL is a global satellite telemetry system for autonomous vehicles controlled by ArduPilot autopilot. With SPL you can track, command, and control your solar powered boats, planes, blimps, and other autonomous vehicle from the other side of the Earth using Mission Planner or QGroundControl GCS. SPL supports TCP/IP Internet connections and Iridium short burst data (ISBD) satellite communication technology provided by Rock Seven Mobile.

The main software components of SPL are UV Radio Room and UV Hub. UV Radio Room is an embedded app that runs on a companion computer connected to the autopilot. UV Hub is a broker app that runs on a server computer.

This post explains how to get started with SPL with just a few $. It assumes you already have a UV with ArduPilot autopilot and a computer with Mission Planner or QGroundControl GCS.

Local Wi-Fi (Cost: $30+, Range: Indoors)

This is the bare bone configuration of SPL.

You will need:

  • Raspberry Pi companion computer connected to the autopilot, and
  • Computer with x86_64 CPU architecture, at least 2GB of RAM, and with Docker installed.

Both computers must be connected to the same network.

Docker provides the ability to package and run an application in a loosely isolated environment called a container. Docker can be installed on Windows, Linux, or Mac computers. If you have not tried Docker, you should try it (you will regret that you did not do it earlier).

Follow these instructions to run UV Hub in Docker. Connect Raspberry Pi to the local network using Wi-Fi and follow these instructions to install UV Radio Room on the Raspberry PI. Enable only TCP channel in radioroom.conf.

Once everything is installed, connect GCS to UV Hub server on TCP port 5760 and try to control the vehicle.

Cellular (Cost: $100+, Range: Cellular Coverage Area)

This configuration of SPL adds a cellular modem and runs the server software in Amazon Web Services public cloud.

You will need:

  • Raspberry Pi companion computer connected to the autopilot,
  • Cellular modem connected to the Raspberry Pi and a data plan for it,
  • Amazon Web Services account.

Because cellular data services work with the Internet, UV Hub must run on a computer accessible from the internet. These days the easiest way to get such a computer is to rent it from a public cloud provider such as Amazon AWS, Microsoft Azure, or Google Cloud Platform. For Amazon AWS cloud SPL provides tools to completely automated the deployment from A to Z. .

Follow these instructions to deploy UV Hub to Amazon AWS. Follow these instructions to install UV Radio Room on the Raspberry PI. Enable only TCP channel in /etc/radioroom.conf.

The AWS deployment uses t3a.small EC2 instance that costs about $0.0188 per hour.

If you don’t have a preference for cellular modem and data plan, check out Hologram’s Nova modem and Global IoT SIM Card.

Cellular + Satellite (Cost: $400+, Range: Global)

This configuration adds a RockBLOCK satellite transceiver to the mix.

You will need:

  • Raspberry Pi companion computer connected to the autopilot
  • Cellular modem and data plan
  • Amazon Web Services account
  • Activated RockBLOCK Mk2 or RockBLOCK 9603 Iridium satellite communication module connected to the Raspberry Pi with FTDI USB to UART cable.

Follow these instructions to deploy UV Hub to Amazon Web Services. Follow these instructions to install UV Radio Room on the Raspberry PI. Enable both TCP and ISBD channels in /etc/radioroom.conf.

When both channels are enabled, the channel with the smallest report period is called primary and the other channel is called secondary. UV Radio Room tries to send mobile-originated messages using the primary channel first. The secondary channel is used when the message cannot be sent over the primary channel during the reporting period of the secondary channel.

Please share your experience with SPL. Post your questions and suggestions to discussion forum on the support page.

8 Likes

Thanks for the post, looking good. I think we should actually add a link to our wiki about this so I’ve created an issue here.

3 Likes

Looks like a new Iridium modem is on the horizon: http://investor.iridium.com/2019-08-21-New-Iridium-Certus-TM-Transceiver-for-Faster-Satellite-IoT-Data-and-High-Quality-Voice-Applications-Now-in-Live-Testing#assets_all

Unlike RockBLOCKs (Iridium 9602/9603) which uses Iridium SBD protocol, Iridium Certus 9770 uses IP network protocol. SPL will work with it just like it works with cellular IP modems.

Currently SPL supports one TCP/IP channel and one ISBD channel, so satellite and cellular IP channels cannot be used together. I’ll think about adding support for more than one TCP/IP channel…

If the Iridium Certus 9770 will be IP based, then maybe we can have it just switch to that when it looses the cell network so you don’t have to put in more than one TCP/IP channel?

You are right! For IP based channels the switch from cellular to satellite connection will be handled on OS networking lavel, just like a cell phone switches from Wi-Fi to cell data. There is no need to make any changes in SPL to support it.

Hi Pavel,

What is the average end-to-end latency that we are expecting on this system with the Rockblock Satellite transceiver? I have heard reports of latency periods ranging anywhere from 1 - 10 minutes (depending on how good a view of the sky you have) for Irdium’s SBD.

Yes the expected latency for ISBD link was about 1-10 minutes a while ago. See my measurements of ISBD signal quality at https://discuss.ardupilot.org/t/global-satellite-telemetry-for-ardupilot/18452/22 for more details.

But a few months ago Iridium replaced the 20 years old satellites by Iridium NEXT constellation. So the things might have changed for better. The old constellation had a few non-operational satellites, that might have contributed to the gaps in signal quality. And, I hope, the satellite technology made some progress during the last 20 years. I did not see long gaps in my recent tests, but I did not test it extensively.

Also, if you target less than 1 minute latency, you need to power RockBLOCK directly using 3.7v pin. Send-receive sessions drain the supercapacitor, so RockBLOCK can do only about 1 session per minute, if you power it using 5v pin with limited current. I did not try powering RockBLOCK using 3.7v yet.

1 Like

New 2.3.0 SPL version improves support of TCP/IP communication.
See http://envirover.com/docs/index.html

1 Like

SPL 2.4 highlights:

  • UV Radio Room now supports execution of configurable Linux shell commands (camera handlers) when camera control MAVLink commands DO_DIGICAM_CONTROL, IMAGE_START_CAPTURE, IMAGE_STOP_CAPTURE, VIDEO_START_CAPTURE, or VIDEO_STOP_CAPTURE are received from the comm channels, or when mission items associated with these MAVLink commands are reached. The camera handlers allow using the companion computers to take pictures and save them to the local disk or send the pictures to a server machine.
  • UV Radio Room is now supported on NVIDIA Jetson - a small, powerful computer that lets you run accelerated image and video processing, as well as use neural networks for applications like image classification and object detection.
  • UV Hub and UV Cockpit are now open source code licensed under Apache 2.0 license.