Data bits:

0-Bit 0,61 ms high
0,61 ms low
1-Bit 1,22 ms high
1,22 ms low

A control signal for a Challenger helicopter consist of the Header, 16 data bits followed by one stop bit:

0,60 ms high
0,60 ms low
1,28 ms high
3,00 ms low
1,92 ms high
0,60 ms low

Channel (2 Bits)

Channel Bits (decimal)
A 01 (1)
B 10 (2)

Throttle (4 Bits)

Like the PiccoZ the remote control sends 15 different values here, from 0 (stop) to 14, but the Challenger helicopters recognize a 16th value, without switching off the tail rotor.

Yaw trim (2 Bits)

Adjustment Bits (decimal)
none 00 (0)
right 01 (1)
left 11 (-1)

Yaw control (3 Bits)

Stage Bits (decimal)
center 000 (0)
right 1 001 (1)
right 2 010 (2)
right 3 011 (3)
left 1 111 (-1)
left 2 110 (-2)
left 3 101 (-3)

Separator (2 Bits)

Two 0-Bits as separator.

Fire command (2 Bits)

If these last two data bits are both sent as 1 the third function gets activated on the helicopter. Its an infrared LED which causes the other helicopter to stagger if it “hits” it.

Currently this function doesn’t work with the AVR firmware, because it is just sent once by the remote control and its hard to catch this signals.

Separator (1 Bit)

One 0-Bit as separator.

Check sum (2 Bits)

The check sum is calculated for the first 13 data bits (channel – tail rotor speed) by applying (bit wise) XOR 1 for every 1-bit at an even position and XOR 3 for every 1-bit at an odd position to the check sum (position counter starts at 0). The fire command has a different check sum algorithm, maybe XOR2 (untested).

The check sum is calculated by the microcontroller.

Stop bit (1 Bit)

Single 0-bit with same encoding as data bits.