Page 1 of 1

D6 and D7 do not clean against walls

PostPosted: January 6th, 2019, 8:29 am
by bod925
I've had the d80 and original Connected that would get the side brush right up against a wall. I purchased a D6 and noticed that it keeps the brush about 1 inch off the wall. I sent videos to neato and they would not say if this was normal or not.
So I returned it to the store and bought a D7. It does the same thing. I did notice the wall sensor on the D6 and D7 is different than the older botvacs.
Any way to hack this so the sensor cleans against the wall fully?

Re: D6 and D7 do not clean against walls

PostPosted: January 6th, 2019, 7:19 pm
by HiTec
I was thinking to adjust wall follower sensor on my D5 for the same reason. I think it should be possible by lowering the voltage of the ir sender led, so robot would think its not as near the wall as it should, and tries to drive closer.

I will try this mod some day and post results.

Re: D6 and D7 do not clean against walls

PostPosted: January 8th, 2019, 1:13 pm
by redpoint5
What about putting a slight tinted film over the sensor to attenuate some of the light? Not sure if that's how the sensor measures distance though, as dark surfaces would reflect less light back than white surfaces.

My D3 hugs the white walls, but it doesn't have a side brush.

Re: D6 and D7 do not clean against walls

PostPosted: January 9th, 2019, 4:02 am
by valamilamasag
HiTec wrote:lowering the voltage of the ir sender led

redpoint5 wrote:attenuate some of the light

Thats not how the sensor works. It measures distance by triangulation. It shines a focused infrared dot to the wall and has a linear CCD (one axis camera) which sees where the dot appears on the wall.
You either move it physically or mod the output signal of the sensor. Its a simple analog value, but its not linear.

I dont know the exact partnumber, but it is similar to this sensor GP2Y0A21YK (but a different range variant).

Re: D6 and D7 do not clean against walls

PostPosted: January 9th, 2019, 10:37 am
by HiTec
Aaa, okay! Thanks for correction and detailed info!

Re: D6 and D7 do not clean against walls

PostPosted: January 17th, 2019, 10:22 pm
by bcarpenter
Do you have the “Extra care (Gentle navigation)” option on? This option keeps the bot further away from objects, including walls.

Re: D6 and D7 do not clean against walls

PostPosted: January 19th, 2019, 10:01 pm
by glnc222
Please identify where you find specs for the Sharp proximity sensors using triangulation. I found only one particular brand using that method, and advertised for independence of surface qualities, such as dark coloration. Dark colors have been found to interfere with the Sharp sensors on Neato, as with the drop sensors fooled by certain black carpet materials etc., a problem noted with other robot brands as well. Were triangulation used this would be less of a problem.
Since I have a post in the hacking forum on this I would be interested in more info to get the tech correct.

The one-axis camera is how the Neato Lidar is constructed, forming a parallax range finder. That stuff would seem to be a lot more expensive than the common proximity sensors. Reading the camera data would take more circuitry in an IC for one thing.

Re: D6 and D7 do not clean against walls

PostPosted: January 19th, 2019, 10:53 pm
by glnc222
There are two ways to adjust the sensitivity of the Neato Wall sensor. The Neato XV and original Botvac Wall and Cliff sensors use the same Sharp Proximity Sensor part# GP2Y0A51SK0F (haven't checked newest connected series models, but unlikely to change unless discontinued parts).
Digikey dealer
Data Sheet
I had played a lot with these including using one to detect arrival and departure from the dock for an automatic run time clock display, another thread.

Analog method: these sensors output measurement as an analog voltage signal connected to an analog input on the cpu with software to interpret and respond to the voltage, rising with proximity to around 4v max. So to make the wall appear farther away than it actually is, the voltage output can be reduced by a simple resistor divider to ground (the sensors have 5v power red wire, ground black, and signal colored). About 100K ohm total should be used to minimize current and suit a high impedance cpu voltage sensitive input. I once used this to replace a broken cliff sensor by creating the normal floor position voltage input. An adjustable trimmer could be used for experimentation -- see the data sheet for distance calibration.

Installation can be made by means of a patch cable at the sensor plug connection, with the connectors used all at Digi-Key and noted in the references there. No modification of circuit board or sensor board is needed if this more elaborate method is used.
Following JST connector reference in sensor data sheet:
Sensor cable end 1.5mm pitch ZH series
ZH series data sheet
Neato system board cable end 2mm pitch PH series
PH series data sheet

Software method: at least on the original XV the USB interface command language includes commands to set the calibration of the Wall and Cliff sensor data (command manual listed top of forum or in the Mods & Repairs list there). From this manual:
Command: SetDistanceCal

Description: Set distance sensor calibration values for min and max distances.
Usage: SetDistanceCal [DropMinimum] [DropMiddle] [DropMaximum] [WallMinimum] [WallMiddle] [WallMaximum]
Take minimum distance drop sensor readings. Mutually exclusive of DropMiddle and DropMax.
Take middle distance drop sensor readings. Mutually exclusive of DropMinimim and DropMax.
Take maximum distance drop sensor readings. Mutually exclusive of DropMinimum and DropMiddle.
Take minimum distance wall sensor readings. Mutually exclusive of WallMiddle and WallMax.
Take middle distance wall sensor readings. Mutually exclusive of WallMinimim and WallMax.
Take maximum distance wall sensor readings. Mutually exclusive of WallMinimim and WallMiddle.

There is also a command to turn wall following on or off, SetWallFollower [Enable] [Disable]

There is some question how durable are these command settings when the system is shut down or the battery disconnected, resetting, whether the settings are permanent.

These settings are analogous to the hidden menus on TV's for color calibrations etc. which should not be changed except for special problems, and are set at the factory to match the operating software requirements etc. They are set to match the characteristics of particular sensor components used and might vary from one model to another in case of differences in component specs (the same components were used in all XV's and original Botvac's, Botvac-D, etc. but the connected series has not been examined). The main reason components change is because suppliers come out with new improved versions with different specs and old parts get discontinued, unavailable for mfg use.

Hacking forum: Optical Cliff Sensor Limitations

Finally it should be noted the vacuum is programmed to stand off from the wall because of a common floor construction detail, where a quarter round molding is sometimes used on the base of the wall, which would obstruct the robot and especially a side brush pushed against it. This molding would be below the wall sensor detection, so a stand off distance is programmed to allow for it.

Re: D6 and D7 do not clean against walls

PostPosted: January 23rd, 2019, 2:29 pm
by valamilamasag
glnc222 wrote:Please identify where you find specs for the Sharp proximity sensors using triangulation.
It only takes 2 IR phototransistors to do triangulation. Both having a wedge shape opposing each other + optics. Then attach a simple differential amplifier with an opamp and boom you have a distance sensor that is highly influenced by the surface reflectivity.

Re: D6 and D7 do not clean against walls

PostPosted: January 23rd, 2019, 7:36 pm
by glnc222
This reference describes the Sharp sensors using triangulation
However, as examined in the hacking forum post linked in post above, proper triangulation should produce substantial independence from surface reflectivity, just as the other brand sensor shown there advertises. The Sharp sensor is known to be surface sensitive and degrades the Neato (and other brands) vacuum performance, with black carpet patern problems etc. (often fixed by disabling the cliff sensors by covering them up to form a false floor).
A detail in the Sharp description above might be relevant: instead of a digital camera sensor with separate pixels (as used in the lidar I think, measuring both angle and intensity of light return), the sensor just outputs an analog voltage varied with position, processed for output (these sensors also pulse the light to discriminate ambient light conditions etc.). Perhaps that sensor output is also influenced by the light intensity.
It is not easy to fool these cliff sensors with just any black material (black in visual spectrum but still reflective in IR used by sensors); lots of common black materials tried would not do so, and testing requires those particular black carpets users found problematic -- different dyes and texture I suppose.
At one time some black material was sold for use with Roomba's forming a "keep off mat" using the cliff sensors, but reviews were mixed. Could make an alternative to the mag strips.

The hacking forum post describes a different kind of triangulation where the distance to the object is not measured except as to whether it is in or out of the fixed range sensitivity of the sensor, with a digital on/off output.