GPS/GNSS Synchronization Guide
For more information on how to physically connect a GPS to your Ouster sensor and synchronise the Ouster sensor timestamp to an NMEA sentence, please refer to your sensor’s Hardware User Manual.
Configuring the Ouster Sensor
Now that all GPS configurations are in place and connections to the Ouster sensor have been successfully established, it’s time to initiate the synchronization process on the Ouster sensor, ensuring its timestamp aligns precisely with the GPS signal.
Set the
timestamp_modetoTIME_FROM_SYNC_PULSE_IN:Set the
multipurpose_io_modetoINPUT_NMEA_UART:Set the polarity of the
sync_pulse_inpin to match the GPS PPS polarity:Set the polarity of the
multipurpose_iopin to match the GPS NMEA UART polarity:Set the
nmea_baud_rateto match the GPS NMEA baud rate:Set the
nmea_leap_secondsto match the current leap seconds as defined by TAI Time at this website, at time of writing this the leap seconds are37:
Note
After POST api/v1/sensor/config request is received successfully, the sensor will reinitialize automatically to make the new configuration active and the config settings are persisted across power cycles.
Checking for Sync
Once you have completed all the above you should be able to check for synchronization
Check the output from the HTTP Endpoint GET /api/v1/time.
Verify that the sensor is
lockedonto the PPS signal.”sync_pulse_in”: { “locked”: 1 }
If not check the polarity and change it if necessary.
Verify that the sensor is
lockedon the NMEA signal.“nmea”: { “locked”: 1 }
If not check the polarity and baud rate and change them if necessary.
Verify that
last_read_messagelooks like a valid GPRMC sentence.“decoding”: {“last_read_message”: “GPRMC,024041.00,A,5107.0017737,N,11402.3291611, W,0.080,323.3,020420,0.0,E,A*20”}
Verify that
timestamptime has updated to a reasonable GPS time.“timestamp”: {“time”: 1585881641.96139565999999,
“mode”: “TIME_FROM_SYNC_PUSLE_IN”,
“time_options”: { “sync_pulse_in”: 1585881641}}
Example output from GET /api/v1/time:
{
"timestamp":{
"time":1585881641.96139565999999,
"mode":"TIME_FROM_SYNC_PUSLE_IN",
"time_options":{
"sync_pulse_in":1585881641,
"internal_osc":302,
"ptp_1588":309
}
},
"sync_pulse_in":{
"locked":1,
"diagnostics":{
"last_period_nsec":10,
"count_unfiltered":832,
"count":832
},
"polarity":"ACTIVE_HIGH"
},
"multipurpose_io":{
"mode":"INPUT_NMEA_UART",
"sync_pulse_out":{
"pulse_width_ms":10,
"angle_deg":360,
"frequency_hz":1,
"polarity":"ACTIVE_HIGH"
},
"nmea":{
"locked":1,
"baud_rate":"BAUD_9600",
"diagnostics":{
"io_checks":{
"bit_count":2938457,
"bit_count_unfilterd":2938457,
"start_char_count":832,
"char_count":66526
},
"decoding":{
"last_read_message":"GPRMC,024041.00,A,5107.0017737,N,11402.3291611,W,
0.080,323.3,020420,0.0,E,A*20",
"date_decoded_count":832,
"not_valid_count":0,
"utc_decoded_count":832
}
},
"leap_seconds":37,
"ignore_valid_char":0,
"polarity":"ACTIVE_HIGH"
}
}
}