VL53L3CX Time-of-Flight Ranging Module with Multi Object Detection - User Manual

Introduction

The VL53L3CX is a Time-of-Flight (ToF) ranging sensor module. This user manual describes the integration model and the set of functions required to obtain ranging data using the VL53L3CX bare driver.

1 VL53L3CX System Overview

The VL53L3CX system comprises the VL53L3CX module and a driver running on the host. This document details the driver functions accessible to the Host for controlling the device and acquiring ranging data for integration with non-Linux hosts.

Figure 1. VL53L3CX System: A block diagram illustrating the system. It shows a 'Host' connected via 'I2C' to a 'VL53L3CX module'. The 'Host' also includes a 'VL53L3CX Driver'.

Note: This document covers implemented and validated functions. Any other function available in the drivers should not be used if not described herein. The bare driver is an implementation of functions for using the VL53L3CX device, making minimal assumptions on OS integration. Integration aspects like sequencing, threading, platform adaptation, and device structure allocation are left to the integrator. Bare driver calls must follow specific rules outlined in this document.

2 Ranging Functional Description

This section outlines the functional capabilities of the VL53L3CX ranging device.

2.1 Ranging Sequence

The device operates using a handshake mechanism based on standard interrupt management. After each ranging operation, the host retrieves the data and enables the next ranging by clearing the interrupt. This is known as the handshake mechanism. The next ranging is triggered upon completion of the current one and if the host has cleared the pending interrupt. This interrupt mechanism facilitates faster data transfer, preventing data loss due to communication or asynchronous issues. During the handshake phase, the host performs data processing.

Figure 2. VL53L3CX Ranging Sequence Overview: This flowchart depicts the ranging sequence. It includes states such as 'Power Up', 'Boot', 'Init', 'Ranging Start', 'Interrupt raised', 'Get Range Data', 'Data processing', 'Interrupt cleared', and 'HANDSHAKE' loops, illustrating the interaction between the host and the device.

2.2 Timing Considerations

Timings are presented in Figure 3. Ranging sequence and timing targets. The host can retrieve the latest ranging data during the current range's timing budget. If the host delays clearing the interrupt, the next ranging will be stalled until the interrupt is cleared. The timings shown are typical.

The host can adjust the default timing budget using a dedicated driver function (Section 5.1 Timing budget) to synchronize with the application or improve ranging accuracy. The 'Boot', 'SW standby', and 'Init' phases collectively last 40 ms, essential for correct device initialization and independent of the platform or timing budget. The first range ('Range1') is invalid due to the absence of a wrap-around check; the first valid ranging value ('Range2') is available after 40 ms plus twice the timing budget duration.

Figure 3. Ranging Sequence and Timing Targets: This timing diagram illustrates the system states over time. It shows 'HW standby', 'Boot', 'SW standby', and 'Init' (40ms duration), followed by 'Range1', 'Range2', 'Range3', each with a 'Ranging Timing Budget'. It also indicates 'POWER SUPPLY', 'XSHUT PIN', 'INTERRUPT PIN' states, and 'HOST DRIVER CALLS' such as 'DataInit', 'Setup range1', 'Clear interrupt', 'Start', and 'Get Range1'.

3 Bare Driver Basic Functions Description

This section details the driver function call flows for performing ranging measurements with the VL53L3CX. The VL53L3CX driver is used in two main application types: factory applications for device calibration and field applications for end-user data gathering.

3.1 Bare Driver

Figure 4. VL53L3CX API Ranging Flow (Factory): This flowchart outlines the factory calibration sequence: WaitDeviceBooted(), DataInit(), PerformRefSpadManagement(), PerformXtalkCalibration(), PerformOffsetCalibration(), GetCalibrationData(), and Save part calibration data. It distinguishes between 'Host calls driver function' and 'Host calls Optional driver function'.

Note: The calibration flow affects the distance mode. SetDistanceMode() must be called after calibration if the sensor is to be used immediately. The bare driver ranging flow for field applications is illustrated in Figure 5.

Figure 5. VL53L3CX API Ranging Flow (Field): This flowchart shows the field application sequence. It includes 'Host polling mode' and 'Driver polling mode' paths, with functions like WaitDeviceBooted(), DataInit(), SetCalibrationData(), SetDistanceMode(), StartMeasurement(), GetMeasurementDataReady(), WaitMeasurementDataReady(), GetMultiRangingData(), ClearInterruptAndStartMeasurement(), and StopMeasurement().

3.2 System Initialization

The following sections describe the API function calls required for system initialization before starting a measurement.

3.2.1 Wait for Boot

The VL53LX_WaitDeviceBooted() function ensures the device is booted and ready. This function is optional and blocks host execution for a maximum of 4 ms (assuming 400 kHz I2C frequency and 2 ms latency per transaction).

3.2.2 Data Init

The VL53LX_DataInit() function must be called when the device exits the 'initial boot' state to perform device initialization. After this, calibration data must be loaded using the VL53LX_SetCalibrationData() function.

4 Ranging with VL53L3CX

On non-Linux hosts, the user sequences driver calls according to application needs, platform capabilities, and bare driver call rules.

4.1 Start a Measurement

The VL53LX_StartMeasurement() function must be called to initiate a measurement.

4.2 Wait for a Result: Polling or Interrupt

There are three methods to determine measurement availability:

  1. Call a polling function.
  2. Poll on a driver function.
  3. Wait for a physical interrupt.

4.2.1 Driver Polling to Get the Result Status

The VL53LX_WaitMeasurementDataReady() function polls an internal status until a measurement is ready. This function is blocking.

4.2.2 Host Polling to Get the Result Status

The host can poll the VL53LX_GetMeasurementDataReady() function to check for new measurement readiness. This function is not blocking.

4.2.3 Using Physical Interrupt

A preferred method is to use the physical interrupt output. By default, GPIO1 goes low when a new measurement is ready. This pin is output-only. The interrupt must be cleared by calling the driver function VL53LX_ClearInterruptAndStartMeasurement().

4.3 Get Measurement

Multiple objects can be detected per ranging, with data reported per object. The VL53LX_GetMultiRangingData() function retrieves ranging data for multiple objects in the field of view, returning a structure named VL53LX_MultiRangingData_t.

4.4 Stop a Measurement

In continuous mode, the host can stop measurements by calling the VL53LX_StopMeasurement() function. If a stop request occurs during a measurement, it is aborted immediately.

4.5 Ranging Data Structures

The VL53LX_MultiRangingData_t structure contains data for all detected targets:

  • TimeStamp: Not implemented.
  • StreamCount: An 8-bit counter incremented per range (0 to 255, then resets to 128-255).
  • NumberOfObjectsFound: An 8-bit integer indicating the number of detected objects.
  • RangeData[VL53LX_MAX_RANGE_RESULTS]: A table of VL53LX_TargetRangeData_t structures. The maximum number of targets is 4 by default.
  • HasXtalkValueChanged: An 8-bit integer indicating if the crosstalk value has changed.
  • EffectiveSpadRtnCount: A 16-bit integer for the effective SPAD count, which should be divided by 256 for the real value.

Each detected target (up to 4) is described by a VL53LX_TargetRangeData_t structure:

  • RangeMaxMilliMeter: 16-bit integer for the larger detected distance.
  • RangeMinMilliMeter: 16-bit integer for the smaller detected distance.
  • SignalRateRtnMegaCps: 16.16 fixed-point value for return signal rate (MegaCountPer Second), divide by 65536 for the real value.
  • AmbientRateRtnMegaCps: 16.16 fixed-point value for ambient rate (MCPS), representing ambient light, divide by 65536 for the real value.
  • SigmaMilliMeter: 16.16 fixed-point value estimating the standard deviation of the range in millimeters, divide by 65536 for the real value.
  • RangeMilliMeter: 16-bit integer indicating the range distance in millimeters.
  • RangeStatus: An 8-bit integer indicating the range status (0 means valid). See Table 1.
  • ExtendedRange: An 8-bit integer indicating if the range has been unwrapped (for long distances).

When a target is not detected but the measurement is valid, the VL53LX_TargetRangeData_t structure reports:

  • RangeMaxMilliMeter: 8191
  • RangeMinMilliMeter: 8191
  • SignalRateRtnMegaCps: 0
  • AmbientRateRtnMegaCps: Computed ambient rate.
  • SigmaMilliMeter: 0
  • RangeMilliMeter: 8191
  • RangeStatus: 255
  • ExtendedRange: 0

Table 1. Range Status:

ValueRangeStatus StringComment
0VL53LX_RANGESTATUS_RANGE_VALIDRanging measurement is valid
1VL53LX_RANGESTATUS_SIGMA_FAILSigma estimator check above threshold; indicates signal quality.
2VL53LX_RANGESTATUS_SIGNAL_FAILSignal too low to detect a target.
4VL53LX_RANGESTATUS_OUTOFBOUNDS_FAILRange result is out of bounds.
5VL53LX_RANGESTATUS_HARDWARE_FAILHardware or VCSEL failure.
6VL53LX_RANGESTATUS_RANGE_VALID_NO_WRAP_CHECK_FAILNo wraparound check performed (first range).
7VL53LX_RANGESTATUS_WRAP_TARGET_FAILWraparound occurred.
8VL53LX_RANGESTATUS_PROCESSING_FAILInternal processing error.
10VL53LX_RANGESTATUS_SYNCRONISATION_INTRanging value to be ignored after initialization.
11VL53LX_RANGESTATUS_RANGE_VALID_MERGE_D_PULSERanging is OK, but distance is a merge of multiple targets.
12VL53LX_RANGESTATUS_TARGET_PRESENT_LACK_OF_SIGNALTarget present, but signal too low for ranging.
14VL53LX_RANGESTATUS_RANGE_INVALIDRanging data is negative and should be ignored.
255VL53LX_RANGESTATUS_NONETarget not detected, no warning or error.

Note: The first measurement may not include a wraparound check and can be discarded. Range status 1 can result from noisy measurements affecting the sigma estimator. Range status 4 indicates measurement reference errors, potentially causing outliers.

5 Additional Driver Functions Description

5.1 Timing Budget

The timing budget is the time allocated by the user for one range measurement. Use VL53LX_SetMeasurementTimingBudgetMicroSeconds() to set it. The default is 33 ms (minimum 8 ms, maximum 500 ms). For example, to set it to 66 ms: status = VL53LX_SetMeasurementTimingBudgetMicroSeconds(&VL53L3Dev, 66000);. The function VL53LX_GetMeasurementTimingBudgetMicroSeconds() retrieves the programmed timing budget.

5.2 Distance Mode

A function is available to optimize internal settings based on the requested ranging distance, with benefits detailed in Table 2.

Table 2. Distance Modes:

Possible distance modeBenefit / comments
ShortBetter ambient immunity
Medium (Default)Maximum distance
LongLower power consumption

Use the function VL53LX_SetDistanceMode(). The driver can suggest the optimum distance mode, returning a specific value at each ranging based on ambient conditions. Possible values are VL53LX_DISTANCE_SHORT, VL53LX_DISTANCE_MEDIUM, and VL53LX_DISTANCE_LONG.

5.3 Tuning Parameters

Tuning parameters allow fine-tuning for specific use cases. They are often tunable thresholds for the signal treatment algorithm, enabling technical trade-offs.

5.3.1 Set a Tuning Parameter

An extra function loads tuning parameters. For specific use cases, ST can provide parameters as key-value pairs. The file vl53lx_tuning_parm_defaults.h lists tuning parameters and their default values. Parameters can be modified in this file or loaded using VL53LX_SetTuningParameter(). Modifying parameters can affect device performance; ST recommends using default values for optimal results.

5.3.2 Improve Accuracy

To improve device accuracy, use the tuning parameter VL53LX_TUNINGPARM_PHASECAL_PATCH_POWER (default value 0). Setting this to 2 after static_init increases the time for reference signal measurement, improving accuracy by 240 ms for the first measurement.

5.3.3 Improve Latency and Max Ranging Distance

For moving targets, tuning VL53LX_TUNINGPARM_RESET_MERGE_THRESHOLD can improve latency. The default is 15000. Lowering it improves latency but may reduce maximum ranging distance. Increasing it improves maximum ranging distance but impacts latency.

5.4 Cover Glass Smudge Detection

Smudge on the cover glass can affect crosstalk. The VL53L3CX has a function to detect smudges and apply a new crosstalk correction value via VL53LX_SmudgeCorrectionEnable(). Options include:

  • VL53LX_SMUDGE_CORRECTION_NONE: Disable correction.
  • VL53LX_SMUDGE_CORRECTION_CONTINUOUS: Enable continuous correction.
  • VL53LX_SMUDGE_CORRECTION_SINGLE: Enable single correction after a command.

Smudge detection runs at each ranging. If conditions are met (no object below 80 cm, low ambient light, crosstalk > 1kcps), a new crosstalk value is computed. If smudge correction is active, the crosstalk value is corrected, and the HasXtalkValueChanged flag is set (cleared at next range). Smudge correction limits are: 1.2 m (short distance), 1.7 m (medium distance), and 3.8 m (long distance).

5.5 I2C Address

The default I2C address for VL53L3CX is 0x52. For applications requiring different addresses, such as multiple VL53L3CX devices on one I2C bus, follow this procedure:

  • Ensure the board design allows individual control of Xshut and GPIO1 pins for each VL53L3CX.
  • Set all VL53L3CX devices to HW Standby by setting the Xshut pin low.
  • Raise the Xshut pin for one VL53L3CX.
  • Call the function VL53LX_SetDeviceAddress().
  • Repeat for each VL53L3CX to set their addresses. For example: status = VL53LX_SetDeviceAddress(&VL53L3Dev, WantedAddress) sets the new I2C address.

6 Customer Factory Calibration Functions

To achieve full performance, the VL53L3CX driver includes calibration functions to be run once at the production line. These procedures compensate for part-to-part variations affecting device performance. Calibration data must be loaded into the VL53L3CX at each startup using a dedicated driver function. Three calibrations are required: refSPAD, crosstalk, and offset. They can be run sequentially or individually, with previous step data loaded first for individual runs.

6.1 RefSPAD Calibration

The number of single photon avalanche diodes (SPADs) is calibrated during final module testing at ST and stored in NVM, loaded automatically during boot. This calibration adjusts SPAD count to optimize device dynamic range. Cover glass may affect this calibration, so ST recommends re-performing it in the final product application. The algorithm searches three locations (1x, 5x, 10x attenuated SPADs) to avoid signal saturation.

6.1.1 RefSPAD Calibration Function

The function for SPAD calibration is VL53LX_PerformRefSpadManagement(VL53LX_DEV Dev). It must be called first in the calibration procedure and can return these warnings:

  • VL53LX_WARNING_REF_SPAD_CHAR_NOT_ENOUGH_SPADS: Less than 5 good SPADs available, output invalid.
  • VL53LX_WARNING_REF_SPAD_CHAR_RATE_TOO_HIGH: Reference rate > 40.0 Mcps, potentially degrading offset stability.
  • VL53LX_WARNING_REF_SPAD_CHAR_RATE_TOO_LOW: Reference rate < 10.0 Mcps, potentially degrading offset stability.

6.1.2 RefSPAD Calibration Procedure

No specific setup (like targets) is required, except ensuring no target is placed on the device. Calibration takes milliseconds. This function must be called after VL53LX_DataInit().

6.1.3 Getting refSPAD Calibration Results

The VL53LX_GetCalibrationData() function returns all calibration data, including the VL53LX_customer_nvm_managed_t structure containing eight refSPAD calibration parameters:

  • ref_spad_man_num_requested_ref_spads: Number of SPADs selected (5 to 44).
  • ref_spad_man_ref_location: Location of SPADs in the reference area (1, 2, or 3).
  • Six additional parameters provide correct spad maps for the selected location (e.g., global_config_spad_enables_ref_0).

6.1.4 Setting refSPAD Calibration Data

After initial boot and calling VL53LX_DataInit(), refSPAD calibration data can be loaded using VL53LX_SetCalibrationData(). It is recommended to retrieve the entire calibration structure via VL53LX_GetCalibrationData(), modify the parameters, and then call VL53LX_SetCalibrationData().

6.2 Crosstalk Calibration

Crosstalk (XTalk) is signal reflection from the cover glass onto the return array, affecting performance. VL53L3CX includes a built-in correction. Crosstalk calibration estimates the correction needed for cover glass effects. The calibration results define the crosstalk model, detailed in Section 6.2.3.

6.2.1 Crosstalk Calibration Function

The dedicated function is VL53LX_PerformXTalkCalibration(&VL53L3Dev). It must be called after refSPAD calibration and before offset calibration.

6.2.2 Crosstalk Calibration Procedure

Perform crosstalk calibration with a target at 600 mm in a dark environment with no IR contribution. After VL53LX_DataInit() and VL53LX_PerformRefSpadManagement(), call VL53LX_PerformXTalkCalibration(&VL53L3Dev). Crosstalk correction is applied by default.

6.2.3 Getting Crosstalk Calibration Results

Calibration results include a histogram and a 'plane offset' parameter representing the correction amount. The VL53LX_GetCalibrationData() function returns these, including the plane offset (algo_crosstalk_compensation_plane_offset_kcps, a 7.9 fixed-point value to be divided by 512). It also returns VL53LX_xtalk_histogram_data_t and algo_xtalk_cpo_HistoMerge_kcps, which must be stored.

6.2.4 Setting Crosstalk Calibration Data

After calling VL53LX_DataInit(), crosstalk calibration data can be loaded using VL53LX_SetCalibrationData(). It is recommended to get data via VL53LX_GetCalibrationData(), modify parameters (including the xtalk_histogram structure), and then call VL53LX_SetCalibrationData().

6.2.5 Enable/Disable Crosstalk Compensation

The function VL53LX_SetXTalkCompensationEnable() enables or disables crosstalk compensation (disabled by default). Call with 1 to enable (V53LX_SetXTalkCompensationEnable&VL53L3Dev, 1) or 0 to disable (VL53LX_SetXTalkCompensationEnable&VL53L3Dev, 0). This function only enables/disables compensation; calibration or data loading must be done separately.

6.3 Offset Calibration

Soldering or adding a cover glass can introduce an offset in ranging distance, requiring measurement during offset calibration. This calibration also calibrates the dmax value under the same conditions.

6.3.1 Offset Calibration Functions

Two functions are available: VL53LX_PerformOffsetSimpleCalibration(Dev, CalDistanceMilliMeter) and VL53LX_PerformOffsetPerVCSELCalibration(Dev, CalDistanceMilliMeter). The argument is the target distance in millimeters. Offset calibration must be performed after crosstalk correction. VL53LX_PerformOffsetPerVCSELCalibration is more accurate but takes three times longer.

6.3.2 Offset Calibration Procedure

Customers can use any chart reflectance at any distance, similar to crosstalk calibration setup. Ensure the signal rate is between 2 and 80 MCps. The function may return warnings:

  • VL53LX_WARNING_OFFSET_CAL_INSUFFICIENT_MM1_SPADS: Signal too low, potentially degrading accuracy.
  • VL53LX_WARNING_OFFSET_CAL_PRE_RANGE_RATE_TOO_HIGH: Signal too high, potentially degrading accuracy.

Table 3. Offset Calibration Setup:

ChartDistanceAmbient conditionsSignal Rate
AnyAnyDark (no IR contribution)2MCps < Signal Rate <80Mcps

6.3.3 Getting Offset Calibration Results

The VL53LX_GetCalibrationData() function returns calibration data, including three offset calibration results in VL53LX_customer_nvm_managed_t: algo_part_to_part_range_offset_mm, mm_config_inner_offset_mm, and mm_config_outer_offset_mm. The overall offset is the average of the latter two. If perVCSELCalibration is selected, additional data like short_a_offset_mm, short_b_offset_mm, etc., are included, applied automatically based on distance mode.

6.3.4 Selecting the Offset Correction Mode

The offset correction mode is set using VL53LX_SetOffsetCorrectionMode(). VL53LX_OFFSETCORRECTIONMODE_PERVCSEL is the default, offering higher accuracy per VCSEL period.

Table 4. Offset Correction Options:

Offset calibration function calledCorrection mode option to be used
PerformSimpleOffsetCalibrationVL53LX_OFFSETCORRECTIONMODE_STANDARD
PerformPerVCSELOffsetCalibrationVL53LX_OFFSETCORRECTIONMODE_PERVCSEL

If only one offset calibration type is available, the corresponding correction mode must be set manually.

6.3.5 Setting Offset Calibration Data

Offset calibration data can be loaded after calling VL53LX_DataInit() using VL53LX_SetCalibrationData(). It is recommended to retrieve data via VL53LX_GetCalibrationData(), modify parameters, and then call VL53LX_SetCalibrationData().

7 Customer Repair Shop Calibrations

In case of calibration data loss (e.g., due to component replacement), a repair shop can apply a dedicated procedure without specific targets. The calibration involves three steps: RefSpad, Crosstalk, and Offset. RefSpad and Crosstalk are as described in Sections 6.1 and 6.2. A dedicated function, VL53LX_PerformOffsetZeroDistanceCalibration, is available for offset calibration. A target touching the cover glass (e.g., a simple sheet of paper) is required. Results are retrieved similarly to previous sections.

8 Bare Driver Errors and Warnings

Driver errors are reported when any driver function is called. Warnings inform the user about non-optimized parameters but do not block the host.

Table 5. Bare Driver Errors and Warnings Description:

Error valueAPI error stringOccurrence
0VL53LX_ERROR_NONENo error
-1VL53LX_ERROR_CALIBRATION_WARNINGInvalid calibration data
-4VL53LX_ERROR_INVALID_PARAMSInvalid parameter set in a function
-5VL53LX_ERROR_NOT_SUPPORTEDRequested parameter not supported in programmed configuration
-6VL53LX_ERROR_RANGE_ERRORInterrupt status incorrect
-7VL53LX_ERROR_TIME_OUTRanging aborted due to timeout
-8VL53LX_ERROR_MODE_NOT_SUPPORTEDRequested mode not supported
-10VL53LX_ERROR_COMMS_BUFFER_TOO_SMALLSupplied buffer larger than I2C supports
-13VL53LX_ERROR_CONTROL_INTERFACEError reported from IO function
-14VL53LX_ERROR_INVALID_COMMANDCommand invalid
-16VL53LX_ERROR_REF_SPAD_INITError during Reference SPAD calibration
-17VL53LX_ERROR_GPH_SYNC_CHECK_FAILDriver out of sync with device. A stop/start or reboot may be needed.
-18VL53LX_ERROR_STREAM_COUNT_CHECK_FAIL
-19VL53LX_ERROR_GPH_ID_CHECK_FAIL
-20VL53LX_ERROR_ZONE_STREAM_COUNT_CHECK_FAILDriver out of sync with device. A stop/start or a reboot may be needed.
-21VL53LX_ERROR_ZONE_GPH_ID_CHECK_FAIL
-22VL53LX_ERROR_XTALK_EXTRACTION_FAILNo successful samples for crosstalk. Function exits, leaving current crosstalk parameters unaltered.
-23VL53LX_ERROR_XTALK_EXTRACTION_SIGMA_LIMIT_FAILAverage sigma estimate of crosstalk sample exceeds limit; sample is too noisy. Function exits, leaving current crosstalk parameters unaltered.
-24VL53LX_ERROR_OFFSET_CAL_NO_SAMPLE_FAILError during offset calibration. Check setup against ST recommendations.
-25VL53LX_ERROR_OFFSET_CAL_NO_SPADS_ENABLED_FAIL
-28VL53LX_WARNING_REF_SPAD_CHAR_NOT_ENOUGH_SPADSWarning: Too few SPADs found for accurate refSpadManagement calibration. Check setup.
-29VL53LX_WARNING_REF_SPAD_CHAR_RATE_TOO_HIGHWarning: Signal rate too low for accurate refSpadManagement calibration. Check setup.
-30VL53LX_WARNING_REF_SPAD_CHAR_RATE_TOO_LOWWarning: Too few SPADs found for accurate offset calibration. Check setup.
-31VL53LX_WARNING_OFFSET_CAL_MISSING_SAMPLESWarning occurred during offset calibration. Check setup.
-32VL53LX_WARNING_OFFSET_CAL_SIGMA_TOO_HIGH
-33VL53LX_WARNING_OFFSET_CAL_RATE_TOO_HIGHWarning occurred during offset calibration. Check setup.
-34VL53LX_WARNING_OFFSET_CAL_SPAD_COUNT_TOO_LOWWarning occurred during offset calibration. Check setup.
-38VL53LX_WARNING_XTALK_MISSING_SAMPLESWarning occurred during crosstalk calibration. Check setup.
-41VL53LX_ERROR_NOT_IMPLEMENTEDFunction not implemented.

Revision History

Table 6. Document Revision History:

DateVersionChanges
28-Sep-20201Initial release
02-Dec-20212Updated structures in Section 6.2.3.
03-Jun-20223Added note regarding calibration in Section 3.1. Added note regarding smudge correction in Section 5.4.

Contents

The document is structured with the following sections:

  • 1 VL53L3CX System Overview
  • 2 Ranging Functional Description (Ranging Sequence, Timing Considerations)
  • 3 Bare Driver Basic Functions Description (Bare Driver, System Initialization)
  • 4 Ranging with VL53L3CX (Start Measurement, Wait for Result, Get Measurement, Stop Measurement, Ranging Data Structures)
  • 5 Additional Driver Functions Description (Timing Budget, Distance Mode, Tuning Parameters, Cover Glass Smudge Detection, I2C Address)
  • 6 Customer Factory Calibration Functions (RefSPAD Calibration, Crosstalk Calibration, Offset Calibration)
  • 7 Customer Repair Shop Calibrations
  • 8 Bare Driver Errors and Warnings
  • Revision History
  • Contents

IMPORTANT NOTICE - READ CAREFULLY

STMicroelectronics NV and its subsidiaries reserve the right to make changes, corrections, enhancements, modifications, and improvements to ST products and this document at any time without notice. Purchasers should obtain the latest relevant information before placing orders. ST products are sold under ST's standard terms and conditions of sale. Purchasers are solely responsible for the choice, selection, and use of ST products, and ST assumes no liability for application assistance or product design. No intellectual property license is granted by ST. Resale of ST products with different provisions voids ST's warranty. ST and the ST logo are trademarks of ST. Other product/service names are property of their respective owners. Information in this document supersedes previous versions. © 2022 STMicroelectronics - All rights reserved.

Models: VL53L3CX Time of Flight Ranging Sensor, VL53L3CX, Time of Flight Ranging Sensor, Flight Ranging Sensor, Ranging Sensor

File Info : application/pdf, 25 Pages, 283.64KB

en.DM00736625

References

C2 v4.2.0220 build 670 - c2 rendition config : Techlit Active Antenna House PDF Output Library 7.0.1600; modified using iText 2.1.7 by 1T3XT

Related Documents

Preview VL53L7CH Time-of-Flight Sensor Datasheet
Datasheet for the STMicroelectronics VL53L7CH, an 8x8 multizone Time-of-Flight sensor with a 90° Field of View (FoV), designed for AI applications requiring accurate distance and gesture sensing.
Preview STM32 FP-SNS-FLIGHT1 Quick Start Guide: BLE and Time-of-Flight Sensors
A quick start guide for the STM32Cube function pack FP-SNS-FLIGHT1, enabling IoT nodes with BLE connectivity and Time-of-Flight sensors. Covers hardware overview, setup, demo examples, and software.
Preview VL53L8CX Time-of-Flight Sensor User Manual | STMicroelectronics
Comprehensive user manual for the STMicroelectronics VL53L8CX, a low-power, high-performance 8x8 multizone Time-of-Flight (ToF) ranging sensor. Covers system overview, configuration, features, and results interpretation.
Preview STMicroelectronics VL53L5CX Time-of-Flight Sensor: Cover Glass Guidelines
This application note provides essential guidelines from STMicroelectronics for selecting and designing cover glass for the VL53L5CX 8x8 multizone Time-of-Flight sensor, focusing on minimizing crosstalk and optimizing performance.
Preview PCB Thermal Guidelines for VL53L7 ToF Multizone Sensor Family
Application note providing essential PCB thermal design guidelines for STMicroelectronics' VL53L7 Time-of-Flight (ToF) multizone sensor family, ensuring optimal performance and preventing overheating.
Preview VL53L7CX: 8x8 Time-of-Flight Ranging Sensor with 90° FoV Datasheet
Discover the STMicroelectronics VL53L7CX, an advanced 8x8 multizone Time-of-Flight (ToF) ranging sensor. Featuring a wide 90° field of view and ST's FlightSense™ technology, it provides fast, accurate distance measurements for robotics, IoT, AR/VR, and smart devices.
Preview Quick Start Guide: STMicroelectronics X-NUCLEO-53L0A1 VL53L0X Ranging and Gesture Sensor Expansion Board for STM32 Nucleo
This quick start guide provides essential information for using the STMicroelectronics X-NUCLEO-53L0A1 expansion board, which features the VL53L0X Time-of-Flight sensor for ranging and gesture detection. It covers hardware and software overviews, setup, demo examples, and integration with the STM32 Nucleo development environment.
Preview VL53L8CH Time-of-Flight Sensor: AI Enabler, High Performance 8x8 Multizone
Explore the STMicroelectronics VL53L8CH, an advanced 8x8 multizone Time-of-Flight sensor designed for AI applications, offering high performance, wide field of view, and versatile use cases.