The Maker-Friendly Laser Distance Sensor
With 60Hz sample rates, reading speeds in excess of 900Hz and factory pre-calibration for every unit; tinyLiDAR is the highest performing VL53L0X based time-of-flight ranging module available. tinyLiDAR abstracts out the complex low level VL53L0X control tasks using STMicroelectronics's official PAL API so you can get results using simple I2C commands.
We were simply blown away by the level of interest from so many brilliant people around the world. We actually achieved 790% of our goal on Indiegogo. From makers to photonics research scientists – it’s all thanks to their generosity that we have tinyLiDAR available today.
Easy to Use
The higher performance is thanks to our custom firmware residing in the on-board 32bit ultra-low power microcontroller. It abstracts out the complex low level VL53L0X control tasks so you can get your results using only simple ASCII commands sent over an I2C bus from any micro.
Specs & Features
Frequently Asked Questions
The VL53L0X Time-of-Flight distance sensor is a very small SMD device that requires surface mount soldering before it can be used. If you look closer at it, you can see there are two small holes in the package to let light through. In order to prevent soldering chemicals from damaging the sensor, a piece of yellow polyimide (high temperature) tape is used on top of this sensor. After reflow SMD soldering, the tape should be removed before using the sensor. In fact, the high soldering temperatures also change parameters inside the sensor and this results in a random offset distance that must be calibrated out before using it for any accurate distance sensing application.
That is what we do here before shipping the tinyLiDAR modules.
The offset calibration is done per ST spec in a shielded chamber at exactly 100mm distance in “high accuracy” mode. We then test it for other items and normally leave it in the “tinyLiDAR” mode which is not as accurate but has a very quick response. This “factory” offset calibration we perform is stored in non-volatile storage on board tinyLiDAR‘s 32bit micro and is therefore accessible whenever you type “reset” on the GUI Terminal. If desired, you can perform your own custom offset calibration but the factory version is never erased so you can get back to it with “reset” whenever you like.
We have sucessfully used tinyLiDAR over 5m (over 16 feet) away from the Arduino UNO using only a low cost USB2.0 cable as shown in the connection diagram below.
tinyLiDAR was powered from the Arduino +3.3v supply.
I2C speed was set at the default 100Kbps rate and the default 4.7K pull-up resistors (provided on the tinyLiDAR board) were used.
tinyLiDAR is controlled by any standard I2C host that can support clock stretching. The Raspberry Pi has a standard I2C port (with built-in 1.8K pullups) but has had problems with clock stretching every since it was first introduced. The problem is due to the Broadcom chipset hardware and there are limited software solutions to remedy this. You can simply use the pigpio software solution as we did. It supports clock stretching and works very well with tinyLiDAR. Download the Terminal Gui (now at r0.95) for Raspberry Pi 3 at the bottom of this page after installing the pigpio library
Also please read our instructable for this.
If you ever get in a situation where your tinyLiDAR is not responding. It could be due to mainly two reasons. First it could be set to a unknown I2C address and second, it could be in a strange locked/glitched state. Normally, tinyLiDAR will recover on its own if it is glitched if the watchdog timer is enabled. However, if the watchdog timer is disabled, then you can easily recover by either power cycling the board by removing all wires to the board or by carefully pressing the reset button with your finger nail. The button is very small and doesn’t need a lot of force to activate but you will know when it presses down by feeling the button cap move a very short distance.
The next step to resetting tinyLiDAR is with the “RESET” command. This is easily accomplished using the tinyLiDAR Terminal GUI Sketch (see downloads section at the bottom of this webpage. Just load up this sketch in an Arduino UNO and type “RESET” without the quotation marks. It will take a couple of seconds to clear out any user settings and set the tinyLiDAR back to the factory default I2C address of 0x10. You can then press ENTER a few times and check that the tinyLiDAR board is responding again by blinking the blue LED every time it takes a measurement.
It is known as a “Grove” 4pin universal connector. There are many cables made by Seeed Studio that you can use for this connector. Examples are DigiKey #1597-1092-ND (MPN 110990210) for the Grove to 4pin male header types which can be inserted into your breadboard and 1597-1079-ND (MPN 110990031) for the Grove to Grove 4pin “un-buckled” type cables. We prefer the un-buckled type (instead of buckled) as they require less force when removing them from small boards.
I2C Connections for tinyLiDAR on a Raspberry Pi