Edit page on Github

Installation

For Raspberry Pi0w / Pi1 / Pi2 / Pi3

What is UAVcast

UAVcast is complete package of software tools that allow users to build a companion computer based on UAV`s using the most popular micro-computers and Mavlink based autopilots.
The Software is designed to help to establish 3g/LTE communication between the UAV and the Computer Ground Station software without any additional tools. The software is also made to simplify the process of using companion computers with built-in easy to navigate web based UAV managing panel. The idea is to have a simple web page for end users to configure the companion computer with a few simple steps and without any UNIX knowledge.

There are many software dependencies required to stream Video or Telemetry to a Ground Control Station, and UAVcast will take care of all the requirements. If you want to stream telemetry or video over WIFI or a Cell network(Supported Cellular Modems), then UAVcast is the perfect choice. UAVcast supports PiCam, C920, C615 as a video device and generate a low latency stream directly to your ground station.
There is endless opertunities using a Companion Computer and UAVcast is constantly developing to integrate new features.

What you need

Autopilot: mostly all autopilots with mavlink protocol are supported:

NOTE! DJI systems ( like Naza or A2 etc. are not supported )

In the case of APM based Flight controllers, Ardupilot and Px4 pro firmware are compatible.


Raspberry Companion Computer:



Modem for cellular connection (3g/4g) or Wi-fi router

Supported Cellular Modems

UAV mounted and connected to Raspberry camera. Following models are supported currently



Psychical connection between a companion computer and Flying controller. Two options are available


How can I install UAVcast software?

Installation process for all Raspberry computes looks the same. When you have established connection to Raspberry then execute the installer file which also detects the PI type.

How to use and configure the software?

There are two ways to configure UAVcast before takeoff.

Configuration from web interface – preferred for most users

When installation is complete you can easily connect a web interface by typing the Raspberry PI IP address into your favourite web browser.
http://Your Raspberry IP address ( e.g. 169.123.23.1)
Adjust settings according to your configuration and start UAVcast to enable streaming.


Manual configuration from command prompt – for advanced users.

You will need to edit UAVcast/DroneConfig.txt before starting UAVcast

Four commands are available to use in the command line


There is also a RPI reboot button in the web interface under the configuration page

From the command prompt:

sudo systemctl start UAVcast
sudo systemctl stop UAVcast
sudo systemctl enable UAVcast
sudo systemctl disable UAVcast
sudo systemctl restart UAVcast

How to setup in detail and what options are available?

Web interface users have to tap UAV setup section and configure all 5 sections before a start.




This page can be different for various flight controller models and you need to set it up according to your current hardware setup.


Navio

controllers require to select your frame type model. In the case of APM`s or Pixhawk you need to select APM type and then choose your connection type.




The Ground Control Station is were you are planning to control your aircraft. You can have full control over your aircraft form regular PC or mobile devices using mission planning software.
Both type of devices allows you to retrieve telemetry and video from your vehicle during flight and using the same cellular or Wi-Fi connection.
To enable this feature you need to input the IP address of the ground control device. The preferred solution requires having a public available IP address. Next you also need to define your port for streaming ( default: 14550 )



Optionally you can use a Hi-link modern modem selecting Ethernet from drop down list. The Modem configuration supports most types of sim cards including no-pin cards. Selecting port 5600 will autostart the video in Mission Planner HUD





There are 3 different camera devices supported currently by UAVcast, and you need to select proper one.


Dynamic Name Server is convenient if you dont have a static IP from your cell vendor. By using a DNS name you can easily connect to your RPI by name instead of ip address
*Please note! Remote access to your RPI works with public IP only.



As an option, users that are using a command prompt can define all parameters in configuration file. UAVcast/DroneConfig.txt

                {
                  "Cntrl": "APM",                                   -> Flight Controller Type: APM | Navio
                  "Telemetry_Type": "gpio",                         -> Telemetry Connection type: ttl | gpio
                  "GCS_address": "uavmatrix.com",                   -> Telemetry Destination: Url or IP
                  "PORT": "14550",                                  -> Telemetry Port Number: Default 14550
                  "secondary_tele": "No",                           -> Use secondary Telemetry destination: Yes | No
                  "sec_ip_address": "10.0.0.100",                   -> Secondary Telemetry Url: Url or IP
                  "sec_port": "14550",                              -> Secondary Telemetry Port Number: Default 14551
                  "GSM_Connect": "No",                              -> Use modem connetion: Yes | No
                  "MM_Con_Check": "Yes",                            -> Modem Manager Auto Reconnect: Yes | No
                  "APN_name": "internet.public",                    -> Access point name (Modem): Depends on you cell vendor
                  "MM_Modem": "cdc-wdm0",                           -> Modem Internal Address: Default cdc-wdm0
                  "MM_Username": "test",                            -> Modem User/Pass: Default test
                  "MM_Password": "test",                            -> Modem User/Pass: Default test
                  "MM_Pin": "1234",                                 -> Modem sim pin code: Default 1234
                  "UseCam": "Yes",                                  -> Use web camera: Yes | No
                  "CameraType": "picam",                            -> Camera Type: picam | C920 | C615
                  "WIDTH": "1280",                                  -> Camera Width: Default 1280
                  "HEIGHT": "720",                                  -> Camera Height: Default 720
                  "UDP_PORT": "5600",                               -> Video stream Port: Default 5600
                  "BITRATE": "1500000",                             -> Video stream Bitrate: Default 1500000
                  "FPS": "20",                                      -> Video stream Fps: Default 20
                  "UseDns": "No",                                   -> Use Dynamic DNS: Yes | No
                  "Username": "user",                               -> DNS username: Your DNS account username
                  "Password": "pass",                               -> DNS password: Your DNS account password
                  "Alias": "uavcast.no-ip.info",                    -> DNS Alias: Your unique DNS. Example uavcast.no-ip.info 
                  "dyndns_system": "default@no-ip.com",             -> DNS system: Check with your DNS vendor. 
                  "APM_type": "Plane"                               -> Navio Ardupilot frame: See frame type list at emlid.com
                }
            

How to connect and use UAVcast with my PC or mobile?

UAVcast connects with ground control software using UDP protocol. You can connect with your ground station to send video, send/receive telemetry or both at the same time. If you are using UAVcast with camera only, its highly recommended to use gstreamer on the receiver end to achieve minimal latency.

Download gstreamer

Install and run the gstreamer application then use these pipeline to receive the video feed from UAVcast On your computer



For Ubuntu / Mac OS X / Windows:
gst-launch-1.0.exe -e -v udpsrc port=5600 ! application/x-rtp, payload=96 ! rtpjitterbuffer ! rtph264depay ! avdec_h264 ! fpsdisplaysink sync=false text-overlay=false

This should work in Ubuntu, Mac OS X and Windows platforms. From now on, your computer will be waiting for the input stream from UAVcast. Once it gets a stream, you'll see the real-time video from your UAV.


If you are planning to use UAVcast to get full aircraft control please install Ground Station software first. Ground station applications support UDP communication and they can be easily connected with a UAVcast. You can install Mission Planner or Qground Control for desktop or try to use Qground Control or Tower on mobile. Both should accept UDP connection telemetry.
To download Ground Station Software please visit the following sites:
Mission Planner
Qground Control
Tower


Why I cannot connect with my Ground Control station!

To achieve maximum speed of communication and low latency video on the ground control side it`s required to have a public IP assigned your ground station. Only then you can stream low latency Video and Telemetry over cellular networks. Please check your contract with your operator if you have assigned a public IP to your internet connection. If your public IP is changing dynamically you have to register your ground station with dynamic IP services like no-IP (https://www.noip.com/).

Each time you login to the Ground Control Station, the DNS service provider updates your IP address and allows you to use a DNS name instead of an IP number. In this case you need put your registered (DNS) domain name in the Ground Control Station tab replacing your IP number. An external IP address is the only way to achieve minimal video latency on the Ground Control side!
If you do not have an external IP address you can connect with the Ground Control station using OpenVPN services which are supported by UAV cast. Please setup your OpenVPN server access and download *.ovpn file. Use the generated ovpn file to establish connection from your vehicle to your server and connect your Ground Station to the server allowed. Once you have setup the server you should be able to use UAVcast without a public IP. Please be aware that it works but you have longer response (latency) time. An external IP is the preferred solution!

What 3th parity software comes with UAVcast?

These packages will be installed and used: