Skip to main content
mf101
Associate III
March 1, 2021
Question

Question regarding VL53L1X_SetROI()

  • March 1, 2021
  • 4 replies
  • 1457 views

The function VL53L1X_SetROI() of the VL53L1X ultralite driver also sets the optical center if either X or Y is greater than 10.

Is this intended and if so, why ? Neither API description nor header file state anything about this conditional modification of the optical center.

This topic has been closed for replies.

4 replies

John E KVAM
ST Employee
March 1, 2021

The optical center might not be the exact center due to mechanical tollerence when the chip is built. If the lens is not dead perfect the center could be off by a SPAD or two. So when choosing a small FoV one would really like the FoV to be based on the optical center.

But if you choose an FoV thats large, then there is no way to use the optical center and still have the SPADS on the SPAD array. So if the FoV gets larger than the 10, revert we revert to the physical center to guarentee that the FoV is within the SPAD array.

I suppose with some work we could have slowly migrated the 'center' from the optical center to the physical center as the FoV got larger, but the edict was to keep the driver as small as we possibly could. As a practical matter, as the FoV gets bigger the optical center is less important. It was a trade-off.

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.
RBell.2
Visitor II
October 27, 2021

What is the expected value if the device were to be manufactured perfectly? What is it if the optical center is actually half of a SPAD low and to the left at the center of the block marked 7, 7 in the user manual?

Thanks

BoB

John E KVAM
ST Employee
October 27, 2021

There is no center Spad. it's a 16x16, so the exact center is dead between 4 SPADs. During manufacture a test is done to see which is best as there might be slight tilt to the lens.

So using a normal numbering scheme, the spads at (7,7) (7,8), (7,8) and (8.8) are all equally close to perfection. Note that when choosing a center point, one up and to the right is the one to pick. In this case (7,8)

But this is spitting hairs a bit. The smallest ROI is 4x4, and that's about as accurate as you are going to get.

  • john
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.
RBell.2
Visitor II
October 27, 2021

When I use the VL53L1X API the optical center is filled in by using the ROI center. If I then run with the VL53L1 API I get a values read from the device that have the fraction filled in. They are close to 8. What do these fractional values mean? X = 0x8A, Y= 0x78. Why do the programmed values not read with the VL53L1X API?

Thanks

BoB