DIY Roomba virtual wall (part 1)

Recently I got an iRobot Roomba as a gift (wedding gift to be precise). With the Roomba itself there was one Virtual Wall included. The idea of diving open area using the virtual wall is a really brilliant one. I quickly found out that I need more than just one such device for instance in the corridor where I have three doors (and which I would like to stay open during vacuuming). I quickly checked eBay et al. and found out that one Virtual Wall for my Roomba would cost ca 40 $USD plus the delivery cost. Therefore I decided to check it how it actually works and if it is possible to make a "Virtual Wall"-like device at my own.

 

iRobot Roomba Virtual Wall under examination:

DIY Roomba virtual wall (part 1)

First step is to check what are we actually fighting with :) Virtual Wall uses infrared signals to form a beam which Roomba is not allowed to pass through. One can check this using any CCD camera. Smartphone camera may be good but better would be to use old CCD camera from network camera.

DIY Roomba virtual wall (part 1)

So now - let's check what do we actually see. I used a simple integrated IR receiver from old satellite receiver (working at 38kHz). I have read somewhere googling that old roombas were using 38kHz so I gave it a try and used 38kHz receiver as well. Using some googling as well I got a pinout for the receiver:

 DIY Roomba virtual wall (part 1)

So using following setup:

DIY Roomba virtual wall (part 1)

I got following results for the top transmitter:

DIY Roomba virtual wall (part 1)

DIY Roomba virtual wall (part 1)

DIY Roomba virtual wall (part 1)

And for the front transmitter:

DIY Roomba virtual wall (part 1)

DIY Roomba virtual wall (part 1)

So it is easy to see that Virtual Wall is sending two kinds of pulses. One is sent by the transmitter on the top (which protects the wall from being hit by Roomba from back) and the second one is sent by the front transmitter (main beam).

If we would treat short spaces as zeros and long spaces as ones we would get following results:

Transmitter from the top of Virtual Wall sends 0110 0110 1001 011
Transmitter from side of Virtual Wall sends 0110 0110 1001 010

It is easy to notice that VW sends 15 bits of some code with last bit depending on the source of the light (top transmitter or front transmitter). So let's try to reproduce same pattern using... anything ;) Whatever is handy :) In my case I have Arduino on my desk so let's use it. Simple quick sketch which reproduces the pattern is available [[here]]. I have connected IR LED (from the remote controller from the same satellite receiver box:)) to port 13 of Arduino (same as LED). Just to have a short proof of (my) concept. 

DIY Roomba virtual wall (part 1)

Got following result:

 

Will be continued in part 2.

http://eka.tomeczko.pl/index.php/diy-roomba-virtual-wall/7-diy-roomba-virtual-wall-part-1