I recently ordered a VL53L0X sensor carrier from Pololu, with the aim of using it as a lightweight rangefinder for my latest build. VL53L0X is a Time-of-Flight (ToF) sensor; it measures distance by measuring the time it takes for a pulse of light to travel to a target and back. This is some serious stuff for sure, and from an initial look at the API, there is a lot going on under the hood. VL53L0X is an evolution of the previous VL6180X, with an increased range of two meters (the previous could sense up to 10 cm).
The sensor interface is I2C. For those of you versed in using I2C devices in your projects, you’ll be surprised that ST does not publish a register map and descriptions or other documentation about configuring and controlling the VL53L0X. Instead, communication with the sensor is intended to be done through ST’s VL53L0X API (STSW-IMG005), a set of C functions that take care of the low-level interfacing (source:Pololu). Alternatively, the folks at Pololu have developed an Arduino Library that makes it straightforward to take measurements.
Unfortunately for me, using it with the Raspberry Pi 2 and the NAVIO2 board means that I should interface the sensor with Ardupilot. And since there is no driver yet for this sensor…well, you guessed it.. time to fire up my IDE! This’ll take some time though. Currently, I barely managed to solder the connections together and make sure that the RPi identifies the sensor. Well, guess that’ll do it for now. Stay tuned for updates!
According to this page it seems that there is now Ardupilot support for VL53L0x!
Update 06/2018: At this point there are several VL53L0x breakout boards available. The list below list some of the options available:
- Pololu VL53L0X breakout
- Adafruit VL53L0X breakout
- GY-530 from Smart Prototyping
- VL53L0X breakout on Tindie, with STM32 microcontroller, also another one
- MappyDot Plus on Tindie
Pololu also offers a newer version of their breakout with the ST VL53L1X rangefinder that has an increased 400cm range.