Newsgroups: sci.electronics From: cs911225@ariel.cs.yorku.ca (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 ****************************************** Theory: 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 demodulator. ****************************************** Conventions: 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 output. ****************************************** Index: 1. A common protocol 2. Sony SIRCS 3. "JF" - Japanese format 4. Denon format ****************************************** Protocol 1 ---------- Attributed to: Ken Willmott (yku01468@human.yorku.ca) Description: 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 (coleman@f69.n233.z1.fidonet.org) Description: 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 "zapper.txt". 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: bbb@kuhub.cc.ukans.edu (Brett Bennett) Description: 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: DC LSB->MSB, NOT-DC LSB-MSB , FC LSB-MSB , NOT-FC LSB-MSB 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 deck perhaps) 44 Toshiba SV-771 VCR The FCs share great commonalty across a particular brand ( for instance, FC 1C is power toggle on all the Pioneer devices) but there is no correlation to the Toshiba VCR (power toggle is 12.) The FC are too numerous to list here, and only good for a particular brand anyway. I found that the TV (RCA) used the same bit times as the JF but it sends a total different code, (24 bits as I recall) and had a slightly different preamble. ****************************************** Protocol 4 ---------- Attributed to: ric-mommer@uiowa.edu Description: DENON Version: 3.2 Date: 15 nov 93 Code length: 15 bits Carrier: 32kHz Transmits code + code XOR #7FE0h header: None one: 275us pulse + 1900us space zero: 275us pulse + 775us space Space between transmissions: 43ms ****************************************** End of protocol.txt
Back to the ePanorama.net main page | Back to the ePanorama.net documents page
Send feedback about this page | Recommend this page to a friend