Pololu Robotics & Electronics
My account Comments or questions? About Pololu Contact Ordering information Distributors

Pololu Forum

Vl6180x is always busy


I bought Pololu VL6180X Time-of-Flight Distance Sensor module.

After sending “single shot reading mode” command (sending 0x01 to register 0x0018), I check “RESULT_INTERRUPT_STATUS_GPIO” register at 0x04F and always read 0x00 that means it is busy.
I replaced vl6180x with a new one but problem still continues.

I do not have any problem in reading/writing from/to vl6180x registers. Initial values are standard values given in application notes.

Anybody comments on this problem ?


What microcontroller and software are you using? If you wrote your own program, there is some initialization necessary before taking any measurements. Looking at the code for our VL6180X Arduino library might give you a good idea of how to do the initialization.


Hello Nathan,

Thanks for your reply.

I use Pic16f series in this project. All initial values are from ST application note. Furthermore read/write to/from VL6180x registers is OK. As I wrote previously I replaced Pololu module with a new one.

I will check SW against error once more and let you know the result.

thanks and best regards


I bought the VL6180 - SATEL to make some distance measuring tests. I followed every step from AN4545 to do a single shot measurement, using a Silicon Labs MCU. Every configuration described on the document I was able to configure and check the ACK received from the sensor. But when I read the RESULT_INTERUPT_STATUS_GPIO (0x4F), it always returns 0x00, saying It does not have new data, never. If I ignore this result, when I read RESULT_RANGE_VAL, It always returns 0x00.

Do you know how can I solve this problem?

Hi, VitorVitalino.

Are you using our VL6180X library? If not, the ST community site would probably be a better place to ask for help, especially since you are using their board.


1 Like

Hi, you can set bit rate the your i2c for 400kHz. this reslove your problem.