Fly Your RC Airplanes and Helicopters Using Iphone

JR rc radioHave you ever heard about Fly Your RC Airplanes and Helicopters Using Iphone?
HOW I DID IT: I’ve had an iPhone for about a year now, and find it quite indispensable. It’s handy in so many situations, and fits into a lot of nerdy stuff I do. However, it hasn’t fit in perfectly to the main nerdy thing that I like to do: Fly radio control airplanes and helicopters. For that, I use a really high quality piece of jrp2915-250hardware from a company called JR, a JR 9303 radio. It works great. However, one day it occurred to me, how cool would it be to use my iPhone to fly my RC stuff? The answer was “So cool” obviously. I tossed around the idea for a couple of months and ultimately gave up on it because the iPhone doesn’t have a receiver I can put in the airplane to fly it with
So the idea sat untouched while I learned how to program stuff on the iPhone for other nerdy purposes. My roommate requested I make a chadwick balancer for him using the accelerometers. (For those who don’t know, this is a device they use in real and model helicopters to find out if something is not balanced. Main blades, tail blades, shafts, gears etc…) While I was learning about the accelerometer functions in the iPhone, the idea pinged me again, and I thought, How cool would it be to fly an R/C model using the accelerometers inside the iPhone?! Alas, still no receiver.

IMAC Season came and went, and so did indoor season. I was busy practicing for contests I knew I’d be beat at, and building planes I knew were way to good for me. =) Then, one fateful day, I deleted some PHP program I was working on by accident. This was a LOT of work, and I was exceptionally pissed off about it. I was distracted by some girl in my bed (Don’t EVAR program PHP with a girl(s) in your bed!) and maybe a beer or six in my blood. I was writing a series of test programs for a SOAP interface, and had named one of them 8.php. (The more seasoned nerds among you can probably see where this is going). The program had turned into a complete disaster and was causing “internal server errors”, and I wanted to delete it. While girl was yammering in my ear I typed rm *.php instead of rm 8.php, and hit enter. Deleting every php file in the folder. Hours of hard work gone into the void.

The next day I went and bought a time capsule from Apple so this would never happen again. The side effect of this was that I had a Linksys 54 to play linksys routeraround with. I always had this grandiose idea of building a WIFI sniffer/jammer. I figured there may have been some people playing around with these routers. And gosh, was I right.

The DD-WRT project is a group of people who have reverse engineered many popular brands of routers and have managed to load a small linux distribution. As soon as I saw that they had independent programs running, it hit me like a bolt of lightning: My planes and helis don’t need a receiver if they are carrying around the server. If I could carry around the router on board, I could fly my stuff.

So I started scheming. There were a lot of problems to be solved, and I am only just so nerdy. I made a list:

1. How do I get the router to talk to the servos? How much current can ethernet handle?
2. How do I control throttle with no stick?
3. What is the latency going to be like from iPhone->Router->Program->Servo?
4. What is the range of WiFi? Good enough for RC?
5. Can I fly with the accelerometers? I’m a stick banger. BIG time. How does one add expo to this?
6. Whose planes can I test this on? >=)

So I had my basic idea down. iPhone joins the Linksys router network. It gets an IP address. Then, I open up my pilot program. The pilot program interfaces with the router via SSH (I couldn’t think of a better way that has redundancy, and speed, and was already buily by someone else). The pilot program interprets what the iphone is doing, and outputs data to one of the ethernet ports of which there are conveniently 4. Rudder, Ailerons, Throttle, Elevator....further reading



Post a Comment

R/C Links to this post: