DIY wireless telemetry link for UAV

Telemetry link between UAV (drone, airplane, boat) and laptop/mobile/ground station device can be very useful. Not only to get current drone position, altitude or battery level, but also, when wireless link provides such a possibility, to update drone parameters in-flight. Some radio links, like OpenLRS provides such a possibility out of the box. They include transparent serial bridge and almost any kind of device can use it to communicate with flight controller. Unfortunately, most RC radio systems lacks this functionality and additional telemetry links have to be used. Like SiK Telemetry Radio or 3DR commercial version of it.

One can buy or one can build something by his own. Some time ago I’ve chosen the second way and decided to build my own wireless serial link to archive 2 way communication between drone and ground station software. My objectives were:

433MHz since it is legal in my country

has to allow to use my phone with EZ-GUI, since I do not like to carry my notebook to an airfield

as cheap as possible

To satisfy those objectives I’ve decided as follows:

HC-12 433MHz wireless serial modules will be used. They are cheap, pair costs less than $11

Since I would prefer not to have my Android phone cable connected to any external devices, HC-06 Bluetooth module will be used to connect to mobile phone or tablet. Once again, it is cheap, single module costs between $4 and $5

My telemetry link is build from two parts:

Mobile – it is attached to drone and consists of single HC-12 and antenna connected to flight controller (SPRacingF3 running INAV)

Ground Station – it acts as Wireless-to-Serial-to-Bluetooth bridge

Mobile

Mobile part is very simple. It is just HC-12 module connected to flight controller’s spare UART port. No additional hardware, so schematics is extremely simple:

One thing that has to be considered here is baud speed that will be used for communication. In case of HC-12, the lower the speed, the bigger the range. Personally, I’ve decided to use 9600bps. It is fast enough for two way communication and slow enough to provide a range of about 500m.

For 9600bps there is even no need to configure HC-12. By default it is configured for 9600bps and FU3 mode that works just fine. If you will want to use different serial speeds, HC-12 has to be reconfigured to support it. You can read how to do it here.

The other thing is the antenna. HC-12 is sold with a small solderable spring coil antenna. I wanted something better, so instead of spring coil, I’ve build air cooled 433MHz antenna and attached it using U.FL pigtail.

Because of low baud speed, SoftwareSerial ports can be used.

Ground Station

Ground Station or Wireless-Serial-Bluetooth bridge is slightly more complicated.

It consists of HC-12 433MHz RF module and HC-06 Bluetooth module connected to each other with TX-RX lines crossed. Power is supplied via LM1117 3.3 LDO voltage regulator from LiPo battery.

Since here antenna size is not a problem, I’ve used half-wave dipole antenna made from steel wire and connected with U.FL pigtail to HC-12. Half-wave dipoles are very simple to build. You can use this tutorial for example.

Once again, if default serial speed of 9600bps is used, HC-12 does need any configuration. The same goes for HC-06 Bluetooth module, since it also uses 9600bps by default. But you might want to change Bluetooth device name and PIN. Just in case. I’ve showed how to do it in one of my previous posts.

Flight controller setup

Configuration of any flight controller to use this setup is very simple. The only requirement is free UART port. More, it is protocol independent, so it can pass MSP, MAVLink, LTM or any other serial telemetry protocol. In case of Cleanflight / INAV and EZ-GUI one has to only enable MSP protocol in Ports tab in Configurator.

Important notice: Cleanflight and all its derivatives supports up to 2 UARTs with MSP protocol enabled. You can not enable third MSP port!

EZ-GUI setup

Since from EZ-GUI point of view, this is normal Bluetooth link, so no special configuration is required. There is only one catch: refresh rate of 100ms is too low for 9600bps and should be increased. I find it works well with values between 400 and 500ms. Data is polled from Cleanflight / INAV less often, but often enough for logging and flight parameter updates.

Results

So, how does this telemetry link works? What is the effective range for a below $20 telemetry system? Better than I expected before I started. I wanted something with a range of 500m and this is what HC-12 documentation says about it: ~500m at 9600bps. Last weekend I’ve archived an effective range of 760m.

Probably this is the limit, since in a next flight link was broken at about 680m. Still,I’m happy.

DIY wireless telemetry link for UAV was last modified: June 2nd, 2016 by Dziku

Great tutorial. Thanks to your guidance, I have setup a GPS 250 quad with iNav 1.8 and 433 MHz link to a GCS, exactly per your post. I am receiving data from the quad on EZGUI, however, when I try to send mission waypoints (using EZGUI), it doesn’t seem to transmit the data to the FC. RX-TX lines are crossed correctly. I am at 9600 baud via MPS. It appears I may only have 1-way communication at present. Any ideas would be very welcome.

I am using a betaflight F4 controller and am looking for a way to pick up the ESC telemetry data that is shown in the On Screen Display (ESC temp, ave rpm, battery voltage). I was told that I will need a Pixhawk (with a Sik Telemetry radio) to do this, but your post has given me some hope. The F4 has smart port audio and I believe I have a spare UART (RX2 and TX2)

My goal is to end up with digital telemetry values, which may then be hosted online with a raspberry pi or laptop. I’m not concerned with any GPS values, or changing configurations mid flight – I just want a way to read in these values (not on my FPV video feed).

So does Inav now support two mavlink meaning you can update waypoints while in flight instead of having to either land or wait for it to finish its first. Mission.
I am under the impression that its a 1 way mavlink that only allows you to track the mission not alter it in flight via mavlink.
Trying to find if this two has been added yet seems difficult. And I love inav GUI but withou a two way mavlink see little point when a 6 year old APM Will allow two way coms.
Please catch up inav your price and ease of use over APM and Pixhawk make you very enticing to a newbe.