IP Library Granted Patent US 12,411,519
Granted Patent B2
US 12,411,519 · App. 18/204,772 · Granted Sep 9, 2025

Synchronizing client device with independent sensor

Inventors: Christopher Shaw (London, GB); Victor Adrian Prisacariu (Oxford, GB); Daniyar Turmukhambetov (London, GB)
Assignee: Niantic Spatial, Inc.
G06F1/12
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,411,519
App. No.
18/204,772
Granted
Sep 9, 2025
Kind
B2
Abstract

A system includes a first sensor system and a second sensor system. The first sensor system includes a first internal clock, a first sensor configured to generate data describing an environment, and a Universal Serial Bus (USB) module. The second sensor system includes a second internal clock and a controller configured to perform a precision time protocol (PTP) to synchronize the second internal clock with the first internal clock. The precision time protocol includes transmitting timestamped messages encoded in USB bulk messages between the first sensor system and the second sensor system. The timestamped messages may be encoded in USB musical instrument digital interface (MIDI) bulk messages.

Claims (58)

1. A system comprising:

a first sensor system including a first internal clock, a first sensor configured to generate first data describing an environment, and a Universal Serial Bus (USB) module, wherein the first sensor system is a smartphone; and

a second sensor system different from the first sensor system, the second sensor system comprising:

a second sensor configured to generate second data describing the environment; and

a controller comprising a second internal clock and configured to perform a precision time protocol (PTP) to synchronize the second internal clock with the first internal clock, the precision time protocol including transmitting timestamped messages encoded in USB bulk messages between the first sensor system and the second sensor system, wherein to synchronize the second internal clock with the first internal clock, the controller is further configured to adjust the second internal clock based on a time delay between the first internal clock and the second internal clock,

wherein the controller is further configured to transmit first instructions to the first sensor system and transmit second instructions to the second sensor system based on the synchronization of the second internal clock with the first internal clock.

2. The system of claim 1 , wherein the first instructions and the second instructions synchronize data generation of the first sensor with data generation of the second sensor.

3. The system of claim 1 , wherein the timestamped messages are encoded in USB musical instrument digital interface (MIDI) bulk messages.

4. The system of claim 1 , wherein to synchronize the second internal clock with the first internal clock, the controller is further configured to:

determine the time delay between the first internal clock and the second internal clock based on the performed precision time protocol.

5. The system of claim 1 , wherein the timestamped messages include a message from the first sensor system timestamped according to the first internal clock and a message from the second sensor system timestamped according to the second internal clock of the second sensor system.

6. The system of claim 1 , wherein the precision time protocol using USB bulk messages comprises: calculating offsets and delays between timestamps of the timestamped messages transmitted between the first sensor system and the second sensor system.

7. The system of claim 1 , wherein the controller is configured to perform the precision time protocol periodically.

8. The system of claim 1 , to synchronize the second internal clock with the first internal clock, the controller is further configured to:

transmit two or more USB bulk messages within a threshold period with known timestamps from the second sensor system to the first sensor system;

determine receive timestamps for the two or more USB bulk messages, the receive timestamps describing when the two or more USB bulk messages were received by the first sensor system; and

based on the receive timestamps and the known timestamps, determine a bulk message frame boundary of the first sensor system.

9. The system of claim 1 , wherein the first sensor is an image sensor.

10. A method comprising:

transmitting, by a first sensor system with a first internal clock and a USB module, a first message of a precision time protocol (PTP) encoded as a first USB bulk message and including a first timestamp based on the first internal clock, wherein the first sensor system is a smartphone;

receiving the first message by a controller module of a second sensor system different from the first sensor system, the controller module comprising a second internal clock;

determining, by the controller module, a second timestamp for the received first message based on the second internal clock;

transmitting, by the controller module, a second message of the precision time protocol encoded as a second USB bulk message, the second message associated with a third timestamp based on the second internal clock;

receiving, by the first sensor system, the second message;

determining, by the first sensor system, a fourth timestamp for the received second message based on the first internal clock;

transmitting, by the first sensor system and to the controller module, a third message of the precision time protocol encoded as a third USB bulk message and including the fourth timestamp;

synchronizing the second internal clock with the first internal clock based on the first timestamp, the second timestamp, the third timestamp, and the fourth timestamp, wherein synchronizing the second internal clock with the first internal clock comprises:

determining a first time delay between the first internal clock and the second internal clock; and

adjusting the second internal clock based on the first time delay; and

transmitting, by the controller module, first instructions to the first sensor system and second instructions to the second sensor system based on the synchronization of the second internal clock with the first internal clock.

11. The method of claim 10 , the first instructions and the second instructions synchronize data generation of a first sensor of the first sensor system with data generation of a second sensor of the second sensor system.

12. The method of claim 10 , wherein the first, second, and third messages are encoded in USB musical instrument digital interface (MIDI) bulk messages.

13. The method of claim 10 , wherein;

determining the first time delay between the first internal clock and the second internal clock comprises determining a second time delay between the first and second timestamps and a third time delay between the third and fourth timestamps; and

adjusting the second internal clock based on the first time delay comprises adjusting the second internal clock based on the second time delay and the third time delay.

14. The method of claim 10 , wherein the precision time protocol is performed periodically.

15. The method of claim 10 , further comprising:

transmitting a set of two or more USB bulk messages within a threshold period with known timestamps from the second sensor system to the first sensor system;

determining receive timestamps for the set of USB bulk messages, the receive timestamps describing when the set of USB bulk messages were received by the first sensor system; and

based on the receive timestamps and the known timestamps, determining a bulk message frame boundary of the first sensor system.

16. A non-transitory computer-readable medium storing instructions that, when executed by a computing system, cause the computing system to perform operations comprising:

transmitting, by a first sensor system with a first internal clock and a USB module, a first message of a precision time protocol (PTP) encoded as a first USB bulk message and including a first timestamp based on the first internal clock, wherein the first sensor system is a smartphone;

receiving the first message by a controller module of a second sensor system different from the first sensor system, the controller module comprising a second internal clock;

determining, by the controller module, a second timestamp for the received first message based on the second internal clock;

transmitting, by the controller module, a second message of the precision time protocol encoded as a second USB bulk message, the second message associated with a third timestamp based on the second internal clock;

receiving, by the first sensor system, the second message;

determining, by the first sensor system, a fourth timestamp for the received second message based on the first internal clock;

transmitting, by the first sensor system and to the controller module, a third message of the precision time protocol encoded as a third USB bulk message and including the fourth timestamp;

synchronizing the second internal clock with the first internal clock based on the first timestamp, the second timestamp, the third timestamp, and the fourth timestamp, wherein synchronizing the second internal clock with the first internal clock comprises:

determining a first time delay between the first internal clock and the second internal clock; and

adjusting the second internal clock based on the first time delay; and

transmitting, by the controller module, first instructions to the first sensor system and second instructions to the second sensor system based on the synchronization of the second internal clock with the first internal clock.

17. The non-transitory computer-readable medium of claim 16 , wherein the first instructions and the second instructions synchronize data generation of a first sensor of the first sensor system with data generation of a second sensor of the second sensor system.

18. The non-transitory computer-readable medium of claim 16 , wherein the first, second, and third messages are encoded in USB musical instrument digital interface (MIDI) bulk messages.

19. The non-transitory computer-readable medium of claim 16 , wherein;

determining the first time delay between the first internal clock and the second internal clock comprises determining a second time delay between the first and second timestamps and a third time delay between the third and fourth timestamps; and

adjusting the second internal clock based on the first time delay comprises adjusting the second internal clock based on the second time delay and the third time delay.

20. The non-transitory computer-readable medium of claim 16 , wherein the precision time protocol is performed periodically.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2025
From: NIANTIC, INC.
To: NIANTIC SPATIAL, INC.
Reel/Frame 071555/0833 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 22, 2024
From: SHAW, CHRISTOPHER; PRISACARIU, VICTOR ADRIAN; TURMUKHAMBETOV, DANIYAR
To: NIANTIC INTERNATIONAL TECHNOLOGY LIMITED
Reel/Frame 066203/0589 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 22, 2024
From: NIANTIC INTERNATIONAL TECHNOLOGY LIMITED
To: NIANTIC, INC.
Reel/Frame 066197/0211 →
Continuity (1)
Related Publication 20240402753A1 · Dec 5, 2024
References Cited (6)
US 10707984B2 · Pitigoi-Aron · 2020 [cited by examiner]
US 10771669B1 · Balasubramanian · 2020 [cited by examiner]
US 20160197782A1 · Hort · 2016 [cited by examiner]
WO WO2022160328A1 · 2022 [cited by examiner]
How works the Precision Time Protocol (PTP)?, Mar. 7, 2022, https://www.bodet-time.com/resources/blog/1774-how-works-the-precision-time-protocol-ptp.html (Year: 2022). [cited by examiner]
Kent et al., Universal Serial Bus Device Class Definition for MIDI Devices, Nov. 1, 1999, https://www.usb.org/sites/default/files/midi10.pdf (Year: 1999). [cited by examiner]