FrskyRX_USB dongle

Electronic projects that are either related to the firmwares for the 9x, or simply great for radio control applications.
Post Reply
User avatar
Posts: 16664
Joined: Tue Dec 27, 2011 5:13 pm
Country: Germany

FrskyRX_USB dongle

Post by jhsa » Mon Jan 09, 2017 5:36 pm

Hi guys, Here is another Killer project from Midelic, and here is the link to his original thread. ... st36600398

He also developed a few frsky compatible receivers that work really well.. Banggood has apparently produced receivers based on his open project and is selling them. Latest version of his code supports antenna diversity and also has no swamping at all, even if you place the tx and rx antennas as close as 3 centimeters :) Here is the link to the project thread in case you want to check it out. ... RX-Modules

Ok, here I will show how I have built my "Frsky (Compatible) RX USB Dongle", based on Midelic's project. Here is a little video of it working.

This project is based on an ATmega8 microcontroller and a CC2500 low power RF module. I have built my own PCB and used a surface mount version of the chip. It is possible to build this with a much bigger DIP version of the m8 chip and build it on a piece of StripBoard. The only difficult thing will still be to solder the thin wires to the CC2500 RF module. I might build one just to show you how to, but first I will show you how I have built my first one ;)
Here is the Schematic I used and a couple pictures of my dongle.

I have measured the voltage drop after the two diodes (D1 and D2), and I found it to be a bit too high for my liking. So I have decided to solder another diode in series with them. As stated on the picture above, I used an BAT42W. The reason for this is that the maximum voltage the CC2500 RF Module can handle is about 3.6V. ANYTHING ABOVE THAT WILL VERY LIKELY DESTROY IT.
Midelic said that his setup with only the two diodes is delivering 3.5V, so it is fine. He said that I probably measured the voltage before I soldered the Atmega chip to the board. I don't remember if I did it or not. So, measure the voltage of your setup BEFORE you solder the CC2500 RF module to the PCB. If it is over 3.5V, solder the extra diode in series with the other two. watch the polarity of the diodes. ;) :)

The servo cable you see on the pictures below was just to power the dongle while binding it when helping Midelic testing the dongle. Not needed.. You can also see here how I soldered the extra diode (BAT42W). If you also solder one make sure you solder it with the same orientation (polarization) as the other two diodes.
As you can see on this picture, the PCB is too thin to be used as an USB connector so I glued a piece of thick plastic on the back to make it thicker.
You don't need to install the resistor R1, but it doesn't hurt if you decide to do it.. Not needed though.
The jumper is needed to flash the firmware over USB using the bootloader.
So, what do you need?

First you need to get yourself one of these PCBs. Either make one yourself, or send the file to some online PCB maker. I know nothing about it because I have never used this kind of service. I enjoy making my own PCBs. I know they do not look very professional, but they don't have to :) The layout is on the PDF file below and the Eagle Files inside the ZIP .. I don't know if you can use them online, as I said I never used any PCB online service :)
FrskyRX-Simulator Dongle_PCB_MIRROR.pdf
(54.84 KiB) Downloaded 40 times
(61.74 KiB) Downloaded 31 times
A little note about the Eagle files.. They are a mess :)
I attempted to create the CC2500 RF module in Eagle, and I thought I did it successfully. But the pins/pads look very large and touch each other :( I had to edit them on Inkscape.. If someone knows how to correct that in eagle I would appreciate it :)

You also need:

IC1 - ATMega AVR 8-16 AU. Package - TQFP-32
Y1 - 16Mhz Resonator. CSTCE16M0V53-RO Ceramic Crystal SMD 16MHZ
I bought mine from here: ... EBIDX%3AIT

CC2500 RF module - I bought mine from here: ... EBIDX%3AIT

D1, D2 - 1N4148 (Normal small through hole diodes)
LED1 - Chose your favorite color ;) Package size is 0805
Extra Schottky Diode (Optional, See text) - I used a BAT42W. But you can use any small Schottky Diode that can handle about 200mA. A bit less is also OK as this receiver doesn't use much current.

C1 - 10uF/16V (or more), package size 0805
C2 - 100nF, package size 0805

R1 - 10K Through hole resistor. (Optional)
R2 - 470 Ohm, package size 0805
R3, R4 - 68 Ohm, package size 0805
R5 - 1K5, package size 0805

BIND - Tactile Push Button Switch 6 X 6 X 9.5mm (search on ebay)
JP1_FlASH - I used a 2 pin 2.54mm female pin header. This is used only if you install the bootloader and want to flash the firmware through this USB Bootloader. If you don't flash the bootloader, and just flash the firmware using the ISP programmer, you don't need this jumper.

A piece of thick plastic - to glue on the back of the USB connector on the PCB. It makes it a bit thicker so it allows for a good connection to the PC's USB socket (See Pictures above).

3.3V ISP Programmer - For example a UsbAsp programmer used to flash the 9x radio. Some are able to deliver 3.3V and some don't. You must use one that is able to output 3.3V logic levels. Normally the ones that can do it, have a shunt/jumper that allows to change between 3.3V and 5V. THIS IS IMPORTANT.
My favorite is a mySmartUSB Light. And we can change between 5V and 3.3V using a utility on the computer.

If you don't have a programmer that is capable of 3.3V or you are not sure if yours can do it, there is an alternative. Flash the Bootloader, or firmware BEFORE you solder the CC2500 RF module in place. This is very important. ... tID=200006

Connect the Programmer

I believe the picture below pretty much explains it, so I'm not going into detail on how to solder some thin wires to the board ;) :mrgreen:
FrskyRX_USB- ISP Connections.jpg
For programming the fuses and flashing the bootloader, or flashing the firmware via ISP, use your favorite software. I used "AVR Studio 4".

IMPORTANT - Before you try to program fuses or flash something to the chip ALWAYS do a read first. For example, read the fuses. Only proceed to program something after you had a successful read. Otherwise you could brick the microcontroller. DO NOT SKIP THIS STEP.

Programming the Fuses

Once you did a successful read, proceed to program the following fuses to the Atmega8:

High = 0xc0
Low = 0x9f

Decision, Bootloader or not?

Now it is the right time to decide whether you want to flash the Bootloader first, or proceed to flash the firmware directly with the ISP Programmer.
If you flash the bootloader, you can remove the ISP programming wires you have just soldered and further receiver firmware updates can be installed using the USB connection to the PC.

If you flash the firmware without flashing the bootloader, and if you want to update the firmware when/if a new version is released, or if there is some problem, you will have to solder all the wires again to be able to flash the chip. But then again, you might never need to do it again,soooo... up to you really :) ;)

I recommend to install the bootloader. Why? because of the reason explained above, and also because flashing the bootloader or the firmware via ISP need exactly the same procedure. Updating the firmware via USB using the bootloader is very easy.

Before proceeding please download and extract the following ZIP file.
(32.89 KiB) Downloaded 25 times
You will find 3 files inside:

USB_bootloader.hex - The Bootloader
HIDBootFlash.exe - The utility used to flash the firmware over USB (I think this runs on windows only)
FrskyRx_USB.hex - The firmware file you will flash to the receiver. Flash this file using the ISP programmer if you decide not to flash the bootloader

Flashing the Bootloader

After successfully programming the fuses, and using your software of choice, flash the file "USB_bootloader.hex" to the chip. If all good, you can now remove the wires you've soldered to the board. They won't be needed anymore unless something went wrong.

Flashing the Firmware

Now connect the jumper to the board.
Next insert the board in your computer's USB port. Your device should appear in the device manager (See picture).
Device Manager.jpg
Start the utility by double clicking the file "HIDBootFlash.exe"
Next click on "Find Device"
HIDBootFlash_Find Device.jpg
If all is ok and your board was found, the "Open hex File" and "Flash Device" buttons will become available.
HIDBootFlash_Flash hex file.jpg
Click on "Open hex File", navigate to the firmware file you have just downloaded "FrskyRx_USB.hex" and click "Open".
Next click on "Flash Device" to flash the firmware to the receiver. You will see some numbers scrolling, and at the end the utility will display ":-) Finished flashing the device".

You're done flashing. Close the utility, disconnect the Dongle from the USB socket and remove the jumper plug/wire.

Bind the RX to your radio.

Bind the "FrskyRX_USB dongle" to your favorite FrSky RF Module, or to the Multiprotocol module if yours support the Frsky "D" Protocol. Here is how:

Plug your FrskyRX Dongle to an available USB socket on your PC while pressing the "BIND" button. The LED will turn ON. Release the button..

Turn your radio ON with the FrSky RF module in Bind mode. After some seconds, the LED should start blinking slowly. That means that Binding is completed. Disconnect the dongle and turn the radio OFF.

Now next time you power them together, the RX LED should be ON. If you turn the radio OFF or signal is lost, the LED will blink fast.

Done, go fly your favorite simulator wireless :) ;) :mrgreen:

StripBoard version of the Dongle using a through hole Atmega8

I understand that not everybody can do fine soldering, and make their own PCBs. So I have built another FrskyRX_Dongle using a much bigger through hole Atmega8 chip, Crystal, and all the other components. The only one that should need some fine soldering is the CC2500 module, if you use the same one as above . You could actually get a much bigger one that is for sure easier to solder. Still not StripBoard compatible though as the pin spacing is 2mm and the board hole spacing is 2.54mm. but much easier to handle. Please see this module: ... mds=search

It is a bit more expensive than the other though. This is the module that I use on my full range Frsky DIY compatible receivers. Another wonderful project from Midelic. :)

Here is the list of components:

All resistors are the smallest you can get.
R2 - 470R
R3, R4 - 68R
R5 - 1K5

C1 - 10uF / 10V or more. The smallest to can get. You can also place it on it's side on the board if you can't get a very small capacitor.
C2, C3 - 22pF

Cr1 - Crystal HC49/U-S 16Mhz

D1, D2 - 1N4148
D3 - BAT85 (I think that if you replace it with an 1N4148 is also ok)

LED - 3mm

JP1 - Female Pin header for connecting a jumper when flashing via USB using the bootloader.

IC Socket - 28 Pins (Better to use a socket instead of soldering the Atmega directly to the board. Avoids overheating the chip when soldering it, and it is easy to replace it if needed.. There are also 2 wires under the IC, the socket allows them to be placed there..

BIND BUTTON - Tactile Push Button Switch 6 X 6 X 9.5mm (search on ebay)

An old USB cable - Please see pinout.
Usb type A pinout.jpg
Usb type A pinout.jpg (16.18 KiB) Viewed 1532 times

Cut the StripBoard to the right size. Count the horizontal and vertical holes. Then cut the tracks as shown on the pictures.
Now solder all the wires, resistors and diodes. Watch the diodes polarity. The stripe on their body indicates the cathode (K).
Solder all the other components in place. If you couldn't find a small enough 10uF capacitor (C1), just place it on its side and solder it's legs to the right "+" and "-" holes, that means, watch its polarity. Electrolytic Capacitors can explode if soldered the wrong way.
Solder the IC socket, the push button, the jumper pin header, and the USB cable.
DO NOT use the pictures of my board as reference to build yours because there are differences.. I have changed/improved the design after I built my prototype board :)
The next pictures are just for to you have an idea.. The placement of the wires and some components is different. DO NOT copy them.
After you've soldered all components, it is time to connect your favorite programmer so you can program the fuses and flash the Bootloader to the chip.
This picture shows how to connect the ISP programmer to the board.
After you did this, carefully insert the ATmega8 chip in the 28 pin IC socket. Be careful not to bend/damage any pin. You might have to bend all pins a little towards the center of the chip so it fits. To do it, place the chip on its side on a flat surface like a table (pins on the table) and holding the chip's body force it in the direction of the pins so they are square with the body. Repeat this with the other side's pins. Make sure you insert the chip in the socket the right way round. See pictures
Top_With IC.jpg
Now Connect your programmer to the chip and proceed to program the fuses and the bootloader. Please see above how to do it, it is exactly the same procedure as with the PCB version of the" FrskyRX Dongle".
DO NOT connect the USB cable to your PC at this point.

DO NOT forget to read the fuses before you program them to make sure all connections are good and the PC is seeing your chip

Once you've successfully flashed the bootloader, please remove the ISP programmer wires and flash the firmware via USB using the bootloader as explained above. From now on use this method to flash the firmware to the chip if there are other updates available, or if for some reason it stops working.. No more need for an ISP programmer, unless something goes really wrong.

The last step is to solder the RF module to the board. It is placed on the underside of the board.This is probably the only complicated step. Solder thin wires to the RF Module. Be careful not to create shorts between the module's pads. They are only 1.2mm from each other, very small :( Then solder the wires to the board as shown.
After soldering the module to the board, make sure you isolate it from the board to avoid shorts. I used some heat shrink tube.
RF Module Connection.jpg
Test your dongle by binding it to your radio, and if all is working, protect it with some heat shrink tube/sleeve. Cut some holes for the LED and bind button. I did secure the USB cable to the board with hot glue before I heat shrinked it.

My er9x/Ersky9x/eepskye Video Tutorials

Donate to Er9x/Ersky9x:

User avatar
Posts: 683
Joined: Sat Mar 29, 2014 10:59 am
Country: -
Location: Moenchengladbach

Re: FrskyRX_USB dongle

Post by kalle123 » Mon Jan 09, 2017 6:35 pm

Very interesting and also tempting, but I need my Phoenix RC Sim ;)

br KH

User avatar
Posts: 16664
Joined: Tue Dec 27, 2011 5:13 pm
Country: Germany

Re: FrskyRX_USB dongle

Post by jhsa » Tue Jan 10, 2017 12:06 am

I am still working on the tutorial.. Will finish it tomorrow ;)
Well, if you have a phoenix, then.... bad luck.. :) :D You should have got other sim. ;) :) Joking :D

My er9x/Ersky9x/eepskye Video Tutorials

Donate to Er9x/Ersky9x:

User avatar
Posts: 16664
Joined: Tue Dec 27, 2011 5:13 pm
Country: Germany

Re: FrskyRX_USB dongle

Post by jhsa » Tue Jan 10, 2017 3:19 pm

Finished for now.. Go build your own Frsky Compatible USB Simulator Dongle ;) :mrgreen:
Don't forget to share your build here :)

My er9x/Ersky9x/eepskye Video Tutorials

Donate to Er9x/Ersky9x:

User avatar
Posts: 16664
Joined: Tue Dec 27, 2011 5:13 pm
Country: Germany

Re: FrskyRX_USB dongle

Post by jhsa » Fri Jan 13, 2017 11:08 am

First post updated with the through hole version :)

My er9x/Ersky9x/eepskye Video Tutorials

Donate to Er9x/Ersky9x:

Posts: 1
Joined: Sun Jan 15, 2017 7:00 am
Country: -

Re: FrskyRX_USB dongle

Post by Arvycka » Sun Jan 15, 2017 7:07 am


Interesting project. Thanks for the tutorial. One question though - can the larger CC2500 be used without the antenna? I have a couple of them lying around, but they have antenna connector on them and the dongle would be very bulky with a full 2.4 GHz anntenna attached.

User avatar
Posts: 16664
Joined: Tue Dec 27, 2011 5:13 pm
Country: Germany

Re: FrskyRX_USB dongle

Post by jhsa » Sun Jan 15, 2017 10:40 am

I would say no, they dont. I believe they could even get damaged.
You could use a normal receiver antenna (not a dipole antenna) and roll it in a circle (not too tight), and probably hot glue it to the PCB.
Another idea is to shorten the antenna. Cut the antenna's coaxial cable shorter, and then expose the center wire maintaining the same length as before..
Even the big module will output low power because the PA/LNA pins aren't connected, and therefore not active..
My er9x/Ersky9x/eepskye Video Tutorials

Donate to Er9x/Ersky9x:

User avatar
Posts: 9093
Joined: Sat Feb 18, 2012 6:56 pm
Country: Switzerland

Re: FrskyRX_USB dongle

Post by Kilrah » Sun Jan 15, 2017 10:51 am

Just put a 30mm piece of wire as antenna.

User avatar
Posts: 16664
Joined: Tue Dec 27, 2011 5:13 pm
Country: Germany

Re: FrskyRX_USB dongle

Post by jhsa » Sun Jan 15, 2017 11:01 am

Yep that works too. Just solder it to the pad that connects to the center pin of the u.FL connector. Be careful not to short it to ground.

My er9x/Ersky9x/eepskye Video Tutorials

Donate to Er9x/Ersky9x:

Posts: 1
Joined: Tue Aug 01, 2017 1:25 pm
Country: -

Re: FrskyRX_USB dongle

Post by Teracis » Tue Aug 01, 2017 1:28 pm

Ordered boards yesterday and parts today. Hopefully the boards turn out alright, thanks to João/jhsa for the eagle files.

If everything turns out fine one of us can upload the gerber files in a .zip or .rar so that they can be submitted straight to a pcb manufacturer. I'll wait for my boards to arrive before I do that and have anyone waste cash on a file that I've created incorrectly though.


Post Reply

Return to “General RC Electronic Projects and Discussion”

Who is online

Users browsing this forum: No registered users and 7 guests