Decoding "unknown" remote, resending signal

Hi

After having read a lot about cloning remotes and controlling appliances from Arduino, I ordered a board and stole some IR goodies from my old Bluray player (Sony) + remote. This is a fun way to introduce myself to Arduino.

I'm trying to decode signals from no-name brand remote that we use with our set-top box. This however spits of different lengths of signals every time I press a different number, for example 1-4, however all of these signals works fine when I play them back; which is good!

I'd love to understand why this happens, and hope some of you can enlighten me or help me in the right direction. I'm just assuming that the length is supposed to be the same in an ideal world as only the number 1 or 4 is what need to change, but I'm probably misunderstand how this works.

I'm using the rutine posted by AnalysIR (Decoding Mitsubishi AIRcooler Mitsubishi MSZ-GE25VA G-Inverter remote type KM09A - Programming - Arduino Forum) to dump the values.

It's not much info to go by (or maybe it is?), but here's data from pressing button 1 to 4:

button 1

Raw: (161) 2524, -1948, 632, -360, 304, -360, 300, -364, 632, -720, 276, -360, 300, -364, 300, -360, 304, -364, 300, -360, 300, -364, 300, -360, 304, -364, 300, -360, 300, -360, 304, -308, 356, -364, 628, -724, 604, -360, 304, -692, 300, -364, 632, -692, 636, -692, 632, -692, 632, -696, 300, -360, 304, -8092, 2600, -1872, 636, -360, 300, -364, 356, -304, 692, -664, 332, -304, 356, -304, 360, -304, 360, -304, 360, -304, 356, -304, 360, -304, 360, -304, 356, -308, 356, -304, 360, -304, 360, -304, 688, -636, 692, -304, 360, -632, 360, -304, 692, -636, 692, -632, 692, -636, 688, -640, 356, -304, 360, -8020, 2600, -1868, 636, -360, 300, -364, 300, -360, 692, -640, 356, -304, 360, -304, 300, -360, 692, -636, 356, -304, 360, -304, 300, -364, 356, -308, 300, -360, 304, -360, 300, -364, 692, -636, 688, -304, 360, -636, 356, -308, 688, -636, 692, -632, 692, -304, 360, -304, 356, -636, 300, -364, 360,

button2

Raw: (155) 2572, -1872, 632, -364, 300, -360, 304, -360, 632, -696, 300, -364, 300, -360, 300, -360, 304, -360, 304, -360, 304, -360, 300, -364, 300, -360, 304, -360, 300, -364, 300, -364, 300, -360, 636, -360, 300, -696, 632, -696, 296, -364, 632, -696, 632, -692, 632, -692, 636, -688, 692, -8396, 2576, -1868, 692, -304, 360, -304, 360, -304, 688, -636, 360, -304, 360, -300, 360, -304, 360, -304, 360, -304, 360, -300, 360, -304, 360, -304, 360, -304, 360, -304, 356, -304, 360, -304, 692, -304, 356, -636, 692, -636, 356, -304, 692, -636, 692, -632, 692, -636, 688, -636, 692, -8336, 2600, -1872, 692, -300, 360, -308, 356, -304, 632, -696, 300, -360, 360, -304, 356, -308, 688, -636, 360, -304, 356, -308, 356, -304, 360, -304, 360, -304, 360, -300, 360, -308, 688, -304, 360, -632, 692, -636, 360, -304, 688, -636, 692, -636, 688, -304, 360, -304, 360, -636, 692,

button 3

Raw: (167) 2600, -1872, 692, -304, 356, -304, 360, -304, 692, -636, 356, -304, 360, -304, 360, -304, 356, -308, 356, -304, 360, -304, 360, -304, 356, -308, 356, -308, 356, -304, 360, -304, 364, -300, 688, -304, 360, -304, 356, -304, 360, -640, 356, -304, 688, -636, 692, -636, 688, -636, 692, -304, 356, -640, 356, -8036, 2600, -1876, 688, -304, 360, -304, 356, -308, 688, -640, 356, -304, 356, -308, 356, -308, 356, -304, 356, -308, 356, -308, 356, -308, 352, -308, 356, -308, 356, -304, 360, -304, 356, -308, 688, -308, 356, -304, 356, -308, 356, -640, 356, -308, 684, -640, 688, -640, 684, -640, 688, -308, 356, -636, 356, -8012, 2588, -1880, 688, -304, 356, -308, 356, -308, 688, -640, 352, -308, 356, -308, 356, -304, 692, -636, 356, -308, 356, -308, 352, -308, 356, -308, 356, -308, 356, -304, 356, -312, 684, -308, 356, -308, 352, -308, 356, -640, 356, -308, 684, -640, 688, -640, 684, -308, 356, -308, 356, -308, 352, -640, 356,

button 4

Raw: (171) 2576, -1896, 668, -324, 340, -324, 340, -324, 668, -656, 340, -324, 340, -324, 336, -324, 340, -324, 340, -324, 340, -324, 336, -324, 312, -352, 316, -372, 292, -372, 292, -372, 292, -368, 316, -348, 312, -348, 620, -376, 284, -380, 284, -708, 284, -380, 276, -388, 608, -720, 604, -720, 276, -388, 608, -384, 276, -8456, 2524, -1944, 620, -376, 284, -380, 284, -376, 616, -712, 272, -392, 272, -388, 276, -388, 272, -392, 272, -392, 272, -388, 276, -388, 272, -392, 272, -392, 272, -388, 272, -392, 272, -392, 272, -392, 272, -388, 604, -392, 272, -392, 272, -720, 272, -392, 272, -392, 604, -720, 604, -724, 272, -388, 608, -388, 272, -8428, 2520, -1948, 620, -372, 288, -376, 288, -376, 616, -708, 280, -384, 272, -392, 272, -392, 604, -720, 272, -392, 272, -392, 272, -388, 276, -388, 272, -392, 272, -392, 272, -388, 276, -388, 272, -392, 604, -388, 276, -388, 272, -724, 272, -388, 276, -388, 608, -720, 604, -388, 280, -716, 608, -388, 272,

Thanks for reading :-)

Some codings use a different number of state transitions (high-to-low or low-to-high) to represent 1s and 0s. Your different length codes probably just have different numbers of 1s and 0s so they have different numbers of state transitions.

Hi John

Thanks a lot, I've read up on state transitions and it makes sense :slight_smile:

I have included a screenshot of what your signal looks like. It is not a common protocol, but easy to reproduce using the IRLib/IRremote library.(SendRAW)

To find out more about IR remote control search for "sbprojects IR" & all will be revealed.

I have also attached a screenshot of what your signals look like.
Each signal has 25 data bits, repeated 3 times.

Update: After further research, it appears this signal is the Zaptor protocol. 3 bursts. The last burst seems to contain a toggle, which makes the checksum different (possibly 4 bits????). The encoding is the same style as RC6 but in time units of 330 uSecs.

Hi AnalysIR

Thanks for replying :-). I can send the signal back without issues, but I'm slowly trying to decode the protocol. I see your application mentioned a lot, but cannot figure out how to actually purchase it - can you let me in on the secret?

Signal has these high pulse of ~73592 - two (2) times.

Bit stream detected!
2564 1908 652 284
380 284 380 280
712 616 376 288
376 284 380 260
404 280 384 280
380 284 380 284
380 260 404 280
384 280 380 284
380 284 376 260
404 284 380 284
708 620 376 284
380 284 380 256
740 616 708 284
380 284 376 284
380 672 324 73592
2584 1912 652 284
380 284 376 284
712 676 320 280
384 280 380 316
348 284 380 284
376 316 348 284
380 284 380 260
404 280 384 280
380 284 380 284
376 284 380 284
712 672 320 284
380 284 380 280
712 648 680 284
380 284 376 284
380 672 324 73520
2616 1860 704 288
376 284 380
Bit stream end!

Signal has these high pulse of ~73592 - two (2) times.

They are actually gaps (lows or spaces) between repeats of the same signal. Each signal is repeated twice.

IR receivers provide an inverted output, which might explain this for you. That is, the output is HIGH when there is no signal (or idle) and LOW when a (modulated) signal is being received.

AnalysIR:

Signal has these high pulse of ~73592 - two (2) times.

They are actually gaps (lows or spaces) between repeats of the same signal. Each signal is repeated twice.

IR receivers provide an inverted output, which might explain this for you. That is, the output is HIGH when there is no signal (or idle) and LOW when a (modulated) signal is being received.

The inverted output would explain my confusion looking at it on a CRO!!

Weedpharma