SDL: Software Defined LiDAR Parameters
Understand the SDL parameters for the Carbon 30 LiDAR and how to adjust them.
The Voyant Visualizer gives access to Software Defined LiDAR (SDL) parameters that allow the Carbon 30 sensor’s point cloud data to be tailored to fit the needs of the use environment, desired output resolution, or visualization purposes.
SDL parameters are only available through the Voyant Visualizer when a live Carbon 30 LiDAR sensor is connected.
The SDL parameters can be adjusted to affect the sensor’s:
- operating state
- field of view
- frame rate
- waveform parameters
Available SDL Parameters
Read below for a description of the available SDL parameters and how changes in their values can affect the Carbon 30 point cloud.
Note: Not all SDL combinations are supported. If a selected combination is invalid, the Voyant Visualizer will display an error after attempting to apply the parameters.
Ramp BW (GHz)
Ramp bandwidth (BW) controls the tradeoff between the range precision and maximum range of the sensor.
- Higher bandwidth improves range precision.
- Higher bandwidth reduces maximum range.
Use a higher Ramp BW when short-range precision is more important than long-range detection.
Frame Rate (fps)
Frame rate sets how many times the sensor scans its field of view per second.
Increasing frame rate may reduce the number of column samples per scan, which can reduce angular resolution.
- Higher frame rate increases scan frequency.
- Higher frame rate reduces the number of column samples per scan.
- Fewer column samples lower the sensor’s azimuthal angular resolution.
HFOV (°)
The Horizontal Field Of View sets the angular span (in degrees) of the sensor.
The maximum HFOV is 120°.
- Higher HFOV provides wider scene coverage.
- Higher HFOV lowers the azimuthal angular resolution.
Linescan Mode
Linescan is a static-line scan mode. Instead of sweeping the field of view, the beam parks at the center position and scans a single vertical line at a high, firmware-fixed line rate. This is useful for high-rate measurement along a single vertical axis.
To enter linescan, select it in the Voyant Visualizer’s SDL controls. The Ramp BW parameter still applies, but two parameters behave differently in this mode:
- The horizontal field of view is pinned to 0° (the beam is parked at center).
- The line rate is fixed by the firmware, so the Frame Rate parameter is ignored.
Note: The beam is always centered — steering the line off-center is not yet supported. On SDK releases before v0.17.1, the Voyant Visualizer hid this option unless the sensor reported MCU firmware v2.6.0 or newer; every currently supported firmware is past that point, so the option is always available.
After Changing SDL Parameters
Applying SDL parameters is not instantaneous. When the Voyant Visualizer shows Applied next to the Send button, the sensor has accepted the command — it is not yet at full measurement performance.
Every SDL parameter change restarts the sensor’s laser linearization, and measurement performance is not yet fully stable while it converges.
The Voyant Visualizer shows a Sensor settling — performance still stabilizing notice while this is happening and clears it automatically, so you do not need to watch the numbers yourself. The Python and C++ APIs report the same verdict programmatically — see Checking it from code below.
Wait for the settling notice to clear before trusting measurements. This matters most for range-accuracy, probability-of-detection, and SNR characterization — typically 30–60 seconds, and longer at the highest ramp bandwidths.
Note: This applies to any parameter change, including Frame Rate and HFOV — not only Ramp BW. A future firmware release is expected to restart linearization only when the bandwidth actually changes.
Reading it directly
The Sensor Health panel’s Health section carries the underlying measure, if you would rather watch it than the notice:
- Linearity Figure of Merit Smoothed — the value to watch. Lower is better, and it falls as linearization converges. A reading of
0.000means the sensor has not reported a linearization pass yet, not that it has settled. - Linearity Figure of Merit — the same measure for the most recent pass only. It is noisier, so prefer the smoothed value.
A settled sensor typically reads at or below 0.05 at 6 GHz and higher ramp bandwidths, and lower still at 2–4 GHz. The exact threshold is bandwidth-dependent, so prefer the settling notice over comparing the number yourself.
Checking it from code
The same verdict is available through the APIs, so a script can wait rather than guess. Both fragments assume a connected client — see the Python and C++ SDL examples for the full programs.
Python
while client.sensor_state().is_linearization_settling:
time.sleep(0.5)
C++
SensorState state = client.getSensorState();
while (voyant_sensor_state_is_linearization_settling(&state))
{
std::this_thread::sleep_for(std::chrono::milliseconds(500));
state = client.getSensorState();
}