Overview

The VL53L1X is STMicroelectronics' 2nd-generation FlightSense Time-of-Flight (ToF) laser ranging sensor. Improving significantly upon the earlier VL53L0X (which was limited to 2 meters), the VL53L1X extends maximum absolute distance measurement up to 4.0 meters (4000 mm) while operating at sampling rates up to 50 Hz.

Featuring a 940 nm VCSEL (Vertical Cavity Surface Emitting Laser) class-1 emitter, an integrated Single Photon Avalanche Diode (SPAD) detector array, and programmable Region of Interest (ROI) control (allowing users to reduce the 2727^\circ Field of View down to 1616^\circ or create multi-zone spatial gesture grids), the VL53L1X outputs millimeter-accurate distance readings over I2CI^2C (0x29).

Quick reference

Operating voltage (VIN)3.3 V to 5.0 V DC (breakout module with 3.3V LDO regulator)
IC supply voltage (AVDD)2.6 V to 3.5 V DC (3.3 V nominal)
InterfaceI2CI^2C (Fast-Mode up to 400 kHz)
Default I2CI^2C address0x29 (Software programmable to any 7-bit address)
Distance Range40 mm40\text{ mm} to 4000 mm4000\text{ mm} (4 meters4\text{ meters})
Ranging Distance ModesShort (01.3m0\dots 1.3\text{m}), Medium (03.0m0\dots 3.0\text{m}), Long (04.0m0\dots 4.0\text{m})
Laser Emitter940 nm940\text{ nm} VCSEL (Eye-safe Class 1 laser)
Full Field of View (FOV)2727^\circ (Programmable ROI array downsizing to 1616^\circ)
Max Ranging SpeedUp to 50 Hz (20 ms timing budget)
Control PinsXSHUT (Active-Low shutdown / address reset pin)

Pinout

Breakout module header & Qwiic / STEMMA QT connectors:

PinNameTypeDescription
1VINPowerSupply power input (+3.3 V to +5.0 V DC)
2GNDPowerGround reference (0 V)
3SCLDigital InputI2CI^2C Serial Clock
4SDADigital Input / OutputI2CI^2C Serial Data
5XSHUTDigital InputActive-Low shutdown input (Pull Low for hardware reset / I2C re-addressing)
6GPIO1Digital OutputActive-Low interrupt output (New data sample ready)

Specifications

ParameterSymbolMinTypMaxUnitConditions
Supply Voltage (Module)VVINV_{VIN}3.33.3 / 5.05.5VPower rail with LDO
Active Ranging CurrentICCI_{CC}2032mAActive 50 Hz ranging
Shutdown CurrentIsdI_{sd}5.015.0µAXSHUT tied to GND
Short Distance RangeDistshortDist_{short}401300mmHigh ambient light resistance
Long Distance RangeDistlongDist_{long}404000mmDark room / low ambient light
Distance Accuracy (Short)AccshortAcc_{short}-20±5\pm 5+20mmWithin 0 to 1300 mm range

Short vs Long Distance Ranging Modes

  • Short Distance Mode (0 – 1.3 m0\text{ -- }1.3\text{ m}): Immune to strong ambient sunlight outdoor interference up to 200,000 Lux.
  • Medium Distance Mode (0 – 3.0 m0\text{ -- }3.0\text{ m}): Balanced indoors/outdoors mode.
  • Long Distance Mode (0 – 4.0 m0\text{ -- }4.0\text{ m}): Achieves maximum 4-meter range under indoor lighting or dark environments.

Wiring

VL53L1X PinArduino / MCUESP32Notes
VIN5V / 3.3V3.3VPower rail
GNDGNDGNDSystem ground
SCLA5GPIO 22I2CI^2C Clock
SDAA4GPIO 21I2CI^2C Data
XSHUTDigital D4GPIO 16Optional shutdown / re-addressing pin

Example (Pololu VL53L1X Library)

cpp
#include <Wire.h>
#include <VL53L1X.h>

VL53L1X sensor;

void setup() {
  Serial.begin(115200);
  Wire.begin();
  Wire.setClock(400000); // 400 kHz Fast I2C

  sensor.setTimeout(500);
  if (!sensor.init()) {
    Serial.println("Failed to detect VL53L1X sensor! Check I2C wiring.");
    while (1);
  }

  // Use Long distance mode and 50ms timing budget
  sensor.setDistanceMode(VL53L1X::Long);
  sensor.setMeasurementTimingBudget(50000);
  sensor.startContinuous(50);
}

void loop() {
  uint16_t distance_mm = sensor.read();

  if (sensor.timeoutOccurred()) {
    Serial.println("VL53L1X Read Timeout!");
  } else {
    Serial.print("Distance: "); Serial.print(distance_mm); Serial.println(" mm");
  }
}

Common mistakes

  • Leaving protective cover sticker over the lens: VL53L1X breakout modules ship with an ultra-thin yellow/orange protective film cover over the optical aperture. Failing to peel off this film causes constant 10 mm10\text{ mm} false ranging readings.
  • Conflating VL53L0X and VL53L1X libraries: While both chips use default I2CI^2C address 0x29, the internal register maps of the VL53L1X are completely different from the VL53L0X. Use dedicated VL53L1X libraries.

Notes

  • VL53L1X vs VL53L0X vs VL53L5CX: VL53L0X (2m range single-zone); VL53L1X (4m range single-zone with ROI customization); VL53L5CX (8x8 multizone 64-pixel ToF matrix).

Assets & downloads