I am using a VL6180 as a proximity detector. I am able to communicate the part without any issue, but when I read the RESULT__RANGE_VAL register or RESULT__RANGE_RAW I only read 0xFF with no target and 0x00 with a target in any position. I measured the current from the device and I can see that it is performing ranging at the rate I requested because I can see a spike in current draw that is proportional in length to the distance from my target, but the value in the result register does not change. Other registers do show a change with target distance, but not the two result registers, so I’m sure I’m not setting something up right.
The only register altered from default is SYSRANGE__INTERMEASUREMENT_PERIOD, which I have at 10 for 100ms, and I do see a range measurement every 100ms.