Skip to main content
MBaum.7
Associate III
February 2, 2024
Solved

VL53l1X - can I fix used number of SPAD's

  • February 2, 2024
  • 1 reply
  • 1121 views

I use a VL53l1X looking trough a oil layer of ca. 20 mm. When getting measured distance 3 times with GetResult(), it returns (example):

Status = 0, dist = 11, Ambient = 16, Signal = 20936, #ofSpads = 6

Status = 0, dist = 19, Ambient = 8, Signal = 18104, #ofSpads = 6

Status = 0, dist = 38, Ambient = 16, Signal = 15864, #ofSpads = 19

 

--> some 'magic' automatic changed the NrOfSpads from 6 to 19, which also affects the measured distance. When I set the NrOfSpads with VL53L1X_Status_t VL53L1X_SetROI(uint16_t X, uint16_t Y);, this only limits the maximal used NrOfSpads, but it's further possible that the sensor switches to a lower NrOfSpads autonomous.

 

How can I force the sensor to use a defined NrOfSpads?

This topic has been closed for replies.
Best answer by John E KVAM

Alas you cannot. 

The sensor does a Dynamic Spad Select (DSS) at the start of ranging. Ideally the senor wants a signal of 20M. So it adds SPADs if the signal is low and it turns some off it the signal is high. 

(It takes energy to reset or 'quench' a SPAD, so the object is to pick just the right amount. And despite the #ofSpads being an integer, there are some that are occluded and if you really dig into the code you can see a float.)

Try your experiment again changing from a black bit of paper to a piece of aluminum foil.  You will see the # of SPAD fluctuate to the extremes. 

I'm not sure what caused your SPAD count to change so much. But I'd have to guess it was a change of target reflectivity. And the reflectivity extremes lead to most of the error we see in the sensor. 

1 reply

John E KVAM
John E KVAMBest answer
ST Employee
February 14, 2024

Alas you cannot. 

The sensor does a Dynamic Spad Select (DSS) at the start of ranging. Ideally the senor wants a signal of 20M. So it adds SPADs if the signal is low and it turns some off it the signal is high. 

(It takes energy to reset or 'quench' a SPAD, so the object is to pick just the right amount. And despite the #ofSpads being an integer, there are some that are occluded and if you really dig into the code you can see a float.)

Try your experiment again changing from a black bit of paper to a piece of aluminum foil.  You will see the # of SPAD fluctuate to the extremes. 

I'm not sure what caused your SPAD count to change so much. But I'd have to guess it was a change of target reflectivity. And the reflectivity extremes lead to most of the error we see in the sensor. 

If this or any post solves your issue, please mark them as 'Accept as Solution' It really helps. And if you notice anything wrong do not hesitate to 'Report Inappropriate Content'. Someone will review it.