IR receive protocol for toy helicopter

Does anyone know of a library capable of reading the IR data sent from one of those toy helicopter remotes? I believe it is 32 bit (1 byte for throttle, 1 for turn, 1 for forward/backward, and 1 for trim). I was able to use the IRremote library succesfully with a car stereo remote but it could not decode the heli remote. Any suggestions? I want to use the remote to drive my robot.

There's a sketch at

One of the sample sketches we provide for the Gadget Shield shows how to decode any infrared remote control, save the pattern in EEPROM, then play it back on command:

It's the "Universal Remote Control" sketch. It should work with any IR decoder/transmitter and is not specific to our url=]Gadget Shield[/url].

-- The Ruggeduino: compatible with Arduino UNO, 24V operation, all I/O's fused and protected

That depends, which helicopter?

I've added the protocol (at least for receiving, I've had no need to transmit) to the IR library located here for the helicopter I've got which is an Air Hogs something or other.

Depending on which one you have, the protocol may differ.

I found a good description of the protocol here,, although I had to do some additional experimenting to get the checksum working, which was desirable as otherwise I had some unwanted motions at times.

Two things to consider, if the remote you are talking about is the one I'm using:

The left stick, the one used for the throttle has 16 positions (4 bits of data sent). If the stick is at the default position of "0", i.e. all the way down, the remote stops transmitting after a few seconds. If the throttle is at any other value, the remote continuously sends the position of the sticks and trim buttons several times each second. You only have three bits of left right data from the other stick, so turning will not be that fine.

The left stick can also be modified to rest in a center position which I found desirable for two reasons. It keeps the control from going to sleep since it doesn't rest at 0 throttle, and my robot reacts differently depending on whether it gets regular updates from the remote or not which basically gives me another single bit channel of communication, effectively a carrier detect. It also makes it a ton easier to control forward and reverse since the spring originally was defaulting to full reverse.

Anyway, let me know what kind you have and I can probably help.

I am using the "Protocol" helicopter, what a coincidence...thanks for the help

So is the library I linked to the remote library that you have been trying to use?

If so can you please load the IRrecvDump example sketch and post to here the data that it outputs when you have the remote in various configurations, i.e. full throttle, center left stick or sticks at neutral, left trim pressed. I've seen a picture of the remote units for protocol helicopters and they look pretty much identical other that decals, so there is a chance they use the same protocol.

But I guess we will find out if you post some data.