IR receive protocol for toy helicopter

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 A Multi-Protocol Infrared Remote Library for the Arduino 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, Silverlit Protocol - JRL - joint robotics lab, 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.