I need to get the rest. If you think I can do it then just tell me how you encoded it. (I'm not famaliar with your protocol notation) I am confortable with hex and binary, device code, function code, and I understand the 2 bits per symbol encoding, but I'm unfamaliar with how you got to the hex that both of you are using, Including how you decoded the 2 bit encoding
I assume
0011= 00
001A= 01
0023= 10
002B= 11
and that there are 3 bytes encoded (In some cases I saw extra bits, or maybe my eyes were just shifting...)
However if you can do the rest before you figure out how to explain, then go ahead
if M=1 it repeats otherwise not
where C=M:1:1+M:1:0+F:1:5+F:1:4
and for M
0=Make, 1=repeat, and 2=break
What that means is:
{38K,226} 38KHz IR carrier frequency, Time Base = 226 uS
<2,-2|2,-3|2,-4|2,-5> The burst pairs for binary 00, 01, 10, and 11 in units of time base or in time in uS:
452,-452 (positive is on negative is off)=00
452,-678=01
452,-904=10
452,-1130=11
(4,-2,D:8,M:2,F:6,2:2,C:2,~F:4:0,2,-356) is the transmitted signal, where
4,-2 is the lead in pulse in units of time base
D:8,M:2,F:6,2:2,C:2,~F:4:0 is the data structure
D:8 device in 8-bits
M:2 the make, break, or repeat depending on the value of M in 2-bits.
F:6 function code aka OBC in 6-bits
2:2 the constant 2 expressed in 2-bits
C:2 a check sum in 2-bits
~F:4:0 the complement of the bottom four bits of F
2,-356 the lead out expressed in units of TimeBase
C=M:1:1+M:1:0+F:1:5+F:1:4 means the sum of these bits M:1:1 means 1 bit from M and the second 1 after the colon means the lsb offset where 0 is the bottom bit, etc.
So all of that is academically interesting, but I am no assembly language expert. There is a very good tool, Protocol builder (PB), but it doesn't handle something like four burst pairs each representing two bits. PB can only can deal with a One or a Zero. Since every burst pair has at least 452 uS on and 452 uS off, we'll call that a 1 and define the Zero to be NO on time and 226 uS off.
0 = 0,-226
1 = 452,-452
Now we translate the real coding into something PB can deal with.
00 -> 1
01 -> 10
10 -> 100
11 -> 1000
You make those substitutions and add a final 1 at the end of all the bits and pad with enough 0's to get 36 bits and translate into four bytes of hex. The first is the same for all commands so it will be fixed the other three vary.
I translated all commands and did the substitutions with a spreadsheet. I can post that so you can see what I did at work where IIRC you have Excel.
So if I understand it correctly the raw hex code is just concatonated values you listed (1,10,100,1000) If I just change the raw values I should be set. (As you already setup PB with the correct time base, and the on and off values)
Haven't tried the last commands yet, but I'll assume that they'll work. I've been a bit busy, and haven't done much.
Thanks for the help.
I don't know if all this info needs to be posted for the benefit of everyone else, but I trust that you will (or have already) add(ed) this to the wealth of info on the yahoo site. If my ccf files might help someone, feel free clean up (if necessary) and post my ccf files if you have extra time to kill. (Remote central ??)