Boe-Bot IR Documentation
I_Love_My_Computer
Posts: 11
I don't understand the IR docs for the boe-bot (http://www.parallax.com/dl/docs/prod/sic/WebIR-%20v1.1.pdf) I understand the circuit but after that I get confused. I don't understand weather it is only for a Sony remote or If I could simulate this using another remote. Can someone tell me if I could use a different remote for this and any code changes needed? This is for a project that involves changing a disk in my xbox without getting off the chair·.·If I get passed the IR signals then I will keep you posted on the project.
Thanks,
Josh
Thanks,
Josh
Comments
Second, scope out this link :http://www.sbprojects.com/knowledge/ir/ir.htm
I used it to develop my RC5 routine. As you can see there are lots of protocols out there and they're not compatible with each other. ·I picked up a cheap universal remote (a huge oversized one) at walgreens ( a pharmacy in the states) and put it on the scope and picked out the easiest 11 bit protocol and wrote a code for that - I've tried to match it with the many codes that are out there and I still haven't figured out who's it is.· Here's one of my many references:
http://www.geocities.com/SiliconValley/Lakes/3947/TABLE.HTML
In other words -pick a universal remote and pick a code and stick with it. There is no open standard (RC5 may be the closest thing).
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Have Fun
TR
Post Edited (TechnoRobbo) : 9/2/2007 6:42:08 PM GMT
Thanks,
Josh
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
- Stephen
The second difference is that Sony uses a 2.4ms header and RCA uses a 4ms header
Sony uses a 1.2ms burst for a 1 bit, a·.600ms burst for a 0 bit. and gaps of .600ms as spacers
RCA (wanting to be difficult) uses .500ms burst as their spacer and the gaps are the bits - a gap of 2ms is a 1 bit and a gap of 1ms as a 0 bit.
The third major difference is that RCA sends the data twice -·the second time inverted that way you can do an XOR and if·you get a -1 then the data is not corrupt.··You dont have to read the second data unless its for life saving purposes.
I'm assuming your final code should look like this
'RCA
'{$STAMP BS2}
'{$PBASIC 2.5}
time VAR Word
remoteCode VAR Word
CheckSum· VAR Word
idx VAR Byte
IR· CON 9
DO
Get_Pulses: ' Label to restart message check
remoteCode = 0 ' Clear all bits in remoteCode
CheckSum = $F000
· DO
··· PULSIN IR,0,time
· LOOP UNTIL time>1200
· RCTIME IR, 1, time······· 'measure gap and ignore
· RCTIME IR, 0, time······· 'measure gap and ignore
· 'measure bits
· RCTIME IR,1,time
· IF time>550 THEN remoteCode.BIT11=1
· RCTIME IR,1,time
· IF time>550 THEN remoteCode.BIT10=1
· RCTIME IR,1,time
· IF time>550 THEN remoteCode.BIT9=1
· RCTIME IR,1,time
· IF time>550 THEN remoteCode.BIT8=1
· RCTIME IR,1,time
· IF time>550 THEN remoteCode.BIT7=1
· RCTIME IR,1,time
· IF time>550 THEN remoteCode.BIT6=1
· RCTIME IR,1,time
· IF time>550 THEN remoteCode.BIT5=1
· RCTIME IR,1,time
· IF time>550 THEN remoteCode.BIT4=1
· RCTIME IR,1,time
· IF time>550 THEN remoteCode.BIT3=1
· RCTIME IR,1,time
· IF time>550 THEN remoteCode.BIT2=1
· RCTIME IR,1,time
· IF time>550 THEN remoteCode.BIT1=1
· RCTIME IR,1,time
· IF time>550 THEN remoteCode.BIT0=1
· RCTIME IR,1,time
· IF time>550 THEN CheckSum.BIT11=1
· RCTIME IR,1,time
· IF time>550 THEN CheckSum.BIT10=1
· RCTIME IR,1,time
· IF time>550 THEN CheckSum.BIT9=1
· RCTIME IR,1,time
· IF time>550 THEN CheckSum.BIT8=1
· RCTIME IR,1,time
· IF time>550 THEN CheckSum.BIT7=1
· RCTIME IR,1,time
· IF time>550 THEN CheckSum.BIT6=1
· RCTIME IR,1,time
· IF time>550 THEN CheckSum.BIT5=1
· RCTIME IR,1,time
· IF time>550 THEN CheckSum.BIT4=1
· RCTIME IR,1,time
· IF time>550 THEN CheckSum.BIT3=1
· RCTIME IR,1,time
· IF time>550 THEN CheckSum.BIT2=1
· RCTIME IR,1,time
· IF time>550 THEN CheckSum.BIT1=1
· RCTIME IR,1,time
· IF time>550 THEN CheckSum.BIT0=1
· IF (CheckSum^remoteCode)=-1 THEN
··· DEBUG BIN16 remoteCode ' Display keypad code
··· DEBUG TAB,DEC· remotecode.HIGHBYTE
··· DEBUG TAB,DEC· remoteCode.LOWBYTE
··· DEBUG TAB,DEC· remoteCode.LOWNIB,CR
· ELSE
··· DEBUG "CheckSum Failure",CR
··· DEBUG BIN16 remoteCode,TAB,BIN16 CheckSum,TAB, BIN16 (CheckSum^remoteCode),CR
· ENDIF
LOOP ' Repeat main loop
But I haven't found the XBOX protocol on my remote to test it.
Update:
I found a TV/VCR RCA Code that closes matches the spec except the header is 3ms and I updated the code -still testing·- I hope it's a match
Nope .300 ms burts - I'll keep looking.
Edited code to work with RCA code I found - note lownibble will give you number button pressed
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Have Fun
TR
Post Edited (TechnoRobbo) : 9/4/2007 1:53:05 AM GMT
Thanks,
Josh
There are quite a few RCA codes to choose from - some resemble RC5 and Sony - try this one out if it doesn't work I'd suggest using a scope to get the timing - here's a link to a free cheap scope.
http://www.zeitnitz.de/Christian/Scope/Scope_en.html
Once you have the timing the rest is easy.
PS
Tightened up header timing on code & added Checksum routine.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Have Fun
TR
Post Edited (TechnoRobbo) : 9/3/2007 3:46:38 AM GMT
The sum of the remote code and the checksum·always equals $FFF - I pad it to equal $FFFF or -1
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Have Fun
TR
Post Edited (TechnoRobbo) : 9/4/2007 11:05:54 AM GMT