(2014-05-01) The Infrared Colors of Light-Emitting Diodes (LED)
Standard IR diodes emit around a 940 nm wavelength (319 THz).
Various manufacturers have used different infrared wavelengths in consumer electronics,
from 830 nm to 950 nm or so (see table below).
The spectral bandwidth of a typical IR diode is around 50 or 55 nm.
Wavelength is the one parameter that can't be changed in "universal" remote controls
meant to operate with a wide variety of receivers (unless they use several
separate IR transmitters). Most of those just use a single IR diode somewhere in the
middle of the above range and drive it at a higher current to compensate
for the loss of sensitivity resulting from spectral mismatch.
In the very near infrared (850 nm or so) bright diodes are actually
detectable by the naked eye as a faint red glow.
This signature in the visible spectrum makes this type of LEDs unsuitable
for military night-vision applications.
By contrast, a 940 nm LED is totally invisible (but can be detected easily by
digital cameras).
The advantage of the lack of a visible signature is unclear in non-military applications.
The type of infrared used in consumer electronics is always in the very near-infrared
band, conventionally defined as light with a wavelength shorter than 1000 nm.
In that range, the best detectors are reversed-biased
PIN diodes
(what's measured is the leakage current which is much greater for a PIN
diode than for a PN diode and increases when light hits the diode junction).
Such a diode is usually associated with an integrated circuit, which provides
preamplification and tuning to a particular
modulation at some ultrasonic frequency for better noise immunity and/or
rejection of infrared light unrelated to the desired signal.
(2014-04-24) Introduction: Standard Modulating Frequencies
38.4 kHz for serial data.
Also: 30, 33, 36, 36.7, 38, 40, 56 and 455 kHz.
There are no legal restrictions for the use of IR beams to transmit any kind of data.
Modulation at a definite frequency is just necessary to distinguish the signal
from other sources of near infrared, from daylight to fluorescent lighting.
Data is encoded by turning this modulated carrier on and off.
The most common modulations used in commercial products are
between 30 kHz and 56 kHz or so.
Well outside that range,
455 kHz modulation of IR beams seems to be used exclusively by
Bang & Olufsen (the Danish manufacturer of upmarket audio products).
Standard parts for this modulation band are becoming difficult to locate.
That allows data transmission at about 10 times the rate of other
current IR protocols (up to 19200 Bd or so,
as studied in details below).
The dominant standard is
38 kHz (or, equivalently, 38.4 kHz) but the other
frequencies are well supported by a new generation of mass-produced IC receivers.
A few compagnies, including Nikon, do use explicitely the
data-friendly frequency of exactly 38.4 kHz rather than
a fuzzy rounded specification of 38 kHz.
Modulation at 33 kHz (more precisely, 32768 Hz)
has been used since 1989 for one-way communications from HP scientific calculators
to the nifty little HP 82240B thermal printer
(now out of production) at 78 characters per second, with error-correction codes
(the raw bit-rate is about 1170 Bd).
Thomson and RCA use 56 kHz modulation.
Common IR detection bands and special crystal-calibrated frequencies
(2014-05-11) Nikon ML-L3 (38400 Hz)
& Canon RC-6 (32768 Hz)
Many camera brands make their own one-button infrared shutter triggers.
This is probably the simplest possible type of remote control;
only one button and one type of action. The camera itself can
be programmed to know what to do upon receipt of the IR signal
(immediate or delayed shutter release, etc.) but that's not our concern here...
Canon has a two-position switch on their RC-6 remote
(a straight replacement for their old RC-1)
to allow two types of actions
(immediate or 2-second delay) corresponding to two different IR signals to send to
the camera when the main button is pressed.
Nikon ML-L3 :
The signal from genuine Nikon ML-L3 units has been back-engineered and described with
sufficient precision (see footnotes below). The modulation is known to
be precisely 38.4 kHz. It stands to reason that the observed
intervals are nominally a whole number of carrier cycles:
1 / 38400 = 26.041666666... microseconds
The sequence for the ML-L3 seems to be:
Leader pulse of 80 cycles.
Pause for 1024 cycles.
Burst of 16 cycles.
Pause for 64 cycles.
Burst of 16 cycles.
Pause for 128 cycles.
Burst of 16 cycles.
Repeat the above after a long pause of 2400 cycles.
We may abbreviate this as: 38400 Hz(/80\1024/16\64/16\128/16\2400)2
(2014-05-04) Bit Encoding and Frame Formatting
There are specific on/off patterns to start, send a 0, send a 1 and stop...
Data bits (along with start/stop signals and parity checks) are encoded by switching the modulated
IR beam on and off at the boundaries of modulation cycles (a burst thus always consists
of a whole number of cycles).
Because of the noisy infrared environments caused by modern fluorescent lighting,
current IC detectors are no longer able to handle a continuous modulated IR beam.
Instead, they expect only short bursts (whose duration is often fixed).
The best commercially available detectors (discussed below) can handle up to 2000
such pulses per second, if they last at least 6 carrier cycles and are separated by a recovery time
of at least 10 cycles. Those short bursts can encode bits in several different ways.
The most popular are:
Pulse distance coding (measuring the interval between falling edges).
Pulse width coding (measuring the interval between raising edges).
When the width of bursts is constant, as is usually the case in modern IR protocols, the last
two encoding methods are equivalent. The first one has many advantages over them.
In almost all protocols, the raw data is organized into short frames of fixed length
starting with a specific pattern of bursts to get the receiver's attention and anchor the timing
before the data and validating checksums are sent (those can sometimes be used to recover
the original data in case of a single bit error within a frame).
Frames are normally independent pieces of data which are transmitted asynchronouly
(the idle time between frames can be unlimited, in most cases). However, in the world of remote
control keypads, a frame is often sent just to indicate that a certain key is
still being pressed.
Each time a key is released, the state of the so-called "toggle" bit is changed.
The value of that toggle bit is sent with every frame, so that the receiver can tell the difference
between a key being maintained down or pressed several times ("2" and "22" may not mean the
same thing).
(2014-05-16) Discrete IR Codes
Commands which put the controlled device in a known state.
IR commands are one-way only, with no feedback.
Typically, the "power" button on a TV remote turns the set on if it's off
but will turn it off if it's on...
If you want to make sure your TV is on as part of a complex sequence of control commands
that will enable you to watch a movie from a particular source, say, you need a function
which is not available on an ordinary remote.
This "make sure the TV is on" command is an example of what has become known
as a "discrete" command code.
Such codes cannot be obtained by decoding the ouput of ordinary remote units.
They are typically compiled in specialized databases for use by
programmable "universal remotes" which control several units of different
brands for maximal flexibility.
Information about discrete codes was either provided by friendly manufacturers
or discovered by trial and error...
Units without discrete control codes are less friendly and, well, less useful!
(2014-05-04) The infrared detectors from Rohm (Kyoto, Japan)
Rohm produces IR receivers
nominally centered on 37.8 or 37.9 kHz.
The 0.5% discrepancy with the nominal frequency heralded by other manufacturers is hardly
worth noticing in practice. However, it is rather curious and I don't have an explanation
for it at this time...
It could simply be the result of tests on the final products,
or there could be a deeper explanation, since they give the same specification
for detectors using different technologies which could not possibly have been produced
with the same tools.
The central frequencies Rohm semiconductors advertises for their RPM6900 series are
33.3, 36.0, 36.7, 37.8, 40.0 and 56.9 kHz
(respectively identified as RPM6933, RPM6936, RPM6938, RPM6940 and RPM6957).
I have also been unable to find what IR wavelength the Rohm receivers are designed for!
They produce high-output emitters peeking at 850 nm
(SIM-030ST)
or 870nm
(SIM-040ST)
and seem to indicate that such choices are better than the standard choice of 940 or 950 nm.
We may guess that their receivers would spectrally match that, but it's unfortunately just a guess.
(2014-05-17) RECS-80 Protocol (Philips, 1988)
38 kHz modulation was 1/12 of a 455 kHz clock (37.91667 kHz)
Before developping the more successful RC-5 system, Philips had proposed
a system they called RECS-80. At least two ICs supported that system
(SAA3008 and ST M3004).
It's unclear to me what commercial products, if any, made use of the system before it was superseeded
by RC-5.
The SAA3008 could work with any resonator between 350 kHz and 500 kHz
(nominally 455 kHz). The modulation frequency was obtained by dividing by 12 the frequency
of that master resonnator and could therefore be between 29.17 kHz and 41.67 kHz.
Presumably, the emitter and the receiver were supposed to be tuned to the same frequency, though.
The intention was certainly to always use the nominal frequency of 455 kHz
for the master clock and, therefore, 38 kHz (37.916666...) for the IR beam modulation
at a 1/3 duty cycle (on for 4 clock cycles, off for 8 clock cycles).
The specs for the M3004 are clear on that point.
In that scheme, bursts were speparated either by two units of time to encode a "0" bit or three units
to encode a "1".
Each burst has a fixed width of 0.5 ms (28 cycles).
A logical "0" is a burst followed by 1 ms (56 cycles)
of silence (for a total duration of 1.5 ms).
A logical "1" is a burst followed by a space of 2 ms
(2.5 ms total duration).
A frame starts with a 4 ms burst (224 cycles) followed by a 4 ms space.
The 12-bit data is then sent most significant bits first,
first a 4-bit address then an 8-bit command. The complements of those
12-bits are then sent in the same order to validate the data.
The total duration to this point is always 56 ms.
An 8 ms stop space brings the duration of a frame to 64 ms.
The same frame is sent repeatedly as long as the key is pressed.
(No toggle bit?!)
(2014-05-02) The HP 82240B printer uses 32768 Hz modulation
Nominal wavelength is 940 nm (acceptable from 840 to 1000 nm).
The HP 82240B Infrared Printer is out of production now
but it has been the standard printer for HP calculators since 1989.
This little printer is still supported by the HP-50G
(albeit with a very limited range) but not by the newer
HP Prime, which has no IR link.
Its modulating frequency is based on the most common type of crystal available:
32768 Hz (used to derive a precise 1 Hz signal in "quartz" timepieces,
using 15 cascaded bit counters). Modern ICs with a nominal frequency of 33 kHz
are ideal to receive signals intended for the 82240A or 82240B printers.
A basic pulse consist of at least 6 and no more that 8 carrier cycles (50% duty cycle nominally).
The bit time is equal to 28 cycles, divided into two half-bits of 14 cycles each.
A "1" is a half-bit starting with a pulse and a half-bit with no pulse.
A "0" is a half-bit with no pulse and a half-bit starting with a pulse.
A "START" consists of 3 consecutive half-bits starting with a pulse.
A "STOP" consists of at least 3 consecutive half-bits with no pulses.
A frame consists of a START followed by 4 error-correction bits, 8 bits of data and a STOP.
Data is sent most sighificant bits first. The error-correction bits are such that
the 4 sets of bits marked in the following table have an even number of "1" bits.
Error Correction
Data Bits
11
10
9
8
7
6
5
4
3
2
1
0
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
Among the current generation of infrared IC detectors, it seems that only the family of the
TSOP34333
(TSOP34133, TSOP32133, TSOP34333, TSOP32333, TSOP34533, TSOP32533)
can match the specification of HP to receive signals intended for their nifty little
thermal printer. Those ICs can detect pulses of 6 cycles, as required
(other ICs need 10 cycles or more).
Among those, Mouser
currently stocks only the TSOP32133
and TSOP34133 which differ only by their pinouts (I prefer the latter).
Both feature the least vigorous type of the new automatic gain controls
(Vishay's AGC1) recommended for "legacy devices" with lesser
immunity to the infrared noise created by fluorescent lighting.
Grab a few if you want to listen to what your HP calculators have to say...
(the part costs less than $1).
(2014-05-21) Philips Pronto, a system of universal remote control units
The most versatile universal remote controls ever made are discontinued.
The original model was the Pronto TS-1000 which sold for
$400 (not including an "optional" $80 battery charger).
Pronto remotes have the ability to learn directly from other
remote control units the IR codes they are supposed to simulate.
They can also receive entire databases of control codes through a built-in
serial interface using a standard 3.5 mm audio jack.
Various format can be used for those databases, including the raw
"Pronto HEX" codes which is especially useful for storing learned IR commands
without analyzing the overall logic of any particular system.
Pronto codes first specify the modulation frequency
of the IR beam, then use the duration of a carrier cycle as a unit of time
(this is precisely what most remotes actually do, possibly all of them, but the time unit
so specified is always short enough to measure any timing with sufficient accuracy to
reproduce is effectively).
The rest of the recorded codes simply consists of a certain number of "burst pairs",
each composed of the number of cycles the beam is ON (that's always an integer
in a properly designed IR emitter) followed by the number of cycles it's OFF
(there's no technical reason for this to be an integer but it rarely fails to be,
if ever, and the Pronto units assume this when they measure or record data).
(2014-05-01) Serial protocols on an IR beam modulated at 38.4 kHz
Top notch is: 2400 Bd, 1 start bit, 8 data bits, 1 stop bit, odd parity.
When a modulated IR beam is turned on and off to transmit data, the cleanest signal
is obtained when the digital clock and the modulating carrier are synchronous.
The smallest unit of time is taken to be one period of the IR modulation cycle and
the duration of a bit is a constant number of such cycles.
In that context, it's best to select a 38.4 kHz carrier, so that
the duration alloted to a bit in a standard 2400 Bd transmission
is exactly 16 cycles.
The datasheet for the
TSOP48338 would then
call for the representation of a "1" to be a pulse of 6 cycles followed by 10 cycles
of silence. A "0" is represented by 16 cycles of silence
(the widespread TSOP4838 requires 10 cycles bursts and 12 cycles of rest, which isn't good enough here).
Also, note that the TSOP48338 allows up to 2000 short bursts per second,
which is satisfied in 1-8-1-odd serial communication at 2400 Bd
since each 11-bit frame in that protocol includes at most 9 bursts, so there are at most
2400 (9/11) < 1964 bursts per second
(and an average of only 1200 burst per second with random data).
However, there is an additional requirement in
asynchronous
communications, that the start pulse must be at least half as wide as the interval alloted to a regular bit
(here 16 cycles). To satisfy this, we stretch the start pulse to 10 cycles instead of 6.
With that caveat, this IC supports an uninterrupted serial data stream in the specified format (barely so)...
Stretching the start pulse by 4 cycles makes each 11-bit frame last 180 cycles instead of 176.
As a frame conveys only one byte of data, the effective data rate is 102 B/s or 6 kB/min.
The 1% discrepancy between 38.4 kHz and the nominal frequency of 38 kHz can be essentially ignored,
as the central frequency of the receiving filter has a tolerance of 5% and a 3 dB bandwidth of 10%.
Being at most 6% off-center, there's at most a 4 dB attenuation at 38.4 kHz,
relative to optimal sensitivity.
The integrated IR receivers for consumer electronics aren't always suited for continuous
serial transmission.
Those receivers are sophisticated superheterodyne receivers with automatic gain control (AGC).
They are fine-tuned for noise-rejection in the remote control of consumer-electronics devices,
like televisions and such, where the duration of the IR transmission is a small fraction of a second.
To maximize sensitivity, they have maximum gain when waiting to receive
a modulated IR signal. The gain decreases when IR is received to avoid swamping the circuit.
If a long transmission is attempted, the gain may become so low that radiation will no longer
be detected at all.
Radio-Shack used to sell a small IR receiving module with a 15 mm metal shielding
(the discontinued NJL74H380A from
JRC / NJR)
which was able to handle a continuoue carrier wave
(this IC may still be available
while supplies last).
Now, what Radio-Shack sells under the same part number [!]
(276-640)
is a different module, based on the TSOP4838.
This component may be more sensitive than the old one in typical remote-control applications,
but the module simply can't handle a continuous carrier wave at 38 kHz.
Critical timing considerations do not allow the widespread TSOP4838 to be used beyond 1200 Bd
(at 1200 Bd, each bit lasts 32 cycles with a constant burst duration between 16 and 20 cycles,
without a wide start pulse). Even so, the TSOP4838 has a limit of 800 bursts per second
and could not handle long communications at 1200 Bd which may require up to 982 pulses per second
(although the typical average is only 600 Bq).
Thus, the VSOP4838 is only safe for 600 Bd communications.
The related VSOP4438 allows 1300 bursts per second and is thus suited for 1200 Bd.
I would still rather recommend the TSOP48338 at up to 2400 Bd, provided
the start pulse is stretched at the emitting end and/or at the receiving end
(where it doesn't hurt to stretch all pulses alike before feeding them to a
UART;
I'd recommend both types of stretching for robustness in critical applications).
Although I haven't yet put this to an actual test, it seems fairly clear to me that
Vishay tailored the specifications of the TSOP48338 to make 2400 Bd possible.
The reason why the detectors that accomodated continuous waves are no longer produced
is that the evolution of fluorescent lighting technology has created environments with too much
infrared noise for this type of detectors.
Here is the key to understanding Vishay part numbers in the current generation of integrated IR receivers:
Meaning of the digits following the Vishay suffix TSOP
With the notable exception of the
Musical Instruments Digital Interface serial bus
(MIDI, at 31250 Bd)
modern standard serial communications run at baud rates equal to 1200 or 1800 multiplied into a power of 2 :
The Arduino Due can send at 921600 Bd but few other serial devices do.
With the TSOP34156,
3600 Bd is possible on a 57.6 kHz IR beam.
(The limit of this IR technology is about 19200 Bd using a 455 kHz carrier
with a discontinued TSOP7000, as investigated in the next section.)
(2014-05-04) The ultimate infrared link with "455 kHz" modulation
Achieving 19200 Bd with an infrared beam modulated at 460.8 kHz.
Apparently, only the prestigious Danish brand
Bang & Olufsen uses IR beams with 455 kHz
modulation for remote control applications. This is definitely an overkill but we may have them to
thank for a protocol that allows much higher data rates than what has been
discussed here so far.
In this section, we'll push that technology to achieve reliable serial transmissions
at a rate of 19200 Bd over tens of meters (possibly hundreds) on an infrared beam.
To receive IR signals (870 nm) modulated at 455 kHz, Vishay
introduced in 2001
the TSOP7000
(then branded Vishay and/or Telefunken).
The part is no longer manufactured but thousands are still available through
AERI. They go for about $5 on e-bay.
The TSOP7000 works best with light from an 870 nm infrared LED.
For normal operations, it must receive a radiant flux of at least 1.5 mW/m2
in this case (this corresponds to a 20 m range with an obsolete
TSHF5400 at 300 mA).
The receiver remains usable with a 940 nm diode (12 m range with a
TSAL6400 at 300 mA).
With lenses at both ends, Ioannis has
reported a range of 120 m,
using a TSHG6210 (850 nm) driven at 180 mA.
Below is a summary of the characteristics of this and other relevant high-performance IR emitters manufactured
by Vishay. All of them have a nominal current of 100 mA which
is to be applied for no more than 20 ms at a time.
More importantly, they allow a "peak" current of 200 mA
in pulses of less than 0.1 ms with a duty cycle of 50% or less.
Thus, our 455 kHz 10-cycle bursts can be routinely driven at or near 200 mA.
Interestingly, all the diodes listed bellow can withstand a surge current of at least 1 A, which can be useful
to trigger an "out of range" signal easily detectable at a distance of more than twice the normal range.
The recommended "optical test signal" (see diagram below) normally consists of 10 cycles
of the 455 kHz carrier at a current of 300 mA
(detectable 22% beyond the distance at which a 200 mA signal fades from view).
However, the short duration of such a burst (0.022 ms)
allows us to drive it occasionally at a huge current of 1A, which makes it detectable 2.23 times
further than 200 mA signals. It's not prudent to transmit regular data this way, though.
Radiant intensity is proportional to current (values shown are for 100 mA).
If an emitter isn't spectrally matched with the TSOP7000 receiver, the range is reduced by a factor
given as a percentage in the next-to-last column.
At this time, the spectral correction factors thus given are only educated guesses,
which are neither experimental results nor proper derivation from the spectra of the emitters and the
known spectral sensitivity of the TSOP7000 receiver. Sorry.
Designing the complete interface :
The output of the TSOP7000, is pulled low (its active state) with some delay and some jitter
when sufficient infrared activity is detected around 455 kHz, as illustrated
by the following waveforms from the datasheet:
TSOP7000 Timing parameter values (in microseconds)
Definition
Symbol
Minimum
Typical
Maximum
Duration of pulse input (9.5 cycles)
tpi
20.6
Time delay after detection
tdon
18
18
30
Jitter of leading edge
jtdon
Duration of pulse output
tpo
13
30
32
Jitter of output pulse width
jtpo
Separation time between bursts
26
The short bursts (10 cycles) which are making the best use of the receiving capabilities of
the TSOP7000 are too narrow to be used directly by a standard serial interface (UART)
especially in the presence of jitter. To remedy that,
we stretch the active pulses to make sure that their duration is comfortably between 50%
and 100% of the duration alloted to each serial bit
(failure would occur if the start bit at the beginning of a serial frame was ever out of those bounds).
We achieve this with an NE555 wired as a monostable, choosing the timing values of R and C
so that the following inequalities are comfortably satisfied (where B = 19200/s is the Baud rate).
0.5 < R C B Log 3 < 1
With C = 10 nF and B = 19200 Bd,
the proper standard value for R is 3.3 kW
(4.7 kW is too tight and 2.2 kW
is definitely too little).
If we ever need another baud rate B, we'd want R.C.B to be pretty close to 0.644.
Resistors in NE555 monostable circuit for a timing capacitor of 10 nF
19200 Bd
9600 Bd
4800 Bd
2400 Bd
1200 Bd
600 Bd
3.3 k
6.8 k
13 k
27 k
56 k
100 k
We may also use a separate NE 555 (or, rather, half a 556 using CMOS technology)
with a time constant of half a second or so with a visible LED at its output which will stay lit
long enough to notice when any radiation is detected, no matter how briefly.
This helps check the optical part of the link and provides an indication of its noise immunity.
Emitter :
On the side of the emitter, we have a "455 kHz" clock and the duration of a bit
at 19200 Bd can be taken to be 24 cycles (with an acceptable error of 1.26%).
Resonnators at 460 kHz are also avalaible to modulate the carrier 1% faster
(still very much acceptable by the TSOP7000) where a 24-cycle bit duration yields
a baud rate which is only 0.17% off.
For a very precise baud rate, however, we need a 460.8 kHz clock
(which is only 1.27% off the nominal center frequency of the TSOP7000 receiver).
This is best obtained from standard modern crystals,
rather than "intermediate frequency" (IF)
455 kHz resonators inherited from a fading radio technology.
Acceptable frequencies are 0.4608 MHz multiplied into some
power of two.
Common baud generators use
1.8432 MHz (four times 460.8 kHz)
or the next five possibilities:
3.6864 MHz,
7.3728 MHz,
14.7456 MHz,
29.4912 MHz and 58.9824 MHz.
Curiously, a "typo frequency" of 14.4756 MHz
(instead of the correct frequency of 14.7456 MHz) is embodied in crystals sold
on a fairly large scale.
That frequency doesn't have any particular significance;
it just comes from somebody's mistake, replicated over and over again by two
crystal manufacturers: Abracon and
Epson
(Seiko).
Now, we want our IR signal to be as detectable as possible in the presence of noise.
For a given power, this is best achieved by using a lower duty cycle and higher peaks of emission
which stand out above the noise better.
The TSOP7000 requires the duty cycle of the carrier signal to be between 10% and 50%.
We can easily make it 12.5% by using an oscillator at 8 times the carrier frequency,
using a widely available 3.6864 MHz crystal and turn on the emitter
for one full cycle out of eight during a burst.
This approach requires an emitter which can be switched on and off fairly rapidly,
which makes the "cutoff frequency" listed in the above table relevant to this application.