Arduino as PPM PC Joystick for RC Remote
THIS POST IS STILL UNDER CONSTRUCTION!
Summary
This post will explain how to use an Arduino to act as a USB Joystick on your computer by taking the input of a PPM device such as a Remote Controller with a trainer port, or a Remote Control Receiver that has PPM output. This way you can use your favourite Transmitter, and use it on simulators (or even other games) on your pc that supports Joytick inputs.
Why did I find this useful?
As I’m starting out with quadcopter hobby I started gaining interest in FPV Racing. At this moment I can’t afford all the gear I need to start FPV Racing. I do however have my own build quadcopter with which I currently only fly LOS (Line of Sight). Because I don’t just have loads of money to spend, I decided to first try out FPV Flying with a Simulator – just to see if I enjoy the concept of FPV Flying and if I can actually master it, before spending thousands of Rands on expensive gear and then deciding it’s not meant for me…. Anyway, I found LiftOff, a FPV Flying Simulator on Steam. The game is currently still in “early release”, so it still has plently of bugs and limited features. BUT, it did allow me to get an idea of how FPV flying works and how much different it feels to control the quad from FPV compared to LOS flying.
Liftoff has some support for certain transmitter (which isnt one which I have – I have Spektrum Dx9). Playing any RC Simulator with a gamepad isn’t fun at all and really unrealistic as you don’t have to full range of input as you have with an RC Transmitter. With this I mean if you move the stick 2 cm on a PS3 controller you have reached the max, while a RC transmitter has about 7cm of travel to its extremes, giving you much more room for small adjustments.
So since my transmitter doesn’t work with the simulator, and I dont have the USB Dongle for my Transmitter anyway (maybe its works then?) I had to figure out a different way to use my Transmitter on the PC. I then found this instructable (and I greatly give credit to this guy) which allows me to use my controller with Liftoff. I have plenty of Arduino’s lying around and all I needed was about R10 of extra components to make this work (obviously more expensive if you don’t have an arduino, and all the components)
Now I can connect my PPM capable receiver to the Arduino, which is connected to my PC and detected as a Joystick, to play liftoff. You can also use your trainer port on the receiver if you don’t have a receiver with PPM output. With a minor amount of code changes you can map your channels and ranges to have your remote working perfectly.
Credits
This project is inspired by DiamondDrake over at Instructables http://www.instructables.com/id/RC-Transmitter-to-USB-Gamepad-Using-Arduino/
PCB Layout
…rest of the post coming soon….
Hi
Thanks for this article. Have you tried Hotprops? It is free (download takes long) and even allows you to simulate your quadcopters physics and setup.
Hi David, no I haven’t tried it yet. Will give it a go and update if it works.
Hi, Hotprops also works with this solution. Although I don’t really like Hotprops, it has lots of physics issues (it doesn’t feel nearly like a real quad), and not that much fun as LiftOff (which also has some issues of its own 😉 )