been pressed (and perhaps even what device this key is for). We first need to simplify the
problem so that we don’t have deal with too many "Pulse widths". We can easily do this
by representing the number in base 2, or binary. (I apologize if this now gets a little
technical, but in reality it already has). In binary there are only two digits to worry about
not ten as in decimal. Therefore we only need to have two distinct "pulse widths". If you
think about it, the periods of on and off will need to alternate. If they didn’t it would be
hard to judge their width. [Note: Other modulation schemes in particular RC5 do not use
PWM. RC5 uses Phase modulation. Luckily for us we never have to decode or figure out
the RC5 patterns because Philips has provided them as pure clean data.] Only one of the
widths needs to vary. Either the width of the ON period or the Width of the Off period.
In summary, IR transmission most often takes place by varying the on off times of
an IR emitter to represent binary numbers according to some well established pattern.
[Note: At this point I am going to assume that the reader has a basic
understanding of the binary numbering system. Not detailed enough to add, subtract or
multiply them, but enough to be able to form the decimal value of a binary number.]
Each manufacturer has the option of deciding just how big a number he wishes to
send to his equipment, and what meaning is given to that number (or numbers) when they
are received. Remember the environment through which the IR signals are passing (the
air) is noisy in a light sense. Bright sunlight, Fluorescent lights, all contribute to the
noise. Some manufacturers add additional "redundant" information such as sending the
numbers twice to ensure that they get to the equipment correctly. Some do not. I will
discuss those details when I discuss some of the more common manufacturer’s products.
The Philips ProntoEdit HEX Format This discussion is only completely valid for IR transmissions using Pulse Width
Modulation. Keep in mind that the sole purpose of the HEX data is to represent a series
of ON and OFF times for the IR emitter, and when the IR emitter appear to be solidly ON
its is rapidly flashing. The ProntoEdit HEX format uses a pair of numbers to represent an
on/off sequence. We will call this a "Burst Pair" (thanks to AHP). The first digit
represents an ON time and the second an Off time.
The question is how much time? What the burst pair really contains is the number
of cycles of the carrier for which to turn the light on and off. The carrier frequency
therefore acts as the clock (not totally true, but good enough for this discussion). To
illustrate the point, let us assume a carrier frequency of 40 kilohertz (that is 40,000 cycles
per second). This is a very common IR carrier frequency. One cycle of that carrier takes
1/40000 units of time or 25 microseconds. A "burst pair" of 48,24 would turn the IR
emitter on for 48*25 Microseconds, and off for 24*25 microseconds. A "burst Pair" of
24,24 would turn the IR emitter on for 24*25 Microseconds, and off for 24*25
microseconds. Because we are using binary numbers we only have two digits to represent
(0,1) as opposed to decimal where we would need 10 unique burst pair patterns to
represent the 10 decimal digits. We could for example decide the encoding of a "1" will
be represented by having the On period twice as long as the Off period, and a "0" by
60