Electronic – Can an optical mouse be used to measure distance down to 1-10μm

distanceoptics

I am working on a home-built CNC machine that uses stepper motors and MXL timing belt for the machine movement. Because I'm using steppers, there is no feedback to the controller about the actual position of the machine (ie, open-loop). Sometimes when I am making cuts, shards of material fly into the path of the gantry and gum up the track, causing the motor to skip steps. To solve this, I am installing a dust shoe and vacuum to keep the area clean, but this still doesn't address the problem of skipping steps due to any number of various reasons.

Of course, there are solutions that already exist that "close the loop" for the industrial market, but I think they would be out of budget for the homebrew hobbyist. If something as ubiquitous as an optical mouse sensor could be used, it would be a great boon for improving DIY machine robustness, if even marginally. It could also be used for self-calibration if the measurements are accurate enough.

The footprint of my machine is 750x1000mm, so I need something that can measure accurately over that distance. Obviously, the optical mouse can be used to measure distance (that's what it is designed to do!), but what parameters should I be looking for to meet my goal (DPI, CPI, camera resolution, etc) of measuring to a precision of 1-10μm and would these measurements be repeatably accurate?

(Each step of the motor moves the machine about .01143mm, so I guess 1μm precision would be preferred but that might be asking too much.)

Unfortunately, it seems that my best lead and the most discussed family of sensors from Avago (ADNS) are discontinued. For example, the ADNS-9800. Have they sold the technology to another company? Does an alternative exist that is easy to source and has proper datasheets? I'm guessing they have been discontinued because other companies have integrated the USB aspect into the die of the sensor module, making the entire thing cheaper to produce (rather than needing another micro to do the SPI/I2C->USB conversion).

Is there a better way to do this while keeping costs in check? Up to $30 per sensor would be a target for this kind of market, I think.

Best Answer

I have tried this before, using an Avago sensor harvested from an optical mouse.

It doesn't work.

The resolution is excellent but the accuracy is terrible. And the calibration varies with distance from material to the sensor.

I arranged a test with a 3" diameter wheel and the sensor reading the outside "tread" of the wheel. I also put a flag on the wheel, passing through an optical interrupter sensor. The number of counts read per revolution varied by a few tenths of a percent, nowhere near good enough repeatability for machining.

I guess you could use the optical mouse sensor in combination with an accurate but low-resolution sensor to fill in the in-between points. But really, I think other sensor technologies are more appropriate for this.