Source: © 2001, San Bergmans, Oisterwijk, The Netherlands
ITT Protocol

The ITT IR protocol is a very old one. It differs from other protocols in that it does not use a modulated carrier frequency to send the IR messages. A single command is transmitted by a total of 14 pulses with a width of 10s each. The command is encoded by varying the distance between the pulses.
This protocol used to be very reliable and consumes very little power ensuring long battery life. One big disadvantage of this old protocol is that it sometimes triggers false commands, for instance when you put a laptop computer with an active IRDA port close to the IR receiver.

Many consumer electronics brands used this protocol in Europe. Among them were: ITT, Greatz, Schaub-Lorenz, Finlux, Luxor, Salora, Oceanic and later also Nokia, to name but a few.

  • Only 14 very short IR pulses per message
  • Pulse distance encoding
  • Long battery life
  • 4 bit address, 6 bit command length
  • Self calibrating timing, allowing only simple RC oscillator in the transmitter
  • Fast communication, a message takes from 1.7ms to 2.7ms to transmit
  • Manufacturer Intermetall, now Micronas

Bit encoding

An IR message is transmitted by sending 14 pulses. Each pulse is 10s long. Three different time intervals between the pulses are used to get the message across: 100s for a logic 0, 200s for a logic 1 and 300s for the lead-in and lead-out.

ITT message

The preliminary pulse is used by the receiver to set the gain of the amplifier. Then follows a lead-in interval of 300s, after which the starting pulse is given. The first bit sent is always logic 0, which has an interval duration of 100s. This start bit can be used to calibrate the timing of the receiver. After the start bit follow 4 bits (MSB first) that represent the address of the message. After that a total of 6 bits (MSB first) for the command are transmitted. A trailing pulse should follow this command word. Finally another 300s interval follows before the very last pulse is given, functioning as a lead-out.

There are a few things the receiving software can check to verify the validity of the received message. The lead-out interval should be 3 times longer than the start bit time, which has a duration of 100s. Bit times should not be off by more than 20% of the start bit length for logic 0s, or 2x the start bit length for logic 1s.
Don't keep waiting for pulses after 360s after the last received pulse. It's very likely that the transmission is interrupted or no transmission took place at all if you have to wait longer than that.
The preliminary pulse serves only AGC purposes and may be ignored by the receiving software. Decoding of the message should start at the Start pulse.

Address and Command

A control message is divided into two groups, an address of 4 bits and a command of 6 bits. By convention the addresses range from 1 to 16, and commands range from 1 to 64. Before the address and command are sent, 1 is subtracted from both values to get them in the range 0 to 15 and 0 to 63.

Addresses are used in pairs. A pair of addresses is a value of 1 to 8 (0 to 7 actually), and its inverted counter part 16 to 9 (15 to 8 actually).
The lower value address is transmitted the first time a key is pressed. The address value of all subsequent messages will be the inverted value of this first address until the key is released. This enables the receiver to interpret repeat codes properly. Messages are repeated every 130ms as long as the key remains pressed.

The Transmitter

Intermetall has developed a few transmitter ICs for use in handsets. Later microcontrollers were used to facilitate the combination of TV, VCR and SAT remote control in one handset.

The SAA1250 was the first IR controller IC to be released. It can be set to generate 3 different address pairs. A fourth option is transmitting any of the 16 addresses. That option is rarely used, for it requires a manual setup procedure every time the power is lost.

The second generation of IR controller ICs are the IRT1250 and IRT1260. These chips are identical in operation and differ only in the operating voltage. The IRT1250 is intended for 9V operation, whilst the IRT1260 is designed for 3V.
The footprint of the IRT12x0 is the same as that of the SAA1250. The devices differ in addressing capability and current drive capacity for the output stage.

Two address pins are available to set the address pair used.

A1 A2 Addresses

H H 1 & 16
L H 3 & 14
H L 7 & 10
L L 4 & 13

Addresses 1 and 16 are always used to control TV sets. Other address pairs are not always uniquely linked to a particular equipment family.


The ITT protocol makes no use of a modulated carrier, so the previously mentioned IR receivers won't work for this protocol. Intermetall has created the TBA2800 for use with this protocol. It is a highly sensitive IR detection circuit and should be shielded completely inside a metal box that is connected to ground, leaving only a small hole just in front of the IR diode.

TDA 2800

There is actually not much more to be told about this IC. Just connect it as shown in the diagram and it should work. You can chose between a normal high going output, and an inverted low going output. It depends on the rest of your circuitry which one you should use.
In case of excessive interference you could reduce the sensitivity a little by grounding pin 6 via a 10kΩ resistor.

Pre-defined Commands

Some of the 64 possible commands are predefined. But unfortunately the definition of the commands is not as clear as with RC-5. You can find most of the pre-defined commands for TV purposes in the following table. TV commands use the address pair 1 and 16.

Command Function
2 Stand-by
3 TV
4 Ideal
5 Up
6 Down
7 Mute
8 P+
9 P-
10 Left / Bilingual
11 Right
14 Last
17 1
18 2
19 3
20 4
21 5
22 6
23 7
24 8
25 9
26 0
28 Zoom
30 X
32 Info
Command Function
35 -/--
36 Audio
37 Video
38 Clock
43 Brightness +
44 Brightness -
45 Saturation +
46 Saturation -
47 Volume +
48 Volume -
50 S
51 Red / Memory
52 Green
53 Contrast
54 Blue / Brightness
55 Yellow / Saturation
59 Menu
60 Auto
61 Text
62 OK / Prog
64 C