This is the IR protocol in irp format:
{42.3k.or 336k,msb}<-376,+376|376,-376>((1:1,31:6,376,^46046)2,(1:1,F:6,376,^46046)+,(1:1,31:6,376,^46046)2)
All frames are the same. The first is the "start frame" repeated twice, the second the data frame should repeat as long as the button is held. The final frame is the same as the first and sent twice at button release. It is in the spec here
There are two versions of the Protocol, one at 42.3KHz and the other at 336 KHz that are otherwise the same.
Here is John Fine's original protocol disassembled with Mike's disassembler in PB:
Code: Select all
Addr Code Label Op Op Args Comments
FF00 37 82 DB 37H,82H ;42.3 kHz 30%
FF02 01 DB 01H ;0 dev, 1 cmd
FF03 8B 13 JR LFF18
FF05 C4 DB C4H ;pf0: 11000100=1-cmd,dev-cmd,OffAsTotal
FF06 85 DB 85H ;pf1: 10000101=RptHeld,LI-same,-LO
FF07 10 DB 10H ;pf2: 00010000=0-rev
FF08 08 DB 08H ;pd00: DevBits1=8
FF09 07 DB 07H ;pd01: CmdBits1=7
FF0A 00 BC DW 00BCH ;pd02/03: 1-burst on=376 uS
FF0C 00 A8 DW 00A8H ;pd04/05: 1-burst off=376 uS
FF0E 00 BC DW 00BCH ;pd06/07: 0-burst on=376 uS
FF10 00 A8 DW 00A8H ;pd08/09: 0-burst off=376 uS
FF12 59 EF DW 59EFH ;pd0A/0B: Leadout off=46046 uS
FF14 00 BC DW 00BCH ;pd0C/0D: Leadin on=376 uS
FF16 03 98 DW 0398H ;pd0E/0F: Leadin off=1880 uS
FF18 58 03 LFF18: LD W5,DCBUF
FF1A E6 03 BE LD DCBUF,#BEH
FF1D F6 01 46 CALL 0146H
FF20 F6 01 46 CALL 0146H
FF23 59 03 LD DCBUF,W5
FF25 56 C5 03 AND RC5,#03H
FF28 EB 02 JRNE LFF2C
FF2A 5C 0B LD W5,#0BH
FF2C DF LFF2C: SCF
FF2D C0 03 RRC DCBUF
FF2F 02 55 ADD W5,W5
FF31 F6 01 46 LFF31: CALL 0146H
FF34 5A FB DJNZ W5,LFF31
FF36 E6 03 BE LD DCBUF,#BEH
FF39 F6 01 46 CALL 0146H
FF3C 8D 01 46 JP 0146HCode: Select all
FF20 F6 01 46 CALL 0146HTo make long story short it was inreliable and it looks like the protocol just repeats the start frame as long as you hold the button down. So my guess is the protocol engine doesn't release it to execute the next steps until the key is released. I think Vynce was getting a little better recognition out of the Taps.
Also, if it will simplify matters, there is a Pronto ccf file that was generated by Guy Kuo and Barry Gordon five years ago, and they simplified the protocol to {42.3k.or 336k,msb}<-376,+376|376,-376>((1:1,31:6,376,^46046)2,(1:1,F:6,376,^46046)+)
John created a protocol that sought to create the exact signal since you can do that with an OFA remote but not a Pronto. Certain commands need 2 minimum repeats of the data frame, most 4 repeats and four commands require 22 repeats. John did that using the bottom bit of OBC as a trigger (0 repeats 22 time and 1 four). However, everyone reported that the Pronto version works well, so that may not be necessary and may simplify fixing the problem.