

The VL53LOX, manufactured by STM (part ID: CJVL53LOXV3), is a time-of-flight (ToF) distance sensor that utilizes laser technology to measure distances with high accuracy. This compact and efficient sensor can measure distances ranging from 30 mm to 2 meters, making it ideal for applications requiring precise distance measurement.
Common applications include:








The VL53LOX is designed to deliver reliable and accurate distance measurements in a variety of environments. Below are its key technical details:
| Parameter | Value |
|---|---|
| Operating Voltage | 2.6 V to 3.5 V |
| Communication Interface | I2C |
| Measurement Range | 30 mm to 2000 mm |
| Accuracy | ±3% |
| Field of View (FoV) | 25° |
| Operating Temperature | -20°C to +70°C |
| Power Consumption | 20 mW (typical) |
| Dimensions | 4.4 mm x 2.4 mm x 1.0 mm |
The VL53LOX has a simple pinout for easy integration into circuits. Below is the pin configuration:
| Pin Name | Pin Number | Description |
|---|---|---|
| VIN | 1 | Power supply input (2.6 V to 3.5 V) |
| GND | 2 | Ground connection |
| SDA | 3 | I2C data line |
| SCL | 4 | I2C clock line |
| XSHUT | 5 | Shutdown pin (active low) |
| GPIO1 | 6 | Interrupt output (optional) |
The VL53LOX is straightforward to use in a circuit, especially with microcontrollers like the Arduino UNO. Below are the steps to integrate and use the sensor:
Below is an example Arduino sketch to read distance data from the VL53LOX using the Wire library:
#include <Wire.h>
#include <Adafruit_VL53L0X.h>
// Create an instance of the VL53L0X sensor
Adafruit_VL53L0X lox = Adafruit_VL53L0X();
void setup() {
Serial.begin(9600); // Initialize serial communication
while (!Serial) {
delay(10); // Wait for the serial port to be ready
}
Serial.println("VL53LOX Test");
// Initialize the sensor
if (!lox.begin()) {
Serial.println("Failed to initialize VL53LOX. Check wiring!");
while (1);
}
}
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 means out of range
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 by the microcontroller:
Incorrect or fluctuating distance readings:
Out of range errors:
Q: Can the VL53LOX measure distances beyond 2 meters?
A: No, the maximum range of the VL53LOX is 2 meters. For longer ranges, consider other ToF sensors.
Q: Can I use the VL53LOX with a 5V microcontroller?
A: Yes, but you will need a logic level shifter to safely interface the 3.3V I2C lines with the 5V microcontroller.
Q: How can I reduce power consumption?
A: Use the XSHUT pin to put the sensor into a low-power state when not in use.
Q: Is the VL53LOX affected by ambient light?
A: While the sensor is designed to work in various lighting conditions, excessive ambient light or direct sunlight can reduce accuracy.