Introduction
Introduction
The primary purpose of this document is to explain any peculiarities of the decoding of each protocol. Click in the list above on each protocol name to get any information specific to decodes with that name.If you don't understand the advanced information (IRP notation, etc.) at the start of each of those entries, don't worry about that and please don't let it stop you from reading the text below that. In many cases there is important protocol-specific information you will need in order to use the data from the decode.
Decode problems
The decoder only looks at one IR signal at a time. Sometimes it gives contradictory results for a signal. The best way to determine which result is correct is to compare with the decodes of other signals for the same device.Spurious decodes and non-robust protocols
Most IR protocols have enough internal consistency checks that the decoder can reliably tell whether that protocol is present in a learned signal and can reliably decode the device, subdevice and OBC numbers. If the signal is learned badly enough, the decoder may fail to find that protocol in the signal. But it is very unlikely to decode it with the wrong numbers or to imagine that protocol is a bad learn of something else.Some protocols are not robust. A totally unrelated IR signal can accidentally fit the pattern of such a protocol resulting in a spurious decode. When you get a decode for a non-robust protocol you need to exercise some judgment about whether to believe or ignore that decode. Usually you can decide based on decodes of other signals of the same device.
Toggle bits
Several different protocols include something called a toggle bit. This means that each command has two or more different forms. Some protocols (e.g. RC5) alternate the toggle on each key press, while others change the toggle to indicate a start or end frame.An alternating toggle lets the device receiving the commands distinguish between a long press of a button and two short presses. For example, if you press and hold the '1' button the remote continuously sends repeats of a single form of the '1' command. But if you press '1', release it and press it again the remote will switch to the other form of the command for the second press.
When you learn such a command you are capturing just one form of the command and every use will send that same form. If you use that learned signal and press the same button twice in a row, the device receiving the signal will see that as one long press rather than two short ones. For keys, such as digits, where one long press has a different meaning than two short presses, that gets quite inconvenient.
With OneForAll type remotes, using an upgrade or KeyMove will solve that problem.
For some of these protocols, for some models of Pronto remote, there is a condensed encoding of the Pronto Hex that will solve the problem.
Repeat frames and dittos
DecodeIR v2.37 and later versions have a look-ahead facility that is not present in earlier ones. This distinguishes between two styles of data passed to them by the calling application. The remote control programming applications IR.exe and RMIR pass signals learned by a UEI remote that has itself performed a partial analysis of the signal. The data is passed in a structured form, divided into Once, Repeat and Extra sections. The data in each of these sections can be viewed in IR.exe if the "Force Learned Timings" option on the Advanced menu is selected. Because of this analysis, DecodeIR does not see the original signal in full and cannot determine such things as the number of repeats of the signal that were sent. Other applications such as the IRScope software for the IR Widget send the entire signal as unstructured data, which enables IR.exe to identify the number of repeats.
The look-ahead facility checks successive frames within a single signal to see if they are repeats – either identical repeats or, in certain protocols, frames of a repeat sequence that have a distinctive marker in either the start or end frame, or both, of the sequence. If a protocol has distinctive start or end frame markers and either or both of the start and end frames are missing, this is reported in the Misc field of the decode (but at present this may not be implemented for all protocols with such markers). If the data has been passed in an unstructured form then the number of repeats in the signal will also be reported in the Misc field in a form like "4 frames", or in version 2.39 and later, "+ 3 copies".
In the case of unstructured data, DecodeIR v2.38 extends the look-ahead to protocols in which repeat action is signalled not by a full repeat of the frame but by a much shorter frame that does not carry the signal data (or occasionally carries just part of this data). These frames serve as "ditto marks". If present then the number of such frames is reported in the Misc field in a form like "3 dittos", or in version 2.39 and later, "+ 3 dittos". If there are no repeat frames or ditto marks, then to avoid ambiguity this is reported as "no repeat".
Brief and incomplete guide to reading IRP
General: {carrier frequency, time unit, sequencing rule} Mitsubishi:{32.6k,300}<1,-3|1,-7>(D:8,F:8,1,-80)+
Carrier Frequency: Hz; e.g. 38.3k; default is 0k--no modulation
Time Unit: Integer that can represent durations. Suffix u (default) is microseconds, p denotes number of pulses of the carrier.
Sequencing Rule: lsb|msb; lsb (default) means the least significant bit of a binary form is sent first.
BitSpec: Rule for the translating bit sequences to duration sequences. <ZeroPulseSeq|OnePulseSeq|TwoPulseSeq....>. Most IR protocols use only <ZeroPulseSeq|OnePulseSeq>, and the sequence is simply OnDuration,OffDuration. Example: NEC uses <1,-1|1,-3>
Bitfield: D:NumberOfBits:StartingBit. E.g. if D=47= 01000111, D:2:5 means x10xxxxx. D:2:5 = 10b = 2. ~ is the bitwise complement operator. ~D =10111000. Specifying the StartingBit is optional. D:6 is equivalent to D:6:0.
IRStream: The sequence of data. Enclosed in parentheses, items separated by commas. A trailing + means send one or more times. A trailing 3 means send 3 times; 3+ means at least 3 times. A trailing * means send zero or more times. NEC2: {38.4k,564}<1,-1|1,-3>(16,-8,D:8,S:8,F:8,~F:8,1,-78)+
Durations: no suffix means duration is expressed in Time Units, as defined above. m is milliseconds, u microsec, p pulses. No prefix means a flash, a preceeding - (minus) means a gap.
Extent: A gap which trails a signal. The trailing gap is adjusted to make the total length of signal plus trailing gap equal to the extent. Notation is like a gap duration, except ^ replaces the minus sign. RC-5:(1:1,~F:1:6,T:1,D:5,F:6,^114m)+
Expressions: names, numbers and bitfields connected by standard symbols for arithmetic and logical operations. Enclosed in parentheses. Panasonic: {37k,432}<1,-1|1,-3>(8,-4,2:8,32:8,D:8,S:8,F:8,(D^S^F):8,1,-173)+
Permitted operators in decreasing order of precedence:
unary – (negation)
** (exponentiation)
* /, % (multiplication, integer division, modulo) (* is also used in IRStreams)
+, – (addition, subtraction (+ is also used in IRStreams)
# number of 1 bits in argument
& (bitwise AND)
^ (exclusive OR) (also used in extents)
| (OR)
~ (complement) is permitted in Bitfields
Definitions: expressions separated by commas, enclosed in curly brackets. GI Cable: {38.7k,490}<1,-4.5|1,-9>(18,-9,F:8,D:4,C:4,1,-84,(18,-4.5,1,-178)*) {C = -(D + F:4 + F:4:4)}
Assignments: For example T=T+1, which can be used to describe the RC-5 toggle bit.
Variations: Up to 3 expressions enclosed in square brackets. The first variation is sent on the first transmission, second for middle transmissons, and the third for the final transmission. E.g. the Zaptor toggle bit is zero until the last frame: [T=0] [T=0] [T=1]
The IRP specification by Graham Dixon
Practical explanation of IR signals and IRP by Vicky Getz48-NEC
If you get a decode whose protocol name is simply "48-NEC" that indicates the learned signal is not complete (usually caused by not holding the original remote's button long enough during learning). Enough of the signal is present to accurately determining the device, subdevice and OBC numbers. But not enough is present to determine whether the protocol is 48-NEC1 or 48-NEC2.48-NEC1
IRP notation: {38.0k,564}<1,-1|1,-3>(16,-8,D:8,S:8,F:8,~F:8,E:8,~E:8,1,^108m,(16,-4,1,^108m)*)
This protocol signals repeats by the use of dittos.48-NEC2
IRP notation: {38.0k,564}<1,-1|1,-3>(16,-8,D:8,S:8,F:8,~F:8,E:8,~E:8,1,^108m)+AdNotam
IRP notation: {35.7Khz,895,msb}<1,-1|-1,1>(1,-2,1,D:6,F:6,^114m)+
Very similar to RC5, except AdNotam uses two start bits, and no toggle bit.AirAsync
IRP notation: {37.7Khz,840}<1|-1>(N=0,(1,B:8:N,-2,N=N+8)+)This protocol uses asynchronous data transmission that sends an 8-bit byte with 1 start bit, 8 data bits and 2 stop bits. The minimum signal is one byte. The protocol is reported as AirAsyncn-xx.yy. ... where n is the number of bytes and xx, yy, ... are the byte values in hexadecimal notation.
AirB?-????
This is not a robust protocol, so spurious decodes are likely. If you see this decode from something other than an IR keyboard, you should probably ignore it.
Aiwa
UEI executor: 005E or 009E
IRP notation: {38k,550}<1,-1|1,-3>(16,-8,D:8,S:5,~D:8,~S:5,F:8,~F:8,1,-42,(16,-8,1,-165)*)
AK
Documentation not written yet.Akai
UEI executor: 000D
IRP notation: {38k,289}<1,-2.6|1,-6.3>(D:3,F:7,1,^25.3m)+
This is not a robust protocol, so spurious decodes are likely.
Amino
UEI executor: 019C
IRP notation: {56.0k,268,msb}<-1,1|1,-1>[T=1] [T=0] (7,-6,3,D:4,1:1,T:1,1:2,0:8,F:8,15:4,C:4,-79m)+
-----Variant: {36.0k,268,msb}<-1,1|1,-1>[T=1] [T=0] (7,-6,3,D:4,1:1,T:1,1:2,0:8,F:8,15:4,C:4,-79m)+
{C =(D:4+4*T+9+F:4+F:4:4+15)&15} [the arithmetic sum of the first 7 nibbles mod 15]
T=1 for the first frame and T=0 for all repeat frames.
DecodeIR checks T and reports in the Misc field if the start or end frame is missing. Amino equipment use both 36 and 56KHz, but the duration of the half-bit is always 268. Zaptor is a closely related protocol which for which the half-bit duration is 330. IRDecode distinguishes between Amino and Zaptor in order of priority by 1) the position of the toggle bit, 2) the value of the next to last nibble, and 3) the measured duration of a half-bit.Anthem
UEI executor: 0123
IRP notation: {38.0k,605}<1,-1|1,-3>((8000u,-4000u,D:8,S:8,F:8,C:8,1,-25m)3, -75m)+ {C=~(D+S+F+255):8}
Anthem framing is very similar to NEC, and also uses 32 bits of data. However, the leadout is much shorter. The signal is sent at least 3 times. Anthem usually splits F into a 2 bit unit number, and a 6 bit function number.Apple
UEI executor: 01E0
IRP notation: {38.0k,564}<1,-1|1,-3>(16,-8,D:8,S:8,C:1,F:7,I:8,1,^108m,(16,-4,1,^108m)*) {C=~(#F+#PairID)&1)}
C=1 if the number of 1 bits in the fields F and I is even. I is the remote ID.
Apple uses the same framing as NEC1, with D=238 in normal use, 224 while pairing. S=135Archer
IRP notation: {0k,12}<1,-3.3m|1,-4.7m>(F:5,1,-9.7m)+
This is not a robust protocol, so spurious decodes are likely.Async
This protocol uses asynchronous data transmission that sends an 8-bit byte with 1 start bit, 8 data bits and 1 stop bit. The minimum signal is four bytes. The protocol is reported as Asyncn:min-max:aa.bb...yy.zz where n is the number of bytes, min-max is the range of durations in microseconds that was taken as a single bit and aa.bb...yy.zz are the first two and last two byte values in hexadecimal notation. DecodeIR v 2.45 does not report Async decodes.
Audiovox
UEI executor: 005D
IRP notation: {40k,500}<1,-1|1,-3>(16,-8,D:8,1,-8,F:8,1,-40)+Barco
UEI executor: 002A
IRP notation: {0k,10}<1,-5|1,-15>(1,-25, D:5,F:6, 1,-25,1,120m)+ This is a moderately robust protocol, but spurious decodes are still possible.Blaupunkt
UEI executor: 00A5
IRP notation: {30.3k,512}<-1,1|1,-1>(1,-5,1023:10,-44,(1,-5,1:1,F:6,D:3,-236)+,1,-5,1023:10,-44)Bose
UEI executor: 010C
IRP notation: {38.0k,500,msb}<1,-1|1,-3>(2,-3,F:8,~F:8,1,-50m)+
Bryston
IRP notation: {38.0k,315} <1,-6|6,-1>(D:10,F:8, -18m)+
CanalSat
UEI executor: 018C
IRP notation: {55.5k,250,msb}<-1,1|1,-1>(T=0,(1,-1,D:7,S:6,T:1,0:1,F:7,-89m,T=1)+)
UEI executor: 0171
IRP notation: {38k,250,msb}<-1,1|1,-1>(T=0,(1,-1,D:7,S:6,T:1,0:1,F:7,-89m,T=1)+)
The repeat frames are not all identical. T toggles within a single signal, with T=0 for the start frame and T=1 for all repeats. DecodeIR v2.37 and later check T and will report in the Misc field if the start frame is missing. The official name for CanalSat is "ruwido r-step".CanalSatLD
UEI executor: unknown
IRP notation: {56k,320,msb}<-1,1|1,-1>(T=0,(1,-1,D:7,S:6,T:1,0:1,F:6,~F:1,-85m,T=1)+)
The official name for CanalSatLD is "ruwido r-step"Denon, Denon{1} and Denon{2}
UEI executor: 001C
IRP notation: {38k,264}<1,-3|1,-7>((D:5,F:8,0:2,1,-165,D:5,~F:8,3:2,1,-165)+,(D:5,F:8,0:2,1,-165))
A Denon signal is identical to Sharp, and has two halves, either one of which is enough to fully decode the information. A significant fraction of Denon learned signals contain just one half or have the halves separated so that DecodeIr can't process them together. When one half is seen separate from the other, DecodeIr will name the protocol Denon{1} or Denon{2} depending on which half is decoded. Denon, Denon{1} and Denon{2} all represent the same protocol when they are correct. But only Denon is robust. A Denon{1} or Denon{2} decode might be spurious.Denon-K
UEI executor: 00CD, 01C8
IRP notation: {37k,432}<1,-1|1,-3>(8,-4,84:8,50:8,0:4,D:4,S:4,F:12,((D*16)^S^(F*16)^(F:8:4)):8,1,-173)+
Denon-K is the member of the Kaseikyo family with OEM_code1=84 and OEM_code2=50.Dgtec
UEI executor: 016A
IRP notation: {38k,560}<1,-1|1,-3>(16,-8,D:8,F:8,~F:8,1,^108m,(16,-4,1,^108m)+)
This protocol signals repeats by the use of dittos.DirecTV
UEI executor: 0162
IRP notation: {38k,600,msb}<1,-1|1,-2|2,-1|2,-2>(5,(5,-2,D:4,F:8,C:4,1,-50)+) {C=7*(F:2:6)+5*(F:2:4)+3*(F:2:2)+(F:2)}There are six variants of the DirecTV protocol, distinguished in RemoteMaster by the parameter "Parm" on the Setup page. The Parm value is shown in the Misc field of DecodeIR. The IRP notation above corresponds to the default Parm=3. The various Parm values correspond to three different frequencies (the 38k in the above) and two different lead-out times (the -50 in the above). The corresponding values are:
This protocol was called Russound in versions of DecodeIR earlier than 2.40.
- Parm=0 : 40k, -15
- Parm=1 : 40k, -50
- Parm=2 : 38k, -15
- Parm=3 : 38k, -50
- Parm=4 : 57k, -15
- Parm=5 : 57k, -50
Dishplayer
UEI executor: 010F
IRP notation: {38.4k,535,msb}<1,-5|1,-3>(1,-11,(F:6,S:5,D:2,1,-11)+)
This is not a robust protocol, so spurious decodes are likely.Dish_Network
UEI executor: 0002
IRP notation: {57.6k,400}<1,-7|1,-4>(1,-15,(F:-6,S:5,D:5,1,-15)+)
This is not a robust protocol, so spurious decodes are likely.EchoStar
UEI executor: 0182
As of 2.42 DecodeIR shows this as RC5-7FElan
UEI executor: 01F8
IRP notation: {40.2k,398,msb}<1,-1|1,-2>(3,-2,D:8,~D:8,2,-2,F:8,~F:8,1,^50m)+
Emerson
UEI executor: 0065
IRP notation: {36.7k,872}<1,-1|1,-3>(4,-4,D:6,F:6,~D:6,~F:6,1,-39)+
F12
UEI executor: 001A
IRP notation: (Toshiba specification) {37.9k,422}<1,-3|3,-1>(D:3,H:1,A:1,B:1,F:6),-80)2 for A=1 or B=1
{37.9k,422}<1,-3|3,-1>((D:3,H:1,A:1,B:1,F:6),-80)2,-128)+ for H=1.
Exactly one of H, A, or B can have a value of 1. If H=1 the signal can be sent repeatedly, and F can take any 6 bit value. If A or B=1, the signal is sent once only per button press, and only a single bit of F can be non-zero. Toshiba spec sheetIRP notation: (JP1) {37.9k,422}<1,-3|3,-1>((D:3,S:1,F:8,-80)2,-128)+
A and B are subsumed into F, and the value of H is computed by the executor. H=A^B.
DecodeIR reports H as the subdevice. This is useful when making a Pronto Hex file, or other description based on durations. Remotes with executors (e.g. UEI remotes) normally compute the value of H in the executor, and the "subdevice" is not needed as a parameter.
UEI executor 016D transmits a similar signal but with a leadout time of 6.7mS. One frame of OBC1 and repeating frame of OBC2.F32
UEI executor: Unknown
IRP notation: {37.9k,422,msb}<1,-3|3,-1>(D:8,S:8,F:8,E:8,-100m)+
The meaning of the 32 bits of data is unknown, and the assignment to D, S, F, and E is arbitraryFujitsu
UEI executor: 00F8
IRP notation: {37k,432}<1,-1|1,-3>(8,-4,20:8,99:8,0:4,E:4,D:8,S:8,F:8,1,-110)+
Fujitsu is the member of the Kaseikyo family with OEM_code1=20 and OEM_code2=99. There is no check byte, so the risk of an incorrectly decoded OBC is much higher than in other Kaseikyo protocols.Fujitsu-56
IRP notation: {37k,432}<1,-1|1,-3>(8,-4,20:8,99:8,0:4,E:4,D:8,S:8,X:8,F:8,1,-110)+GI Cable and GI Cable{1}
UEI executor: 00C4
IRP notation: {38.7k,490}<1,-4.5|1,-9>(18,-9,F:8,D:4,C:4,1,-84,(18,-4.5,1,-178)*) {C = -(D + F:4 + F:4:4)}
This protocol signals repeats by the use of dittos.GI 4DTV
UEI executor: 00A4
IRP notation: {37.3k,992}<1,-1|1,-3>(5,-2,F:6,D:2,C:4,1,-60)+ {C= ((#(F&25) + #(D&5))&1) + 2*((#(F&43) + #(D&7))&1) + 4*((#(F&22) + #(D&7))&1) + 8*((#(F&44) + #(D&6))&1)}
This is a moderately robust protocol, but spurious decodes are still possible
Unit (device) numbers from 0 to 7 are supported. The check sum C is a Hamming Code, which can correct single bit errors. D:1:2 is encoded in the check sum. D encoding schemeGI RG
UEI executor: 0177
IRP notation: {37.3k,1000, msb}<1,-1|1,-3>(5,-3,F:6,S:2,D:8,1,-60)+
This is a moderately robust protocol, but spurious decodes are still possible, especially SIM2 which has nearly identical timing.
Typical usage is the GI/Next Level/Motorola RG2x00 seriesGrundig16 and Grundig16-30
UEI executor: Grundig16 0112, Grundig16-30 00AB
IRP notation for Grundig16: {35.7k,578,msb}<-4,2|-3,1,-1,1|-2,1,-2,1|-1,1,-3,1> (806u,-2960u,1346u,T:1,F:8,D:7,-100)+
IRP notation for Grundig16-30: {30.3k,578,msb}<-4,2|-3,1,-1,1|-2,1,-2,1|-1,1,-3,1> (806u,-2960u,1346u,T:1,F:8,D:7,-100)+
These are two variants of the same protocol, differing only in frequency.GXB
IRP notation: {38.3k,520,msb}<1,-3|3,-1>(1,-1,D:4,F:8,P:1,1,^???)+
Decoder for a nonstandard Xbox remote.Humax 4Phase
IRP notation: {56k,105, msb}<-2,2|-3,1|1,-3|2,-2>(T=0,(2,-2,D:6,S:6,T:2,F:7,~F:1,^95m,T=1)+)
The allocation of bits to device and subdevice (D:6, S:6) is a guess.IODATAn and IODATAn-x-y
UEI executor: not known.
IRP notation: {38k,550}<1,-1|1,-3>(16,-8,x:7,D:7,S:7,y:7,F:8,C:4,1,^108m)+ {n = F:4 ^ F:4:4 ^ C:4}
This is potentially a class of protocols distinguished by values of n, x and y with n = 0..15 and x, y = 0..127. If x and y are both zero, they are omitted. The only known example is IODATA1.Jerrold
UEI executor: 0006
IRP notation: {0k,44}<1,-7.5m|1,-11.5m>(F:5,1,-23.5m)+
This is not a robust protocol, so spurious decodes are likely.JVC and JVC{2}
UEI executor: 0034
IRP notation: {38k,525}<1,-1|1,-3>(16,-8,(D:8,F:8,1,-45)+)
JVC{2} indicates a JVC signal from which the lead-in is missing. The JVC protocol has lead-in on only the first frame, so it is quite easy to have it missing from a learned signal. So when JVC{2} is correct, it means the same as JVC. But JVC{2} is not robust, so spurious decodes are likely. It is also very similar in structure and timing to Mitsubishi protocol, so that DecodeIr has difficulty distinguishing one from the other. The device number, OBC and EFC are all encoded the same way between the two. So if you have JVC{2} decodes that you have reason to suspect should actually be Mitsubishi, you can try using them as Mitsubishi without changing the numbers. However, true Mitsubishi signals will not mis-decode as JVC, just as JVC{2}. So if some of the signals for your device decode as JVC and others as JVC{2}, you should trust all those decodes and not try Mitsubishi.JVC-48
UEI executor: 001F or 00C9 or 00CD
IRP notation: {37k,432}<1,-1|1,-3>(8,-4,3:8,1:8,D:8,S:8,F:8,(D^S^F):8,1,-173)+
JVC-48 is the member of the Kaseikyo family with M=3 and N=1.JVC-56
IRP notation: {37k,432}<1,-1|1,-3>(8,-4,3:8,1:8,D:8,S:8,X:8,F:8,(D^S^X^F):8,1,-173)+
JVC-56 is the member of the Kaseikyo56 family with M=3 and N=1.Kaseikyo
UEI executor: 00F8
IRP notation: {37k,432}<1,-1|1,-3>(8,-4,M:8,N:8,X:4,D:4,S:8,F:8,G:8,1,-173)+ {X=M:4:0^M:4:4^N:4:0^N:4:4}
Kaseikyo is a family of protocols that includes Panasonic, Mitsubishi-K, Fujitsu, JVC-48, Denon-K, Sharp-DVD and Teac-K. Each manufacturer is assigned a pair of identifiers, here identified as M and N. If an IR signal matches a known pair of OEM identifiers and has the correct checksum behavior, it will be decoded with appropriate protocol name. Otherwise it will be decoded as Kaseikyo.Kaseikyo56
IRP notation: {37k,432}<1,-1|1,-3>(8,-4,M:8,N:8,X:4,D:4,S:8,E:8,F:8,G:8,1,-173)+ {X=M:4:0^M:4:4^N:4:0^N:4:4}
Like Kaseikyo, each manufacturer is assigned a pair of identifiers identified as M and N. If an IR signal matches a known pair of OEM identifiers and has the correct checksum behavior, it will be decoded with appropriate protocol name. Otherwise it will be decoded as Kaseikyo56.Kathrein
UEI executor: 0066
IRP notation: {38k,540}<1,-1|1,-3>(16,-8,D:4,~D:4,F:8,~F:8,1,^105m,(16,-8,F:8,1,^105m)+)
This protocol signals repeats by the use of dittos. It is unusual in that the ditto frame carries part of the signal data, specifically the function code (OBC) but not the device code. Similar to Logitech, but both decodes give the same device number and OBC.Konka
UEI executor: 019B
IRP notation: {38k,500,msb}<1,-3|1,-5>(6,-6,D:8,F:8,1,-8,1,-46)+Logitech
UEI executor: 020B
IRP notation: {38k,127}<3,-4|3,-8>(31,-36,D:4,~D:4,F:8,~F:8,3,-50m)+
Logitech is used with their PS3 adapter. The IR signal is similar to Kathrein. If a Logitech signal is decoded as Kathrein, the device number and OBC are still correct.Lumagen
IRP notation: {38.4k,416,msb}<1,-6|1,-12>(D:4,C:1,F:7,1,-26)+ {C = (#F+1)&1}
This is a moderately robust protocol, but spurious decodes are still possible.Lutron
UEI executor: 00E7
IRP notation: {40k,2300,msb}<-1|1>(255:8,X:24,0:4)+
This is an unusual protocol in that an 8-bit device code and 8-bit OBC are encoded in a 24-bit error-correcting code as the X of the IRP notation. This is constructed as follows. First two parity bits are appended to the 16 data bits to give even parity for the two sets of 9 bits taken alternately. The resulting 18-bit sequence is then treated as 6 octal digits (0-7) expressed in 3-bit binary code. These are then re-coded in the 3-bit Gray code (also called, more descriptively, the reflected-binary code) with a parity bit to give odd parity, so giving 6 4-bit groups treated as a single 24-bit sequence. The whole thing allows any single-bit error in transmission to be identified and corrected. See this post and this one for more description.Matsui
IRP notation: {38K,525}<1,-1|1,-3>(D:3,F:7,1,^30.5m)+
This is not a robust protocol, so spurious decodes are likely.MCE (RC6-6-32)
IRP notation: {36k,444,msb}<-1,1|1,-1>(6,-2,1:1,6:3,-2,2,OEM1:8,OEM2:8,T:1,D:7,F:8,^107m)+
MCE is a member of the RC6 family. Technically it is RC6-6-32 with the standard toggle bit zero, with the OEM1 field equal to 128, and with a nonstandard (for the RC6 family) toggle bit added. If all those rules are met, DecodeIr will display the name as "MCE" and with the OEM2 field moved to the subdevice position. Otherwise it will display RC6-6-32.Metz19
IRP notation: (37.9K,106,msb)<4,-9|4,-16>(8,-22,T:1,D:3,~D:3,F:6,~F:6,4,-125m)+
The toggle bit T is inverted each time a new button press occurs.Mitsubishi
UEI executor: 0014
IRP notation: {32.6k,300}<1,-3|1,-7>(D:8,F:8,1,-80)+
This is not a robust protocol, so spurious decodes are likely. It is also very similar in structure and timing to JVC{2} protocol, so that DecodeIr has difficulty distinguishing one from the other. The device number, OBC and EFC are all encoded the same way between the two. So if you have Mitsubishi decodes that you have reason to suspect should actually be JVC, you can try using them as JVC without changing the numbers.Mitsubishi-K
IRP notation: {37k,432}<1,-1|1,-3>(8,-4,35:8,203:8,X:4,D:8,S:8,F:8,T:4,1,-100)+
Mitsubishi-K is the member of the Kaseikyo family with OEM_code1=35 and OEM_code2=203.NEC
UEI executor: 005A, 011A, 00B6, 017E, 01AD, 000F, 0246
NEC is a family of similar protocols including NEC1, NEC2, Tivo, Pioneer, Apple, NECx1 and NECx2. If you get a decode whose protocol name is simply "NEC" that indicates the learned signal is not complete (usually caused by not holding the original remote's button long enough during learning). Enough of the signal is present to accurately determine the device, subdevice and OBC numbers. But not enough is present to determine whether the protocol is NEC1 or NEC2.Difference between NEC1 and NEC2
The difference between NEC1 and NEC2 only affects the signal sent by a long keypress. A short press sends the same signal in NEC1 and NEC2.Variant IRstreams in NEC protocols
For NEC1, NEC2, NECx1, and NECx2 protocols, the IRstream contains D:8,S:8,F:8,~F:8
However, some manufacturers (especially Yamaha and Onkyo) are breaking the "rule" that the 4th byte should be ~F:8
Version 2.42 decodes these variants by adding suffixes to the protocol name depending on the IRstream:
-y1: D:8,S:8,F:8,~F:7,F:1:7 (complement all of F except the MSB)
-y2: D:8,S:8,F:8,F:1,~F:7:1 (complement all of F except the LSB)
-y3: D:8,S:8,F:8,F:1,~F:6:1,F:1:7 (complement all of F except MSB and LSB)
-rnc: D:8,S:8,F:8;~F:4:4,~F:4 (complement F and reverse the nibbles) UEI executor: 0206
-f16: D:8,S:8,F:8,E:8 (no relationship between the 3rd and 4th bytes) UEI executor: 01AD
-f16 may be returned as the decode for a signal in which F and ~F precede D:S
{38.0k,564}<1,-1|1,-3>(16,-8,F:8,~F:8,D:8,S:8,1,^108m,(16,-4,1,^108m)*) UEI executor: 01EA
{38.0k,564}<1,-1|1,-3>(16,-8,F:8,~F:8,D:8,S:8,1,^108m)+ UEI executor: 01EANEC1
IRP notation: {38.0k,564}<1,-1|1,-3>(16,-8,D:8,S:8,F:8,~F:8,1,^108m,(16,-4,1,^108m)*)
A few devices use NEC1 protocol at 40Khz, rather than the typical frequency. When getting a decode of NEC1, if you notice that the frequency is closer to 40Khz than to 38Khz, examine multiple learns from the same device to estimate whether the 40Khz frequency is a learning error or a true characteristic of the device. If the 40Khz is correct, there are methods in JP1, or MakeHex (whichever you are using) to reproduce NEC1 at 40Khz rather than the usual frequency.
NEC2
IRP notation: {38.0k,564}<1,-1|1,-3>(16,-8,D:8,~D:8,F:8,~F:8,1,^108m)+
Pioneer is distinguished from NEC2 only by frequency. So if your learning system does not learn frequency accurately, it won't accurately distinguish Pioneer from NEC2. All Pioneer signals should have a device number in the range 160 to 175 and no subdevice. No NEC2 signal should fit those rules. So you usually can determine whether the decision (by frequency) was wrong by checking the device numbers.NECx
If you get a decode whose protocol name is simply "NECx" that indicates the learned signal is not complete (usually caused by not holding the original remote's button long enough during learning). Enough of the signal is present to accurately determining the device, subdevice and OBC numbers. But not enough is present to determine the exact protocol, which is probably NECx1 or NECx2. This incomplete learn also makes it harder to distinguish NEC from NECx, so a decode of "NECx" might be NEC1 or NEC2 or even Tivo or Pioneer.NECx1
IRP notation: {38.0k,564}<1,-1|1,-3>(8,-8,D:8,S:8,F:8,~F8,1,^108m,(8,-8,D:1,1,^108m)*)
Most, but not all NECx1 signals have S=DNECx2
IRP notation: {38.0k,564}<1,-1|1,-3>(8,-8,D:8,S:8,F:8,~F8,1,^108m)+
Most, but not all NECx2 signals have S=DNokia
IRP notation: {36k,msb}<164,-276|164,-445|164,-614|164,-783>(412,-276,D:8,S:8,F:8,164,^100m)+Nokia12
IRP notation: {36k,msb}<164,-276|164,-445|164,-614|164,-783>(412,-276,D:4,F:8,164,^100m)+Nokia32
UEI executor: 0173
IRP notation: {36k,msb}<164,-276|164,-445|164,-614|164,-783>(412,-276,D:8,S:8,T:1,X:7,F:8,164,^100m)+
The Nokia32 protocol is one variation of the RCMM 1.5 protocol developed by Philips. RCMM refers to X as "System" and to D:2,S:4:4 as "Customer"NRC16
UEI executor: 0075 for 32KHz, 00B0 for 38KHz
{32k,500}<-1,1|1,-1>(1,-5,1:1,254:8,127:7,-15m,(1,-5,1:1,F:8,D:7,-110m)+,1,-5,1:1,254:8,127:7,-15m)
{38k,500}<-1,1|1,-1>(1,-5,1:1,254:8,127:7,-15m,(1,-5,1:1,F:8,D:7,-110m)+,1,-5,1:1,254:8,127:7,-15m)NRC17
UEI executor: 00BD
IRP notation: {38k,500}<-1,1|1,-1>(1,-5,1:1,254:8,255:8,-28, (1,-5,1:1,F:8,D:8,-220)+, 1,-5,1:1,254:8,255:8,-200)
Details of NRC17
OrtekMCE
UEI executor: 01ED
IRP notation: {38.6k,480}<1,-1|-1,1>([P=0][P=1][P=2],4,-1,D:5,P:2,F:6,C:4,-48m)+{C=3+#D+#P+#F}
The repeat frames are not all identical. P is a position code: 0 for the start frame of a repeat sequence, 2 for the end frame and 1 for all frames in between. C is a checksum, 3 more than the number of 1 bits in D, P, F together. DecodeIR checks P and reports in the Misc field if either the start or end frame, or both, is/are missing.Pace
UEI executor: 0095
IRP notation: {38k,630,msb}<1,-7|1,-11>(1,-5,1,-5,T:1,D:1,F:8,1,^120m)+
This is a moderately robust protocol, but spurious decodes are still possible.Panasonic
UEI executor: 001F or 00C9 or 00CD
IRP notation: {37k,432}<1,-1|1,-3>(8,-4,2:8,32:8,D:8,S:8,F:8,(D^S^F):8,1,-173)+
Panasonic protocol is the most commonly seen member of the Kaseikyo family OEM_code1 is 2 and OEM_code2 is 32 (or DecodeIr won't display the name as "Panasonic").Panasonic2
UEI executor: 0109
IRP notation: {37k,432}<1,-1|1,-3>(8,-4,2:8,32:8,D:8,S:8,X:8,F:8,(D^S^X^F):8,1,-173)+Panasonic_Old
UEI executor: 0000 or 0087
IRP notation: {57.6k,833}<1,-1|1,-3>(4,-4,D:5,F:6,~D:5,~F:6,1,-44m)+PCTV
IRP notation: {38.4k,832}<0,-1|1,-0>(2,-8,1,D:8,F:8,2,-???)pid-0001
UEI executor: 0001
IRP notation: {0k,msb}<24,-9314|24,-13486>(24,-21148,(F:5,1,-28m)+)pid-0003
UEI executor: 0003
IRP notation: {40.2k,389}<2,-2|3,-1>(F:8,~F:8,^102k)+pid-0004
UEI executor: 0004
IRP notation: {0k,msb}<12,-130|12,-372>(F:6,12,-27k)+pid-0083
UEI executor: 0083
IRP notation: {42.3K, 3000}<1,-3,1,-7|1,-7,1,-3>(F:5,1,-27)+
This protocol is a very limited design. We have seen it used only in the UEI setup code TV/0159, which is for some TVs brand named Fisher, Sanyo and Sears. It is not likely that any other code set uses this protocol. So if you get a correct decode of pid-0083 you probably have a TV that can be controlled by the TV/0159 setup code.Pioneer
UEI executor: 00E2
IRP notation: {40k,564}<1,-1|1,-3>(16,-8,D:8,~D:8,F:8,~F:8,1, -25m)+
Pioneer is distinguished from NEC2 only by frequency and lead out duration. So if your learning system does not learn frequency accurately, it probably won't accurately distinguish Pioneer from NEC2. All Pioneer signals should have a device number in the range 160 to 175 and no subdevice. No NEC2 signal should fit those rules. So you usually can determine whether the decision (by frequency) was wrong by checking the device numbers.
Many Pioneer commands are sent as combinations of two different Pioneer signals. DecodeIr does not associate the two signals together into one command. It decodes them separately. If you get more than one of the same OBC from decoding a learned signal, that just means the learning system failed to understand the repeat pattern. It does not mean a two part signal. But if there are two different OBCs (with the same or different device numbers) you have a two part Pioneer signal.Proton
UEI executor: 005C or 011B
IRP notation: {38.5k,500}<1,-1|1,-3>(16,-8,D:8,1,-8,F:8,1,^63m)+
IRP notation: {40.5k,500}<1,-1|1,-3>(16,-8,D:8,1,-8,F:8,1,^63m)+
There seems to be two frequencies in use with Proton. Executor 011B can send either.
This is not a robust protocol, so spurious decodes are likely.RC5
UEI executor: 00E8
IRP notation: {36k,msb,889}<1,-1|-1,1>(1,~F:1:6,T:1,D:5,F:6,^114m)+
The D and F (Device and OBC) values in a decode are referred to by Philips and some other manufacturers as "System" and "Command", respectively.RC5-7F
UEI executor: 0182
IRP notation: {36k,msb,889}<1,-1|-1,1>(1, ~D:1:5,T:1,D:5,F:7,^114m)+RC5-7F-57
UEI executor: 0182
IRP notation: {57k,msb,889}<1,-1|-1,1>(1, ~D:1:5,T:1,D:5,F:7,^114m)+RC5x
UEI executor: 00F2
IRP notation: {36k,msb,889}<1,-1|-1,1>(1,~S:1:6,T:1,D:5,-4,S:6,F:6,^114m)+
The D, S and F (Device, Subdevice, and OBC) values in a decode are referred to by Philips and some other manufacturers as "System", "Command", and "Data", respectively.RC5-?-??
This decode is almost certainly spurious.RC6
UEI executor: 0058
IRP notation: {36k,444,msb}<-1,1|1,-1>(6,-2,1:1,0:3,<-2,2|2,-2>(T:1),D:8,F:8,^107m)+
RC6 is the name used for the first member of the RC6 family of protocols. Technically this is RC6-0-16, but DecodeIr will always display that as simply "RC6"RC6-6-20
UEI executor: 0020
IRP notation: {36k,444,msb}<-1,1|1,-1>(6,-2,1:1,6:3,<-2,2|2,-2>(T:1),D:8,S:4,F:8,-???)+
This protocol is commonly used in Sky and Sky+ remotes.RC6-?-??
IRP notation: {36k,444,msb}<-1,1|1,-1>(6,-2,1:1,M:3,<-2,2|2,-2>(T:1),???:??)+
This is the generic form for a decode of protocols in the RC6 family. DecodeIr uses this form for all RC6 decodes, except RC6-0-16 which is displayed as simply "RC6", RC6-6-24 which is displayed as "Replay" and some RC6-6-32 which display as MCE.
The first ? in the protocol name is the M value in the RC6 spec. The ending ?? represents the number of data bits in the signal.RCA and RCA(Old)
UEI protocols: 00AF (RCA), 002D(RCA(Old)) and 0114 (RCA Combo)
IRP notation for RCA: {58k,460,msb}<1,-2|1,-4>(8,-8,D:4,F:8,~D:4,~F:8,1,-16)+
IRP notation for RCA(Old): {58k,460,msb}<1,-2|1,-4>(32,(8,-8,D:4,F:8,~D:4,~F:8,2,-16)+)
These are two very similar forms of RCA protocol which differ only in that RCA(Old) has an extended lead-in and a double-length ON pulse before the lead-out. They are so similar that most RCA devices will accept either. But some RCA devices only accept the one that really matches their own remote.RCA-38 and RCA-38(Old)
UEI executor: 00AF:2
IRP notation for RCA-38: {38.7k,460,msb}<1,-2|1,-4>(8,-8,D:4,F:8,~D:4,~F:8,1,-16)+
IRP notation for RCA-38(Old): {38.7k,460,msb}<1,-2|1,-4>(32,(8,-8,D:4,F:8,~D:4,~F:8,2,-16)+)
These signals differ from RCA and RCA(Old) only in the frequency, which is 38.7kHz instead of the standard 58kHz.RECS80
UEI executor: 0045, 0068, 0090
IRP notation for 0045: {38k,158,msb}<1,-31|1,-47>(1:1,T:1,D:3,F:6,1,-45m)+
IRP notation for 0068: {33.3k,180,msb}<1,-31|1,-47>(1:1,T:1,D:3,F:6,1,^138m)+
RECS80 is a family of related protocols with the same structure, but different timing. See also Velleman.
These are moderately non robust protocols, so spurious decodes are possible.The timing differences are not definitive enough for DecodeIr to identify which RECS80 version is which. Instead it displays the timing information in the "Misc" field of the output. That will be three numbers formatted as in this example: (157/5048/7572).
Using those three numbers and the frequency, you should be able to determine whether the signals fit the 0045 version, the 0068 version, the 0090 version or none of them. You should look at all the learned signals for your device together when doing that. A single device won't mix versions of RECS80, so any differences in frequency or timing between learns is due to the IR learning process, not due to any differences among the correct signals. You should find one RECS80 version that is a good enough fit for all signals of the device.
For 0045,
- frequency should be between 37000 and 39000
- first timing number between 100 and 200
- second timing number between 4500 and 5500
- third timing number between 6800 and 8300
For 0068,
- frequency should be between 32300 and 34300
- first timing number between 130 and 250
- second timing number between 5100 and 6300
- third timing number between 7700 and 9500
For 0090,
- frequency should be 0
- first timing number between 0 and 40
- second timing number between 4500 and 5500
- third timing number between 6800 and 8300
Replay
UEI executor: 0092
IRP notation: {36k,444,msb}<-1,1|1,-1>(6,-2,1:1,6:3,<-2,2|2,-2>(T:1),D:8,S:8,F:8,-100m)+
Replay is a member of the RC6 family. Technically it is RC6-6-24, but DecodeIr will always display the name as "Replay". ProntoEdit calls this protocol "RC6 mode 6A" RM has it under the alternate name "RC6-M-24n" as well as its primary name "Replay".
In ProntoEdit, DecodeIr's "Device" is called "Customer Code"; DecodeIr's "Subdevice" is called "System"; and DecodeIr's "OBC" is called "Command".Revox
UEI executor: 00A0
IRP notation: {0k,15u}<1,-9|1,-19>(1:1,-10,0:1,D:4,F:6,1:1,-10,1:1,-100m)+
Note that Revox uses no modulation. Programs which require a modulation frequency might work with f= 66.7KHzSamsung20
UEI executor: 002F
IRP notation: {38.4k,564}<1,-1|1,-3>(8,-8,D:6,S:6,F:8,1,^???)+
This is a moderately robust protocol, but spurious decodes are still possible.Samsung36
UEI executor: 01B5
IRP notation: {38k,500}<1,-1|1,-3>(9,-9,D:8,S:8,1,-9,E:4,F:8,~F:8,1,-118)+Sampo
IRP notation: {38.4k, 833}<1,-1|1,-3>(4,-4,D:6,F:6,S:6,~F:6,1,-39)+
This is a moderately robust protocol, but spurious decodes are still possible.ScAtl-6
UEI executor: 0078
IRP notation: {57.6k,846}<1,-1|1,-3>(4,-4,D:6,F:6,~D:6,~F:6,1,-40)+
ScAtl-6 is distinguished from Emerson only by frequency. So if you are using a learning system that doesn't record the frequency accurately, then DecodeIr can't accurately select between Emerson and ScAtl-6.
Most Scientific Atlanta cable tuners use Panasonic_Old protocol, not this protocol.Sejin-M-38 and Sejin-M-56
UEI executor: 0161
IRP notation for Sejin-M-38: {38.8k,310,msb}<-1|1>(<8:4|4:4|2:4|1:4>(3,3:2,Dx:8,Fx:8,Fy:8,E:4,C:4,-L))+
IRP notation for Sejin-M-56: {56.3k,310,msb}<-1|1>(<8:4|4:4|2:4|1:4>(3,3:2,Dx:8,Fx:8,Fy:8,E:4,C:4,-L))+
In both cases E is a checksum seed (0 in all known examples) and C is a checksum given by
C = Dx:4 + Dx:4:4 + Fx:4 + Fx:4:4 + Fy:4 + Fy:4:4 + E.The parameter M is either 1 or 2. It distinguishes two styles of this protocol that have different purposes and very different lead-out times L. The 8-bit parameter Dx is a signed integer. If Dx > 0 then the style is Sejin-1, used for normal buttons of a remote control. If Dx < 0 then the style is Sejin-2, used for signals of an associated 2- or 3-button pointing device. E is a checksum seed, E=0 in the only known examples. The checksum formula reflects that in the UEI executor, so is presumed correct.
The protocol parameters Dx, Fx, Fy translate into device parameters in different ways corresponding to the different uses of the protocol. In Sejin-1 the device parameters are a Device Code, a SubDevice code and an OBC as is common for many protocols. Sejin-2 has two sub-styles. One corresponds to the displacement of a cursor or other pointer with device parameters (X, Y) that give the horizontal and vertical components of the displacement (and which can be positive or negative). The other signals Button Up or Button Down for any of the three buttons of the pointing device. The Misc field of the DecodeIR output displays these device parameters for the Sejin-2 signals. The relationship between these and the protocol parameters is beyond the scope of this document. The Misc field also displays an RMOBC value for Sejin-2 signals, which is an artificial OBC value that can be used as input to RemoteMaster to create the signal concerned.
The protocol parameters for Sejin-1 include a bit that marks the end frame of a repeat sequence. DecodeIR v2.37 and later check this and will report in the Misc field if the end frame is missing. This will normally be due to the key still being held when the learning process ends, so that the end frame gets omitted from the learned signal. For Sejin-2 signals that represent button operations the signal does not repeat. A single frame is sent on button down, a different frame is sent once on button up. Both frames can be detected and distinguished by DecodeIR v2.37 and later but the button up frame will not normally be present in a learned signal.
Sharp, Sharp{1} and Sharp{2}
IRP notation: {38k,264}<1,-3|1,-7>((D:5,F:8,1:2,1,-165,D:5,~F:8,2:2,1,-165)+,(D:5,F:8,1:2,1,-165))A Sharp signal, which is identical to Denon, has two halves, either one of which is enough to fully decode the information. A significant fraction of Sharp learned signals contain just one half or have the halves separated so that DecodeIr can't process them together. When one half is seen separate from the other, DecodeIr will name the protocol Sharp{1} or Sharp{2} depending on which half is decoded. Sharp, Sharp{1} and Sharp{2} all represent the same protocol when they are correct. But only Sharp is robust. A Sharp{1} or Sharp{2} decode might be spurious.
SharpDVD
UEI executor: 00F8
IRP notation: {38k,400}<1,-1|1,-3>(8,-4,170:8,90:8,15:4,D:4,S:8,F:8,E:4,C:4,1,-48)+ {E=1,C=D^S:4:0^S:4:4^F:4:0^F:4:4^E:4}
SharpDVD is the member of the Kaseikyo family with OEM_code1=170 and OEM_code2=90.SIM2
IRP notation: {38.8k,400}<3,-3|3,-7>(6,-7,D:8,F:8,3,-60m)
Nearly identical timing to G.I. RG, so either decode is likely.Solidtek16
IRP notation: {38k}<-624,468|468,-624>(S=0,(1820,-590,0:1,D:4,F:7,S:1,C:4,1:1,-143m,S=1)3) {C= F:4:0 + F:3:4 + 8*S }
This is a KeyBoard protocol. The make/break bit is decoded into the subdevice field. Checksum is only known to be correct for D = 0Solidtek20
IRP notation: {38k}<-624,468|468,-624>(1820,-590,0:1,D:4,S:6,F:6,C:4,1:1,-???)
This is a mouse protocol. The button press info is included in the Device field. The horizontal motion is in the Subdevice field, and the vertical motion is in the OBC field.The decode interface does not support returning negative Subdevice or OBC. So negative motions are represented by adding 64 to them. The numbers 1 to 31 represent positive motion. The numbers 32 to 63 are each 64 larger than the true negative motion, so 63 represents -1 and 32 represents -32.
Somfy
IRP notation: {35.7k}<308,-881|669,-520>(2072,-484,F:2,D:3,C:4,-2300)+
C is reported as SubDevice. It is probably a check nibble {C = F*4 + D + 3}.
F = 1 for UP or 2 for DOWN.
D = 1, 2 or 3 for the three observed devices, or D = 0 to control all devices together.Sony8
IRP notation: {40k,600}<1,-1|2,-1>(4,-1,F:8,^22200)Sony12
UEI executor: 00CA
IRP notation: {40k,600}<1,-1|2,-1>(4,-1,F:7,D:5,^45m)+Sony15
UEI executor: 00CA
IRP notation: {40k,600}<1,-1|2,-1>(4,-1,F:7,D:8,^45m)+Sony20
UEI executor: 00DE
IRP notation: {40k,600}<1,-1|2,-1>(4,-1,F:7,D:5,S:8,^45m)+StreamZap
IRP notation: {36k,msb,889}<1,-1|-1,1>(1,~F:1:6,T:1,D:6,F:6,^114m)+
DecodeIR decodes this as RC5-7FStreamZap-57
IRP notation: {57k,msb,889}<1,-1|-1,1>(1,~F:1:6,T:1,D:6,F:6,^114m)+
DecodeIR decodes this as RC5-7F-57Sunfire
IRP notation: (38k,560,msb)<1,-1|3,-1>(16,-8, D:4,F:8,~D:4,~F:8, -32)+TDC-38 and TDC-56
UEI executor: 01BB (38KHz) 01BD (56KHz)
IRP notation for TDC-38: {38k,315,msb}<-1,1|1,-1>(1,-1,D:5,S:5,F:7,-89m)+
IRP notation for TDC-56: {56.3k,213,msb}<-1,1|1,-1>(1,-1,D:5,S:5,F:7,-89m)+There are two variants of this protocol, with different frequencies but with the same number of carrier cycles in each burst, which makes the duration of a burst also differ. TDC-38 has a 38kHz carrier and is used by Danish TDC IPTV. TDC-56 has a 56.3kHz carrier and is used by Italian ALICE Home TV box. These implementations effectively use a 6-bit OBC as bit 0 of F is always the complement of bit 1, but there are other implementations which do not follow that pattern.
Teac-K
UEI executor: 00BB
IRP notation: {37k,432}<1,-1|1,-3>(8,-4,67:8,83:8,X:4,D:4,S:8,F:8,T:8,1,-100,(8,-8,1,-100)+ {T=D+S:4:0+S:4:4+F:4:0+F:4:4}
Teac-K is the member of the Kaseikyo family with OEM_code1=67 and OEM_code2=83.
Teac-K uses different repeat rules and a different check byte than other Kaseikyo protocols.
This protocol signals repeats by the use of dittos.Thomson
UEI executor: 004B
IRP notation: {33k,500}<1,-4|1,-9>(D:4,T:1,D:1:5,F:6,1,^80m)+
This is not a robust protocol, so spurious decodes are likely.
DecodeIR2.42 and later deprecates Thompson (5 bits of device, and 6 bits of function) and reports these signals as Thompson7 (4 bits of device and 7 bits of function).Thomson7
UEI executor: 004B
IRP notation: {33k,500}<1,-4|1,-9>(D:4,T:1,F:7,1,^80m)+
DecodeIR2.42 deprecates Thompson (5 bits of device, and 6 bits of function) and reports these signals as Thompson7 (4 bits of device and 7 bits of function).Tivo
UEI executor: 0111
IRP notation: {38.4k,564}<1,-1|1,-3>(16,-8,133:8,48:8,F:8,U:4,~F:4:4,1,-78,(16,-4,1,-173)*)Velleman
IRP notation: {38k,msb}<700,-5060|700,-7590>(1:1,T:1,D:3,F:6,1,-55m)+
Very similar to RECS80-0045, except on duration is longer.Velodyne
IRP notation: {38k,136,msb}<210,-760>(<0:1|0:1,-1|0:1,-2|0:1,-3|0:1,-4|0:1,-5|0:1,-6|0:1,-7|0:1,-8|0:1,-9|0:1,-10|0:1,-11|0:1,-12|0:1,-13|0:1,-14|0:1,-15>
(T=0,(S:4:4,~C:4,S:4,15:4,D:4,T:4,F:8,210u,-79m,T=8)+)) {C=(8+S:4+S:4:4+15+D+T+F:4+F:4:4)&15}
Velodyne is a close relative of XMP.Viewstar
UEI executor: 0021
IRP notation: {50.5k,337}<1,-8|1,-5>(F:5,1,-17)+
This is not a robust protocol, so spurious decodes are likely.X10 and X10.n
UEI executor: 003F (X10.n), 01DF (X10)
IRP notation for X10: {40.8k,565}<2,-12|7,-7>(7,-7,F:5,~F:5,21,-7)+
IRP notation for X10.n: {40.8k,565}<2,-12|7,-7>(F:5,N:-4,21,-7,(7,-7,F:5,~F:5,21,-7)+)These are two variants of the same Home Automation protocol. They differ in that X10.n has a distinctive start frame that carries a sequence number, the n of the protocol name, in addition to the OBC. The repeat frames, and all frames of the X10 version, only carry the OBC. The value of n runs from 0 to 15 (or some lower value) and then restarts again at 0. It is incremented on each successive keypress. A valid X10.n signal must have at least one repeat frame. If this is missing then the Misc column shows "invalid signal".
XMP, XMP-1 and XMP-2
UEI executor: 016C
IRP notation (without final frame): {38k,136,msb}<210,-760>(<0:1|0:1,-1|0:1,-2|0:1,-3|0:1,-4|0:1,-5|0:1,-6|0:1,-7|0:1,-8|0:1,-9|0:1,-10|0:1,-11|0:1,-12|0:1,-13|0:1,-14|0:1,-15>(T=0,(S:4:4,C1:4,S:4,15:4,OEM:8,D:8,210u,-13.8m,S:4:4,C2:4,T:4,S:4,F:16,210u,-80.4m,T=8)+)){C1=-(15+S+S::4+15+OEM+OEM::4+D+D::4),C2=-(15+S+S:4+T+F+F::4+F::8+F::12)}
IRP notation (with final frame):{38k,136,msb}<210,-760>(<0:1|0:1,-1|0:1,-2|0:1,-3|0:1,-4|0:1,-5|0:1,-6|0:1,-7|0:1,-8|0:1,-9|0:1,-10|0:1,-11|0:1,-12|0:1,-13|0:1,-14|0:1,-15>(T=0,((S:4:4,C1:4,S:4,15:4,OEM:8,D:8,210u,-13.8m,S:4:4,C2:4,T:4,S:4,F:16,210u,[-80.4m][-80.4m][-13.8m],T=8)+,T=9)2)){C1=-(S+S::4+15+OEM+OEM::4+D+D::4),C2=-(S+S:4+T+F+F::4+F::8+F::12)}
XMP uses one burst pair to encode numbers 0 to 15, with an on duration of 210uS, and off duration of 760uS + n*136uS where n takes on values of 0 to 15. The checksum nibble is the complement of 15 plus the sum of the other 7 nibbles, mod 16
The Device code is D, the SubDevice code is S and there are two OBC values. OBC1 is the high byte of F, OBC2 is the low byte of F. The OEM code is normally 0x44 and is reported in the Misc field only if it has a different value. The XMP-1 protocol is XMP with OBC2 = 0. The OBC field in DecodeIR then shows OBC1. The XMP-2 protocol is XMP with OBC1 = 0. The OBC field in DecodeIR then shows OBC2.This protocol has a 4-bit toggle T that is 0 for the first frame and normally 8 for all repeat frames. There is, however, a variant in which a further frame with T=9 is sent after the button is released, separated from the preceding frame by the short leadout of 13.8m that is used between two half-frames rather than the long lead-out of 80.4m used at the end of all other frames. When this frame is detected then the Misc field displays "With Final Frame". For this to be shown in a learned signal, the button must be released before the learning process times out, so a short button press is needed.
These are problem decodes because JP1 remotes don't typically learn these signals accurately enough for a correct decode. NG Prontos also do a rotten job of learning these signals. Older Prontos seem to do fairly well. DecodeIR v2.40 includes algorithms that attempt to reconstruct a valid XMP signal from a corrupt learn, but it is impossible to correct all learning errors and there can be no certainty that a reconstruction is actually correct.
In a correctly learned or fully reconstructed signal there will be an "XMP", "XMP-1" or "XMP-2" decode with device, subdevice and OBC values that can be used with RemoteMaster or any similar program to regenerate a clean signal. The Misc field shows which algorithms, if any, have been applied, as a list in brackets after any decode data in this field. There are notes below on the reliability of the various algorithms. When the protocol shows as (unqualified) XMP, both OBC values are non-zero. The OBC and Hex fields show OBC1. The corresponding values for OBC2 are shown in the Misc field.
The learned signal itself will certainly not be valid if any reconstruction algorithms have been applied and it may not be so even if it has been decoded without reconstruction. The possible algorithm indicators in the Misc field are as follows:
- End (= Endpoint): The lead-out burst is missing and has been inserted. This is almost certainly correct.
- Rec (= Recovery): Look-ahead has been used to recover a missing burst from the following repeat frame. This is very likely to be correct.
- Cor (= Correction): Two bursts have been coalesced in the learning process, e.g. those for hex digits C and D, causing a C to appear as D or vice versa. The error has been identified and corrected. This is probably correct.
- Cal (= Calculated): A missing digit has been calculated from a checksum. The digit is probably correct but it may be in the wrong place. The most likely error in the reconstruction is that the two digits of the OBC are the wrong way round.
- Cal2 (= Calculated 2) Two consecutive missing zero digits have been identified, corresponding to a zero OBC. When this happens, the signal will always be shown as XMP-1. The most likely error in the reconstruction is that it should actually be XMP-2.
If a learned signal is good enough to be recognised as XMP but not good enough to be fully reconstructed, the protocol will display with a name of the form
XMP:136.218-0F0F441A0A800F00
This represents intermediate data from an unsuccessful attempt to decode a XMP signal. The number in the position where the 136 is in this example represents the time scale. A number (like this example) that is near 137 is reasonable. A number much further from 137 indicates a more serious learning or decoding problem. The number in the position where the .218 is in this example (it is not part of the 136) represents the level of inconsistency in the individual hex digit decodes. A value greater than .100 means the hex digits aren't very reliable.The hex string, where the 0F0F441A0A800F00 is, is the decoded data. At least one digit is almost certainly wrong or the whole decode wouldn't be displayed in this form. With a JP1 learning remote, the most common errors are that a digit is actually missing, in which case the string will have fewer than 16 hex digits, or that two or more digits which are decoded the same are actually different, so some of them are correct and some are one value higher or lower. Although the reconstruction algorithms attempt to correct these types of errors, it is not always possible. In this example, the correct signal is known. One of the three F's is really an E and one of the two A's is really a 9. The correct string is 0E0F441A09800F00.
Almost all examples we've seen start with "0E0F441A0" or "060F44120". But we've also seen upgrades from UEI for "0D1F441A0" and "0C2F441A0" and "0B3F441A0". The last 4 digits of the whole 16 digit string (if they are correct) represent the Hex command needed to reproduce the signal in a JP1 upgrade or KeyMove. DecodeIR shows them as two 8-bit OBC values, as described with the IRP notation above.
Zaptor
UEI executor: 01CD
IRP notation: {36.6k,330,msb}<-1,1|1,-1>[T=0] [T=0] [T=1] (8,-6,2,D:8,T:1,S:7,F:8,E:4,C:4,-74m)+ {C = (D:4+D:4:4+S:4+S:3:4+8*T+F:4+F:4:4+E)&15}
where T=0 for all frames except the last, T=1 for last frame, E is a checksum seed. There is a 56KHz variant.
See also Amino.Zenith
UEI executor: 0022
IRP notation: {40k,520,msb}<1,-10|1,-1,1,-8>(S:1,<1:2|2:2>(F:D),-90m)+
Before Version 2.43, this document has shown the IRP notation as {40k,520,msb}<1,-1,1,-8|1,-10>(S:1,<1:2|2:2>(F:D),-90m)+An unusual protocol, in that the number of bits in the function code is variable. It is represented in DecodeIR as the device code. There are also two lead-in styles, decoded as subdevice values 0 and 1. Style 1 aka "double-start" is usually used in TV's, other appliances use 0 aka "single start". If the device code is >8 then the bytes given in the Misc field as E = ... follow the OBC in the function code value.