

The VL53LOX is a time-of-flight (ToF) distance sensor manufactured by Adafruit Industries. It utilizes laser technology to measure distances with high accuracy and speed. This sensor is capable of measuring distances ranging from 30mm to 2 meters, making it ideal for applications requiring precise distance measurements.








The VL53LOX is a compact and efficient sensor with the following key specifications:
| Parameter | Value |
|---|---|
| Operating Voltage | 2.6V to 3.5V |
| Communication Interface | I²C |
| Measurement Range | 30mm to 2000mm (2 meters) |
| Accuracy | ±3% |
| Field of View (FoV) | 25° |
| Operating Temperature | -20°C to +70°C |
| Power Consumption | 20mW (typical) |
| Dimensions | 4.4mm x 2.4mm x 1.0mm |
The VL53LOX sensor module typically comes with the following pinout:
| Pin Name | Description |
|---|---|
| VIN | Power supply input (2.6V to 5V) |
| GND | Ground connection |
| SDA | I²C data line |
| SCL | I²C clock line |
| XSHUT | Shutdown pin (active low, used to reset the sensor) |
| GPIO1 | Interrupt output (optional, configurable) |
0x29. If using multiple sensors, you must change their addresses using the XSHUT pin.Below is an example of how to use the VL53LOX with an Arduino UNO. This code requires the Adafruit VL53L0X library, which can be installed via the Arduino Library Manager.
#include <Wire.h>
#include <Adafruit_VL53L0X.h>
// Create an instance of the VL53L0X sensor
Adafruit_VL53L0X lox = Adafruit_VL53L0X();
void setup() {
Serial.begin(115200); // Initialize serial communication at 115200 baud
Serial.println("VL53LOX Test");
// Initialize the sensor
if (!lox.begin()) {
Serial.println("Failed to initialize VL53LOX. Check connections!");
while (1); // Halt execution if initialization fails
}
Serial.println("VL53LOX initialized successfully.");
}
void loop() {
VL53L0X_RangingMeasurementData_t measure;
// Perform a distance measurement
lox.rangingTest(&measure, false);
// Check if the measurement is valid
if (measure.RangeStatus != 4) { // 4 indicates an out-of-range error
Serial.print("Distance (mm): ");
Serial.println(measure.RangeMilliMeter);
} else {
Serial.println("Out of range");
}
delay(100); // Wait 100ms before the next measurement
}
Sensor Not Detected on I²C Bus:
Incorrect or Fluctuating Distance Measurements:
Multiple Sensors on the Same I²C Bus:
Q: Can the VL53LOX measure distances beyond 2 meters?
A: No, the maximum range of the VL53LOX is 2 meters. For longer ranges, consider using other ToF sensors.
Q: Is the VL53LOX compatible with 5V logic?
A: Yes, the module includes level-shifting circuitry, making it compatible with 5V logic systems like the Arduino UNO.
Q: How do I change the I²C address of the VL53LOX?
A: Use the XSHUT pin to power down the sensor, then reinitialize it with a new I²C address using the appropriate library functions.
Q: Can the VL53LOX detect transparent objects?
A: The sensor may struggle with transparent objects due to the way laser light interacts with such surfaces.