Typical Sensor Operation
Described below is the typical sensor state machine operation. When the sensor is powered ON, the sensors start in the initialization phase.

Sensor Operation Representation
Operating State |
Description |
---|---|
Warm-up |
If the sensor detects that its environmental temperature is low it will attempt to self-heat in a warmup state (Cold Start) before entering a normal operating state. |
Initializing |
Startup of Ouster Lidar. |
Updating |
Only remains in this state temporarily to update the firmware. |
Error |
If an exception is thrown during initialization or running state, the lidar logs the error and remains in Error until a reinit command is issued. |
OFF |
Ouster Lidar shut off. |
Running |
Sensor has completed initialization phase and is now running. |
Standby |
User enabled low power operating mode of the sensor. |
Sensor Telemetry
Sensor telemetry refers to sensor system state information that changes with time i.e., temperature, voltage, etc. Users can monitor this data live or for diagnostics and take precautionary measures if needed. This feature is only available on FW 2.3 and later, if using Rev 7 sensor then please use FW 3.0.0 or later. This information can be obtained from running the command get_telemetry
as shown in the example below.
{
"input_current_ma": 644,
"input_voltage_mv": 23624,
"internal_temperature_deg_c": 48,
"phase_lock_status": "DISABLED",
"timestamp_ns": 2093396806056
}
Fields |
Notes |
---|---|
Timestamp |
Timestamp from the FPGA measured in |
Lidar Input Voltage |
Input voltage |
Lidar Input Current |
Input current |
Internal Temperature |
Internal base board temperature |
Phase Lock Status |
Different codes to specify phase lock status and issues related to phase locking ( |
Note
Sensor telemetry will be available on all sensor revisions but internal temperature value can only be measured with Rev 06 and above sensors.
Phase lock output will not indicate loss of lock if the PTP source is lost.
Cold Start
There is software-enabled capability starting with firmware version 2.0.0 for the Ouster sensor to power-up from lower temperatures. If the sensor detects that its environmental temperature is low, it will attempt to self-heat in a warmup state before entering a normal operating state.
Note
For Rev 7 Sensors, please use FW 3.0.0 and later.
Hardware Requirements
Gen 1 sensors are not cold start-compatible on any firmware. While all sensors will attempt to start at lower exhibit cold start behavior by going into the warmup state, only Gen 2 sensors are able to successfully exit the warmup state into the normal operating state.
Cold Start Operation
There is nothing for the user to change about the sensor configuration to use this feature. The sensor will automatically begin its warmup process in the coldest parts of its operating temperature range.
Product Line |
Min Temp Specs |
---|---|
OS0 |
|
OS1 |
|
OS2 |
|
Indications and Alerts
In a cold start scenario, the sensor will have a short warmup phase; we’ve added in the additional "WARMUP"
status to indicate when the sensor is warming up.
$ nc os-122201000998 7501
get_sensor_info
{
"build_date": "2023-1-15T15:56:07Z",
"build_rev": "v3.0,0",
"image_rev": "ousteros-image-prod-bootes-v3.0.0+0123456789",
"initialization_id": 9599937,
"prod_line": "OS-1-128",
"prod_pn": "840-103575-06",
"prod_sn": "122201000998",
"status": "WARMUP"
}
The following alerts are related to cold start
ID |
Category |
Level |
Description |
0x01000053 |
WARMUP_ISSUE |
ERROR |
Sensor warmup process has failed. Unit is shutting down. Check the sensor operating conditions are within operating bounds. Contact Ouster support with Diagnostic file. |
0x0100004F |
WARMUP_ISSUE |
WARNING |
Sensor warmup process is taking longer than expected; please ensure sensor is thermally constrained per requirements. Contact Ouster support with Diagnostic file. |
Azimuth Window
Configuring the azimuth window is a feature to only turn on the UDP lidar data within a region of interest. The region of interest is defined by a min bound and a max bound, both in millidegrees. As a reminder, angles in this frame increment counterclockwise when viewed from the top. Below is the Lidar Coordinate Frame from a top-down perspective:
0° towards the external connector
90° a quarter turn counterclockwise from the connector
180° opposite the connector
270° three quarter turns counterclockwise from the connector

Lidar Coordinate Frame from a top-down perspective
Configuring the azimuth window lowers the average output data rate of the sensor but does not affect the peak output data rate of the sensor. It also does not stop the lasers from firing and thus does not have an effect on power consumption or thermals.
Expected Sensor Behavior
The sensor will round the input azimuth window bounds to the nearest Measurement Block IDs generating new ID-based bounds. The new bounds are used to mask Measurement Blocks in the lidar data packets. Lidar packets containing only masked Measurement Blocks are not output, and there may be partially masked Measurement Blocks in the two bookended lidar packets in each frame. The Measurement Block Status field will indicate the valid or masked/padded Measurement Blocks in any partially masked lidar packets. (See the Lidar Data Packet Format section for details on the lidar data format.)
The visualized output will contain jagged edges caused by the staggered, nonzero nature of the beam azimuth angles. It is necessary to set more conservative (wider) bounds to push the jagged edges beyond the desired window. This can be determined through trial and error or calculated deterministically with knowledge of the queryable beam azimuth angles.
Azimuth Window Examples
The TCP API Guide lists the command for setting an azimuth window. Below are example settings.
The command syntax is as follows:
set_config_param azimuth_window [min_bound_millidegrees, max_bound_millidegrees]
Default settings of 360° window:
set_config_param azimuth_window [0, 360000]
Set a region of interest between 0° to 180°:
set_config_param azimuth_window [0, 180000]
Set a region of interest between 270° to 90° with 180° field of view:
set_config_param azimuth_window [270000, 90000]
Set a region of interest 90° to 270° with 180° field of view:
set_config_param azimuth_window [90000, 270000]
Set a region of interest between 0° to 90° with 90° field of view:
set_config_param azimuth_window [0, 90000]
Set a region of interest 90° to 360° with 270° field of view:
set_config_param azimuth_window [90000, 0]
Azimuth Laser Masking
This feature allows thermal improvement by shutting down the Lasers on the masked azimuth window. Lasers would only be shot in the azimuth window the user has configured. When the user configures a limited azimuth window (azimuth_window config param) on the sensor for their application, the sensor will automatically shut down the Lasers in the unused azimuth window.
Standby Operating Mode
Starting with firmware v2.0.0, the sensor can be commanded in and out of a low-power Standby Operating Mode that can be useful for power, battery, or thermal-conscious applications of the sensor.
The TCP config param operating_mode
has a default value of NORMAL
. Setting it to STANDBY
puts the sensor into Standby Operating Mode upon reinitialization.
Expected Sensor Behavior
Power draw in Standby mode 5W. The motor does not spin, and light is not visible from the window. However, the sensor is on and listening to commands. The sensor status will be STANDBY
.
Standby Operating Mode Examples
Below are example netcat console command input and responses for several use cases of the Standby mode.
Note
In the examples below, to distinguish between the command and expected response, a dash has been added before the expected response. The actual response will be without the dash.
Set sensor into Standby mode and keep sensor in Standby mode upon power-up at next use:
$ nc os-991900123456 7501
set_config_param operating_mode STANDBY
-set_config_param
reinitialize
-reinitialize
save_config_params
-save_config_params
Set sensor into Standby mode but have sensor start in the default Running mode upon power-up at next use:
$ nc os-991900123456 7501
set_config_param operating_mode STANDBY
-set_config_param
reinitialize
-reinitialize
Command sensor back into Running mode and save config:
$ nc os-991900123456 7501
set_config_param operating_mode NORMAL
-set_config_param
reinitialize
-reinitialize
save_config_params
-save_config_params
Signal Multiplier
The signal_multiplier
config parameter allows the user to set a multiplier for the signal strength of the sensor. By default the sensor has a signal multiplier value of 1
. Choosing a signal multiplier greater than 1 requires reducing the azimuth window below 360˚ as explained below. Lasers are disabled outside of the maximum allowable azimuth window.
Use Cases
The config parameter signal_multiplier <0.25/0.5/1/2/3>
sets the signal multiplier value. The higher the signal multiplier value, the smaller the maximum azimuth window can be.
Signal Multiplier Value |
Max Azimuth Window |
---|---|
0.25 |
360° |
0.5 |
360° |
1 ( Default) |
360° |
2 |
180° |
3 |
120° |
Besides affecting the sensor’s signal strength, the signal multiplier choice can also impact power draw and thermal behavior. Choosing a signal multiplier less than 1 reduces overall power. Similarly, choosing a smaller azimuth window means the lasers do not emit pulses in sections not included in the azimuth window, thus reducing overall power. However, while this can increase the max operating temp of the sensor, it can also degrade the performance at low temperatures. This discrepancy will be resolved in a future firmware. The table below outlines some example use cases. User can access Sensor Telemetry information and monitor the sensor temperature.
Use Case |
|
|
---|---|---|
Signal boost |
3 |
[0,120000] |
Signal boost with power draw reduction |
2 |
[0,90000] |
Expected Behavior
For all signal multiplier levels, the lasers are enabled only in the chosen azimuth window.
If an invalid combination of signal multiplier and azimuth window values are set, the sensor will throw an error. If a valid pair of values are set, upon reinitializing, the sensor will operate in the signal multiplier mode.
Examples
The following shows the netcat console input commands and responses for some configuration examples.
Note
In the examples below, to distinguish between the command and expected response, a dash has been added before the expected response. The actual response will be without the dash.
Set sensor in 3x signal mode with 120° HFoV:
$ nc sensor1_hostname 7501
set_config_param set_config_param signal_multiplier 3
-set_config_param
set_config_param azimuth_window [120000, 240000]
-set_config_param
reinitialize
-reinitialize
save_config_params
-save_config_params
Sensor will throw an error if invalid parameters are set:
$ nc sensor1_hostname 7501
set_config_param signal_multiplier 5
-error: signal_multiplier must be between 1 and 3, inclusive
set_config_param signal_multiplier 3
-set_config_param
set_config_param azimuth_window [120000, 300000]
-set_config_param
reinitialize
-error: for signal_multiplier value of 3, azimuth_window must span a maximum of 120000 millidegrees.
Current azimuth_window [120000, 300000] spans 180000 millidegrees.
Sensor Performance by Operating Configuration
Depending upon the sensor’s lidar mode and signal multiplier setting, the sensor performance will vary from its baseline as listed on the datasheet. This section will present the estimated performance multiplier depending on the sensor and the operating configuration.
Estimated range multiplier
When using a signal multiplier higher than 1x and depending on the lidar mode, the sensor will get a range increase. The following tables present an estimated range multiplier depending on the operating configuration.
OS0 and OS1
For the OS0, OS-Dome and OS1 sensors the baseline is the 1024x10 mode
Signal Multiplier |
0.25x |
0.5x |
1x |
2x |
3x |
---|---|---|---|---|---|
10 Hz |
0.84 |
1 |
1.19 |
1.41 |
1.57 |
20 Hz |
0.71 |
0.84 |
1 |
1.19 |
1.32 |
Signal Multiplier |
0.25x |
0.5x |
1x |
2x |
3x |
---|---|---|---|---|---|
10 Hz |
0.71 |
0.84 |
1 |
1.19 |
1.32 |
20 Hz |
0.59 |
0.71 |
0.84 |
1 |
1.11 |
Signal Multiplier |
0.25x |
0.5x |
1x |
2x |
3x |
---|---|---|---|---|---|
10 Hz |
0.59 |
0.71 |
0.84 |
1 |
1.11 |
20 Hz |
NA |
NA |
NA |
NA |
NA |
Note
The values in the tables above are given for guidance only. The only specs guaranteed are the ones defined in the datasheet for a specific mode.
OS2
For OS2 sensors the baseline is the 2048x10 mode.
Frame Rate / Horiz. Res. |
512 |
1024 |
2048 |
||||||
---|---|---|---|---|---|---|---|---|---|
Signal multiplier |
1x |
2x |
3x |
1x |
2x |
3x |
1x |
2x |
3x |
10 Hz |
1.41 |
1.68 |
1.86 |
1.19 |
1.41 |
1.57 |
1.00 |
1.19 |
1.32 |
20 Hz |
1.19 |
1.41 |
1.57 |
1.00 |
1.19 |
1.32 |
NA |
Note
The values in the tables above are given for guidance only. The only specs guaranteed are the ones defined in the datasheet for a specific mode.
Maximal representable range
Depending upon the signal multiplier, the maximal representable range of the sensor will be different. The table below shows the maximal representable range values for each sensor type and multiplier value.
Signal Multiplier Value |
OSDome |
OS0 |
OS1 |
OS2 |
---|---|---|---|---|
0.25x |
491 m |
491 m |
491 m |
491 m |
0.5x |
491 m |
491 m |
491 m |
491 m |
1x |
270 m |
270 m |
270 m |
465 m |
2x |
135 m |
135 m |
135 m |
232 m |
3x |
90 m |
90 m |
90 m |
155 m |
Range returns beyond the maximal representable range may experience range aliasing. Therefore, these modes are only recommended in scenarios where there will not be any returns beyond the maximal representable range.
Shot Limiting
Shot limiting is a process by which the Ouster sensor will automatically enter into state to safely prolong the operational performance of the sensor in high operating temperature conditions. There are several different levels of shot limiting that are described in the Shot Limiting Status Flags table.
The sensor has three operating states in order to manage high temperatures:
NORMAL (Status 0x00)
SHOT_LIMITING_IMMINENT (Status 0x01)
SHOT_LIMITING (Status 0x02 and greater)
In the NORMAL
state the sensor will perform to the range and precision specifications of the datasheet. When the sensor reaches a certain temperature, the sensor enters the SHOT_LIMITING_IMMINENT
state and issues alert 0x0100000E
which indicates shot-limiting will commence in 30 seconds. After 30 seconds have elapsed and the temperature remains elevated, the sensor issues alert 0x0100000F
and enters a SHOT_LIMITING
state.
In shot limiting state, the sensor reduces power to the lasers in order to reduce the thermal load. While in this state, sensor range and precision may degrade by up to 30%. The sensor will progressively increase shot limiting if the temperature remains elevated. If the sensor reaches its maximum degree of shot-limiting, it will throw alert 0x0100003A
.
If the sensor cools down while it is in either SHOT_LIMITING_IMMINENT
or SHOT_LIMITING
state, the sensor will return to the NORMAL
state.
An independent state machine runs for thermal shutdown. When the sensor reaches the maximum operating temperature specified in the table Maximum Thermal Performance, the sensor will enter a SHUTDOWN_IMMINENT
state and issue an alert in category OVERTEMP
. If the sensor temperature remains elevated after 30 seconds, the sensor will shut down and issue alert 0x0100006B
.
Note
Please refer to the Hardware User Manual to learn more about the maximum thermal performance.
Information regarding the shot limiting status is presented as part of the lidar data packet in the Configurable Data Packet Format. Shot limiting status will be a part of the packet header when config parameter udp_profile_lidar
is set to one of the following values shown below.
The following flags are present in configurable data packet header:
Shot limiting status [4 bit unsigned int] - Indicates the shot limiting status of the sensor. Different codes indicates whether the sensor is in Normal Operation or in Shot limiting.
Shutdown Status [4 bit unsigned int] - Indicates whether thermal shutdown is imminent. This can be due to shot limiting being saturated, or due to any other over temperature conditions and depending upon the situation the appropriate alert is generated. When thermal shutdown is imminent, this flag will be set to 1 and the Thermal Shutdown Countdown field will be set to 30 seconds.
Shot limiting Countdown [8 bit unsigned int] - Countdown from 30 seconds to indicate when shot limiting is imminent. When the condition for entering shot limiting is met, the shot limiting status bit is set to 0x01 and the alert 0x0100000E takes effect. At this point the shot limiting counter will be set to 30 seconds and a countdown to initiate shot limiting will start.
Shutdown Countdown [8 bit unsigned int] - Countdown from 30 seconds to indicate that thermal shutdown is imminent. When a thermal shutdown is completed, the alert 0x0100006B will take effect and the sensor will automatically go to the ERROR state and stop outputting data.
The following table describes the codes in the shot limiting status flags, and what mode it corresponds to:
Shot Limiting status flags |
Description |
---|---|
|
Normal Operation. When the sensor is not in shot limiting, the shot limiting status flag will be set to 0x00, and shot limiting countdown will be set to 0x00. |
|
When the condition for entering Shot limiting is met, we set the Shot Limiting Status bit 0x01 and the alert 0x0100000E is in effect, informing that shot limiting is imminent. |
|
In this mode, we reduce the % of nominal laser duty cycle by 0-10% from NORMAL OPERATION. There will be an approximate reduction in the sensor max range by 3%. |
|
In this mode, we reduce the % of nominal laser duty cycle by 10-20% from NORMAL OPERATION. There will be an approximate reduction in the sensor max range by 6%. |
|
In this mode, we reduce the % of nominal laser duty cycle by 20-30% from NORMAL OPERATION. There will be an approximate reduction in the sensor max range by 9%. |
|
In this mode, we reduce the % of nominal laser duty cycle by 30-40% from NORMAL OPERATION. There will be an approximate reduction in the sensor max range by 12%. |
|
In this mode, we reduce the % of nominal laser duty cycle by 40-50% from NORMAL OPERATION. There will be an approximate reduction in the sensor max range by 16%. For OS2 and OS-Dome sensors this mode is when shot limiting is saturated and alert 0x0100003A is in effect. There will be an approximate reduction in the sensor max range by 21%. |
|
In this mode, we reduce the % of nominal laser duty cycle by 50-60% from NORMAL OPERATION. There will be an approximate reduction in the sensor max range by 21%. |
|
In this mode, we reduce the % of nominal laser duty cycle by 60-70% from NORMAL OPERATION. There will be an approximate reduction in the sensor max range by 25%. |
|
In this mode, we reduce the % of nominal laser duty cycle by 70-75% from NORMAL OPERATION. There will be an approximate reduction in the sensor max range by 27%. For OS-0 and OS-1 sensors this mode is when shot limiting is saturated and alert 0x0100003A is in effect. There will be an approximate reduction in the sensor max range by 27%. |