Pololu VL53L3CX Time-of-Flight Multi-Target Distance Sensor Carrier with Voltage Regulator (300cm Max)
Note: this product is not recommended for use with 8-bit microcontrollers, and we also therefore do not provide support for it in the form of Arduino libraries as we do our other time-of-flight sensors. The VL53L3CX does not directly provide distance measurements. Instead, it provides histogram data that can be processed with algorithms provided by ST. This processing requires a significant amount of RAM and code space, making this sensor impractical for use with a typical 8-bit microcontroller. (For example, a program we compiled for an STM32F4 microcontroller that does little more than get readings from the VL53L3CX uses 63 KB of flash and 14 KB of global variables in RAM.) For alternatives that are simpler to use and can work with 8-bit microcontrollers, please consider the VL53L1X or VL53L0X carrier.
The VL53L3CX is effectively a tiny, self-contained lidar system featuring an integrated 940 nm Class 1 laser, which is invisible and eye-safe. Unlike conventional IR sensors that use the intensity of reflected light to estimate the distance to an object, the VL53L3CX uses ST’s FlightSense technology to precisely measure how long it takes for emitted pulses of infrared laser light to reach the objects and be reflected back to a detector. This approach ensures absolute distance measurements independent of ambient lighting conditions and target characteristics (e.g. color, shape, texture, and reflectivity), though these external conditions do affect the maximum range of the sensor.
Under favorable conditions, the sensor can report distances up to 3 m (10 ft) with 1 mm resolution. The minimum ranging distance is 10 mm. Ranging measurements are available through the sensor’s I²C (TWI) interface, which is also used to configure sensor settings, and the sensor provides two additional pins: a shutdown input and an interrupt output.
The VL53L3CX is a great IC, but its small, leadless, LGA package makes it difficult for the typical student or hobbyist to use. It also operates at a recommended voltage of 2.8 V, which can make interfacing difficult for microcontrollers operating at 3.3 V or 5 V. Our breakout board addresses these issues, making it easier to get started using the sensor, while keeping the overall size as small as possible.
The carrier board includes a low-dropout linear voltage regulator that provides the 2.8 V required by the VL53L3CX and allows the sensor to be powered from a 2.6 V to 5.5 V supply. The regulator output is available on the VDD pin and can supply almost 150 mA to external devices. The breakout board also includes a circuit that shifts the I²C clock and data lines to the same logic voltage level as the supplied VIN, making it simple to interface the board with 3.3 V or 5 V systems, and the board’s 0.1″ pin spacing makes it easy to use with standard solderless breadboards and 0.1″ perfboards. The board ships fully populated with its SMD components, including the VL53L3CX, as shown in the product picture.
For similar sensors, see our 400 cm VL53L1X carrier, 200 cm VL53L0X carrier, and 60 cm VL6180X carrier. These are physical drop-in replacements for the VL53L3CX carrier, but they have different APIs, so software for the VL53L3CX will need to be rewritten to work with them. These other carriers can also be used with typical 8-bit microcontrollers.
The VL53L0X, VL53L1X, and VL53L3CX carriers all use the same PCB (labeled irs11a), and the VL53L0X and VL53L3CX carriers look very similar. You might consider marking your boards if you have multiple types of sensors.
- Dimensions: 0.5″ × 0.7″ × 0.085″ (13 mm × 18 mm × 2 mm)
- Weight without header pins: 0.5 g (0.02 oz)
- Operating voltage: 2.6 V to 5.5 V
- Supply current: ~15 mA (typical average during active ranging with default settings)
- Peak current can reach 40 mA
- Maximum range: 3 m (10 ft)
- Resolution: 1 mm
- Minimum range: 10 mm (0.4 in)
- Emitter: 940 nm invisible Class 1 VCSEL (vertical cavity surface-emitting laser) – eye-safe
- Detector: SPAD (single photon avalanche diode) receiving array
- Typical full field of view (FoV): 25°
- Output format (I²C): histogram
A 1×7 strip of 0.1″ header pins and a 1×7 strip of 0.1″ right-angle header pins are included, as shown in the picture below. You can solder the header strip of your choice to the board for use with custom cables or solderless breadboards, or you can solder wires directly to the board itself for more compact installations.
The board has two mounting holes spaced 0.5″ apart that work with #2 and M2 screws (not included).Using the VL53L3CX
Important note: This product might ship with a protective liner covering the sensor IC. for proper sensing performance.
At least four connections are necessary to use the VL53L3CX board: VIN, GND, SCL, and SDA. The VIN pin should be connected to a 2.6 V to 5.5 V source, and GND should be connected to 0 volts. An on-board linear voltage regulator converts VIN to a 2.8 V supply for the VL53L3CX IC. Note that if your input voltage is under 3.5 V, you can connect it directly to VDD instead to bypass the regulator; in this configuration, VIN should remain disconnected.
The I²C pins, SCL and SDA, are connected to built-in level-shifters that make them safe to use at voltages over 2.8 V; they should be connected to an I²C bus operating at the same logic level as VIN.
The XSHUT pin is an input and the GPIO1 pin is an open-drain output; both pins are pulled up to 2.8 V by the board. They are connected to level-shifters on the board and are 5V-tolerant, but they are usable as-is with many 3.3 V and 5 V microcontrollers: the microcontroller can read the GPIO1 output as long as its logic high threshold is below 2.8 V, and the microcontroller can alternate its own output between low and high-impedance states to drive the XSHUT pin.
|VDD||Regulated 2.8 V output. Almost 150 mA is available to power external components. (If you want to bypass the internal regulator, you can instead use this pin as an input for voltages between 2.6 V and 3.5 V with VIN disconnected.)|
|VIN||This is the main 2.6 V to 5.5 V power supply connection. The SCL and SDA level shifters pull the I²C lines high to this level.|
|GND||The ground (0 V) connection for your power supply. Your I²C control source must also share a common ground with this board.|
|SDA||Level-shifted I²C data line: HIGH is VIN, LOW is 0 V|
|SCL||Level-shifted I²C clock line: HIGH is VIN, LOW is 0 V|
|XSHUT||This pin is an active-low shutdown input; the board pulls it up to VDD to enable the sensor by default. Driving this pin low puts the sensor into hardware standby. This input is not level-shifted.|
|GPIO1||Programmable interrupt output (VDD logic level). This output is not level-shifted.|
The above schematic shows the additional components the carrier board incorporates to make the VL53L3CX easier to use, including the voltage regulator that allows the board to be powered from a 2.6 V to 5.5 V supply and the level-shifter circuit that allows for I²C communication at the same logic voltage level as VIN. This schematic is also available as a downloadable PDF (108k pdf).
The VL53L3CX can be configured and its distance readings can be queried through the I²C bus. Level shifters on the I²C clock (SCL) and data (SDA) lines enable I²C communication with microcontrollers operating at the same voltage as VIN (2.6 V to 5.5 V). A detailed explanation of the I²C interface on the VL53L3CX can be found in its datasheet, and more detailed information about I²C in general can be found in NXP’s I²C-bus specification (1MB pdf).
The sensor’s 7-bit slave address defaults to 0101001b on power-up. It can be changed to another value by writing one of the device configuration registers, but the new address only applies until the sensor is reset or powered off. ST provides an application note (196k pdf) that describes how to use multiple VL53L0X sensors on the same I²C bus by individually bringing each sensor out of reset and assigning it a unique address, and the approach can be easily adapted to apply to the VL53L3CX instead.
The I²C interface on the VL53L3CX is compliant with the I²C fast mode (400 kHz) standard.
Sensor configuration and control
In contrast with the information available for many other devices, ST has not publicly released a register map and descriptions or other documentation about configuring and controlling the VL53L3CX. Instead, communication with the sensor is intended to be done through ST’s VL53L3CX API (STSW-IMG015), a set of C functions that take care of the low-level interfacing. To use the VL53L3CX, you can customize the API to run on a host platform of your choice using the information in the API documentation. Alternatively, it is possible to use the API source code as a guide for your own implementation.
|Size:||0.5″ × 0.7″ × 0.085″1|
|Maximum range:||300 cm2|
|Minimum range:||1 cm|
|Minimum operating voltage:||2.6 V|
|Maximum operating voltage:||5.5 V|
|Supply current:||15 mA3|
|PCB dev codes:||irs11a|
1. Without included optional headers
2. Effective range depends on configuration, target, and environment
- 3. Typical average during active ranging at 50 Hz; varies with configuration, target, and environment. Peak current can reach 40 mA
- VL53L3CX datasheet
- Schematic diagram of the VL53L0X/VL53L1X/VL53L3CX Time-of-Flight Distance Sensor Carrier
- Dimension diagram of the VL53L0X/VL53L1X/VL53L3CX Time-of-Flight Distance Sensor Carrier with Voltage Regulator
- 3D model of the VL53L0X/VL53L1X/VL53L3CX Time-of-Flight Distance Sensor Carrier with Voltage Regulator
- Drill guide for the VL53L0X/VL53L1X/VL53L3CX Time-of-Flight Distance Sensor Carrier with Voltage Regulator
- AN4846: Using multiple VL53L0X in a single design
- UM10204 I²C-bus specification and user manual
- VL53L3CX documentation
- VL53L3CX API (STSW-IMG015)