Adapting Roomba Virtual Walls?

News and information about the Neato XV-11 Robotic Vacuum. All discussion and troubleshooting questions go here.

Adapting Roomba Virtual Walls?

Postby sorka » April 6th, 2013, 3:46 pm

Since the Neato uses reed relay triggered by the mag strip, I wonder what it would take to adapt the IR sensor on the top of a roomba to trigger a low power solid state relay and feed into the same input as the mag sensor? You'd probably have to mount it on top of the RPS housing and run the wires along one of the housing legs to keep it from interfering with the lidar.

I'd love to be able to use VWs with the Neato instead of this stupid expensive mag strip.
sorka
 
Posts: 23
Joined: April 5th, 2013, 5:57 pm

Re: Adapting Roomba Virtual Walls?

Postby glnc222 » April 6th, 2013, 4:47 pm

interesting possible mod just when I thought the possibilities exhausted.

[edit] I later noted the factory could probably add this feature just by programming, using the sensitive lidar receiver to recognize coded signals from a low power IR emitter boundary projector. The lidar already recognizes a pattern on the charging base face. Exact capabilities are not public. Virtual Walls (trademark iRobot Corp.), are way over powered for this, and do not project a tightly focused beam delimiting a boundary very well (at the VW power, TV remote control receivers pick up their signals even from reflections off walls).

There could be lots of small IR sensor components simpler than scavenging anything from Roomba equipment. They would not have to be mounted on top of the turret reducing overhead clearance. There is 4mm of height under the laser beam atop the case, measured for another thread. Of course, Roomba towers have to be matched in height (untill chopped up...).

30 gauge wire wrap wire runs down the turret supports well in experiments for the overhead pinch trap, tact switches atop the turret. Go through the corner of the dust bin for temporary access to the case interior. You need an IR source as well, getting back to Roomba parts again. The complex part of those is the radio activation of the towers when the robot comes on, not to waste the batteries. Also blinking or interacting with the bot to run only when needed. That's really the trade off to me why the strips are preferred, all those batteries. Easy to make a blinker at least, just done for an added indicator light. And with you're own, you could use really big batteries or even power line adapters.

Another avenue of improvement could be more sensitive magnetic detectors, real Hall effect sensors like some descriptions show, usable with the different magnetization of common, inexpensive stick-on magnetic material, which isn't oriented to extend the field at much distance -- despite even being magnetized more strongly. Not yet familiar with those components. A little circuit board to interface. Have to see what's available.
One thing about having simple reed switches is the interface is defined as a simple switch easily duplicated electronically, and even with a relay if necessary (as used to control the side brush motor). There's also metal detector technology to investigate, though I suspect takes too much power.

Still another improvement would be some patterned optical material where the cliff sensors could detect some oscillating striped pattern, like a computer mouse. A little add on circuit board might decode this from the existing cliff sensors; but the detector lens might not be tightly focused enough-- like a mouse. Mice for laptops are very small; the LG and Samsung robots use them for navigation besides a camera. The same sensor output from the wall sensor has already been used to control a side brush motor (will show a better, lower power circuit eventually, having learned more electronics since). Maybe some flipflops etc. could detect a striped pattern in optical detection.

It has not proved possible to fool the cliff sensors with any common material dark in visible light, still too bright in IR. A very shiny material might give an unusually high return detectable as distinct. That's easily done with a comparator component. The stuff just wouldn't look very good on the floor. Mag strips can be covered with colored duck tape or painted, and hidden under carpet.
Last edited by glnc222 on June 7th, 2013, 4:20 pm, edited 1 time in total.
glnc222
Robot Master
 
Posts: 4541
Joined: January 23rd, 2012, 9:19 pm
Location: North Carolina, U.S.

Re: Adapting Roomba Virtual Walls?

Postby vic7767 » April 6th, 2013, 4:53 pm

Earlier Roomba models used standalone VWs with internal timers and were turned on by the user instead of RF signals from the Roomba. They would turn of just under 2 hours of operation. Those sell for very little these days and could be a source for experimenting with the Neato.
Roomba and Neato Mods, come visit: http://www.vic7767.com/

http://www.Robot-Doc.com/
User avatar
vic7767
Robot Master
 
Posts: 14371
Joined: January 14th, 2006, 8:31 pm
Location: Haughton Louisiana - USA

Re: Adapting Roomba Virtual Walls?

Postby glnc222 » April 6th, 2013, 5:52 pm

Complications with Neato involve distance measuring to the tower; Roomba's seem sensitive to this, and use omnidirectional sensors with nifty conical lenses. You probably want a detector with a narrow focus just interrupting a beam, and will then have to secure the towers in place in case bumped by Neato. I don't think Roomba's transmit in IR to the towers and handshake that way, but don't know exactly. Scavenging detectors from a Roomba would seem to be a waste of the robot. Maybe a broken one. Have to find out how it works, though, and can be easier to start from scratch.
glnc222
Robot Master
 
Posts: 4541
Joined: January 23rd, 2012, 9:19 pm
Location: North Carolina, U.S.

Re: Adapting Roomba Virtual Walls?

Postby sorka » April 6th, 2013, 6:27 pm

The Roomba sensor is omni directional which I think is what you'd want so it would need to be mounted in a place where it has nothing blocking it which is why I thought it might need to be on top of the lidar housing. I have a box of series 400 Roomba VWs about half of which can be set on a schedule with the roomba scheduler remote. These VWs are so cheap, they'd be a good source of walls providing a compatible omni directional sensor could be used.
sorka
 
Posts: 23
Joined: April 5th, 2013, 5:57 pm

Re: Adapting Roomba Virtual Walls?

Postby glnc222 » April 6th, 2013, 7:02 pm

Detection done by "phototransistors" eg. in Radio Shack stores (on shelves)
http://www.radioshack.com/product/index.jsp?productId=2049724
operation can be tested with a multimeter I think -- see if detects anything from towers. Problem is blinking to save power, might have to capture a pulse. Need a scope to see, unless a logic circuit is made, or they average out sufficiently for a net rms detectable.
Outputs a voltage, similar to the yellow wire on Neato's wall and cliff sensors. Digitize with analog comparator such as TLC393 (Digi-Key), first to a logic latch or flipflop for pulses, then drive a reed relay to parallel mag sensors.
[edit]other half of 393 may sink relay current for a driver. Also see what the mag sensor reed switch is connecting, might not need a relay. I prefer not injecting signals into Neato electronics, though, for protection. Paralleling switches is always safe. If it grounds a signal, that's as far as I'd go. No replaceable components on those surface mount miniaturized system boards.
[edit]logic probe tool can read pulse detection.


{edit] late addition: a pulsing IR transmitter can be filtered digitally as follows: each pulse sets a latch and simultaneously discharges a capacitor. The latch ON charges the capacitor through a delay resistor, and when the capacitor voltage reaches logic high resets the latch through a different input. Another IR pulse soon enough discharges the capacitor again before resetting the latch, keeping the latch on while the pulse train is detected, and off when the train stops. The rigmarole gets logic level voltages out of the train instead of very low directly filtered voltages. An alternative is to use those low filtered voltages in another comparator -- available in the dual package, so should be checked if workable as takes only one IC instead of two. Either way the frequency and duty cycle of the pulse train must be measured to set component values. Radio Shack multimeters measure frequency and duty cycles, if the scale goes low enough. For the speeds of robot travel pulsing only ten times per second should be sufficient warning to back away in time.
glnc222
Robot Master
 
Posts: 4541
Joined: January 23rd, 2012, 9:19 pm
Location: North Carolina, U.S.

Re: Adapting Roomba Virtual Walls?

Postby glnc222 » April 7th, 2013, 1:57 pm

Getting an "extended life virtual wall" to check this, and a 3v voltage regulator to power from usb 5v AC adapter.
glnc222
Robot Master
 
Posts: 4541
Joined: January 23rd, 2012, 9:19 pm
Location: North Carolina, U.S.

Re: Adapting Roomba Virtual Walls?

Postby glnc222 » April 7th, 2013, 3:46 pm

Looking a bit like it would be cheaper and simpler to make a simple "electric eye" set up with a focussed beam and forget Roomba equipment; do a specifically Neato feature. Roomba equipment appears from reports to use encoded IR signals not to interfere with TV remotes etc., and you have to match the wavelength used, haven't found yet -- but can get the matching semiconductors easily. I see mentions of 500hz modulation of 32Khz carriers. The trouble of communicating with their equipment could be greater than doing something from scratch.

A beam on the floor limited to one place isn't going to bother encoded IR equipment. You can't just stick Roomba parts onto the neato because the signal processing parts are required. I can see possibly replacing the electronics inside the virtual wall. There seem to be plenty of photodetectors though, which could fit onto the Neato case top under the laser beam and add optical boundary facility -- 1.8mm some of them. Neato approaches boundaries from the front. I just see a possible product here. Cost is not the only thing about mag strips -- they're not the most aesthetic. If an emitter is powered off a wall socket a lot of the power saving stuff isn't needed, either.
glnc222
Robot Master
 
Posts: 4541
Joined: January 23rd, 2012, 9:19 pm
Location: North Carolina, U.S.

Re: Adapting Roomba Virtual Walls?

Postby glnc222 » April 7th, 2013, 5:24 pm

Neato's wall sensor may be usable on one side at least. If Neato ignores short pulses to it they might be extractable from the signal line (yellow wire), if it carries them. Then all that is needed is a detector built into the side of the case on the other side.
[edit] might also be possible to filter the pulses out easily in line to the Neato cpu.

[edit] carrier wave oscillation seems useful, how these sensors distinguish transmitters from background light. Doesn't take much to detect a strong signal; common since Fox Hole crystal set radios a hundred years ago. It's tuning precise frequencies and extracting modulated signals where it gets fancy, irrelevant here.
glnc222
Robot Master
 
Posts: 4541
Joined: January 23rd, 2012, 9:19 pm
Location: North Carolina, U.S.

Re: Adapting Roomba Virtual Walls?

Postby glnc222 » April 14th, 2013, 1:16 am

Neato Wall Sensor Detection of Roomba Virtual Wall
[edit] This is sort of a lab notebook or diary of experiments investigating the problem; the final practical possibility will be at the end of the thread.

First of several topics involved in possible use of Virtual Walls for light beam based boundary marking for Neato.

Note on the plain vanilla manual virtual wall: an omnidirectional receiver lens is on top, but appears unused. The wall does not shut off in the absence of a Roomba after half an hour. I would have thought they would do this to extend battery life, but apparently not, on the plain vanilla anyway. Maybe it takes just as much power to run a detector. ([edit] later recalled the top lens is probably for a circular boundary around the wall unit using a weak signal. This may explain how a very sensitive detector for TV remotes tested in later posts appears to pick up reflections, which may instead be signals from the top lens.)

The emitter is positioned in line with the top 1/4" of the Neato case, handy for mounting photodetectors.

effect on Neato wall sensor

The Virtual Wall cannot be used without independence of Neato's wall distance sensor, else navigation would be disrupted. The required independence was found at close distances within 12 inches because the Wall emitter does not shine downwards enough to reach the lower wall sensor.

At distances out to 6ft or so the Virtual Wall added light RAISES detected wall distance to about 70mm, from its normal unobstructed 65 or lower, equivalent to LOWER incident reflection. This inversion can be explained as saturating Neato's photodetector with overly bright light disabling detection.

The LED based proximity detector does not return raw output from its phototransistor. The emitter is pulsed and an integral processor compares incident light with the emitter off and on, to separate reflection from background light; the increase from the emitter is the indicator of distance (as far as I can tell; there isn't much else possible). Too bright a background could prevent the detector from sensing any difference, keeping the sensor at its maximum raw output. Regardless of distance from the Neato, the Roomba emitter drives the wall sensor to the same distance value, also consistent with saturation (virtually grounding the output signal, yellow wire). The Virtual Wall is noted to oscillate at 38Khz, as well as possible encoding digitally, probably averaged out by the wall sensor equivalent to constant illumination. The wall sensor datasheet shows a fifty hz oscillation of its sensing cycle (http://www.beck-elektronik.de/fileadmin/templates/beck_folder/opto/sensor/sharp/analog-gp2y0a51sk0f.pdf).

Neato did not detect the Virtual Wall at distances of 10ft, using the maximum 8ft+ range setting on the wall. This does not mean photodetectors will not receive at that distance, just that the saturation effect is eliminated.

Of course, the virtual wall could be aligned with Neato's wall sensor just turning upside down. It would then interfere with Neato wall following behavior -- and Neato's will follow walls around corners right up against one positioned in an opening. It will even be necessary to secure the Virtual Wall in place against Neato bumping. Separate photodetectors at the top edge of the bumper are therefore needed to detect light beam boundary markers. These devices are very small, no more than an 1/8" across, and might easily be inserted in holes in the case. Whether a simple circuit can detect the virtual wall remains to be tested.

The saturation effect does appear detectable with simple components on the wall sensor data line (yellow wire). The sensor delivers a voltage up to 2.4v increasing with proximity, highest at zero distance. The Virtual Wall effect appears to be around .18v, within the sensitivity of common analog comparator components. It is at the ground level, though, a possible complication. Still this is not useful because the wall sensor cannot be used close up where Neato requires use of its sensor for wall following, so no further investigation is warranted.

The specific phototransistor components used in Roomba's are available separately for repairs -- without parts id and so the technical specs -- but conveniently have leads, compared to extremely small surface mount devices unsuitable for personal projects.
Emitters and detector devices are supplied for use at specific wavelengths which may need to be matched, still not tested. Without special knowledge of this whole technology, a trial and error procedure is the only method.
I see no need to use complicated, expensive, and power hungry microcontrollers, to completely decode Wall Sensor signals, given how Neato's sensor responds to them in a noticeable way.
Last edited by glnc222 on May 7th, 2013, 2:41 pm, edited 2 times in total.
glnc222
Robot Master
 
Posts: 4541
Joined: January 23rd, 2012, 9:19 pm
Location: North Carolina, U.S.

Re: Adapting Roomba Virtual Walls?

Postby glnc222 » April 14th, 2013, 7:52 pm

Interfacing Photodetectors to Neato Magstrip and Cliff Sensors

Second of several topics involved in possible use of Virtual Walls for light beam based boundary marking for Neato.

Neato Mag Sensors

Erroneous information was posted somewhere and repeated here and there that Neato's mag sensor was a reed switch, sort of cheap; it is a Hall Effect sensor more difficult to interface.

The USB date report from the sensor alone shows continuous readout of magnetic field strength no switch does. This Neato parts identification site http://xv11hacking.wikispaces.com/XV-11+PCB+Information notes an Allegro Microsystems 21E sensor. E designates a temperature tolerance class, but their parts have 4 digit numbers. Output is consistent with types in datasheet http://www.datasheetcatalog.org/datasheet/allegromicrosystems/1321.pdf and application note http://www.allegromicro.com/~/media/Files/Technical-Documents/AN27701-Hall-Effect-IC-Application-Guide.ashx

The sensor is mounted in a well protruding below the case near any strip, on a stick shaped circuit board, and returns a voltage ranging from near 2v to 4v, increasing with proximity to a South pole magnet (red wire 5v power, black ground, purple signal). Neato reports this range as zero to around 287 over USB. The strip is detectable as far away as two inches with a 33 reading, but Neato does not respond unless the strip is very close to floor level, for a fairly high position in the range. Neato's strips are magnetized with opposite poles on the top and bottom for this sensor.

It is not clear how easy it would be to add an over-riding signal on top of this input to the cpu for an additional light beam sensor source. Putting resistance between the mag sensor and the cpu to add signals might reduce the input voltage, depending on input impedance, though probably high. Any diode OR'ing of signals would drop the input voltage half a volt, ruining the sensitivity needed. It is not clear whether the sensor device tolerates any reverse voltage on the output terminal, from adding through resistor networks. I'm not going to risk these parts for testing, at least yet.

The only purely kosher way I at least know (being mostly ignorant of electronics), to combine these signals is to replace the cpu input with output from an op amp, where a dual package can manipulate the mag sensor output and combine it with alternative sensors. Perhaps with a pair of them something could be done, inverting here and there. Example in the "worn battery indicator light" thread http://www.robotreviews.com/chat/viewtopic.php?f=20&t=16210.
[edit] (op amps subtract and multiply, exactly arithmetic; subtracting wall detection once from a fixed value -- or inverted to begin with in the detector circuit -- then subtracting from mag sensor will add, with precise calibration. Neato inputs are instrumentation circuits with calibrated outputs, not motor drivers etc. Multiply then divide with resistors as needed.)

It would be much nicer just to add a signal on top of a resistor in the output (which is easier with a known op amp output instead of the sensor), but you'd have to try it, or just know more of this stuff. You cannot replace the sensor component alone, being very tiny and mounted on a circuit board, in an odd aluminum cover (heat sink?) and there is no clear source for replacements at hand, even if willing to sacrifice one, which I am not.

cliff sensor alternative

The cliff sensors are another input Neato can use to deflect from a boundary, virtual cliffs. There is some little difference in behavior Neato Guest mentioned here somewhere, something about not backing up and needing boundary strips a few inches forward of cliffs needing extra protection -- don't recall exactly, having no cliffs myself (so I need a virtual one).

The cliff and wall sensors are the same component and have similar signals. They output a voltage from zero to 2.4v increasing with proximity.
I previously played with this signal in a wall following control for an added side brush motor http://www.robotreviews.com/chat/viewtopic.php?f=20&t=16078.
It was found easy to pull up this voltage to a higher level, because it had to be pulled down when connected to an additional logic input in parallel with Neato's cpu; logic inputs pull up inputs with high impedance. The sensor doesn't sink current when output is low the way logic gates do. Trial and error...

But, fortunately, a boundary barrier has to pull the cliff sensor signal LOW to represent maximum distance down a cliff, opposite of the mag sensor case. This would seem convenient with a resistor between the output and the cpu, with a logic gate output attached to ground the signal to the cpu. I am more confident of this component's requirements than the unknown mag sensor, with the data sheet on hand (listed in previous post). A proper resistance is required to limit the load on the sensor to ground consistent with its output specs, and diode isolation of high logic input so only low output is active (or maybe an open drain output -- they aren't exactly disconnected, though, except in logic circuits, so more complicatations).

The only remaining issue is a photodetector circuit to be interfaced, to be investigated next, having disposed of these noisome details of fussy Neato input requirements.
Last edited by glnc222 on April 15th, 2013, 3:24 pm, edited 1 time in total.
glnc222
Robot Master
 
Posts: 4541
Joined: January 23rd, 2012, 9:19 pm
Location: North Carolina, U.S.

Re: Adapting Roomba Virtual Walls?

Postby glnc222 » April 15th, 2013, 1:56 am

Virtual Wall Detector

The final topic of three on using Roomba Virtual Walls for Neato Boundary marking.
[edit] Virtual Wall is a trademark of iRobot corporation, maker of Roomba vacuums.

Roomba's conical 360 degree lenses are too big for Neato and unnecessary. Separate detection of each corner is needed anyway to properly trigger boundary detection behavior, identifying which corner crosses; Roomba's shape presents only one contact point with the beam, while Neato has a square front and needs different navigation responses. This may explain why Neato was never equipped for light beam boundaries, as it is inherently more difficult with two sensors at different points.

These 3mm round phototransistors can fit on top under the laser beam, arranged in groups of three covering 180 degrees each side, a sixty degree field on each. http://www.vishay.com/doc?81549 Wrap around coverage is required for all the directions from which Neato can cross a boundary.
[edit] A useful side view model is http://www.vishay.com/docs/81562/test2600.pdf, suitable for circuit board assembly of several in a circle.

[edit] late correction: 270 degree coverage needed each side, 5 units each -- get a 10 pack discount at digi-key. Reception direction must wrap from backwards around outside to facing across to the opposite side of the front, skipping the inside back quarter towards the laser. A given corner is first on a boundary throughout a 90 degree range of approach angles, but the emitter can be on either side. A left side emitter hits the receiver back when Neato moves right, and a right side emitter hits from receiver's right side as Neato moves almost forward.
There is some use to offsetting the corner mounts to allow light from either side to hit both receivers; looks odd but Neato isn't made for this, so it happens. One could also be higher than the other, but there's no room under the laser beam. The cross facing one's only need to be offset, so 3mm only, with the others all behind or in front of those, for a nearly symmetric arrangement.
Possible construction: arrange with leads vertically separated, in an upper and lower level, then connect all the leads on each level in the center of a circle, forming two centers atop each other, domes facing outwards in a circle. The wider lip around the bottom of the cylinders can be filed flat across top and bottom of the circle to minimize thickness and better align flat horizontal on a plate.

[edit] An important feature of Neato navigation applies: boundaries cannot be sensed atop the turret when activating front sensors, because it maps the barrier as though at the front. It can turn without moving the turret out of range, mapping another barrier in a new direction, boxing itself in within imagined surrounding boundaries. Tested in research for overhead traps, why turret height obstructions must be sensed at the front edge, without special additional software for turret located sensing. It likes to turn and move along boundaries, probing repeatedly to discover their length. So Virtual Wall sensors need to be near the Cliff or Mag sensors, which are mounted together, to signal proper positioning.

Would have to figure the best mounting and installation near front corners. Note when in line with the turret support posts, they are in a laser blind spot, possibly handy. Other detectors are available which will also work. Problem is to get some wide angle type. Roomba specific detector components did not work as well, maybe from lack of the usual lens, or they just amplify it more.
The Virtual Wall is well detected out several feet. It may need to be raised 1/4" on furniture bumpers to align the beam over the top of the Neato cover, if detectors placed there.

The circuit filters out background light levels by passing only oscillations through to the comparator, similar to radio receiver methods. The Virtual Wall oscillates at 38Khz. http://www.enide.net/webcms/index.php?page=virtual-wall-for-roomba
The detector circuit for Neato is not sensitive to the actual frequency.

The Cliff Sensor is triggered as easy to interface. The mag sensors might also be easy, but I'm not sure how to do it simply, as they require adding a voltage instead of grounding the signal. The Cliff Sensors require only one 8-pin IC.

Note a single circuit board with one comparator IC serves both sides, with the dual package IC. All parts available at Digi-Key for cheapest shipping on personal orders. Use a socket on the IC to avoid damage soldering.
Anyone actually using this design should contact for any later information.

So in the style of a famous TV show, this demonstrates what it would take to use Roomba Virtual walls, the extremes you'd have to go to. The possibility is confirmed, albeit a bit messy without a case designed for the detectors.
[edit] links to other mods for utility cleaning listed at thread http://www.robotreviews.com/chat/viewtopic.php?f=20&t=16475

Note there must actually be five phototransistors each side (see above note)

[edit] later results show a single one of these detectors pointing up can detect VW's 360 degrees, though it helps to concentrate the beam with a collimating cylindrical lens (2X reading magnifier bar 1" from emitter); needs a shade overhead.

schematicroomba.jpg
Roomba Virtual Wall Detector For Neato Cliff Sensor Input


A problem with the above circuit is operation at low beam strength; the beam falls inversely to the square of the distance to the emitter. At several feet the signal drops from its maximum .7v filtered to only 30mv and moves gradually up and down with changes in position. At this level the comparator cannot switch reliably without oscillation, an ambiguous input -- which should not be sent on to Neato's cpu, confusing it. Amplification will be required for the requisite sensitivity, meaning an op amp component or a transistor in addition to the comparator switch. The schematic will be supplemented in later additions to this post.

schematicroomba3.jpg
increased sensitivity with inserted transistor


Possible mag sensor circuit interface not as complex as thought, but requires refinement of component values.
Replace comparator with op amp, similar dual package. This circuit also requires revision to add a separate amplifier stage for the light input, similar to the problem above with the cliff sensor. There will have to be a separate switch filter on the light input before combining with the input to the Neato.

schematicroomba2.jpg
possible mag sensor interface -- preliminary


The problem with the Virtual Wall for Neato involves fuzziness of the beam boundary with low strength at distance. The above transistor circuit works out to 7ft while Roomba is rated 8ft. (similar change needed in the mag strip circuit, not shown). Neato needs a sharp transition over a couple inches at most, similar to mag strips or cliffs, to navigate properly and not get confused; detection must switch off as Neato moves back, and there can be an ambiguous region. The Roomba emitter is recessed in a tube to narrow the beam, but these LED's are not like lasers. Roomba may have programming to respond properly to a shallow gradient beam edge, but Neato does not.

The added amplification seems to give an adequately sharp edge along with the very sensitive comparator trigger. The preamp also boosts the AC filtered signal above the .5v threshold of the detection diode. At 7ft the comparator input switches from 10 to 100mv with 20mv hysteresis applied; close up the input goes to the 5v rail -- the power of inverse square reduction in beam over distance.

Much longer distance could be possible with custom made emitters with higher power and simple oscillators -- or even a laser emitter.
Attachments
virtualwall.jpg
positioning of photodectors for virtual wall
Last edited by glnc222 on May 18th, 2013, 9:20 pm, edited 25 times in total.
glnc222
Robot Master
 
Posts: 4541
Joined: January 23rd, 2012, 9:19 pm
Location: North Carolina, U.S.

Re: Adapting Roomba Virtual Walls?

Postby glnc222 » April 15th, 2013, 2:21 am

power line operation of virtual walls
Forgot to note 3v AC adapters are available, used for cameras mostly, which could be connected to battery terminals in Virtual Walls where positioning is convenient to outlets. Runs on two flashlight cells in series, the back side connectors joining the batteries, inputs on the front. Needs a tight connection, maybe small alligator clips in Radio Shack.

One error above: you probably don't have to secure an emitter in place against bumping, if angled so Neato is deflected beforehand. There's some spread in the beams, around 15 degrees or so -- check with Roomba experts.
There are always those odd Neato glitches, though.

Roomba plain vanilla walls at $6 can cost no more than the components required to make a substitute (with a battery holder and plastic case a big part), though that is very easy to do for the simple detection requirements on Neato.
glnc222
Robot Master
 
Posts: 4541
Joined: January 23rd, 2012, 9:19 pm
Location: North Carolina, U.S.

Re: Adapting Roomba Virtual Walls?

Postby glnc222 » April 16th, 2013, 8:59 pm

possible Mag Strip interface circuit added above, simpler than expected.
[edit] some problems with the circuits requiring more amplifier stages has been added to the description. More circuits to follow.
glnc222
Robot Master
 
Posts: 4541
Joined: January 23rd, 2012, 9:19 pm
Location: North Carolina, U.S.

Re: Adapting Roomba Virtual Walls?

Postby glnc222 » April 20th, 2013, 2:30 am

DIY Virtual Wall Emitter For Neato

An IR emitter matching the detector above is shown below for 3v battery power. It has a narrow 20 degree beam spread not that different from Roomba's wall (and that's without imbedding inside a shroud to narrow further). The detector filter turns out not to pass the 38khz Roomba signal, only its 500hz PWM modulated data signal. The emitter shown therefore runs at 500hz and will not work at 38Khz. The detector might be tuned to higher frequency with different RC values, but small caps seem to lower sensitivity. It would take more instruments or technical knowledge to find a true optimum, the best transistor etc.

On 3v the LED takes no current limiting resistor and only runs at 10ma, compared to 125ma measured for Roomba's virtual wall on D cells on the highest 8ft range setting. At 10ma the Neato emitter is good out 5ft, and this LED can be driven to much higher powers, I think up to one full amp -- if a power transistor is added. The 555 itself can go up to 100ma at higher voltages. A resistor might then be necessary. At this level Roomba's will run about 50 two hour sessions on D cells. The 10ma level will last longer in proportion. Using a common USB 5v wall socket adapter for hubs and charging phones etc., the emitter here should be able to go 100ma and get more range. (At 5v with an 18 ohm resistor only 20ma is passed; a very small resistor would be involved). [edit] the measured 20ma was rms average, and if the 555 takes only peak 100, then only an average 50 will be max. Maybe a 10ohm resisotr at 5v.

TSAL6100 emitter http://www.vishay.com/docs/81009/tsal6100.pdf

A concise but thorough explanation of the venerable 555 timer device is at http://www.doctronics.co.uk/555.htm#astable
schematicroomba4.jpg
DIY Virtual Wall Emitter for Neato detector

[edit] with 6v battery, no LED resistor needed, max 35ma power. Timing resistors must double to 200K for same frequency. Detection obtained out 9ft. Reflection of sunlight nearby appears to be a problem when present.
A 9v battery went to 39ma, and a 12v burned out the 555 at 260ma with 660 ohm resistor, and I'll leave it to others to refine this. Use a potentiometer trimmer to locate the right size.

Radio Shack carries a specifically 38Khz sensor, apparently a TV remote standard, which is expensive, $5 the same as 10 of the ones used here. Outputs 100mv only, needs amplification. Wrong shape, size for Neato top, have to put on the side. 90 degree coverage. Perhaps the conical top of a flat head screw could serve as a reflector for the flat shaped detectors, like the Roomba lens but thinner.


The Roomba Virtual Wall has a timer cutoff at 2hrs. The same feature is easily added as below with the 4060 timer used in the Worn Battery Indicator Light thread for run time measurement. The 555 documentation claims long time periods possible with this device, but only using very large capacitors not very reliable. There are dual 555 packages, though. Shut off requires grounding the oscillator input, so a transistor is used to invert the 4060 output going High at the specified time.
Attachments
schematicroomba5.jpg
Timer cutoff for 555 timer
glnc222
Robot Master
 
Posts: 4541
Joined: January 23rd, 2012, 9:19 pm
Location: North Carolina, U.S.

Re: Adapting Roomba Virtual Walls?

Postby sorka » April 22nd, 2013, 11:38 pm

Awesome Sleuthing I never saw this level of commitment from the Roomba hackers. That's pretty crazy :)
sorka
 
Posts: 23
Joined: April 5th, 2013, 5:57 pm

Re: Adapting Roomba Virtual Walls?

Postby vic7767 » April 22nd, 2013, 11:58 pm

sorka wrote:Awesome Sleuthing I never saw this level of commitment from the Roomba hackers. That's pretty crazy :)


Here's a 7 year old thread where some Roomba hacking bloomed.
viewtopic.php?f=4&t=1923
Roomba and Neato Mods, come visit: http://www.vic7767.com/

http://www.Robot-Doc.com/
User avatar
vic7767
Robot Master
 
Posts: 14371
Joined: January 14th, 2006, 8:31 pm
Location: Haughton Louisiana - USA

Re: Adapting Roomba Virtual Walls?

Postby glnc222 » April 23rd, 2013, 12:00 am

30ft+ Simpler Detector for Roomba Virtual Wall

The correct part to use turns out to be the TV remote control receiver modules with integrated 38khz signal detection, such as carried in Radio Shack stores http://www.radioshack.com/product/index.jsp?productId=2049727, and at Digi-Key http://www.digikey.com/product-search/en/sensors-transducers/optical-sensors-photo-detectors-remote-receiver/1967024.
The bracket shown in Radio Shack's catalog is no longer supplied (see package photo below). These require only single sensors on each Neato corner instead of the complicated assemblies previously discussed.

This detector also responds to the Roomba Virtual Wall out over 30ft away (as far as I could test) facing the front as normally used, but also at least 20ft -- just didn't test farther -- placed flat with the dome pointing up, for omnidirectional sensing. Don't know if Roomba's can use Virtual Walls out that far. Seems to have 360 degree sensitivity in this position when tried even though rated for 90 degrees facing the front as normally used. This would seem to rule out sensing from the side, but it works.

While 7/32" thick when placed on top of the Neato bumper facing up, a laser scan check over USB shows no interference with the beam. So it would seem easy to mount these on each front corner atop the bumper (offset to allow both sensing a crosswise beam), without even sinking into the bumper (which is possible given the ribbed structure underneath). Wiring into the bumper through an added small top hole, and through the large bumper mounting hole in the case can be done, with a slit in the bumper underside ribbing for wires.
RoombaTVdetector.jpg
Radio Shack IR module on Neato with Virtual Wall

RSirmodule.jpg
Radio Shack 38khz IR receiver module


[edit] looks similar to a TSOP4838 many on ebay, but haven't used that specific part.


Interfacing
The electrical data not given on the package: quiescent output is 4v with 5v power supply and .6v detecting a signal -- an inverted detection. The 500hz code modulation of the 38khz carrier wave is presented on the output, and can be filtered out by connecting through a 4.7K ohm resistor and a 4.7uf capacitor in series to ground, measuring constant output atop the capacitor (the .6v above ground can be an artifact of 500hz coded pulsing not continuously ground). Normally this goes to a microcontroller or some digital thingy to decode the data, tell the TV which button was pressed on the remote.

For interfacing to the Neato cliff sensors as in previous posts, a more completely grounded output can be obtained from the TLC393 comparator shown in the prior posts, with the sensor output on the positive input, and say, 2.5v from a resistor divider of the 5v power on the negative comparator input (for the inverted signal and inverted output). It would take two transistors and their complement of resistors to get the same effect, given the inversion required.

[edit] Combining the module signal with the magstrip sensor, through the op amp shown previously, needs a PNP high side switching transistor such as BC557 inserted before the op amp to invert the signal before adding to the existing mag sensor signal. The comparator can also be used to invert the signal, and has a dual package matching the op amp. For the cliff sensors, the comparator outputs Low for IR detection, and for the mag sensors outputs High for IR detection, reversing connections to the comparator input terminals. Two transistors take as much space as one dual 8 pin IC, which is more flexible and convenient.

DIY emitters
The 555 timer oscillators previously shown can be tuned to the 38khz frequency using about 1K ohm resistors; a trimmer might be needed for precise adjustment. A number of DIY projects are posted on the web for such emitters used with TV remote detectors of the type used here. One thing with these is they can be made much smaller than Virtual Wall units especially when powered off a wall socket and stuck on the wall, say, instead of free standing. The main bulk of the Roomba unit is for big batteries for months of use.

The newer ones moved down to C from D cells, making it more compact. But if they require remote radio activation by a Roomba they cannot be used, without some hacking of all that. Maybe something simple could be done to the circuit board to disconnect from the radio receiver, but these things are usually too miniaturized these days to alter.

[edit] there is some remote possibility the cliff sensor lead might not have to be cut, just tapped, with some more electronic testing not done yet. not installing this myself, so don't know when will do another disassembly.
Inquire of any matter however simple.

[edit] DIY emitters may not be so simple for the TSOP4838 type devices as they specify filtering for standard digital coding schemes of the carrier signal to enhance noise filtering -- sophisticated. Projects are posted where hackers do this but takes a microcontroller to encode signals. Easier to remove and remount internals of Virtual Walls in more compact forms when needed. Microcontrollers are pretty expensive compared to old Virtual Walls, not to mention the expertise and work involved programming etc.
Last edited by glnc222 on April 24th, 2013, 4:34 pm, edited 6 times in total.
glnc222
Robot Master
 
Posts: 4541
Joined: January 23rd, 2012, 9:19 pm
Location: North Carolina, U.S.

Re: Adapting Roomba Virtual Walls?

Postby vic7767 » April 23rd, 2013, 12:12 am

There are some Roomba 500, 600, and 700 virtual walls that are stand alone and do not require RF activation.
Roomba and Neato Mods, come visit: http://www.vic7767.com/

http://www.Robot-Doc.com/
User avatar
vic7767
Robot Master
 
Posts: 14371
Joined: January 14th, 2006, 8:31 pm
Location: Haughton Louisiana - USA

Re: Adapting Roomba Virtual Walls?

Postby glnc222 » April 23rd, 2013, 2:30 am

There is only one way to do this without opening the Neato voiding warranties: find some electromagnet or coil which could trip the magstrip sensor from outside, right next to it on the bottom. A flat cell phone battery might be stuck on the turret or the bottom for power, with a very flat electronics assembly. Also flat coin shape lithium batteries -- some are 3v. Maybe a relay coil? The sensor takes very little power.

[edit] DIY emitters may not be so simple for the TSOP4838 type devices as they specify filtering for standard digital coding schemes of the carrier signal to enhance noise filtering -- sophisticated. Projects are posted where hackers do this but takes a microcontroller to encode signals. Easier to remove and remount internals of Virtual Walls in more compact forms when needed. Microcontrollers are pretty expensive compared to old Virtual Walls, not to mention the expertise and work involved programming etc.
glnc222
Robot Master
 
Posts: 4541
Joined: January 23rd, 2012, 9:19 pm
Location: North Carolina, U.S.

Next

Return to Neato Robotics

Who is online

Users browsing this forum: CherkyB, Franzl, moradi2, susantx3, Wing Nut and 332 guests

cron