cancel
Showing results for 
Search instead for 
Did you mean: 

How does VL6180 do temperature compensation if end product application is an outdoor?

awang.5
Associate

Thank you so much for seeing my question!

We are developing a product and intend to use this sensor. Since the end product is used outdoors in Europe, we did some simulation experiments, but found that when the ambient temperature drops from 20 degrees Celsius to -20 degrees Celsius, the distance deviation of this sensor up to 15mm. I checked the specification in detail and called the function sensor.writeReg(VL6180X::SYSRANGE__VHV_REPEAT_RATE, 0xFF), but I didn't get the temperature compensation effect I wanted. The similar TI OP3101 has its own temperature sensor embedded, but it seems that the VL6180X does not have an internal temperature sensor. So, if we want to get accurate distance data, does it mean that we need to add a temperature sensor to our system, and do temperature compensation calculation for VL6180X from MCU?

1 REPLY 1
John E KVAM
ST Employee

VCSELs (the laser) is a odd thing. It works a lot better in the cold. And so we spend a lot of time paying attention to the temperature. In fact temperature - as you have seen - leads to the biggest variation in accuracy.

The VL6180 does have a temp sensor in it. That's how we do the VHV adjustment.

But unfortunately there is no read-out.

15mm seems quite high. But the datasheet does indicate you could get that much variation.

Do check to see that it's not condensation was getting on your coverglass and giving you a short answer? My guess is that it's not only the cold, but something physical that is giving you grief.

Clearly adding your own compensation would work.

Unfortunately I do not see a register to read out either the Temp or the VHV setting. Both of which might give you a clue as to how to do the correction.

A manual VHV calibration is performed by setting SYSRANGE__VHV_RECALBRATE{0x2E} to 1. This register auto-clears. This operation should only be performed in software standby. If temperature is really bugging you, you could set this for every range.

As an experiment, add a temp sensor and see if your compensation idea works. Use at least a couple of sensors from different lots.

That TI OP3101 chip is pretty good. But it only does the math. One still needs a VCSEL and an optical sensor to go with it.

  • 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.