VL53L0X vs VL53L1X: Best Time-of-Flight Sensor for ESP32

Compare VL53L0X vs VL53L1X for ESP32 projects. Range, field of view, speed, ESPHome support, wiring, multi-sensor use and which ToF sensor to choose.

The VL53L0X and VL53L1X are two of the most common miniature Time-of-Flight distance sensors used with ESP32 boards. Both come from STMicroelectronics, both use an invisible 940 nm infrared laser, both communicate over I²C, and both measure absolute distance by timing the return of emitted light.

They look similar on breakout boards, but the VL53L1X is not simply a renamed VL53L0X. It is a newer, more capable sensor with longer range, faster measurement capability and a programmable region of interest.

There is one important software catch for Home Assistant users in 2026: ESPHome has native support for the VL53L0X, but not the VL53L1X. VL53L1X currently requires an external ESPHome component or custom Arduino/ESP-IDF code.

Quick Comparison

FeatureVL53L0XVL53L1X
Maximum quoted rangeUp to 2 mUp to 4 m
Typical full field of view25°27°
Programmable ROI / reduced FoVNoYes
Maximum ranging frequencyLower; timing-budget dependentUp to 50 Hz
Long-range performanceModerateMuch better
Ambient-light performanceGood for its generationImproved
Default I²C address0x290x29
XSHUT pinYesYes
Native ESPHome componentYesNo
Arduino library supportExcellentExcellent
Best fitSimple short-range ESPHome projectsLonger-range / narrower-FoV / advanced projects

Which One Should You Buy?

If you are starting a normal Arduino or ESP-IDF project, buy the VL53L1X unless the VL53L0X is significantly cheaper. The VL53L1X gives you roughly double the headline range, much faster possible update rates and the ability to narrow the sensing region.

If your priority is a simple ESPHome node that you want to configure entirely in YAML with no external component, the VL53L0X is still the easier choice.

Your projectBetter choice
Home Assistant + stock ESPHomeVL53L0X
Arduino distance measurementVL53L1X
Robot obstacle detectionVL53L1X
Short-range presence / object sensingEither
Narrow target through an openingVL53L1X
Several sensors on one ESP32Either; use XSHUT + reassigned addresses
Water-level experiment in a dry enclosureVL53L1X for range, but condensation remains a concern
Lowest software effortVL53L0X

How Time-of-Flight Sensing Works

Unlike an HC-SR04 ultrasonic sensor, the VL53 family does not measure the travel time of sound. It emits extremely short infrared light pulses and measures the returned photons using a SPAD receiver array.

940 nm IR pulse
      │
      ▼
    target
      │
 reflected light
      │
      ▼
 SPAD receiver
      │
      ▼
time-of-flight calculation
      │
      ▼
distance

Because the result comes from light rather than sound, the sensor is compact, silent and suitable for close-range object measurement where an ultrasonic transducer would be physically large or have a difficult blind zone.

VL53L0X: What It Is Good At

ST rates the VL53L0X for absolute distance measurements up to 2 m, but that headline figure depends heavily on target reflectance and lighting.

ST’s current datasheet shows why real projects should not treat 2 m as a guaranteed working distance. With a 33 ms timing budget, a bright white target indoors can typically be detected beyond 2 m, while a darker 17% reflective target is much more demanding. Outdoor infrared light also reduces reliable range.

ESPHome’s own VL53L0X documentation is deliberately conservative: it notes that although 2 m is possible, you can generally expect roughly 60 cm without needing especially favourable target conditions.

  • Very easy I²C wiring.
  • Mature Arduino libraries.
  • Native ESPHome component.
  • Useful for short-range object sensing.
  • XSHUT support makes multi-sensor designs practical.
  • Configurable timing budget and long-range mode in ESPHome.

VL53L1X: What Changed

The VL53L1X extends the same basic FlightSense concept with a newer optical design and a receiving array that supports programmable region-of-interest control.

  • Up to 4 m quoted ranging distance.
  • Up to 50 Hz ranging frequency.
  • 27° typical full FoV.
  • Programmable ROI size to reduce the effective field of view.
  • Programmable ROI position for more advanced host-controlled sensing.
  • Improved long-range and ambient-light capability compared with the VL53L0X generation.

For robotics, machine position sensing and narrow-target measurement, the ROI capability is often more important than the extra metres of range.

Field of View: 25° vs 27° Is Not the Important Difference

On paper, the VL53L0X has a 25° system field of view and the VL53L1X has a typical 27° full field of view. If that were the whole story, the difference would be minor.

The important feature is that the VL53L1X can reduce its effective field of view by selecting a smaller ROI on the SPAD array.

Wide FoV:

       \       /
        \     /
         \   /
          \ /
         target

Reduced ROI / narrow FoV:

          | |
          | |
          | |
        target

This helps when you need to look through an aperture, ignore nearby side objects or measure a narrow target without letting the sensor see too much of the surrounding scene.

Why Field of View Matters More as Distance Increases

A ToF sensor does not behave like a perfectly narrow laser pointer. Its sensing cone covers a larger physical area as distance increases.

At short distances, the sensor may see only the intended object. At longer distances, the same angular field of view can include enclosure edges, walls, pipework or another object closer to the sensor.

This is one reason the VL53L1X ROI function can improve real installations even when you do not need its full 4 m range.

Range: Do Not Compare Only the Headline Number

ConditionWhat happens
Bright white target indoorsBest-case range
Dark targetRange falls
Strong sunlight / IRRange and measurement quality fall
Small target inside larger FoVBackground can influence result
Dirty or fogged cover windowSignal quality falls
Longer timing budgetUsually improves sensitivity at the cost of update speed

If a project absolutely requires 3–4 m measurement, the VL53L1X is clearly the better starting point. If your object is always 20–50 cm away, the VL53L0X can be completely adequate.

Speed and Timing Budget

ToF sensors trade measurement time against performance. A longer timing budget gives the sensor more opportunity to collect useful reflected photons, which can improve stability and long-range performance.

The VL53L0X datasheet uses a typical default ranging budget around 33 ms and documents a minimum range measurement period around 8 ms. The VL53L1X is designed for faster operation and ST specifies ranging frequency up to 50 Hz.

For Home Assistant, 50 Hz is normally pointless. A level sensor or room automation often needs one reading every second or even every few seconds. Robotics and motion control are where the VL53L1X’s faster updates matter.

ESP32 Wiring Is Almost Identical

ESP32          VL53L0X / VL53L1X breakout

3.3V  ---------- VIN / VCC*
GND   ---------- GND
GPIO21 --------- SDA
GPIO22 --------- SCL
free GPIO ------ XSHUT

*Check the specific breakout board.
Some boards include their own regulator/level shifting.

The bare ST devices are not simply 5 V logic parts. Many popular breakout boards add regulation and level shifting, so always check the board rather than assuming every module labelled VL53L0X or VL53L1X has identical power requirements.

Default I²C Address: Both Use 0x29

Both sensors normally start at I²C address 0x29. This is fine with one device, but creates an address collision if you connect two identical sensors to the same I²C bus.

Sensor 1 → 0x29
Sensor 2 → 0x29
Sensor 3 → 0x29

All enabled at once
→ I²C address collision

How Multiple ToF Sensors Share One I²C Bus

The normal solution is the XSHUT pin. Hold every sensor in shutdown, enable them one at a time, assign a new I²C address, then enable the next sensor.

Boot:
VL53 #1 XSHUT = LOW
VL53 #2 XSHUT = LOW
VL53 #3 XSHUT = LOW

Enable #1
0x29 → change to 0x30

Enable #2
0x29 → change to 0x31

Enable #3
0x29 → change to 0x32

Result:
0x30
0x31
0x32

The changed address is not permanently stored in the sensor, so this sequence must happen again after power-up.

VL53L0X with ESPHome: Native Support

This is where the older VL53L0X has a major practical advantage. ESPHome has a built-in vl53l0x platform with support for the XSHUT/enable pin, timing budget, signal-rate limit, timeout and long-range mode.

i2c:
  sda: GPIO21
  scl: GPIO22
  scan: true

sensor:
  - platform: vl53l0x
    name: "ToF Distance"
    address: 0x29
    enable_pin: GPIO25
    update_interval: 1s
    long_range: true
    timeout: 200us
    measurement_timing_budget: 33000us

For a normal Home Assistant distance sensor, you can start with a much simpler configuration and only tune timing/range settings if the default measurement is not stable enough.

Multiple VL53L0X Sensors in ESPHome

ESPHome can use the enable pins to bring several VL53L0X devices up sequentially and assign unique addresses.

sensor:
  - platform: vl53l0x
    id: tof_left
    name: "Left Distance"
    address: 0x30
    enable_pin: GPIO25
    update_interval: 500ms

  - platform: vl53l0x
    id: tof_center
    name: "Center Distance"
    address: 0x31
    enable_pin: GPIO26
    update_interval: 500ms

  - platform: vl53l0x
    id: tof_right
    name: "Right Distance"
    address: 0x32
    enable_pin: GPIO27
    update_interval: 500ms

This is one of the cleanest reasons to choose the VL53L0X for an ESPHome-only build: the multi-sensor setup is already handled by the native component.

VL53L1X with ESPHome: External Component Required

As of ESPHome 2026.9, there is still no built-in VL53L1X sensor platform in the official ESPHome component set.

Several community external components exist. Some wrap the Pololu VL53L1X driver and expose long/medium/short distance modes, timing budget and continuous ranging.

external_components:
  - source:
      type: git
      url: https://github.com/jasonwbarnett/esphome-vl53l1x-pololu
      ref: v1.0.0
    components: [vl53l1x_pololu]

i2c:
  sda: GPIO21
  scl: GPIO22

vl53l1x_pololu:
  distance_mode: long
  timing_budget: 100ms
  inter_measurement: 150ms

sensor:
  - platform: vl53l1x_pololu
    distance:
      name: "VL53L1X Distance"

An external component can work very well, but it adds one more dependency to maintain. Pin the component to a known release or commit for a permanent installation rather than silently tracking every upstream change.

Arduino Support

If you are writing ordinary Arduino code rather than ESPHome YAML, both sensors are straightforward. Pololu maintains widely used Arduino libraries for both VL53L0X and VL53L1X, and ST provides official driver/API packages.

In Arduino projects, the software-support advantage of the VL53L0X mostly disappears, which is why the VL53L1X becomes the more attractive default.

Short, Medium and Long Distance Modes on VL53L1X

The VL53L1X supports operating modes that trade maximum range against immunity to ambient light and short-range performance.

  • Short mode: best ambient-light immunity and short-range operation.
  • Medium mode: middle ground.
  • Long mode: maximum distance under suitable conditions.

Do not automatically select long mode. If your target is only 30 cm away in a bright environment, short mode may give a more robust result.

Using ToF for Water-Level Measurement

Both sensors can measure the distance from the top of a container to a liquid surface, but they are not automatically ideal water-tank sensors.

  • Condensation on the optical window can ruin measurements.
  • Steam or mist can scatter the infrared light.
  • A small tank opening can interfere with a wide FoV.
  • The liquid surface may reflect differently depending on angle and contamination.
  • Neither common breakout board is inherently waterproof.

The VL53L1X’s programmable ROI is useful in a narrow opening because you can reduce the sensing area, but for a damp outdoor tank a waterproof ultrasonic or hydrostatic sensor may still be more appropriate.

Our ESP32 Water Tank Level Monitor guide covers waterproof ultrasonic and pressure-sensor approaches in more detail.

ToF vs Ultrasonic

VL53 ToFUltrasonic
TechnologyInfrared lightSound
Sensor sizeVery smallLarger transducers
Narrow openingsOften better; VL53L1X ROI helpsCan suffer reflections
Soft acoustic targetsNot relevant in the same wayCan absorb sound
Transparent / optically difficult targetCan be problematicMay work better
Condensation on sensor faceProblematicAlso problematic depending on transducer
Outdoor waterproof modulesLess commonVery common

Accuracy: Do Not Confuse Resolution with Accuracy

A module may report distance in millimetres, but that does not mean every reading is accurate to ±1 mm.

Measurement quality depends on signal strength, target reflectance, range, ambient infrared light, optical crosstalk, cover glass and timing budget. For precise mechanical measurement, calibrate the actual assembled system against known distances.

Cover Glass and Enclosures

Putting a transparent window over the sensor can introduce optical crosstalk between the emitter and receiver. ST publishes dedicated cover-window guidance for its single-zone ToF sensors.

  • Keep the optical window clean.
  • Avoid thick unknown plastics directly over the sensor.
  • Follow ST’s cover-glass exclusion-zone guidance if the product is enclosed.
  • Do not place the sensor behind smoked or IR-blocking material without testing.
  • Recalibrate offset/crosstalk if the mechanical optical path changes.

Common Problem: Distance Jumps Randomly

  • Target is near the practical range limit.
  • Target reflectance is too low.
  • Strong sunlight or another IR source is reducing signal quality.
  • The field of view includes a closer side object.
  • The module is looking through a dirty or unsuitable cover window.
  • The timing budget is too short for the target.
  • I²C wiring or power is unstable.

Before adding heavy software filtering, test the sensor against a large matte target at a known distance indoors. That separates optical problems from electrical ones.

Common Problem: Sensor Always Reads a Nearby Object

This is often a field-of-view problem rather than a broken sensor. The sensor may be seeing the edge of the enclosure, a mounting bracket or the side of a pipe.

With VL53L0X, reposition the sensor or change the mechanical aperture. With VL53L1X, a smaller ROI can often solve the problem in software.

Common Problem: Two Sensors Both Appear at 0x29

That is normal after reset. The new I²C address is volatile. Your firmware must use XSHUT to enable and re-address each sensor every time the system powers up.

Common Problem: VL53L1X YAML Does Not Compile in ESPHome

Do not copy platform: vl53l1x and expect stock ESPHome to recognise it. There is no native official VL53L1X platform in ESPHome 2026.9.

Install a maintained external component and use that component’s exact YAML schema, or use Arduino/ESP-IDF instead.

Best Choice by Application

ApplicationRecommendationReason
Home Assistant room nodeVL53L0XNative ESPHome support is simple
Robot obstacle sensingVL53L1XRange, speed and ROI
Narrow chute / bin / openingVL53L1XROI can reject side objects
Desk occupancy / short object detectionVL53L0XCheap and adequate
3–4 m indoor measurementVL53L1XVL53L0X is not the right range class
Multi-sensor ESPHome arrayVL53L0XNative XSHUT/address handling
Custom Arduino productVL53L1XBetter hardware with mature libraries

Final Recommendation

VL53L1X is the better sensor. If you are choosing hardware for a new Arduino, ESP-IDF or custom embedded project, its longer range, faster measurement and programmable ROI justify choosing it over the older VL53L0X in most cases.

VL53L0X remains the better ESPHome convenience choice. Native support means a small Home Assistant distance sensor can be configured entirely in YAML, including XSHUT-based multi-sensor addressing.

So the decision is less about whether the VL53L1X is technically superior—it is—and more about how much you value stock ESPHome support. For a 20–100 cm Home Assistant project, VL53L0X is still completely sensible. For a new general-purpose ToF design, choose VL53L1X.

Related ESP32 Guides

Datasheets and External Resources

Share your love