Skip to main content
Visitor II
July 14, 2026
Question

Analysis of VL53L8CX sensor features

  • July 14, 2026
  • 1 reply
  • 20 views

Hi everyone,

I have been testing this sensor for my application using ESP32 based board and I found that the readings/values of ambient and nb target do not co-relate or give any context to the values of reflect, signal, spad and sigma.

Based on my data I found that

#1 Sigma - is the most reliable feature to filter noise
#2 SPAD - is the most reliable feature to see/spot highly reflective zones
#3 Reflect/Signal - gives more reliable data (context) around the reflective spots - usually complementary

But
#4 Ambient - shows the reflective spots but not all the time and not complement other features, does it signify something else? more of environment? It does change based on the object color - white is high and black is low - indoors.
#5 nb_target - what does it even show/mean/signify? this is the most ambiguous feature. There is a option to choose up to 4, does that mean 4 signal are sent per zone? and its filtered based on the best if I choose 1? Are all the data/values of other features selected as the best of these 4 or on what basis?

#6 Motion - seems to be 255 for points below the centre row in "one" of the sensor, all the time (I use 4), does it mean a faulty sensor or does that nb target interrupt it? I see non zero motion values for stationary setup and facing the wall so what does this signify? Can it give any context?

#7 Status and Sharpener seem useless and doesn’t reflect or affect any of the feature/values above - correct me if am wrong.

I set nb targets as 1 all the time, but even #2 and #3 may not be complementary all the time so does this nb target mechanism play a part here as well? I am just curious on the mechanism behind the values of each of these features so that I can build a comprehensive application.

Does the VL53L5CX give all these features as well? What is difference in terms of these features? These details would give me more insight for my research and application.

Thanks

1 reply

ST Technical Moderator
July 17, 2026

Hi,

Thank you for your detailed observations. These are very relevant questions, especially when using the VL53L8CX for research or for building a more advanced application.

Based on the VL53L8CX datasheet and user manual, the different output features should not be interpreted as if they all described the same physical quantity. A better way is to group them into categories:

measurement validity / reliability: target_status, range_sigma_mm
target return / target appearance: signal, reflectance
background / environment related: ambient
multi-target structure: nb_target
spatial post-processing: sharpener
frame-to-frame variation: motion indicator

Below is a summary addressing each of your points.

1) Sigma
Your observation is generally correct.
sigma is one of the most useful indicators for filtering noisy or unstable results.

  • lower sigma usually means a more stable and more reliable target
  • higher sigma usually means weaker confidence, more noise, or more difficult conditions

In practice, a common approach is:

  • check target_status
  • then use sigma as a quality filter

So your conclusion that sigma is one of the most reliable noise filters is reasonable.

2) SPAD
number of SPADs enabled is not a direct reflectance value.
According to the user manual, a far or low-reflective target can activate more SPADs.

So SPAD count is better used as a supporting indicator, not as a direct “high reflectivity” measurement.

It may sometimes help visualize strong-return zones, but it should not be interpreted as a direct reflectivity map.

3) Reflectance and Signal
These two are related, but they are not the same:

  • signal is closer to the measured return strength
  • reflectance is an estimated target reflectance percentage derived by the algorithm

So:

  • signal is more like return intensity
  • reflectance is more like interpreted target reflectivity

This is why they are often complementary, but not always perfectly correlated.

4) Ambient
ambient should be understood mainly as a background/environment-related contribution, not as a direct target feature.

According to the manual, ambient is measured on the SPAD array without active VCSEL emission, in order to estimate background signal/noise.

Therefore:

  • it is affected by ambient light and background contribution
  • it can also vary with white/black objects due to scene reflectance and lighting conditions
  • it will not always directly match signal or reflectance

So yes, ambient is more related to the environment and background illumination than to target reflectance alone.

5) nb_target
This is one of the most important clarifications.

nb_target does not mean that 4 signals are sent per zone.

It means that the algorithm can detect and report up to N distinct targets in the same zone, if multiple returns are separable.

According to UM3109:

  • the VL53L8CX can detect up to 4 targets per zone
  • this is based on histogram processing and multi-target separation
  • the minimum distance between 2 targets to be detected is about 600 mm

If you configure nb_target_per_zone = 1, only one target is reported per zone, depending on the selected target order:

  • closest
  • strongest (default)

The other per-target outputs such as distance, signal, reflectance, sigma, and status correspond to the target(s) that are actually retained and reported.

So it is not “4 transmitted signals”, but “up to 4 detected targets in one zone”.

6) Motion
motion indicator is not a simple binary “motion / no motion” flag.

According to the manual, it is computed from sequential frame variations, and the motion field contains a motion intensity value.

This means:

  • non-zero values can appear even in a static setup
  • it is influenced by integration time, target distance, reflectance, and scene variation
  • a constant 255 or unusual behavior on some zones does not automatically mean a faulty sensor, but it may require further investigation

Typical motion values are usually in the range of about 100 to 500 for real motion events.
So motion is better used as a context / variation indicator, not as a standalone motion truth flag.

7) Status
target_status is actually one of the most important outputs and should not be ignored.

The manual explicitly defines the meaning of the status codes. In particular:

  • 5 = Range valid
  • 6 or 9 = still usable with lower confidence
  • 255 = No target detected

The document recommends using:

  • status 5 as high confidence
  • status 6 or 9 as medium confidence
  • all others as lower confidence

So in a practical application, target_status should be one of the first filters applied.

8) Sharpener
sharpener is not expected to directly change all feature values in a simple way.

Its role is to reduce signal spreading across neighboring zones and improve target edge separation.
As described in the manual, returned pulses are not perfectly sharp, and the sharpener helps reduce veiling glare / edge spreading.

So, its effect is mainly visible in:

  • target boundary sharpness
  • reduced spreading into adjacent zones
  • better spatial separation

rather than in direct one-to-one changes in signal, reflectance, or sigma.

 

In short:

sigma and target_status are the best filters for result quality
signal and reflectance help characterize the target
ambient is more of a background/environment feature
nb_target is about multi-target detection, not “number of emitted signals”
motion is a frame-to-frame variation indicator
sharpener is a spatial post-processing feature affecting edge separation, not a direct feature-value scaler.

Here is the user manual link that you can refer to: A guide for using the VL53L8CX, low-power, high-performance Time-of-Flight multizone ranging sensor - User manual

Best regards,

Bin FAN

In order to give better visibility on the answered topics, please click on 'Accept as Solution' on the reply which solved your issue or answered your question.