Shop OBEX P1 Docs P2 Docs Learn Events
Boe-Bot IR Documentation — Parallax Forums

Boe-Bot IR Documentation

I_Love_My_ComputerI_Love_My_Computer Posts: 11
edited 2007-09-04 10:47 in BASIC Stamp
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·cool.gif.·If I get passed the IR signals then I will keep you posted on the project.

Thanks,
Josh

Comments

  • TechnoRobboTechnoRobbo Posts: 323
    edited 2007-09-02 14:48
    First of All using a Sony Remote with a Microsoft XBox can cause a cataclysmic explosion similar to mixing matter with antimatter.

    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
  • I_Love_My_ComputerI_Love_My_Computer Posts: 11
    edited 2007-09-02 22:15
    I need some help can you tell me how the Boe-Bot IR code works? I am having trouble implementing it for a RCA remote.

    Thanks,
    Josh
  • FranklinFranklin Posts: 4,747
    edited 2007-09-02 23:19
    First you need to know what the RCA remote sends for codes. The BOEBOT code is for Sony codes so it won't work without changing the program. All the bot is doing is receiving a string of codes and doing the command associated with that code. you can reprogram the bot to do something else with the Sony codes or to read RCA codes and respond as with the Sony. It's all in the code.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    - Stephen
  • TechnoRobboTechnoRobbo Posts: 323
    edited 2007-09-02 23:58
    If your using the XBOX remote that uses the an RCA protocol·the major difference·between it and Sony is that the RCA sends the most significant bit first the sony sends the least significant bit first.

    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
  • I_Love_My_ComputerI_Love_My_Computer Posts: 11
    edited 2007-09-03 01:49
    TR, I was meaning from the beginning that I am building a CD changer for my xbox I would like to use my RCA remote to control the system I am using not to control the xbox itself. I was using the Boe-Bot as an example because it is the same basic circuit.

    Thanks,
    Joshsmile.gif
  • TechnoRobboTechnoRobbo Posts: 323
    edited 2007-09-03 01:49
    (I retimed it for 300us (.300ms) bursts that's why I got rid of the for next loop - larger gaps allow you to use for next.)

    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
  • TechnoRobboTechnoRobbo Posts: 323
    edited 2007-09-04 10:47
    attachment.php?attachmentid=73776

    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
    773 x 999 - 26K
Sign In or Register to comment.