After having had some performance issues with 2.4ghz Xbee modules I just finished up a quick project for long range two-way communication. The system is based on HACCOM HAC-LM96 500mW 433mhz 9600 baud radio modems. Range is 2km (1.2 miles) ground level, so the system should be good for really long range communication when the plane is up in the air.

Components used:
HAC-LM96 radio modem - $52
Turnigy UBEC - 3A switched DC-DC converter - $8
Teensy 2.0 - Arduino compatible board - $19

To make it plug-and-play with my Futaba 9C radio I took the casing from an old defect RF transmitter module and put the UBEC and Teensy board inside. The UBEC is connected to the 9C V+ pin (9.6-12V) and supply 5V for the Teensy board and the HAC radio modem. Sadly the HAC modem is slightly to large for the transmitter module casing, so i had to use an extra box for the HAC modem.

The Teensy MCU converts 8 channel PPM from the 9C radio into serial data for the HAC modem. The Teensy board is my favorite Arduino compatible board, has more i/o in a smaller formfactor and a proper USB interface.

In the airplane the serial data is received by the HAC modem and either transmitted directly to the autopilot or converted back into servo PWM pulses using another Teensy board. This way I can use the HAC modems as a pure R/C control system if I need to, freeing up the 2.4ghz band for live video link etc.

To use the system as a two-way telemetry system you connect the Teensy board in the RF transmitter casing to a computer using a USB cable and either talk directly using the USB interface or use a virtual serial driver for normal two-way serial communication.

Edit: Here is the source code for the Teensy PPM decoder and rf433 transmission system.
Teensy_PPM_Decoder.pde rf433.h
E-mail me when people leave their comments –

You need to be a member of diydrones to add comments!

Join diydrones


  • John as a first time builder i want to thank you so much.

    I have been in a dilema as to what to use in my build at one stage considering 3 different frequency transmissions for data, rc, and vid.
    you have now answered my biggest question. why can we not combine 2 functions into one so as to avoid the signal mess as above.
    I am in the process of building a medium range fpv airplane here in rural ireland and was wondering what the hell to do with the limitations on output power here. This is a workable solution and as far as i see after days of research and asking around the frequency im thinking of using should have no effect on any broadcasts in my locality.

    So, I just ordered 2 of those modems, any recommendations on antennas.?

     and again thank you and thank you diydrones crew for this great site.

  • Developer

    At least in Norway 433mhz is a little used frequency, so I have never had any problems. I also used checksum error detection on the signal to prevent servos going crazy from any corrupted data. For extra safety you should also have the autopilot activate stabilization and RTH if signal is lost. I would say that a stable and well working RTH is critical for any type of radio and control experimentation in the air. :)

  • what about the lack of channel hopping? do you think it may cause problems?

  • Developer

    Hi Tommy. Sorry for the late reply.

    As I mentioned earlier I built this system as a one of for myself, so the documentation is somewhat lacking.

    But if you can make sense of it, I scanned my work diagram for you. It shown the connection I used between a Futaba 9C radio ( receiver module pins ), teensy 2.0 and the 433mhz modem. Power is taken from the 9C radio (9-12v) and converted to 5V using a cheap HobbyKing BEC.









  • Wow way cool I wanted to build one so i ordered the parts(Sparkfun wanted 89$ for the modem), Im learning teensy or is arduino enough? But anyway where is the wiring diagram? How does it connect to the remote do I need a high end remote I just order a 9xTurnigy from hk will that work? is there a battery powering the box on the back of the remote? Also I read something about teensy and serial latency as proggraming is my bag i might be able to improve the times(FPV with Acrobatics)! Very cool can wait to get this working! How does this interface with ardupilot? Oooh lots of questions sry!

    Thanks for the great Info


    Also I just order a Dragon Link cant wait to compare the range of the two!

  • Developer

    The 500mW HAC should have even better range then the Xbee 868. The 9600 baud version (HAC-LM96) is rated at 2km ground level (Xbee 500m). And I have confirmed this myself. I had one HAC modem transmitting from inside the first floor in my house while I picked up my 9C radio and started walking. In a typical suburban environment with houses, trees etc. I got well over 2km before I got missing packets. Remember one of the modems was inside! So line of sight and high altitude location in the airplane have the potential for crazy long range. :)


    I'v used my system on and of since I made it, and have never had a control issue. There is a slightly noticeable delay (12ms) if you try flying aggressively (aerobatics), but for normal UAV/FPV it is just fine.

  • Developer

    Just read your blog about the Xbee 868.

    I ordered mine directly from

    If you do not need extreme range you can also get the 10mW version at sparkfun ( )

  • Hello,
    mighty interesting project! :) I'm trying to do the same thing and have a long-range signal between my ardupilot and my UAV, and was considering Xbee 868 modules but due to some problems with the duty cycle I started searching for other solutions and found this! Whee!

    Are these the RF modules that you used? :
    May I ask why you didn't use any of the other modules with longer range, HAC-LAN RF or HAC-LEM RF? Because of the RF module weight or some other reason?
  • Developer
    Keegan: I am not sure I understand your meaning. This is a true long range system with two way communication. It will work >1.2miles at ground level and reach much, much farther when flying at high altitudes. Also one of the main points with this system was to not use 2.,4ghz for control. This will free up that frequency for a video link.
  • this is a bad thread because my futaba 6ex has been out to 1.75 miles (measured in google earth) very easily
This reply was deleted.