# US 2024/0201733 A1 · Synthetic timestamp compensating for skew between system clock and sensor clock

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2024/0201733 A1
- Document ID: US20240201733A1
- Status: Published application
- Kind: A1
- Application number: 18/555,667
- Filed: 2021-04-23
- Published: 2024-06-20
- Earliest claimed: 2021-04-23
- Assignees: Hewlett-Packard Development Company, L.P.
- Applicants: Hewlett-Packard Development Company, L.P.
- Inventors: Joseph Nouri; Kaden Strand
- Web page: https://patentgrep.com/patent/US20240201733A1

## CPC

- G06F 1/14: Time supervision arrangements, e.g. real time clock
- H04Q 9/04: Arrangements for synchronous operation
- H04W 56/0035: {detecting errors in frequency or phase}
- H04Q 2209/845: where the measuring is synchronized between sensing devices
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04Q: SELECTING (switches, relays, selectors H01H; wireless communication networks H04W)
- H04W: WIRELESS COMMUNICATION NETWORKS (broadcast communication H04H; communication systems using wireless links for non-selective communication, e.g. wireless extensions H04M1/72)

## Abstract

As sensor readings are received from a hardware sensor, each sensor reading is stored within a buffer along with a system timestamp of a system clock indicating when the sensor reading was received. Each sensor reading includes a sensor timestamp of a sensor clock indicating when the sensor reading occurred at the hardware sensor. Responsive to receipt of each sensor reading, a synthetic timestamp compensating for skew between the system clock and the sensor clock is generated and applied to the sensor reading. The synthetic timestamp is generated based on an average skew of the sensor readings within the buffer and an initial system timestamp indicating when a first sensor reading was received.

## Claims

### Claim 1

A non-transitory computer-readable data storage medium storing program code executable by a processor to perform processing comprising:
receiving a current sensor reading from a hardware sensor, the current sensor reading including a current sensor timestamp of a sensor clock indicating when the current sensor reading occurred at the hardware sensor;
storing the current sensor reading in a buffer of sensor readings along with a current system timestamp of a system clock indicating when the current sensor reading was received;
generating a current synthetic timestamp for the current sensor reading compensating for skew between the system clock and the sensor clock, based on an average instantaneous skew of the sensor readings within the buffer and an initial system timestamp indicating when a first sensor reading was received; and
applying the current synthetic timestamp to the current sensor reading.

### Claim 2 (depends on 1)

The non-transitory computer-readable data storage medium of claim 1, wherein the processing further comprises:
performing an action based on the sensor readings,
wherein a correctness of the action is improved due to compensation of the skew between the system clock and the sensor clock.

### Claim 3 (depends on 1)

The non-transitory computer-readable data storage medium of claim 1, wherein the current sensor reading has a current instantaneous skew equal to a difference between the current system timestamp and a previous system timestamp of the system clock indicating when a previous sensor reading was received, divided by a difference between the current sensor timestamp and a previous sensor timestamp of the sensor clock indicating when the previous sensor reading occurred.

### Claim 4 (depends on 3)

The non-transitory computer-readable data storage medium of claim 3, wherein generating the current synthetic timestamp comprises:
heuristically setting a current skew based on the average instantaneous skew and a previous skew; and
setting the current synthetic timestamp to the initial system timestamp plus a multiplicative product of the current skew and a difference between the current sensor timestamp and an initial sensor timestamp indicating when the first sensor reading occurred.

### Claim 5 (depends on 4)

The non-transitory computer-readable data storage medium of claim 4, wherein the processing further comprises, responsive to the current synthetic timestamp deviating from the current system timestamp by more than a drift threshold:
setting a corrected initial system timestamp to the initial system timestamp plus a difference between the current synthetic timestamp and the current system timestamp; and
heuristically setting a new initial system timestamp based on the corrected initial system timestamp and the current system timestamp, the new initial system timestamp compensating for synthetic timestamp drift from the initial system timestamp.

### Claim 6

A method comprising:
as sensor readings are received from a hardware sensor, storing each sensor reading within a buffer along with a system timestamp of a system clock indicating when the sensor reading was received,
wherein each sensor reading includes a sensor timestamp of a sensor clock indicating when the sensor reading occurred at the hardware sensor; and
responsive to receipt of each sensor reading, generating a synthetic timestamp compensating for skew between the system clock and the sensor clock, and applying the synthetic timestamp to the sensor reading,
wherein the synthetic timestamp is generated based on an average skew of the sensor readings within the buffer and an initial system timestamp indicating when a first sensor reading was received.

### Claim 7 (depends on 6)

The method of claim 6, further comprising:
repeating the method for each of one or multiple other hardware sensors.

### Claim 8 (depends on 7)

The method of claim 7, further comprising:
performing an action based on the sensor readings,
wherein a correctness of the action is improved due to compensation of the skew between the system clock and the sensor clock.

### Claim 9 (depends on 6)

The method of claim 6, wherein each sensor reading has a skew equal to a difference between the system timestamp of the sensor reading and the system timestamp of a previous sensor reading, divided by a difference between the sensor timestamp of the sensor reading and the sensor timestamp of the previous sensor reading.

### Claim 10 (depends on 6)

The method of claim 6, wherein generating the synthetic timestamp comprises:
setting a current skew based on the average skew; and
setting the synthetic timestamp to the initial system timestamp plus a multiplicative product of the current skew and a difference between the sensor timestamp and an initial sensor timestamp indicating when the first sensor reading occurred.

### Claim 11 (depends on 10)

The method of claim 10, wherein setting the current skew comprises:
heuristically setting the current skew based on the average skew and a previous skew.

### Claim 12 (depends on 6)

The method of claim 6, further comprising:
adjusting the initial system timestamp indicating when the first sensor reading was received to compensate for drift between the synthetic timestamp and the initial system timestamp.

### Claim 13 (depends on 12)

The method of claim 12, wherein the initial system timestamp is adjusted responsive to the synthetic timestamp deviating from the system timestamp by more than a drift threshold.

### Claim 14 (depends on 12)

The method of claim 12, wherein adjusting the initial system timestamp comprises:
setting a corrected initial system timestamp to the initial system timestamp plus a difference between the synthetic timestamp and the system timestamp; and
setting a new initial system timestamp based on the corrected initial system timestamp.

### Claim 15 (depends on 14)

The method of claim 14, wherein setting the new initial system timestamp based on the corrected initial system timestamp comprises:
heuristically setting the new initial system timestamp based on the corrected initial system timestamp and the system timestamp.
