Simple RC To USB Interface

With the radio control hobby arguably larger now than it ever has been in the past, there’s a growing demand for high-fidelity PC simulators. Whether you want to be able to “fly” when it’s raining out or you just want to practice your moves before taking that expensive quadcopter up for real, a good simulator on your computer is the next best thing. But the simulator won’t do you much good if it doesn’t feel the same; you really need to hook your normal RC transmitter up to the computer for the best experience.

[Patricio] writes in to share with us his simple hack for interfacing his RC hardware to his computer over USB. Rather than plugging the transmitter into the computer, his approach allows the receiver to mimic a USB joystick. Not only is this more convenient since you can use the simulator without wires, but it will make sure that the minutiae of your radio hardware (such as response lag) is represented in the simulation.

The setup is actually very simple. [Patricio] used the ATtiny85 based Digispark development board because it’s what he had on hand, but the principle would be the same on other microcontrollers. Simply connect the various channels from the RC receiver to the digital input pins. RC receivers are 5 VDC and draw very little current, so it’s even possible to power the whole arrangement from the USB port.

On the software side, the Arduino sketch does about what you expect. It loops through listening for PWM signals on the input pins, and maps that to USB joystick position information. The current code only supports three channels for a simple airplane setup (X and Y for joystick, plus throttle), but it should be easy enough to follow along and add more channels if you needed them for more complex aircraft.

For more information on the intricacies of RC transmitter and receiver interaction, check out this fascinating research on receiver latency.

17 thoughts on “Simple RC To USB Interface

  1. Does anyone have a simple solution to do the exact opposite? I’d like to output a PC into an RC controller trainer port, allowing the use of a flight stick to fly an RC plane.

    1. Here’s a random repo I found that looks to do the trick. https://github.com/kangsterizer/Audio_PPM_Linux
      Since JR/Spektrum/FrSky radios all use a TRS plug for trainer, this outputs PPM data using your PC’s headphone jack. No special hardware required. If you’re willing to go smarter, Ardupilot is a flight control software that runs on a handful of different flight controllers, has control for just about any type of air, land, or seacraft you desire, and most ground control software can read USB gamepads, and send control over a MAVlink telemetry protocol using an ISM band modem. This does, however, come with some noticeable control latency.

  2. Hi guys! Just bumped into this..
    I was looking to connect a sanwa receiver to a computer to play VRC Pro. With this Board do we need any additional programming of the board? And on the computer side? Is there any program we need to install to have recognized as a joystick?
    Thank you for your support!

    Joaquim

    1. I had issues with it actually compiling the script but once sorted all you need is the scripts he mentions in his read me . I’ve built 5 now and work only issue I’ve had is the FPS rate of it is a lot slower than official VRC adapter

      1. I just received my board today and I can’t get it to work with windows 10. Can”t run my rc car with all this new covid restrictions….

        To get things worse, I’m also getting an error compiling the code. Can you please share the changes? (bigggggg noob here, sorry :( )

        Thank you very much, Joaquim

Leave a Reply to JoaquimCancel reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.