Automated rc heli


now i am just getting adventurous. I am pretty new to robotics, but have been a c++ developer for 6 years. I was wondering how hard you think it would be to automate the flying of my rc heli? I can fly this pretty well myself, but really like the idea of controlling it from my laptop. I would need to be able to override the controls myself if required, def for landing and take off. I think it would be really cool to plan the flight plan on my laptop however.

I know that you can buy electronics to autopilot a heli and i guess I would need to implement something like this. There are modules out there to measure tilt etc which would be a start. Then I need a microcontroller to develop the server pulses. I have a giro on the heli to deal with rotation. Maybe some wireless modules to tell the heli where to go etc.

I don’t want a complete answer:)) In fact I am not sure what I want. Somebody to tell me to calm down and implement some flashing lights probabily. Thanks anyway, if you do get carried away and provide a complete solution:))

I am looking forward to the answsers on this one!! Merry Christmas!!

Hello Tim,

Automating an RC helicopter would be a tough starter project so I would recommend something simpler like automating an RC car. If you choose to press forward with the helicopter anyway, I have some advice.

I don’t know much about wireless, but you are probably going to need a way to wirelessly communicate between your microcontroller and your computer. Various wireless protocols have different ranges, so you will need to know how far your helicopter will be flying.

Do you want to be able to control the flight plan while it is in the air? If you don’t, you can avoid wireless, and just have a solution where you use something like Pololu’s RC switch to turn on your pre-programmed automated flight plan while in the air.

We sell a nice IMU module, which has a built in ARM processor. If you reprogrammed the processor, you might be able to use its excess computing power to be generate servo pulses on D1,D2,D3, and D4.



You should probably check out places or projects like DIY Drones and VicaCopter to see what others have done without huge budgets and organizations behind them.

- Jan

Thanks for the info. The web sites look useful reading and good inspiration!! I will investigate a bit further and do a few tests. If I do get there I will be sure to let you know!!

Have a good christmas

I am well into aeromodelling, are you talking coax indoor thing or full blown 90 sized ccpm heli? a coax might be a good start. I have infact just bought a maestro servo contoller to have a go at an autopilot rc plane (i like to refer to it as a UAV!), i wish you best of luck with your heli! an override would be most advised especially in the testing stage, if you get something called a servo multiplexer, which i believe pololu sell, it means with the flick of a spare tranny switch, the tranny has control and you can land and do some tedious debugging :slight_smile:


I normally fly a t-rex 450 but I don’t think I will be using that. It cost me a bit too much money and I like it too much to start messing with it. There are some pretty cheap helis around these days, so I thought about getting one of those. Definately electric though, maybe counter rotating twin blades to start (no tail rotor). Not a 90 size:) Yet!!

I think some experiments without even touching the heli would be a good start though. I am currently looking at using the xbee modules on the 3pi robot and this would translate well to this project as they are 2.4ghz which is the same (i think) as my transmitter uses anyway. Range should not be a problem.

The heli is my overall goal, but I am looking at getting all of the modules in place first.

If I manage it I will be sure to post all about it!!



Spektrum? yeah they use off the shelf transeivers, similar to the xbee so i don’t think they will interfere with spektrum radio. You might want to consider the CX2, that would be a good platform! I have a 450 sized belt cp which i don’t use much.

I too was looking at using the xbee pro transceiver, i was going to attempt to creat a wireless serial connection to get familliar, to connect two computers together and send information wirelessly

yup spektrum.

Ditto on the xbee modules. I have coded a java application to send commands to my 3pi robot (to turn lights on/off, display messages on the lcd, play buzzer etc) and back (battery voltage, motor speed etc). Currently I am doing this over a wire (using the programmer in usb-serial mode) but will replace this with Xbee in a bit. Pity they are expensive. £20 each in the UK + £20 for a USB interface and £5 for a 5v - 3.3 regulator. Is this the route you are going?

I don’t know much about electronics, so am having to buy bought modules and converters. I am sure that with a bit of know how it would be possible to use the XBEE modules directly. Any info on this?

can you not get by with one programmer?

I am just kinda getting them one bit at a time, got the servo controller, need to earn some cash :slight_smile: I’m in the UK too, i was hoping to get the xbee pro ones with 100mw power rating so i got higher range but i think they are even more expensive. Electronics is expensive! we should get like a government grant cause were doing something educational!

Can you get accurate tilt sensors? like a compass IC but in vertical planes? because gyros and accellerometers can wander which means it won’t hold it straight

Heres something you can strive for!

Bit of a question about that IMU, Can the rate gyros wander? say if you used the x rate gyro for roll on a UAV plane, it would not lose its upright heading? and it could stay upright by itself? So has it got the scripting like the maestro servo controller?

I don’t know what you mean by a gyro wandering. If you are integrating the gyro’s output to get position, you will need to periodically reset this position with the accelerometer readings.

Here is an example of what Intel did using a similar IMU board they made:

They used the direction cosine estimator described on this page:

The IMU does not have scripting like the Micro Maestro servo controller. It exposes the programming pins of the STM32F103T8 ARM Cortex processor, which you can use to reprogram the processor (with the correct programmer). ST says the programmer to use is the ST-LINK, which I found on this website: The IMU’s pre-installed firmware is on our website on the Resources tab, which you can use as a starting point for implementing something like the direction cosine estimator algorithm.

- Ryan

what i mean by Gyro wander is, with RC helicopters, if you have a rate gyro on the tail and it is correctly set up, no matter how accurate it is, after a while it will slowly change its heading, as opposed to a heading hold gyro which physically moves it back to the heading it was at.

Gyros on helicopters do more (e.g. control the tail servo) than just the sensor part, which is what we offer. I don’t know exactly what the helicopter gyros do, but I think it’s just a difference in how sophisticated the software is about responding to what the sensor senses. If you’re making your own system with our sensors, how it will behave will depend on your programs.

- Jan

Basically how sensitive are the gyros? what is the smallest rotation they can measure? and what happens if it moves slower than it can register, so it thinks it is in the same place it was before and it is unable to detect it has rotated.

One of the key parameters you have to understand is the noise, called “rate noise density” on the gyro datasheet. The LPR510AL has a noise of about 0.017 deg/s/sqrt(hz). What that weird sqrt means is that your actual noise is proportional to the SQUARE ROOT of your sampling frequency. For a helicopter, you might need to sample at 50 hz, and your actual noise would be given by:

sqrt(50 hz) * 0.017 deg/s/sqrt(hz) = 0.12 deg/s

This means that your samples are going to be randomly plus or minus about 0.12 deg/s, so rates of 1 deg/s or less are going to hard to measure accurately. In a few seconds, you could easily be a degree off. This is actually pretty good! But it depends on you getting a very good initial calibration for 0 deg/s and doing integration very carefully on your main processor (not missing samples, etc.) Practically, you will probably do a lot worse, but you can think of this as an ultimate goal.

What are you going to use as your main controller?


Been doing quite a lot of work on PICs, just been successful controlling my maestro controller via a UART socket on a PIC. This would probably be the processor i would use. I could then use the scripting in the maestro to handle any channel mixings required.

Wow, that is a use for scripting that I had not thought of before. You could even use a spare channel or two on the Maestro to store input from the PIC, then do whatever you need to translate the control signals into the actual servo positions.

However, the math required for the integration and angle estimation is going to be way more complicated than channel mixing - even if you just use one axis. Getting a full estimate of your angle in three dimensions is probably beyond your PIC. Which one are you using, specifically?


Well i am currently using an 16F84A with the Soft_UART in mikro c for pics. Once i have got a little further i could think about one that might be a bit more suited.

Maybe i could also use some tilt sensors for the minute stuff and the gyros for the large angles of correction, or would it be better to get 3 accellerometers and 3 tilt sensors instead? On my uav thing (not got any non standard RC bits on it at the moment) I have an autopilot system using 4 LDRs in tubes, it then uses comparators to detect if the aircraft is lined up with the horizon, i could make a more compact version of this.

PS. tut tut timc, using 35mhz on a surface craft (your 3pi) :stuck_out_tongue:

Currently designing an aircraft for a modelling magazine, hoping to get some money for my electronics project from it!

The general idea with gyros and accelerometers in an IMU, as I understand it, is that over long times (~1 min) your average accelerometer reading tells you which way down is, since the acceleration produced by turns and spins will tend to average out to zero g’s in any particular direction. The gyro lets you compute your angle during those maneuvers, but it drifts over time, so it needs to get reset by the reading from the accelerometer.

I have done this in one axis on ATmega168, and it was close to the limit of what the processor could handle (at least with my really simple implementation). I think it would be pretty hard on the F84.

I think the tilt sensor will not give you anything more than what the accelerometers give you. How would you use them?