2025-02-18 7:20 AM - last edited on 2025-02-18 7:24 AM by Peter BENSCH
I use a VL53L3 with the STSW-IMG033 Ultra Low Power API.
I use the settings in the settings mentioned in AN5769 "Using the VL53L3CX under ultralow-power mode" for maximum detection under daylight:
Full ROI
Macro period 200
Signal limit 1500
Sigma limit 60
Valid distance 400mm
Using interrupt mode: generate only an interrupt when these criteria are met
I need reliable detection of a human standing in front of the sensor at max 400mm.
Without any cover, the sensor functions just right.
WIth a cover glass (I used the cover glass shipped with the VL53L3 Nucleo addon) I get strange results.
The reason I used this cover glass for this test is that it is shipped by ST to use with their reference design.
Upto about 200 mm the measurement is quite reliable.
When the object distance is increased, the measured distance starts to decrease. Becasue of this I get "valid measurement" interrupts upto 1200mm.
With another cover, the measurement can be 400mm at a distance of about 200mm so the total range is decreased a lot.
I tried a lot of parameter variations, but it does not get better.
My question:
1. How can I get a more reliable distance measurement of upto 400 mm (and not beyond) ?
2. How is it possible that a TOF sensor produces a decreasing distance measurement while the actual distance increases?
3. How is it possible that another cover glass can reduce the measured distance so much?
Please note that the ULP API does not provide anything like RefSPADS/Xtalk/Offset calibration options.
And as my core processor has 8K words of flash, the full blown API is no option, also not because of current requirements.
Solved! Go to Solution.
2025-02-27 12:53 PM
I actually did check VL53LX_SetCalibrationData
It collects and copies a whole bunch of data.Most variables that are used in VL53LX_SetCalibrationData are not available in the calibration data dump of the GUI. And this is only what I have available.
I followed every function call in this function, even more data arrangements and memcopies.
And following all function calls, I do not encounter a function that actually writes the dataset into the VL53L3, but maybe I missed that.
The trouble is mostly
- I can't use the full API on my core, I have only a small amount of program memory
- the calibration parameters produced by the GUI are quite difficult to map to the corresponding registers in the VL53L3
If I know how to map the GUI calibration data, I can just write it to the VL53L3 directly.
2025-03-17 6:29 AM
Please help me out with this.
If a user of the ULP library has the possibility to perform an external coverglass calibration and convert the resulting parameters into a dataset and corresponding registers of the VL53L3, then this would be a a great solution.
This would be helping users like me who have to work with a small and low cost microprocessor, who want to use the VL53L3 as a proximity sensor.
Thanks in advance :)