Skip to main content
Associate
January 24, 2024
Solved

VL53L1X Distance Sensor 50% failure rate (erratic measurements).

  • January 24, 2024
  • 12 replies
  • 5648 views

Hi,

We have an issue with a production build of a VL53L1X based design. The VL53L1X is interfaced to a PIC18F micro, I have inherited the codebase and hardware. The initial production run was for 500 units, of these approx 260 passed our production tests and some have been working well in the field for some time.

The remaining 240 all exhibit an almost identical failure mode. Basically the readings will only 

 


1 - Uart Output (Legacy Code - Good Sensor)

 

VTOF=345mm (5989) (0)
VTOF=346mm (5978) (0)
VTOF=346mm (6020) (0)
VTOF=344mm (5949) (0)
VTOF=345mm (6153) (0)
VTOF=346mm (5979) (0)
VTOF=347mm (6098) (0)
VTOF=345mm (6147) (0)
VTOF=347mm (6176) (0)
VTOF=346mm (6166) (0)
Min: 344, Max: 347, Avg: 345.70, Std Dev: 0.95

 

 

 2 - Uart Output (Legacy Code - Bad Sensor)

 

VTOF=652mm (33) (1)
VTOF=524mm (48) (0)
VTOF=571mm (38) (7)
VTOF=496mm (25) (1)
VTOF=734mm (23) (1)
VTOF=570mm (14) (1)
VTOF=604mm (30) (1)
VTOF=515mm (19) (1)
VTOF=550mm (3) (2)
VTOF=587mm (11) (2)
Min: 496, Max: 734, Avg: 580.30, Std Dev: 70.73

 

 

*Numbers in brackets are "signal_rate" and "range_Status"

Above tests were run with a 300*200 grey target at 350mm, indoor lighting.

The inherited codebase was written some time ago by an outside contractor. I decided to implement the Ultra Lite Driver to see if the issue was to do with the firmware (the old code just puts a "known good" calibration table into the VL53L1X and begins reading).

After porting the library and writing some debug code, the bad sensors are still reading incorrectly. Although they are now much worse than when using the legacy code. I assume I will have to perform some calibration to get the offsets correct, but the repeatability issue remains on the bad sensor, which offest won't fix anyway.

 

3 - Ultra Lite Driver Register Printout (Good Sensor)

 

Timing Budget in ms : 100
Distance Mode : 2
Intermeasurement Period in ms : null
Boot State : 3
Sensor ID : 60108
Measured Distance : 673 mm
Signal Per SPAD : 24 kcps
Ambient Per SPAD : null
Signal Rate : 440 kcps
Number of SPADs : 1
Ambient Rate : null
Range Status : 2
Result - Distance : null
Offset : null
Crosstalk (Xtalk) : null
Distance Threshold Window : 0
Distance Threshold Low : null
Distance Threshold High : null
ROI Width : 63815, 4096
ROI Center : 199
Signal Threshold : 1024 kcps
Sigma Threshold : 90 mm

 

 

4 - Ultra Lite Driver (Bad Sensor)

 

Timing Budget in ms : 100
Distance Mode : 2
Intermeasurement Period in ms : null
Boot State : 3
Sensor ID : 60108
Measured Distance : 629 mm
Signal Per SPAD : 25 kcps
Ambient Per SPAD : null
Signal Rate : 464 kcps
Number of SPADs : 1
Ambient Rate : null
Range Status : 2
Result - Distance : null
Offset : null
Crosstalk (Xtalk) : null
Distance Threshold Window : 0
Distance Threshold Low : null
Distance Threshold High : null
ROI Width : 63815, 4096
ROI Center : 199
Signal Threshold : 1024 kcps
Sigma Threshold : 90 mm

 

 

 

On production units the sensor is protected by glass, with a 3d printed baffle to minimize cross-talk. I've validated that there's no effect from the hardware. The good/bad divide remains the same regardless of whether the glass or baffle is present. I've also validated supply rails are noise free and stable under operation. The "bad" sensors do not look dirty or damaged under the microscope.

 

I'll be implementing xtalk and offset calibration but I'd like to know if there are any other registers that I should be setting or adjusting? Or could it be that we have a bad batch of VL53L1X  sensors?

I'm also not sure why many of the registers are returning errors? (My debug function marks any that do not return "VL53L1X_ERROR = 0" as "null")

 

Thanks in advance for your help.

 

This topic has been closed for replies.
Best answer by Aurelius

Thanks John,

That's not good news for us, but at least we know where we are.

 

I appreciate all the help.

12 replies

John E KVAM
ST Employee
January 26, 2024

OK, you've convinced me.  Now you have to deal it whomever you bought them from to work out some sort RMA procedure. If they are broken, then ST will want to have a good look at them. Unfortunately, I have no idea how one does that. I've never gone through the process. But the process starts with your distributor. 

- john

AureliusAuthorBest answer
Associate
January 27, 2024

Thanks John,

That's not good news for us, but at least we know where we are.

 

I appreciate all the help.