# PPS Time Syncronization

**URL:** <https://community.ouster.com/t/pps-time-syncronization/218>\
**Category:** Hardware\
**Tags:** osdome, time-synchronization\
**Created:** [October 15, 2024, 10:34am UTC](https://community.ouster.com/t/pps-time-syncronization/218 "2024-10-15T10:34:28Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![lrrghdrh](https://avatars.discourse-cdn.com/v4/letter/l/bb73d2/32.png) [@lrrghdrh](https://community.ouster.com/u/lrrghdrh)\
**Post date:** [October 15, 2024, 10:34am UTC](https://community.ouster.com/t/pps-time-syncronization/218/1 "2024-10-15T10:34:28Z")

</div>

Hello, I have a question about the operation principle of time synchronization using PPS.

From the manual you provided, I understand that the PPS method synchronizes the LiDAR’s time using the timing of the pulse received from the GPS and the time contained in the NMEA message.

Could you please explain the detailed mechanism of how time is synchronized in this case?

1. Does the LiDAR adjust its timestamp to the GPS time domain by compensating for the time difference between the GPS clock (the rising edge timing of the pulse) and the LiDAR’s internal clock?
2. Or does the LiDAR synchronize its internal clock with the GPS clock using the pulse, so that the LiDAR performs a 360-degree spin and synchronizes its time pulse-wise when the pulse is received?

Since the manual mentioned that phase lock function is supported, I assume it’s the second method, but I’m not entirely sure and would like clarification.

Thank you for taking the time to read my question.

---

<div class="post-metadata">

**Author:** ![mbries](https://avatars.discourse-cdn.com/v4/letter/m/ee7513/32.png) [@mbries](https://community.ouster.com/u/mbries)\
**Post date:** [March 18, 2025, 9:16pm UTC](https://community.ouster.com/t/pps-time-syncronization/218/2 "2025-03-18T21:16:51Z")

</div>

Hi,

The lidar can do perform either behavior depending on its configuration. However, 2 requires 1 (or PTP to be enabled).

1. If you set `timestamp_mode` to `TIME_FROM_SYNC_PULSE_IN` and properly configure and receive the NMEA input settings this occurs.
2. If you then set `phase_lock_enable` to `true`, then the sensor synchronizes its rotation so it always hits whatever angle is specified by `phase_lock_offset` at the time of an input pulse as well.

One can read more about it here:

> **[Multi-Sensor Synchronization — Ouster Sensor Docs documentation](https://static.ouster.dev/sensor-docs/image_route1/image_route3/time_sync/time-sync.html#)**
