Appendix – Op Codes

The following are the op codes that we decoded manually for each button.  They do not include the start code, brand-sensitive code, or stop code.  These were used to test the accuracy of our Atmel Mega 32 sampling and decoding.

Each 1 and 0 represents 0.5 ms and 111 represents 1.5 ms

1.                     10111010101010101010101110111011101110111011101110

2.                     10101110101010101010111010111011101110111011101110

3.                     10111011101010101010101010111011101110111011101110

4.                     10101010111010101010111011101110101110111011101110

5.                     10111010111010101010101011101011101110111011101110

6.                     10101110111010101010101110101011101110111011101110

7.                     10111011101110101010101010101011101110111011101110

8.                     10101010111010101010111011101110101110111011101110

9.                     10111010101110101010101011101110101110111011101110

Down               10101110101110101010101110101110101110111011101110

0.                     10101010101010101011101110111011101110111011101110

Up                   10101110101110111010101011101011101010111011101110

Vol Up             10101110101110111010101011101011101010111011101110

Vol Down        10101110111011101110101010111010101010111011101110

X                     10111011101011101110101010101011101010111011101110

Return              10111011101110111011101010101010101010111011101110

Power              10101110101011101010101110101110111010111011101110

Left                  10111010101011101010101011101110111010111011101110

Right                10111011101010111010101010101110111010111011101110

Mute                10101011101110111010101011101110101010111011101110

Example of calculation

Button 1

The following has been sampled and are elements 17 to 34 in the array.  These values represent long and short pulses of the button and not the start, stop, or brand-sensitive region.

10111010101010101010101110111011101110111011101110

After sampling, becomes

5 5 15 5 5 5 5 5 5 15 5 15 15 15 15 15 15

The last pulse is dropped because everyone has that

5 5 15 5 5 5 5 5 5 15 5 15 15 15 15 15

which becomes

0 0 1 0 0 0 0 0 0 1 0 1 1 1 1 1à 0b0010000001011111

which is then converted from binary to decimal

8287