IR Helicopter Controller Hacked Into A Linux Game Pad

syma-linux-joystick

[Mike Kohn’s] Syma S107 helicopter wasn’t flying as well as it used to due to a broken gear, he figured he might as well find some use for the toy’s controller, since it was currently sitting around collecting dust. Having done a bunch of work with Syma IR protocols earlier this year, he decided it would be pretty easy to get the remote working as a game pad for his Linux desktop.

He patched an IR receiver into an MSP430 board, which decodes the incoming IR signals, sending them to his computer over a serial connection. [Mike] dug around in the Linux source for some good joystick driver code to borrow and found something that was close enough to work. After a bit of tweaking he loaded up his driver module and fired up Mame to give [Ms. Pacman] a try.

He says that the controller worked without much trouble, though as he discovered in previous projects, there are some quirks in the controller that make it somewhat less than convenient to use full time. Check out his site if you’re interested in taking a look at the code that he used to get things running.

4 thoughts on “IR Helicopter Controller Hacked Into A Linux Game Pad

  1. The nice thing about those Syma S107s is that you can find replacement parts for them online relatively easily and cheaply. Of course, a new chopper sans controller is only 20 bucks or so.

  2. Thats interesting, I’d like to see if the thrust stick is like PWM’ing the controls. Or does it really only wait until you are full thrust to send data. In effect you PWM the controls :)

  3. so, the ironically I literally just finished pulling that controller apart to troubleshoot why it was not transmitting (battery’s solder-point was broken out of the box). Might have to do this if the helicopter ever kills itself.

Leave a Reply to Alex RossieCancel 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.