VL53L0X Time-of-Flight Distance Sensor: Arduino Guide to get started

VL53L0X, a Time-of-Flight distance sensor, measuring distance with Arduino like no other! The VL53L0X sensor houses ST FlightsenseTM patented technology alongside leading-edge SPAD array in the smallest package of laser-ranging modules in the market!

In today’s blog, I’ll be covering:

  • What is the VL53L0X sensor? Introduction
  • VL53L0X module
  • VL53L0X Arduino Guide

This blog will include VL53L0X datasheet and its API user manual under the Resources Section as well!

VL53L0X Sensor: Overview

Introducing the world’s smallest time of flight ranging and gesture detection sensor, VL53L0X. Part of ST new generation of laser ranging modules, it provides accurate distance measurement, unlike other proximity sensors!

Despite its small form factor, it still contains a plethora of features, namely the following:

  1. Fully integrated miniature module
    • 940 nm laser VCSEL
    • VSCEL driver
    • Ranging sensor with an advanced embedded microcontroller
    • 4.4 x 2.4 x 1.0mm (Yes, that small!)
  2. Fast, accurate distance ranging
    • Measures up to 2m (absolute range)
    • Range reported is independent of the target reflectance
    • Advanced embedded optical cross-talk compensation to simplify cover glass selection
  3. Safe to use, with compliance with IEC
    • Class 1 laser device that’s compliant with latest standard IEC 60825-1:2014 – 3rd edition
  4. Easy integration
    • Single reflowable component
    • No additional optics
    • Only require a single power supply
    • Device control and data transfer is done through the I2C interface
    • Xshutdown (reset) and interrupt GPIO
    • Programmable I2C address

In awe of all these features? There’s more! The VL53L0X is widely applicable, catering to all your potential needs! The applications follow:

  • User detection for personal computers/laptops/tablets and IoT (energy saving)
  • Obstacle detection with Robots (Robotics)
  • White goods (hand detection in automatic faucets, soap dispensers, etc.)
  • 1D gesture recognition
  • Laser-assisted autofocus. Enhances and speeds up camera autofocus system performance, especially in difficult scenes (low light levels, low contrast) or fast-moving video mode

Why is VL53L0X better than other proximity sensors?

VL53L0X (Time-of-Flight technology) Other proximity sensors (IR technology)
How distance is measured Directly measure distance to an object based on the time for emitted photons to be reflected Measure distance to an object based on amount of light bounced off
Variables affected Not affected by object characteristics: Size, dimesions, materials used, etc. Affected by object characteristics
Affected by environmental factors; lighting conditions

With VL53L0X using time-of-flight technology for distance measurement, it’s insensitive to external variables such as object characteristics. This makes it a far more precise option as compared to other proximity sensors like IR technology as seen!

Now for a Fun Fact!

Do you know before the VL53L0X, early adopters of the time of flight sensor technology is what you see above? Yes, Microsoft Kinect for XBOX 360!

The Kinect controller technology is then miniaturized, improved, and simplified to create distance ranging sensors seen in your VL53L0X!

VL53L0X Module: Grove – Flight of Time Distance Sensor

Grove – Time of Flight Distance Sensor (VL53L0X)

To get started with the VL53L0X sensor, you’ll need a module that integrates it for easier microcontroller interfacing. This is the Grove – Time of Flight Distance Sensor, based on the VL53LOX, and it does just that!

Its specifications:

Features Details
Operating Voltage 3.3V / 5V
Operating Temperature -20℃ – 70℃
Recommended measuring distance 30mm – 1000mm
(3cm – 100cm)
Resolution 1mm
Infrared emitter 940 nm
Bus rate Up to 400kHz (FAST mode) serial bus
IIC Address 0x29

Apart from its specifications, the Grove – Flight of Time Distance contains exactly the same features, applicational possibilities, and more!

Why pick this sensor as compared to other VL53L0X sensors?

You can find other VL53L0X breakout boards, sensors, modules, etc. available, but what makes the Grove – Time of Flight Distance Sensor the one to go with? Here’s why!

Ease of pairing VL53L0X with Arduino through Seeed’s very own Grove system

Grove system is Seeed very own initiative, mainly aimed at helping users like yourself to easily use different modules, through our plug and play system!

This means no more using messy and complicated jumper wires, soldering, breadboard, or debugging electronic circuits! 

Like how simple and less messy it is compared to other VL53L0X modules?

All you need is a Grove Base Shield alongside your Arduino and you’re good to go! Switch to using grove today!

VL53L0X Arduino Guide

We’ve talked about the VL53L0X, and now it’s time for the moment you’re waiting for; How to pair VL53L0X with an Arduino? Here’s a guide to help you get started right away!

Note: This module is compatible with the Raspberry Pi as well, but users have to write their own software library as it’s not possible to provide software library/demo code for all platforms

What you’ll need:

*Seeeduino is Seeed’s very own Arduino, built with benefits over the regular Arduino boards. 

Hardware configurations:

  • Step 1: Connect Grove – Time of Flight Sensor to port IIC of Grove-Base Shield
  • Step 2: Plug Grove – Base Shield into Seeeduino
  • Step 3: Connect Seeeduino to PC via a USB cable

It should now look something like this after pairing things up:

Software configurations

  • Step 1: Download the VL53L0X Library from Github
  • Step 2: Extract the Grove-Ranging-sensor-VL53L0X-master.zip file into the Arduino library folder.

Note: For example, I download this library into D:\Software\WorkWork\arduino-1.8.5\libraries, so only need to extract the zip file here. All in all, please make sure Grove-Ranging-sensor-VL53L0X-master folder is in your Arduino library folder, like the picture below.

  • Step 3: Open the Grove-Ranging-sensor-VL53L0X-master\examples folder you’ve just extracted, you will see five subfolders:

In our tutorial, we are using the high_accuracy_ranging.ino 

However, you can choose a different example according to your own needs, you can choose different examples. Then double click the xxx.ino file to open the Arduino IDE.

  • Step 4: Upload the demo. If you’re unsure on how to do so, please check How to upload code
  • Step 5: Open the Serial Monitor of Arduino IDE by clicking Tool-> Serial Monitor. Or press the CTRL+Shift+M key at the same time.

If everything goes well, you should now achieve the result as follow:

time of mesurement: 205
Measured distance:115 mm
time of mesurement: 205
Measured distance:117 mm
time of mesurement: 205
Measured distance:120 mm
time of mesurement: 205
Measured distance:125 mm
time of mesurement: 204
Measured distance:130 mm
time of mesurement: 205
Measured distance:138 mm
time of mesurement: 205
Measured distance:143 mm
time of mesurement: 205
Measured distance:144 mm
time of mesurement: 205
Measured distance:152 mm



Overall, the VL53L0X not only offers performance advantages over other proximity sensors, but it also delivers it in such a small form factor.

If you liked what you have seen in today’s blog, I’ll highly recommend the Grove – Flight of Time Distance Sensor to help you easily get started with your proximity sensing needs!

Start building projects with the VL53L0X today!

About Author


December 2019