Arduino as wireless RC simulator dongle

Ever wanted to have wireless simulator dongle? Unfortunately there are no such dongle to buy anywhere. But you can easily do it by yourself! 

List of parts 

Everything you will need is Arduino Pro Micro board and any Flysky, Frsky or any other RC receiver compatible with your transmitter. Arduino Pro Micro can be purchased from Sparkfun, but there are a lot cheaper cloned boards on Ebay, Aliexpress or Amazon (Possible compatible boards: http://bit.ly/Aliexpress-Arduino-Atmega32U4http://bit.ly/EBay-Arduino-Pro-Micro) . Actually almost any Arduino board with Atmega32u4 should work. Including Arduino Leonardo.

Actual parts costed $3.40 for Arduino Micro Pro board and $6.99 for iRangeX Flysky receiver. So the total price was $10.69.

You can choose the cheap and small receiver from Flysky receivers list and from Frsky receivers list.

The code is written by GregNau and original project is on GitHUB. Project was intended for Sparkfun Pro Micro board, cause it is based on ATmega 32U4 which can act as a game controller on USB. Although it should compile fine on other '32U4' boards also (eg. Leonardo, ProMicro).

I had a problem with my computer (64bit Windows 8 and Windows 10) not detecting arduino as HID Joystick, so I have modyfied the source to make the dongle work. My slightly modyfied Arduino project source code for RC simulator Dongle can be downloaded from here: https://www.multirotorguide.com/go/arduino-rc-simulator-dongle-project-files

Compiling requires Arduino IDE v1.8.2 at least and 2 external libraries:

Make sure these are installed properly before compiling, otherwise it will instantly fail. Both them have clearly detailed instructions about installing in the README.md file of the each project.

For your convenience, you can download all the three packages from here: https://www.multirotorguide.com/go/arduino-rc-simulator-dongle-drive-folder/

Schematics

The connection schematics is very simple, If you will use a receiver with PPM output, then you’ll only need to connect PPM out on receiver to D4 on Arduino board, +5  to VCC and GND to GND:

There is also an alternative Calibration Swith, connecting GND and A1 pin on the Arduino board. Calibration switch can be used for triggering the transmitter sticks/switches calibration. Actually the first time you power the Arduino with a RC simulator dongle firmware it triggers the calibration automatically so I’ve never needed this swich so far.

My soldered receiver to the Arduino board:

Attached it to the back of the arduino board with dual side adhesive tape:

You can also wrap the dongle into heat shrink to make it safe from accidental shorting of the electronics. 

Installing the drivers for Arduino board

First time you connect the Arduino Pro Micro board (Arduino leonardo) it will show up as device without drivers:

You need to right click on the device and select “Update Driver Software…”

Choose “Browse my computer for driver software”

If you already have installled the Arduino IDE software, then the drivers should be in YourDriveLetter:\PathToArduinoFolder\Arduino-1.x.x\drivers\ folder

Select that you trust the Arduino Software and [Install]:

After the driver is sucessfully installed, you should see the Arduino Leonardo as Port device.

Flashing the code to Arduino

Open the wireless_rc_adapter.ino project in Arduino IDE. Select from menu Tools -> Board -> Arduino Leonardo and Tools-> Port -> COMxx (Arduino Leonardo)

Hit the Compile and Upload button.

Project uploaded.  Now the board is not only the Arduino but also HID (Human Interface Device).

If you Open Game controller panel (Start -> Run -> Joy.CPL), you should see the Arduino Leonardo as Game device.

If you click the Properties, you should see the Axes and Bars moving whil moving the sticks on your TX.

Note: The first time you power on the dongle it will enter into auto calibration mode. The both leds will be lit on. You have to move all the sticks to their extents and AUX channel swiches to the on/off positions. After all the 6 channels were calibrated, the data will be stored on the Arduino EEPROM memory and dongle will start into working state.

Troubleshooting: Sometimes JOYSTICK_TYPE_MULTI_AXIS is not recognized as Joystic device. You can try changing into JOYSTICK_TYPE_JOYSTICK or JOYSTICK_TYPE_GAMEPAD in the code.

 

Setup in Simulators

Dongle was tested and perfectly working in DRL Simulator and Velocidrone simulator. Therefore it should work in other simulators that support USB Joystic.

In each Simulator you have to set the controller to Arduino Leonardo device. On DRL Simulator you have to select new controller.

Choose Other type.

And then follow the calibration and setup wizzard. You may need to invert some of the RC channels.

 

In Velocidrone Simulator you have to selecto Controller tab. Velocidrone will autodetect the Arduino Leoinardo as RC controller automatically. You may need to invert some of the channels (on my setup I had to invert Throttle and Yaw channels).

Enjoy your flight in simulators with wireless RC dongle! 

Comments
  1. Jarad Berkman
    • montis
  2. wicak
    • montis
      • Perbowo wicaksono
        • montis
  3. Wicak
    • montis
      • perbowo wicaksono
        • montis
      • perbowo wicaksono
        • montis
  4. Ariel
  5. Alex
    • montis
  6. Ariel
    • montis
  7. Laurin Mair
    • montis
  8. Mitx
    • montis
  9. Bobey
    • montis
  10. David
    • montis
  11. xxcaptinxx
    • montis
  12. srikrishna
    • montis
  13. Sri krishna
  14. Sri Krishna
  15. Neil White
    • montis
  16. Anton
    • montis
  17. JJ
  18. JJ
    • montis
  19. John
  20. richard
  21. Daniele
  22. Alex Harper
  23. Guillaume
  24. Guillaume
  25. Perry Boerboom
  26. Perry Boerboom
  27. Robert Turpin
  28. Aydra
  29. Sjoer van der Ploeg
  30. Marios
  31. cyberide
  32. cyberide
  33. Zdenek
    • montis
      • Zdenek
  34. Daniele

Leave a Reply to Jarad Berkman Cancel reply

Your email address will not be published.

*