VL53L1X time-of-flight distance (4 m) with ESP32

Supply 3.3-5 V Bus I2C I2C address 0x29 Measures distance
VINGNDSCLSDAXSHUTGPIO1

Pins and ESP32 wiring

PinRoleESP32 pinNotes
VINPower3V3
GNDGroundGND
SCLI2C clock (SCL)D22
SDAI2C data (SDA)D21
XSHUTInput (the ESP32 drives it)D25Shutdown, active LOW. Optional
GPIO1InterruptD35Interrupt output, optional

Suggested wiring for the 30-pin ESP32 DevKit, avoiding flash, input-only and strapping pins. BoardPilot checks it for you as you wire.

Starter code (Arduino)

#include <Wire.h>

void setup() {
  Serial.begin(115200);
  Wire.begin(21, 22);  // SDA = GPIO 21, SCL = GPIO 22
  Wire.beginTransmission(0x29);
  bool found = Wire.endTransmission() == 0;
  Serial.println(found ? "VL53L1X time-of-flight distance (4 m) found at 0x29" : "Not found: check power, GND and SDA/SCL");
}

void loop() {}

Sources

Try it in 3D in BoardPilot

BoardPilot Part data (JSON)

Related parts

Part data: CC BY 4.0, free to reuse with credit to BoardPilot.