“Convert” is a clock that runs at a fixed frequency of 31.772kHz. It can be used as an interrupt to trigger successive ADC conversions, rather than letting the ADC convert the data at some random speed. The frequency of the Convert signal gives an ADC conversion rate that results in a perfect digital reproduction of the analog signals without any oversampling or aliasing. How convenient!

I love that you’ve used the term “fuzzy” to describe the characteristics of the return signal. Fuzzy logic would be an ideal way to analyse the results to get an accurate distance. In practice, it’s not necessary to go to such lengths, since, whilst your observations are correct, your interpretation is missing one insight. A non-trivial insight I must add. The errors in the distance readings are not caused by the distance itself, they are caused by the strength of the return signal ONLY!

So it’s possible to correct the distance errors by finding the relationship between the magnitude of the error and the signal strength without any concern for the absolute distance to the target surface. A simple way to do this is to have two targets, one white and one black. Put the white target at 5m. Measure the distance to the front of the return signal AND to the back of the return signal. Record the results and repeat the test using the black target.

You know that the target hasn’t moved so the distance to the front of the return signal should come out the same, namely 5m. But the width of the signal (which is a proxy for signal strength) has changed and therefore the associated error is different. If you plot the width of the signal on the X-axis of a graph (width = distance to rear - distance to front), and the error on the y-axis (error = distance to front - 5m), you get two points on the relationship between signal strength and error. In CFD, you make the assumption that the relationship is linear, and therefore you can construct the linear equation that predicts how much error you would expect from any given signal strength. This error can be subtracted from the distance reading taken at the front of the return signal to get the actual distance. The slope of this equation is negative, meaning that stronger signals have less error than weaker signals.

Most designers completely underestimate the effect of electronic delays when analyzing signals that are moving at the speed of light (we’re talking nano and pico seconds here). Consequently, they find it hard to make an accurate laser range finder. So whilst the OSLRF-01 slows down all the signals to make them easier to analyze, it is still dealing with phenomena that are actually at the speed of light, so it too suffers from delays caused by stray capacitance and such like. Correcting for these delays is what your are doing with CFD.

Just to stretch your imagination one step further. Electronics is more of an art than a science and nothing in electronics is ever perfect. So, inevitably, it turns out that the linear CFD approach only gives a better approximation of the actual distance. Correcting for non-linear errors, which are typical of capacitive charging or amplifier saturation, requires more data points and a more sophisticated correction algorithm. Such fun!

PS For those of you who don’t want to worry about all this stuff, don’t forget that lightware.co.za makes all kinds of complete laser range finders as well