DIY Virtual Walls??

Inside the Roomba and Scooba and more, Cool mods, Repair and Upgrades - including the all new iRobot Create Kit. Let's void that warranty baby!
rj5555
Robot Addict
Posts: 322
Joined: December 5th, 2005, 4:30 pm
Location: Spain

Re: newbie help

Post by rj5555 »

Gordon wrote:In my own mind I had been questioning use of "35 kHz" that was specified at the start of this thread. I have some old notes (from a 2004 vintage forum-message) that indicated a carrier at 38 kHz. Since my notes had no credentials (no trail to the source of that datum) to back them, and since rj5555 is a practicing EE (qualified, and a known source of good advice),
it was then necessary to assume rj had done his own measurement. I also had no access to instrumentation by which I could measure characteristics of the wave-form.
If I recall correctly I had read somewhere the 35KHz frequency myself, as I didn't have any frequency measurement instrumentation I just assumed it to be true. The values of the rc oscillator in the first schematic worked fine on my original silver roomba and roomba pro elite but not on my discovery. I actually still use the second schematic (24 hours a day, 365 days a year for over 3 years now... the led is build in a door post the electronics in a cavity behind it) and it works even with my brand new 550.

Back in 2005 I wrote "Note that the values of R1 and R2 may need a slight adjustment. I have the best results with R1 = 22K and R2 = 220 Ohm" With these values the frequency would by 1/(100e-9 * 220 ) = 45Khz but if I'm not mistaken I made my FW using scrap electronics, most likely some old transistor radio for the r's and c's and the real values could be easily by + or - 10% especially for the condenser ...and.... 1/(110e-9*242) = 37.5 Khz so most likely my build oscillates at around 38Khz indeed.

If anyone wants to build the circuit I would recommend to take a 47K variable resistor for R1 and a 100Ohm fixed resistor with a 220Ohm variable resistor in series for R2. When adjusting first both variable resistors about half way and then (slowly) adjust R2 until your roomba reacts.

PS I used a IR led from a broken remote control, I have no idea with wavelength it's emitting but it works
ichris
Posts: 45
Joined: February 14th, 2009, 7:52 pm

Re: DIY Virtual Walls??

Post by ichris »

I've built a DIY VW based on all the great comments in this thread. A big "thank you" to rj5555 for his circuits. My VW is based on rj's 4093 circuit, with some minor mods:

R1 = 32.7K
R2 = 19K
C1 = .1 uF
C2 = 2200 pF
T1 = P2N2222A

My VW worked fine with R4 at 100 ohms, but this value depends on the LED/distance desired. My VW blocks a 3' hallway entrance, so not much power was needed. I used a Fairchild LED55C for the IR LED.

The only other mod was to add a 1K resistor from the transistor's emitter to ground and put the LED on the emitter side. This made for a prettier scope picture:
DIT VW scope capture
DIT VW scope capture
SCOPE_03.jpg (31.76 KiB) Viewed 27197 times
The above values make a low frequency signal of 500 Hz and a high frequency of 38 kHz. I don't think the exact frequency is critical, the stock iRbt VW's I measured where off 500/38k about 5-10%.

My DIY goals were to use AC power and eliminate the obtrusive iRbot unit.

The VW electronics are housed in box that's mounted about 6' away from the emitter LED. Click the picture for a large version:
DIY VW guts
DIY VW guts
The electronics are AC powered, a Meanwell PS-05 5VDC switching power supply is on the left. I choose a switcher for light weight and small size. I used a Polyswitch RXEF010 for the AC fuse, it trips at 200 mA. I added a MOV for surge protection. You can see the tan Polyswitch and red MOV next to each other under the power supply circuit board.

Two neon lamps indicate the status of AC power. Green = AC on and normal operation. Red = the fuse has tripped. To reset a Polyswitch, just unplug the unit for a minute, and the fuse resets.

To the right of the power supply is the VW circuit board. The blue squares are trimmer pots for frequency control. They are not needed, as the above-mentioned resistor/cap values are good enough. There is green LED on the DC side to indicate the presence of 5V.

Here's the VW control box mounted on the other side of the wall from where the VW LED is. The box is normally hidden from view. You can see the speaker-wire cable going to the VW LED
DIY VW control box mounted
DIY VW control box mounted
The VW LED is enclosed in Legrand Wiremold cord channel:
DIY VW LED
DIY VW LED
The finished product:
The finished product
The finished product
The LED is 2-3 inches back into the cord channel. My two 5xx bots don't cross the beam. If I had to do it over again, I would have used a higher output voltage switching power supply (10-12 VDC) and a linear regulator to get better voltage regulation for the VW circuit. I would also eliminate the trim pots. It would be better to embed the LED into the wall and eliminate the cord channel, but I'm not that handy.

Thanks again to all the posters in this thread and to rj5555 for the circuit!
kblack90
Posts: 1
Joined: June 28th, 2010, 4:13 pm

Re: DIY Virtual Walls??

Post by kblack90 »

Hey guys,
I realize this thread has gotten rather old by this time and rj555's circuit schematics have disappeared from the thread. I'm working on a summer project where I'm trying to send commands to iRobot creates using a router and I need to locate them in a field. Since it's outside, lasers didn't work so we're trying to use the virtual walls, however we need them to pulse faster than once every 2ms. Basically I need to understand how the circuit works better and can find very little documentation on the virtual walls by irobot. Could someone post them back up?
Thanks in advance!
ichris
Posts: 45
Joined: February 14th, 2009, 7:52 pm

Re: DIY Virtual Walls??

Post by ichris »

rj555's schematic attached. It's a simple circuit, a 38Khz carrier pulse modulated on/off for 2ms. See scope trace above.

IC1A is the low frequency oscillator (500 Hz) as per R1, C1. IC1B is the high frequency (38 KHz) oscillator as per C2 & R2. IC1C "switches" the two frequencies so that the 38 KHz is turned on/off by IC1A. IC1D is added as an inverter so a NPN transistor can be used to drive the LED.

I not sure what you mean by "faster than 2ms" or why that's significant. If you gate the 38KHz faster, the robot may not recognize is as the VW signal.

FYI - the build above is still working great.
Attachments
virtualwall schematic.gif
Gordon
Robot Master
Posts: 4304
Joined: April 6th, 2005, 2:02 am
Location: Santa Ynez, CA USA
Contact:

Re: DIY Virtual Walls??

Post by Gordon »

ichris wrote:... If you gate the 38KHz faster, the robot may not recognize is as the VW signal. ...
I agree with ichris. Before changing the transmitted signal, one should learn how the receiver functions. See the attachment.
Attachments
Everlight_IRM-8601S.pdf
(233.06 KiB) Downloaded 1215 times
AusSim
Posts: 8
Joined: September 4th, 2007, 7:50 am

Re: DIY Virtual Walls??

Post by AusSim »

Apologies for coming into the conversation years late.....

I like the setup and would like to know if this would also work with the latest roomba vacuums? is there a frequency change so the old VW no longer work?

thanks
Reinz
Posts: 9
Joined: November 30th, 2014, 4:38 am

Re: DIY Virtual Walls??

Post by Reinz »

I tried to mimic a virtual wall with the following code and an arduino mini pro but my new Roomba 620 does not react to the beam. I would be thankfull for information since I dont own an original virtual wall to compare, and the docking station seems to transmit something completely different...

"tone()" generates 38kHz for 1ms, followed by a "delay" for 1ms
Source)

Code: Select all

int irled = 3;

void setup() {                
  pinMode(irled, OUTPUT);     
}

void loop() {
  tone(irled, 38000, 1);
  delay(1);
}
Reinz
Posts: 9
Joined: November 30th, 2014, 4:38 am

Re: DIY Virtual Walls??

Post by Reinz »

Found a solution with Infrared Remote Library for the Arduino

With the code from github, works realy good on an Arduino mini pro with 16MHz

Code: Select all

 
#include <IRremote.h>
 
// Instantiate IRremote on Pin 3.
IRsend irsend;
 
void setup()
{
  irsend.enableIROut(38);
}
 
void loop()
{
  irsend.mark(1000);
  irsend.space(1000);
}
User avatar
vic7767
Robot Master
Posts: 15556
Joined: January 14th, 2006, 7:31 pm
Location: Haughton Louisiana - USA

Re: DIY Virtual Walls??

Post by vic7767 »

Reinz, glad to read of your success with the IR signal solution. Good luck with your design. What IR emitter diode did you use in your design ?
Reinz
Posts: 9
Joined: November 30th, 2014, 4:38 am

Re: DIY Virtual Walls??

Post by Reinz »

Right now Iam testing and using a Vishay TSAL 6200 (940nm, 17°, 100mA, 1.35V) running at ~38mA, gives a solid not too wide beam. I'll test the range in the next days.
glnc222
Robot Master
Posts: 5479
Joined: January 23rd, 2012, 8:19 pm
Location: The Villages, Florida
Contact:

Re: DIY Virtual Walls??

Post by glnc222 »

Beautiful work here.

For info, when examining other uses of the Roomba Virtual Walls it was found the signal is compatible with TV remotes, which have a standard encoding scheme and dedicated IC's and receivers, in Radio Shack. Small "key chain" remotes and even led candles have generators for the signal. Larger remotes tend to have time-outs on the buttons, but not the little ones. Those who do not want to play with Arduino programming may consider those alternatives. Incidentally TV remote receivers are much more sensitive than Roomba's technique and can receive VW's over thirty feet away. Roomba makes use of intensity detection as when creating a short range deflection region around the VW itself with a second small emitter in the top circular omnidirectional lens.

As for beam spread, the beam can be focused -- collimated -- with a cylindrical acrylic lens such as a slice cleaved (not sawed) off a plastic rod (viewable replacing with a visible led; acrylic, plexiglass, IR transparent). Position at a focal length distance similar to the lens width. The IR leds do come with various beam spread lenses formed on the plastic casing, listed as a spec parameter at digi-key. The VW also encloses the emitter back in a cowling which shades the edges some, similar to some theater stage lighting methods. Roomba's want some spread in the beam so the bot cannot move out of the signal before responding to it with some delay. Arranged for use over the ten foot range used. Lot of details in optical systems.

Some photos in non-Roomba application http://www.robotreviews.com/chat/viewto ... 20&t=17083 and http://www.robotreviews.com/chat/viewto ... 68#p115242
LedPros
Posts: 2
Joined: April 16th, 2015, 12:51 pm
Contact:

Re: DIY Virtual Walls??

Post by LedPros »

Hey all

Thank you guys for creating this thread and posting the circuits. This has been very helpful for our unique project.

I wanted to share what I did because of how much help I received just by having this thread exist.

In our situation, we needed the roomba 560 to run in a 40x40 area without any obstacles. The problem is the Roomba cannot do this- it will run about 20ft in a straight line then turn, do that 4 times then error 10 out. This is because the Roomba assumes it's sensors are not working because it didn't find any walls.

So, using the virtual walls to split the large section into two smaller sections would be the answer- however i am sure you guys know these things only command about 5-7 feet away. Since I needed it to do a 20ft cutoff line, I needed a more powerful virtual wall.

I opened the virtual wall up and found the dampening resistor that they use before it hits the LED driver. This is a 10ohm resistor, and simply bypassing it allows the virtual wall to command the robot from much further away. I can now create a 20ft virtual wall, and the roomba stays on one side of the room. It works great.

Solder job is messy, I am doing this with little time. Again I just wanted to post this and share to give a little back to the people who helped me.
Image

The R5 resistor pads down the "line" LED that creates the virtual wall. The R6 resistor is a 20ohm that pads down the top LED (the one that tells the roomba to stay the hell away from the box and don't knock it over). Not a good idea to bypass the R6 resistor because it will throw the signal over the entire room and the Roomba likely would just spin in circles.
User avatar
vic7767
Robot Master
Posts: 15556
Joined: January 14th, 2006, 7:31 pm
Location: Haughton Louisiana - USA

Re: DIY Virtual Walls??

Post by vic7767 »

LedPros, thanks for that tid-bit of info. Several Roomba owners have expressed the need for a longer range virtual wall.
User avatar
mfortuna
Robot Master
Posts: 5852
Joined: February 5th, 2006, 9:35 am
Location: NH

Re: DIY Virtual Walls??

Post by mfortuna »

Hopefully the LED's lifespan will not be affected. With no resistor you could be exceeding maximum current.
Mike
Reds x 3, Dirt Dog, Disco (now a parts bot), Create, Scooba 350, and Security Dawg
Evolution Mint
Neato XV-11
Shark Ion 750
LedPros
Posts: 2
Joined: April 16th, 2015, 12:51 pm
Contact:

Re: DIY Virtual Walls??

Post by LedPros »

mfortuna wrote:Hopefully the LED's lifespan will not be affected. With no resistor you could be exceeding maximum current.
The line of thinking is correct, but the specific situation isn't.

The resistor they have on there is 10ohm, which tells me it is merely a padding resistor. If it was the main current limiter it would need to be in the 1k ohm range.

The 10ohm resistor is in circuit before the main current driver, which is actually what limits the current. They had to add the 10ohm resistor so the virtual wall doesn't throw a signal so strong it bounces off nearby walls and screws up the robots tracking.

Now I did not actually test the mA going to the LED, but you also have to account for the fact that it is switching at 38khz, which reduces the current going through the diode as well... at least it reduces the heat generated which is what actually kills all diodes.

I have had this prototype on my bench for days now, running off 2 AA batteries. I cant even read a voltage drop on the batteries yet. I would conclude the battery drain between an unmodified virtual wall and this modified one is negligible. Again, iRobot had to pad down the output just so it doesnt throw a crazy signal all over a small room.

It really works too.
glnc222
Robot Master
Posts: 5479
Joined: January 23rd, 2012, 8:19 pm
Location: The Villages, Florida
Contact:

Re: DIY Virtual Walls??

Post by glnc222 »

These threads linked below show some electronic components related to the IR signaling used by Roomba, though applied to adding this function to Neato robots. Not sure it can help but just in case useful.
Optical Boundary Marking (alternative to mag strips) http://www.robotreviews.com/chat/viewto ... 20&t=17083 additional background info in "Adapting Roomba Virtual Walls?" http://www.robotreviews.com/chat/viewto ... 68#p115242

You may find that the transmitter inside a cheap keychain TV remote has everything needed and you do not have to build a circuit. You could amplify the LED drive for a more powerful LED if wanted. These were not tested with Roomba's, just the companion receivers. However, Roomba VW's also activate the receivers.

The Roomba signal detectors are not too sensitive compared to the receivers inside TV's which use an integrated sensing component sold in Radio Shack (before those store closed). These devices perform digital decoding of modulated transmissions encoded with identifier codes. TV sensors can detect the remotes, and Roomba VW's, thirty feet away. The low sensitivity may be to localize the area protected when the IR beam has a substantial spread.

The omni-direction low power emitter on top of VW's is to protect the VW itself, relying on low power to limit the range.
Gordon
Robot Master
Posts: 4304
Joined: April 6th, 2005, 2:02 am
Location: Santa Ynez, CA USA
Contact:

Re: DIY Virtual Walls?? This mod is to an AUTO VWU

Post by Gordon »

LedPros wrote:...I wanted to share what I did because of how much help I received just by having this thread exist.
Good that you made use of the old data. Most of the pages in this thread predate your Roomba's VWU.

I was looking over your photo for quite some time, wondering where its two TO-92 style driver xstrs might be--before I spotted the board's R3-Auto Virtual Wall identification!
... I needed a more powerful virtual wall. ...I opened the virtual wall up and found the dampening resistor that they use before it hits the LED driver. This is a 10ohm resistor, and simply bypassing it allows ... a 20ft virtual wall, and the roomba stays on one side of the room. It works great.
Good that its working well for you. Do you really think R5 accomplishes "dampening" for the circuit? I'm guessing it is simply Q1's (the IRED driver xstr) 'emitter resistor'.
Again I just wanted to post this and share to give a little back to the people who helped me.
Great. There will be people interested in this Auto-VW circuit. I'd like to measure the pulse train's ON interval and its periodicity.

If Mike had been aware of this PCA's automatic function (in driving its IRED) he might not have bothered posting concern about over-driving the bugger. Yet I tend to agree with him. iRobot's circuit OFF dwell may be long enough for cooling the IRED and its driver, but your revised driver ckt may not be. You have a three-volts supply line periodically applied across an IRED and a transistor trying to get into CE saturation. Looking at the 2X datasheet, I don't think that xstr is able to saturate. hence might be running hot. While bench testing, have you placed a finger tip on Q1?
... R6 resistor is a 20ohm that pads down the top LED (the one that tells the roomba to stay the hell away from the box and don't knock it over). Not a good idea to bypass the R6 resistor because it will throw the signal over the entire room and the Roomba likely would just spin in circles.
There is no top IRED in your photo. Are you operating with D1 removed?
User avatar
pccox32
Posts: 1
Joined: August 2nd, 2016, 9:55 am
Location: Mandeville, LA

Re: DIY Virtual Walls??

Post by pccox32 »

I am a complete newbie to this. I am planning on teaching myself to solder. I am going to go buy everything in order to make this virtual wall.

Can someone please provide me a list of everything I need in order to create this virtual wall? Also, do I need some sort of computer software to send the code to the microchip? Can I copy and paste previously written codes by other users for this virtual wall to the microchip? Can I find all the supplies I need for this at Radioshack?

Again, I am a complete noob. Broken down steps to guide me through this process would be a great help.

Cheers,
Patrick
glnc222
Robot Master
Posts: 5479
Joined: January 23rd, 2012, 8:19 pm
Location: The Villages, Florida
Contact:

Re: DIY Virtual Walls??

Post by glnc222 »

Has anyone tried pointing a TV remote at a Roomba to see if the virtual wall feature responds? They are on the same frequency, and detectors for remotes receive Virtual Wall signals. If the Roomba uses an encoding like TV's then it would ignore the improperly coded signal. Maybe there is no encoding -- the signal might be analyzed in some other postings. If Roomba's do respond, DIY walls can be made of cheap keychain remotes.
[edit] Remote must be level with the top detector on the Roomba, in proper VW fashion.
Last edited by glnc222 on August 2nd, 2016, 11:16 pm, edited 1 time in total.
a1robotrepair
Robot Master
Posts: 1009
Joined: October 14th, 2013, 8:40 am

Re: DIY Virtual Walls??

Post by a1robotrepair »

glnc222 wrote:Has anyone tried pointing a TV remote at a Roomba to see if the virtual wall feature responds? They are on the same frequency, and detectors for remotes receive Virtual Wall signals. If the Roomba uses an encoding like TV's then it would ignore the improperly coded signal. Maybe there is no encoding -- the signal might be analyzed in some other postings. If Roomba's do respond, DIY walls can be made of cheap keychain remotes.
Yes, IR remotes can be used but the pulsed frequencies must be changed.
The above values make a low frequency signal of 500 Hz and a high frequency of 38 kHz. I don't think the exact frequency is critical, the stock iRbt VW's I measured where off 500/38k about 5-10%.
Roses are red Violets are blue Poems are hard Flowers and Chocolate
http://www.daycounter.com/Calculators/
Post Reply