USB joystick to control plane

joneill4

Junior Member
Has anyone seen a decent way to control an RC plane with a USB joystick? I see some talk on the interwebs, but most seem to either fail, or require considerable programming. Does a cheap plug n play system exist yet?
 

joneill4

Junior Member
@ Tritium-Thanks for the response. I have seen a lot of these type threads from 3 or 4 years ago, and I was hoping someone had figured out a simple and cheap solution.

@ joshuabardwell-I grew up with flight simulators. I can work the sticks on my transmitter just fine, but I would greatly prefer to fly with a PC style joystick.
 

makattack

Winter is coming
Moderator
Mentor
Maybe using a simulator such as ClearView that uses a USB joystick interface by default?

http://rcflightsim.com/

People use a PPM to USB device to connect their RC transmitter to use ClearView, but if you just plug your USB joystick in, you can at least see what it's like to control a RC plane with a USB Joystick. I tried it with a XBox joystick and didn't like the loss in resolution.
 

joshuabardwell

Senior Member
Mentor
@ joshuabardwell-I grew up with flight simulators. I can work the sticks on my transmitter just fine, but I would greatly prefer to fly with a PC style joystick.

Got it. So you don't actually need the USB-to-PC component. That's what I was trying to figure out.

Okay, so here is the deal: inside a PC joystick are some potentiometers. Inside the gimbals of your transmitter are some potentiometers. At the end of the day, you can pretty easily re-wire an RC transmitter to take its input from the pots of a joystick, vs. the pots of its own internal gimbals. Just open up the transmitter and disconnect the wires from its pots, then open up the joystick and disconnect its pot wires from the circuit board, and splice them together. Boom. Done. The devil is in the details (making it neat and tidy) but the actual process is dead simple.
 

joshuabardwell

Senior Member
Mentor
Have to make sure the pots are the same voltage or bad things will happen

I don't understand. Vcc in the transmitter is surely 5v or 3v3. Likewise for the joystick, since it runs off of USB, which is a 5 volt spec. What device is going to use higher voltage for a basic application like reading a pot? If this were an audio application, we would have to think about the power dissipation of the pot, but it isn't. It's a simple voltage divider attached to an analog input of a microcontroller. Current through the pot is nil. Likewise, since it's being used as a voltage divider, the actual resistance value is moot. I don't see how there could be a problem.
 

CrashRecovery

I'm a care bear...Really?
Mentor
Idk just some of the things I've read about doing this. Most articles or how tos I've seen recommend making sure the voltage is the same or things go poof
 

rcspaceflight

creator of virtual planes
You could always remove the pots from the USB joystick and replace them with the Tx pots. You only have to solder if the wires aren't long enough. A Dremel and some CA should be the only tools you need to modify.

As far as plugging a USB joystick into some sort of radio seems like it would require far more customization. I doubt there would be enough of a market there for anyone to even attempt to sell a plug and play set up.
 

SnowRocker88

Amateur pilot and builder
I wonder how hard it would be to use your phone or computer to connect to a USB throttle/joystick combo and just use a WiFi receiver and run like that...?
 

joshuabardwell

Senior Member
Mentor
I wonder how hard it would be to use your phone or computer to connect to a USB throttle/joystick combo and just use a WiFi receiver and run like that...?

Under most conditions, WiFi doesn't have enough range and reliability to use for RC plane control. If you really wanted to do something like this, the approach I would explore is using something like an Arduino Leonardo (with built in USB support) to read the joystick and generate a PPM signal. Then feed the PPM signal into the trainer port on your transmitter.
 

SnowRocker88

Amateur pilot and builder
Under most conditions, WiFi doesn't have enough range and reliability to use for RC plane control. If you really wanted to do something like this, the approach I would explore is using something like an Arduino Leonardo (with built in USB support) to read the joystick and generate a PPM signal. Then feed the PPM signal into the trainer port on your transmitter.

That's a smart way of doing it! Not sure what the protocol is for the trainer port tho.
 

rcspaceflight

creator of virtual planes
Arduino sounds like a lot of programming. Hacking apart a cheap Tx and a cheap joystick sounds more straight forward and simpler. But that's just my opinion.
 

joshuabardwell

Senior Member
Mentor
Arduino sounds like a lot of programming. Hacking apart a cheap Tx and a cheap joystick sounds more straight forward and simpler. But that's just my opinion.

I see the benefit of both sides. The Arduino approach would allow one to use any USB joystick with zero hardware modification to either the transmitter or the joystick. This has some advantages. Realistically, the coding should be pretty simple, since the PPM generation code has been incorporated into a library, as well as the code for reading the joystick. It could be less than fifty lines of original code.
 

Drake600

Member
It's PPM. Generating PPM for RC control with Arduino is a problem that others have solved for you.
http://www.rcgroups.com/forums/showthread.php?t=1808432

I had a look at that code you linked, and while it would cover the PPM side of the challenge, I think it would be a whole lot more challenging to implement it using an unmodified USB controller as this would require an arduino with a USB host and the associated code to handle that side of things. Far simpler would be to get an old analog stick (probably cheaply as support for analog ended with Windows XP) and fit an arduino into the housing to read the pots and generate PPM using that code with minor modification.

Even simpler (code wise) would be to graft a joystick onto a cheap tx, but there's no guarantee the joystick's pots would have the same range of output as the tx (i.e. how close to min/max the wiper reaches, could be less or more).

At the end of the day, each approach would work but the more effort you're willing to put in, the more flexible and customisable the end result will be. Generating the PPM with an arduino would allow any mix/expo/feature you can imagine and code, even on the cheapest tx. Probably should have warned you that flying is my second favorite hobby - can you guess the first? Flying is catching up, trust me ;)
 

SnowRocker88

Amateur pilot and builder
I had a look at that code you linked, and while it would cover the PPM side of the challenge, I think it would be a whole lot more challenging to implement it using an unmodified USB controller as this would require an arduino with a USB host and the associated code to handle that side of things. Far simpler would be to get an old analog stick (probably cheaply as support for analog ended with Windows XP) and fit an arduino into the housing to read the pots and generate PPM using that code with minor modification.

Even simpler (code wise) would be to graft a joystick onto a cheap tx, but there's no guarantee the joystick's pots would have the same range of output as the tx (i.e. how close to min/max the wiper reaches, could be less or more).

At the end of the day, each approach would work but the more effort you're willing to put in, the more flexible and customisable the end result will be. Generating the PPM with an arduino would allow any mix/expo/feature you can imagine and code, even on the cheapest tx. Probably should have warned you that flying is my second favorite hobby - can you guess the first? Flying is catching up, trust me ;)

In my mind you'd hack the joystick and just pull it's outputs straight from the source (pots, buttons...etc) and go that route. I agree that taking the time to have standard USB communication between the Arduino and a joystick/throttle would be a lot of effort for little gain.