Skip to main content
Visitor II
March 8, 2020
Question

VL6180X wrap-around filtering: is this possible without the API?

  • March 8, 2020
  • 12 replies
  • 2592 views

Hello,

I'm working on a project with a VL6180X ranging sensor, and I'm running into the problem that it responds to reflective surfaces far beyond the desired range (100 mm) - e.g. it picks up reflective stripes on the jackets of emergency personnel at over 1200 mm (4 feet) distance, rendering the whole thing unusable.

The datasheet mentions a Wrap-Around Filter (WAF) to solve this problem; however, it turns out that this filter (and only this filter) requires the use of the VL6180X API - which is a problem, as I'm using a simple PIC controller for the overall functionality (switching on a small liquid pump when a hand is within range).

I already checked out the API, but it isn't clear at all how this WAF works. Could someone shed some light on this? If it is merely a matter of setting a bunch of registers, my controller should be able to handle that just fine; and even if some continuous external processing is required, it shouldn't be impossible.

(I also looked if I could simply decrease the VCSEL output to limit the range, but there seems to be no register setting for this.)

What I don't want, is to redesign and rebuild the hardware and software in order to be able to use just this one feature.

Thanks already for any help!

Richard

    This topic has been closed for replies.

    12 replies

    ST Employee
    October 6, 2020

    Another contact states he has seen a similar problem. System only failed in the white version of the product. Customer never found a solution. They chose to reset the sensor regularly. Bummer.

    RichardRAuthor
    Visitor II
    October 7, 2020

    Hello John,

    Thank you for all the extra information, and in a way it is good to know that others have experienced some trouble with bright environments as well. We'll think about implementing a reset option.

    The sensors have a dedicated 2.8V LDO power supply with generous local decoupling using several different ceramic capacitors. The I2C runs at a leisurely 100 kHz, albeit over several inches of flatcable, which may pick up occasional EMC.

    About resetting the device: all controller pins are in use already, but I can implement a simple reset circuit using SCL with a high-impedance RC circuit and a Schmitt-Trigger buffer, to generate a low reset on GPIO0 if SCL is forced low for e.g. 100 ms (as SCL is high 99.9% of the time during normal operation).

    As I already mentioned, the latest tests are encouraging in that we haven't experienced any problems lately. Testing & close monitoring continues in the next few weeks, and if we still get no spurious readings, I think we can safely put the system in production -- maybe with the extra reset circuitry, to be on the safe side.

    Thanks once again, best regards,

    Richard