Newsgroups: sci.electronics
From: [email protected] (KEN E WILLMOTT)
Subject: IR codes (infrared remote protocol list)
Organization: York University, Dept. of Computer Science
Distribution: uk
Date: Thu, 14 Apr 1994 14:46:36 GMT

* Protocol.txt

This document attempts to catalogue all existing infrared remote
control protocols. If you wish to add a new protocol, first
ascertain that it is not already in the catalogue. Then use the
catalogue listings as a guide to making your entry.

Revision history:

Date Name Action
---- ---- ------

94/03/15 K. Willmott Created
94/04/03 K. Willmott Added JF and Denon formats


Most infrared remote controls communicate using an identical
carrier scheme. At the transmitter, a 38Khz or 40Khz square wave is
gated by a logic signal of no more than about 1Kbps. The resulting
signal is fed to one or more infrared emitters. The most efficient
pulse duty cycle is 50%.

The reciever circuit consists of a photodiode, a preamplifier, and
a demodulator circuit. This combination is commercially available
as the Sharp GP51UX, and IS1u60x. The preamplifier contains a
bandpass filter which limits the reciever's sensitivity to about
+/- 2Khz, near the centre frequency.

An AGC circuit adjusts the incoming level to the demodulator, which
explains the presence of a long leading pulse in many of the
protocols. This allows the reciever to stabilize its AGC circuit,
prior to the reception of the bitstream.

The output of the reciever is a binary bitstream, corresponding to
the original modulation signal at the transmitter. It is often an
open collector pull-down. Note that this signal is active low, so
that "ones" in terms of the carrier signal appear as "zeros" at the


1) The presence of IR modulation is referred to throughout this
document as a binary "one", and its absence, a "zero". This is to
avoid confusion, should future receivers adopt a non-inverting


1. A common protocol
2. Sony SIRCS
3. "JF" - Japanese format
4. Denon format


Protocol 1

Attributed to: Ken Willmott ([email protected])


This code consists of two main types of packet. The first is a
normal packet which indicates that a certain key has been pressed.
The second is sent repeatedly while a key is held down. This repeat
packet is devoid of information, consisting only of an AGC pulse
and one stop bit.

The normal packet consists of an AGC pulse, a pause, and 50
consecutive information bits. Each one of these 50 bits is made up
of two parts. The first part conveys the binary information. The
second part is a stop bit, always a zero.

It is important to realize when you are dealing with this protocol,
that some equipment sends a few less than 50 bits, say 48 or 49.
The best policy is to treat these as incoming zeroes.

It is possible that these bits somehow represent fewer bits through
some unknown encoding scheme, for example, bit position modulation.

Timing Summary:

Single Keypress packet:

Signal Duration Polarity
------ -------- --------
AGC Pulse 9.15ms 1
Pause 4.33ms 0
data bit 750us transmitted data
stop bit 375us 0

"held down" packet:

Signal Duration Polarity
------ -------- --------
AGC Pulse 9.15ms 1
Pause 2.10ms 0
stop databit 750us 1

time till next
packet 38.6ms 0


Protocol 2

Attributed to: Scott Coleman ([email protected])


This is a Sony specific protocol, transmitting 12 information bits
comprising a 5-bit device ID followed by a 7-bit command code.
These bits are transmitted least significant bits first.

In this scheme, an AGC pulse of 2.4 ms. is first transmitted,
followed immediately by the 12 databits. Each databit consists of
600 us. of logic zero, followed by either 600 us. and 1200 us. of
logic one, representing a "0" and a "1" databit respectively. The
total packet length is fixed at 45 ms.

Further information is available in Scott Coleman's file

Signal Duration Polarity
------ -------- --------
AGC Pulse 9.15ms 1

databit = 0 0.6ms 0
0.6ms 1

databit = 1 0.6ms 0
1.2ms 1

total length 45.0ms


Protocol 3

Attributed to: [email protected] (Brett Bennett)


I can tell you about what I call the "Japanese-Format."(JF)
I call it this because my VCR (Toshiba) and my Stereo
(Pioneer) both use the same format, while my TV (RCA) uses a
completely different format. It would be interesting to see
if other Japanese manufactures are using same format as
well. As I'll explain in a moment, the JF allows for 256
different devices to be controlled, so it is possible that
each manufacture could have been allocated a range of
numbers. Then again it might just be coincidence. A
picture would really help here, but I'm not up to trying to
draw an ASCII graphic.

The JF consists of 3 parts. The first part is what I'll
call the preamble. It is a 8 ms wide pulse of the carrier
followed by 4 ms of no carrier. ( In case you don't already
know the carrier is an IR light beam modulated at 40 KHz. My JF
equipment uses 40 KHz , while my RCA TV uses about a 36 KHz
carrier. This made my IR controller that I built more
complicated because the difference was enough that I
couldn't use as single time base. More on the controller
later.) The second part of the code is 16 bits of data.
The first 8 bits are what I call the Device Code(DC),followed
8 bits that are the logical not of the preceeding 8 bits(DC).
(This apparently is used as a checksum to insure data validity.
and protect against random noise.)
The third part is 16 more bits of data, the first 8 being
what I call the Function Code (FC). This FC is then followed by
its logical NOT as was the DC.
This provides the ability to control up to 256 different devices,
each having up to 256 functions. There appear to even be some
special sequences, like for my CD deck, which consists of two JF
frames back to back that cause special functions to occur.
In general however, most functions are controlled with a
single JF frame.

The timing of the data is as follows:
Each bit cell is proceeded by an IR pulse that is about .6
ms long (600us). It is then followed by a no-carrier period
that is ether .4ms long or 1.2ms long. A zero is sent if
the off period is .4ms, and one is sent if the off period is
1.2 ms. Another way of thinking about it is, a 0 is bit cell
who's total time is about 1 ms, and a 1 is a bit cell who's
total time is about 2 ms, i.e. pulse period modulation.
The DC and FC are sent LSB first. So in time it looks like:


The DCs I know are: (all numbers in hex)
A5 Pioneer amp
A4 Pioneer tuner
A2 Pioneer CD
A1 Pioneer cassette deck.
(I've wondered what A3 might be, open reel tape deckperhaps)
44 Toshiba SV-771 VCR

The FCs share great commonalty across 8]
Date : 951003
Author: David Novick
E-mail: [email protected]
Stamp model : BS1-IC
Code available: YES
Filename : N/A
Description :

Using two stamps, a robot with six legs (2 degrees of freedom each)
was able to walk and turn (at this stage, not very gracefully).

Title : EXPBOT Robot controlled by Stamp [# 009]
Date : 951009
Author: Marvin Green