Patentable/Patents/US-12756491-B2
US-12756491-B2

Systems and methods for synchronizing device clocks

PublishedOctober 6, 2026
Assigneenot available in USPTO data we have
Technical Abstract

A media system, method, and a computer program product for synchronizing device clocks including a plurality of devices having device clocks, where each device is capable of independently selecting a primary clock device from the plurality of devices to coordinate clock synchronization of the remaining devices, e.g., secondary devices. Each device can utilize the same criteria or set of rules to select the primary clock device from among the plurality of devices after an initial exchange of data during a discovery phase. The selection of the primary clock device can be based on random or arbitrary selection, or based on at least one devices characteristic exchanged within the data obtained during the discovery phase. Once selected, the primary clock device coordinates a clock synchronization sequence with each secondary device until each secondary device clock is synchronized to within a predetermined threshold with the primary clock of the primary clock device.

Patent Claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

discovering all devices of the plurality of devices within the media system; selecting a primary device of the plurality of devices to coordinate clock synchronization for all other devices of the plurality of devices, the selecting of the primary device performed according to an algorithm; at the primary device of the plurality of devices, periodically exiting a power-saving state and wirelessly transmitting a clock synchronization request from the primary device to a secondary device of the plurality of devices, the clock synchronization request configured to initiate a clock synchronization sequence and cause the secondary device to exit a power-saving state, the clock synchronization sequence configured to synchronize a clock of the secondary device with a clock of the primary device to within a predetermined threshold, wherein the secondary device is configured to wirelessly receive the clock synchronization request in the power-saving state; and after the clock synchronization sequence has been performed, reentering the power-saving state at the primary device and the secondary device. . A method for synchronizing clocks of a plurality of devices within a media system connected over a network, the method comprising:

2

claim 1 . The method of, wherein the clock synchronization sequence utilizes a clock synchronization protocol selected from: a Clock-sampling mutual network synchronization protocol (CS-MNS), a Network Time Protocol (NTP), a Precision Time Protocol (PTP), a Reference Broadcast Time Synchronization protocol (RBS), Synchronous Ethernet protocol, Data-Plane Time-Synchronization Protocol (DPTP), or any other protocol capable of sending, receiving and synchronizing two device clocks over a wired or wireless connection.

3

claim 1 . The method of, wherein the primary device reenters the power-saving state after the primary device receives confirmation that the secondary device has performed a predetermined number of cycles of the clock synchronization sequence.

4

claim 1 . The method of, wherein, once initiated, the clock synchronization sequence runs for a predetermined duration of time.

5

claim 1 . The method of, wherein the primary device reenters the power-saving state after the primary device receives confirmation that the clock of the secondary device is synchronized with the clock of the primary device to within the predetermined threshold.

6

claim 1 . The method of, wherein, in response to the clock of the secondary device not being synchronized with the clock of the primary device to within the predetermined threshold, the secondary device sends a negative confirmation to indicate the clock of the secondary device and the clock of the primary device are not in a synchronized state.

7

claim 6 . The method of, wherein, in response to the secondary device sending the negative confirmation, the primary device reinitiates the clock synchronization sequence with the secondary device.

8

claim 1 . The method of, wherein, in response to the primary device no longer being connected to the network, promoting a different device of the plurality of devices to operate as the primary device.

9

claim 1 . The method of, wherein the algorithm for the selecting of the primary device is based on at least one characteristic of the plurality of devices, wherein the at least one characteristic of the plurality of devices includes device power type.

10

claim 1 . The method of, wherein the algorithm for the selecting of the primary device is based on random or arbitrary selection.

11

a primary device of the plurality of devices; and a secondary device of the plurality of devices, wherein all devices of the plurality of devices are discovered within the media system prior to selecting the primary device, the primary device configured to coordinate clock synchronization for all other devices of the plurality of devices, the selecting of the primary device performed according to an algorithm, wherein the primary device is configured to periodically exit a power-saving state and wirelessly transmit a clock synchronization request to the secondary device, the clock synchronization request configured to initiate a clock synchronization sequence and cause the secondary device to exit a power-saving state, the clock synchronization sequence configured to synchronize a clock of the secondary device with a clock of the primary device to within a predetermined threshold, wherein the secondary device is configured to wirelessly receive the clock synchronization request in the power-saving state, and wherein after the clock synchronization sequence has been performed, the primary device and the secondary device are configured to reenter the power-saving state. . A system for synchronizing clocks of a plurality of devices within a media system connected over a network, the system comprising:

12

claim 11 . The system of, wherein the clock synchronization sequence utilizes a clock synchronization protocol selected from: a Clock-sampling mutual network synchronization protocol (CS-MNS), a Network Time Protocol (NTP), a Precision Time Protocol (PTP), a Reference Broadcast Time Synchronization protocol (RBS), Synchronous Ethernet protocol, Data-Plane Time-Synchronization Protocol (DPTP), or any other protocol capable of sending, receiving and synchronizing two device clocks over a wired or wireless connection.

13

claim 11 . The system of, wherein the primary device reenters the power-saving state after the primary device receives confirmation that the secondary device has performed a predetermined number of cycles of the clock synchronization sequence.

14

claim 11 . The system of, wherein, once initiated, the clock synchronization sequence runs for a predetermined duration of time.

15

claim 11 . The system of, wherein the primary device reenters the power-saving state after the primary device receives confirmation that the clock of the secondary device is synchronized with the clock of the primary device to within the predetermined threshold.

16

claim 11 . The system of, wherein, in response to the clock of the secondary device not being synchronized with the clock of the primary device to within the predetermined threshold, the secondary device sends a negative confirmation to indicate the clock of the secondary device and the clock of the primary device are not in a synchronized state.

17

claim 16 . The system of, wherein, in response to the secondary device sending the negative confirmation, the primary device reinitiates the clock synchronization sequence with the secondary device.

18

claim 11 . The system of, wherein, in response to the primary device no longer being connected to the network, promoting a different device of the plurality of devices to operate as the primary device.

19

claim 11 . The system of, wherein the algorithm for the selecting of the primary device is based on at least one characteristic of the plurality of devices, wherein the at least one characteristic of the plurality of devices includes device power type.

20

claim 11 . The system of, wherein the algorithm for the selecting of the primary device is based on random or arbitrary selection.

Detailed Description

Complete technical specification and implementation details from the patent document.

This application is a continuation of U.S. patent application Ser. No. 16/549,710, filed Aug. 23, 2019, the entire contents of which are hereby incorporated by reference.

This disclosure generally relates to media systems and methods, in particular, systems and methods for synchronizing device clocks of media devices.

Multi-device media systems, as well as left/right audio device pairs utilize internal clocks when communicating. Time stamp information is exchanged by the devices within a media system so that, e.g., audio may be generated by each device within a given tolerance and/or audio-video synchronization is within a given tolerance. Ideally, the tolerance between devices is small enough to not be noticeable by a user within the established zone or space the devices are arranged within. The tolerance may be larger for multi-room systems as a user may not be able to, e.g., perceive an audible difference between rooms as well as between two audio devices within the same room. Upon initial set up of such systems, the time necessary to synchronize a first device with a second can take on the order of seconds to tens of seconds depending on the accuracy needed, for example, it takes more time to form and synchronize a group of left/right stereo devices within a single room than the time required to form and synchronize multi-room audio system. This increased time leads to degradation of the end user's enjoyment due to increased time until media is produced by the system, as well as inhibits other potential end user features, such as seamlessly moving audio from one location to another or moving audio between pre-established groups.

Additionally, due to the lack of precision of the internal clocks in electronic media devices, the devices within a predefined group may need to be periodically resynchronized to maintain accurate data transfer and media generation within the required tolerances.

Furthermore, conventional systems also allow devices to revert to a dozed state, e.g., a power-saving state, when not actively generating audio output. Within this dozed state, conventional systems are unable to transfer the amount of data necessary to resynchronized device clocks within the system.

The present disclosure is directed to improved systems and methods for synchronizing clock devices of a media system within a network. The media system can include a plurality of devices having device clocks, where each device is capable of independently selecting a primary clock device from the plurality of devices to coordinate clock synchronization of the remaining devices, e.g., secondary devices. Each device utilizes the same algorithmic rules to select the primary clock device from among the plurality of devices after an initial exchange of data during a discovery phase. The algorithmic criteria for selection of the primary clock device can be based on random or arbitrary selection, or based on at least one devices characteristic exchanged within the data obtained during the discovery phase. Once selected it is the responsibility of the primary clock device to exit a power-saving state periodically, and coordinate a clock synchronization sequence with each secondary device until each secondary device clock is synchronized to within a predetermined threshold with the primary clock of the primary clock device. Additionally, similar criteria can be applied to the selection of a primary health device to maintain the “health” of the media system and the selection of a primary media distribution device responsible for sending, receiving, or otherwise distributing media content and data to each device.

In an example, there is provided a method for synchronizing device clocks including: discovering, over a network, a plurality of devices within a media system; determining a primary clock device of the plurality of devices, the primary clock device having a primary clock; sending a clock synchronization request from the primary clock device to a secondary device of the plurality of devices, regardless of whether media content is being rendered by any of the plurality of devices; and, initiating a clock synchronization sequence wherein the clock synchronization sequence is arranged to synchronize a secondary clock of the secondary device with the primary clock of the primary clock device.

In an aspect, each device of the plurality of devices includes at least one device characteristic is selected from: an internet protocol (IP) address, a network reliability metric, or a device power type.

In an aspect, determining the primary clock device includes: selecting the primary clock device from the plurality of devices, wherein the primary clock device has a lowest IP address of the plurality of devices; selecting the primary clock device from the plurality of devices based at least in part on the network reliability metric of each device of the plurality of devices; or selecting the primary clock device from the plurality of devices, wherein the primary clock device has a wall-powered device power type.

In an aspect, the method further includes: initiating an initial clock synchronization sequence between the primary clock device and each at least one secondary device, wherein the initial clock synchronization sequence is arranged to synchronize the secondary clock of the secondary device with the primary clock; entering, with the primary clock device and the secondary device a power saving state; and, exiting, with the primary clock device the power-saving state at a predetermined time interval; exiting, with the secondary device, the power saving state upon receipt of the clock synchronization request from the primary clock device.

In an aspect, the clock synchronization sequence is arranged to synchronize the secondary clock of the secondary device with the primary clock over a first time duration.

In an aspect, the first time duration is dynamic.

In an aspect, the method further includes: receiving, at the primary clock device, a confirmation that the secondary clock and the primary clock have entered a synchronous state.

In an aspect, the method further includes: determining, at a predefined time intervals, if the primary clock device is connected to the network.

In an aspect, if the primary clock device is not connected to the network, the method further includes: determining a new primary clock device from the plurality of devices connected to the network where each device of the plurality of devices shares a clock domain identifier.

In an example, a computer program product is provided, the computer program product stored on a computer readable medium which includes a set of non-transitory computer readable instructions for synchronizing device clocks that when executed on a processor is arranged to: discover, over a network, a plurality of devices within a media system; determine a primary clock device of the plurality of devices, the primary clock device having a primary clock; send a clock synchronization request from the primary clock device to a secondary device of the plurality of devices, regardless of whether media content is being rendered by any of the plurality of devices; and, initiate a clock synchronization sequence wherein the clock synchronization sequence is arranged to synchronize a secondary clock of the secondary device with the primary clock of the primary clock device.

In an aspect, each device of the plurality of devices includes at least one device characteristic selected from: an internet protocol (IP) address, a network reliability metric, or a device power type.

In an aspect, determining the primary clock device the set of non-transitory readable instructions are arranged to: select the primary clock device from the plurality of devices, wherein the primary clock device has a lowest IP address of the plurality of devices; select the primary clock device from the plurality of devices based at least in part on the network reliability metric of each device of the plurality of devices; or select the primary clock device from the plurality of devices, wherein the primary clock device has a wall-powered device power type.

In an aspect, the set of non-transitory readable instructions is further arranged to: initiate an initial clock synchronization sequence between the primary clock device and the secondary device, wherein the initial clock synchronization sequence is arranged to synchronize the secondary clock of the secondary device with the primary clock of the primary clock device; enter, with the primary clock device and the secondary device a power saving state; exit, with the primary clock device the power-saving state at a predetermined time interval; and, exit, with the secondary device, the power saving state upon receipt of the clock synchronization request from the primary clock device.

In an aspect, the clock synchronization sequence is arranged to synchronize the secondary clock of the secondary device with the primary clock of the primary clock device over a first time duration.

In an aspect, the set of non-transitory computer readable instructions are further arranged to: receive, at the primary clock device, a confirmation that the secondary clock and the primary clock have entered a synchronous state; and, determine, at predefined time intervals, if the primary clock device is connected to the network.

In an aspect, if the primary clock device is not connected to the network, the set of non-transitory computer readable instructions are further arranged to: determine a new primary clock device from the plurality of devices connected to the network where each device of the plurality of devices shares a clock domain identifier.

In an example, there is provided a system for synchronizing device clocks the system including: a plurality of devices connected to a network, the plurality of devices including: a primary clock device having a primary clock; and, a secondary device having a secondary clock, the secondary device arranged to receive a clock synchronization request from the primary clock device; wherein the primary clock device and the secondary device are arranged to enter a clock synchronization sequence, regardless of whether media content is being rendered by any of the plurality of devices, wherein the clock synchronization sequence is arranged to synchronize the secondary clock of the secondary device with the primary clock of the primary clock device.

In an aspect, each device of the plurality of devices includes at least one device characteristic selected from: an internet protocol (IP) address, network reliability metric, or a device power type.

In an aspect, selecting the primary clock device includes: selecting the primary clock device from the plurality of devices, wherein the primary clock device has a lowest IP address of the plurality of devices; selecting the primary clock device from the plurality of devices based at least in part on the network reliability metric of each device of the plurality of devices; or selecting the primary clock device from the plurality of devices, wherein the primary clock device has a wall-powered device power type.

In an aspect, if the primary clock device is no longer connected to the network, the system selects a new primary clock device from the plurality of devices connected to the network where each device of the plurality of devices shares a clock domain identifier.

These and other aspects of the various embodiments will be apparent from and elucidated with reference to the embodiment(s) described hereinafter.

The present disclosure is directed to improved systems and methods for synchronizing clock devices of a media system within a network. The media system can include a plurality of devices having device clocks, where each device is capable of independently selecting a primary clock device from the plurality of devices to coordinate clock synchronization of the remaining devices, e.g., secondary devices. Each device utilizes the same algorithmic rules to select the primary clock device from among the plurality of devices after an initial exchange of data during a discovery phase. The algorithmic criteria for selection of the primary clock device can be based on random or arbitrary selection, or based on at least one devices characteristic exchanged within the data obtained during the discovery phase. Once selected it is the responsibility of the primary clock device to exit a power-saving state periodically, and coordinate a clock synchronization sequence with each secondary device until each secondary device clock is synchronized to within a predetermined threshold with the primary clock of the primary clock device. Additionally, similar criteria can be applied to the selection of a primary health device to maintain the “health” of the media system and the selection of a primary media distribution device responsible for sending, receiving, or otherwise distributing media content and data to each device.

The techniques and systems described herein provide numerous benefits. For example, the proposed techniques result in a situation where the clocks of all of the devices of the media system (e.g., all media devices on a user's LAN/WLAN) are synchronized at all times (or at least are intended to be synchronized, which could take multiple iterations of the synchronization techniques described herein to achieve). Such a sustained or persistent synchronization, where the synchronization is within an acceptable tolerance (e.g., within 1-30 milliseconds (ms)) results in decreased media device zone/group/pair creation time and thus decreased time to media rendering (e.g., audio playback). In addition, the techniques and systems described herein enables permanent media device zone/group/pair creation, stable multiroom media in the case of device drop offs due to various issues (e.g., power loss), and other experience-enhancing features, such as seamlessly moving media from one device to another without interruption in media playback and enhanced forming of media device zones/groups/pairs via various control techniques (e.g., voice or virtual personal assistant (VPA)-based techniques, in-app based techniques, and from-device based techniques). Other benefits will be apparent in light of this disclosure. Note that in some implementations, the media system is an audio-only system (e.g., including two or more speakers) that manages synchronization for only audio data, while in other implementations the media system is a video-only system (e.g., including two or more displays) that manages synchronization for only video data, while in still other implementations the media system manages synchronization for audio and video data.

Use of the techniques and systems described herein can be detected in numerous ways. For example, use of the techniques and systems can be detected based on low time to media render for high accuracy playback between media devices that have not been previously combined in a zone/group/pair, such as for stereo-paired speakers which have not previously been paired together or for surround-sound systems that had not been previously grouped. Detection can also be based on low time to media for high accuracy playback between media devices that have not rendered audio since being power cycled. Detection can also be based on analysis of network traffic during times where media devices appear to be in a low-power (or dozed) state or not actively rendering media content, as the techniques described herein operate to synchronize devices even in such states, in at least some implementations. Detection via network traffic analysis is more robust when a system (e.g., media devices on a user's LAN/WLAN) contain three or more devices, because the periodic network traffic would be centralized to a single device—the primary clock device—which provides the reference clock for the system. Other ways of detecting use of the techniques and systems described herein will be apparent in light of this disclosure.

1 FIG. 1 2 FIGS.and 1 FIG. 2 FIG. 100 100 102 104 104 106 102 106 102 104 104 106 106 104 104 104 104 138 140 104 104 104 104 104 106 104 104 102 106 106 106 106 Turning now to the figures,is a perspective schematic view of a space S within which a media systemis provided. Media systemincludes a routerarranged to connect a plurality of devicesA-E to a networkwithin space S. Routeris intended to be a network router capable of receiving and forwarding data packets within a network or networks. Additionally, routerincludes a Dynamic Host Configuration Protocol (DHCP) server or service capable of automatically providing and assigning local internet profile (IP) addresses to each device, e.g., devicesA-E, within the networkor networks. Plurality of devicesA-E are intended to include any device capable of sending and receiving data packets containing media data, for example, data related to audio, video, and/or image applications and can include but are not limited to: televisions, smart televisions, wearable audio devices (such as headphones, earbuds, or smart glasses), sound bars, stand-alone speakers, speaker systems, smart hubs, personal computers, portable personal computers, smart phones, and tablets. Additionally, each device of plurality of devicesA-E is capable of entering and exiting a power-saving state(discussed below) and entering and exiting an operating state(discussed below). In one example, as illustrated in, deviceA is a sound bar, deviceB is a portable wireless speaker, deviceC is a smart TV, and devicesD andE are left and right speakers, respectively. Note that five devices are used infor illustrative purposes only, as the techniques described herein can be used with as few as two devices and up to an unlimited number of devices. Therefore, “plurality of devices” as used herein includes “at least two devices” or “two or more devices” or “multiple devices”. Networkis intended to be a local area network (LAN) or a Wireless Local Area Network (WLAN) intended to connect, via wired connections, wireless connections, or a combination of wired or wireless connections, the plurality of devicesA-E to routerand/or to each other within network. However, it should be appreciated that network or networksare not limited to local networks, for example, networkscan include servers, other devices, and routers outside of the local network and can be connected to the internet I (as shown in). Space S is intended to be a room or a plurality of rooms within range of the LAN or WLAN network.

104 104 108 108 110 102 112 114 162 112 116 116 114 118 104 104 120 120 104 104 104 104 4 FIG. 1 FIG. Each device of plurality of devicesA-E includes at least one device characteristic(shown schematically in). Device characteristiccan be selected from at least one of: a local IP address(assigned by, for example, the DCHP server/service of router), a network reliability metric, a device power input type, or a clock domain identifier(discussed below). The network reliability metriccan include information related to an upload speed of a particular connection, a download speed of a particular connection, the Received Signal Strength Indicator (RSSI) corresponding to a particular connection, the connection type, operating physical rate, or packet error/loss rate. The connection type could include, e.g., whether the connection type utilizes an operating frequency of 2.4 GHz or 5.0 GHz, or whether the connection type uses a data cable (i.e., data cable) to transfer data, for example, where data cableis an Ethernet cable. In such an example situation, an ethernet-cable connection type would be preferred over a 5.0 GHz connection type, and both of those connection types would be preferred over a 2.4 GHz connection type, thereby establishing a connection type hierarchy. The packet loss rate and consistency of operating physical rate of the link can be used to determine scalability and/or accuracy of the synchronization (e.g., to determine how many media devices can be included in a given synchronized system). The device power input typecan include information as to whether a particular device utilizes a battery, capacitor, super capacitor, or a standard alternating current (AC) or direct current (DC) power input, e.g., from a connection to a wall outlet power sourceas shown in. Additionally, each device of plurality of devicesA-E can include the ability to produce sound, i.e., an audio playback. Audio playbackmay correspond to data related to music, voice, or audio associated with digital or analog media, and may be produced by a transducer or other equivalent speaker components known in the art. Note that although the plurality of devicesA-E are primarily described herein in the context of being audio devices or at least being capable of audio playback, the techniques also apply to synchronization for video and/or image data. Therefore, each of the plurality of devicesA-E could include at least one of audio playback capabilities, video playback capabilities, or image display capabilities, and the techniques described herein are not intended to be limited to cover clock synchronization for only one of audio, video, or images unless otherwise explicitly stated.

2 FIG. 106 104 104 102 104 104 102 104 104 102 122 122 104 104 102 As illustrated schematically in, networkincludes plurality of devicesA-E connected via router. Each device of plurality of devicesA-E is arranged to communicate with routerand/or arranged to communicate with each other. It should be appreciated that each device can be arranged to communicate with the other devices of plurality of deviceA-E via routeror directly with each other using at least one communication protocol. Communication protocolcan be selected from: WiFi (IEEE 802.11 a/b/g/n/ac/e), Bluetooth Classic, Bluetooth Low-Energy (BLE), Radio Frequency Identification (RFID), ZigBee, Z-Wave, 6LoWPAN, Thread, WiFi-ah, 2G, 3G, 4G, 5G, LTE Cat 0, LTE Cat 1, LTE Cat 3, Near Field Communications (NFC), Simple Service Discovery Protocol (SSDP), Zero-configuration networking tools or protocols (zeroconf), or any other wired or wireless protocol capable of sending and receiving data between each device of plurality of devicesA-E and/or router.

106 104 104 108 108 108 120 106 108 104 104 102 122 104 104 108 104 104 104 104 104 4 FIG. 3 FIG. 4 FIG. 4 FIG. It should be appreciated that within network, each device can send and/or receive data or information relating to each device of plurality of devicesA-E, for example, data or information relating to each device's device characteristics, and store each device's device characteristicsin an internal memory of each device (discussed below and illustrated in). It should be appreciated that this discovery phase DP can utilize a different protocol to send and/or receive device information and device characteristicsthan is used to stream, send, or receive media data to generate an audio playback(discussed below), for example, the discovery phase DP could utilize SSDP protocols or zeroconf tools to discover the devices within networkand exchange device characteristicsbetween each device of plurality of devicesA-E. During the discovery phase DP, as illustrated in, the routeror the network server sends and receives device information via communication protocolto update a product list PL stored in the memory of each device of the plurality of devicesA-E. As illustrated in, during discovery phase DP, each device can store within memory device characteristicsof each device of plurality of devicesA-E. Althoughonly illustrates example components of deviceA, it should be appreciated that each device of plurality of devicesA-E contain substantially similar components.

120 120 120 104 104 124 144 146 148 104 104 124 104 104 128 128 104 124 104 104 128 128 5 FIG. Additionally, in one example, it is desirable to synchronize device clocks so that established left/right pairs of speakers, multi-room speaker configurations, or multi-device speaker configurations can broadcast, generate, or otherwise produce audio playbackwithin an acceptable tolerance such that a user listening to the audio playbackcannot distinguish between audio playbackproduced by each speaker within a space S. To accomplish this synchronization, a primary device can be selected from the plurality of devicesA-E. As illustrated in, in one example, the primary device is selected as a primary clock device, e.g., a device responsible for initiating clock synchronization sequences(discussed below) and sending and receiving clock synchronization requests(discussed below) and acknowledgements(discussed below) between each device of plurality of deviceA-E. Furthermore, once a primary clock deviceis selected from the plurality of devicesA-E, the remaining devices become secondary devicesA-E. For example, if deviceA is selected as the primary clock device, the remaining devicesB-E become secondary devicesB-E.

104 104 104 104 124 104 104 124 130 100 124 130 128 128 132 132 124 104 130 104 104 128 128 132 132 In the foregoing example, each deviceA-E includes an internal device clock capable of keeping independent time. This can be accomplished through various circuit components, for example, through the use of a crystal quartz resonator within each device of the plurality of devicesA-E. Once a primary clock deviceis selected from the plurality of devicesA-E, the primary clock device's clock becomes the primary clockfor media system. Moreover, once the primary clock deviceis selected and the primary clockhas been established, each secondary deviceA-E includes a secondary clockA-E. Therefore, given the example discussed above, primary clock deviceis deviceA having a primary clock, while the remaining devicesB-E become secondary devicesB-E having secondary clocksB-E, respectively.

124 104 104 106 124 126 104 104 124 108 104 104 124 108 104 104 106 104 104 124 104 104 124 104 104 104 104 134 136 124 104 104 124 104 104 104 104 6 FIG. 6 FIG. 2 FIG. To aid in selection of the primary clock device, each device of plurality of devicesA-E within networkis arranged to store and execute, on a respective memory and processor of each device, a set of non-transitory computer readable instructions related to an algorithm for selecting the primary clock deviceor a primary media distribution device(discussed below). The algorithm, executable on each device of plurality of devicesA-E, can utilize the same rule or instruction set to select the primary clock device. For example, the algorithm can be arranged to receive data relating the device characteristicsof each device of plurality of devicesA-E and determine or select the primary clock devicebased on at least one device characteristicof the devices of the plurality of devicesA-E that have been stored in the memory of each device connected within network. In one example, the algorithm, executable on each device of plurality of devicesA-E, is configured to indicate that the primary clock deviceshould be the device with the lowest local IP address. In this way, each device of plurality of devicesA-E will know which device of the plurality is the primary clock device for the purpose of clock synchronization (discussed below). Alternatively, the algorithm can select the primary clock devicefrom the plurality of devicesA-E randomly or arbitrarily. Additionally, the set of non-transitory computer-readable instructions can relate to or contain instructions dedicated to separate software services, for example, each device of plurality of devicesA-E can have a dedicated service for power management, i.e., a power service(shown in), and can have a dedicated service for maintaining and synchronizing clocks, i.e., a clock synchronization service(shown in) as will be discussed below. In some implementations, the algorithm for selecting the primary clock deviceis stored and/or executed on only one of devicesA-E, and the primary clock device selection information is then received by the other devices (e.g., directly from the only one of the devices making the selection or from another source). In some implementations, the algorithm for selecting the primary clock deviceis stored and/or executed at a location that is separate from devicesA-E, such as at a controller that interfaces with one or more of devicesA-E and/or in the cloud (e.g., via internet connection I shown inor via an internet connection of a connected controller, such as a smartphone or tablet).

6 FIG. 104 104 138 100 138 140 134 120 134 104 104 138 138 104 104 138 138 138 138 140 120 As described above and illustrated in, each device of plurality of deviceA-E can enter or exit a power-saving statethroughout normal operation of media system. The entry into or exit from power-saving stateto operation stateand vice-versa is managed by each device's power service. For example, after ten (10) minutes without producing audio playback, the power serviceof deviceA can cause deviceA to enter power-saving state. Within power-saving state, deviceA can still send or receive data; however, the rate at which deviceA sends or receives data while in the power-saving stateis diminished. Additionally, all of the remaining devices of the plurality of devices similarly enter a power-saving stateafter a set duration of inactivity. However, as mentioned above, even in the power-saving stateit is desirable to have the clocks of each device synchronized, or at least synchronized within a certain margin of error, such that when each device exits the power-saving stateand enters an operational statethe devices are already synchronized and can proceed directly into normal operation to, for example, produce audio playback.

124 138 140 142 140 144 104 104 142 144 136 146 124 128 128 128 128 138 128 128 138 146 148 128 128 146 128 128 148 124 144 144 150 6 FIG. In one example, primary clock device, once selected, has the responsibility of independently exiting power-saving stateand entering the operating state, at a predetermined time interval, and while in the operating statecoordinating a clock synchronization sequencewith each secondary device of the plurality of devicesA-E. In one non-limiting example, the predetermined time intervalis on the order of 5 minutes. However, it should be appreciated that this predetermined time interval can be any time interval greater than 0 seconds, such as every 1, 2, 3, 4, 8, 10, 12, 15, 20, 25, or 30 minutes, to provide some additional examples. In some implementations, the predetermined time interval is not constant and changes based on one or more variables, such as information received from synchronization sequence(e.g., how long it takes for the one or more secondary devices to become synchronized). As illustrated in, coordination of the clock synchronization process is managed by the clock synchronization serviceand can include: sending a clock synchronization requestfrom the primary clock deviceto a secondary deviceA-E, initiating an exit of the secondary deviceA-E from a power saving stateif the secondary deviceA-E is in a power-saving stateupon receipt of the clock synchronization request, receiving an acknowledgementfrom the secondary deviceA-E that the clock synchronization requestwas received by the secondary deviceA-E, and upon receipt of the acknowledgementby the primary clock device, entering the clock synchronization sequence. The clock synchronization sequencecan utilize a clock synchronization protocolselected from: a Clock-sampling mutual network synchronization protocol (CS-MNS), a Network Time Protocol (NTP), a Precision Time Protocol (PTP), a Reference Broadcast Time Synchronization protocol (RBS), Synchronous Ethernet protocol, Data-Plane Time-Synchronization Protocol (DPTP) or any other protocol capable of sending, receiving and synchronizing two device clocks over a wired or wireless connection.

144 152 152 124 152 128 128 130 132 104 104 130 132 130 132 154 124 130 132 156 132 156 124 144 128 128 154 156 156 152 144 124 106 138 140 106 124 138 Once initiated, the clock synchronization sequencewill run for a predetermined duration of time, i.e., a first time duration. First time duration, can be, for example, 30 seconds to prevent significant power drain in the event that the primary clock deviceis powered by a battery, capacitor, or super-capacitor as discussed above; however, it should be appreciated that any time interval can be selected, such as 10, 20, 40, or 50 seconds, or 1, 2, or 3 minutes. After the first time duration, the secondary deviceA-E can run a check to determine if the primary clockand the secondary clockmatch within a predefined threshold, e.g., within a range of plus or minus 10 milliseconds. It should be appreciated that the predefined threshold can be selected based on the particular application of plurality of devicesA-E. In one example, the primary clockand secondary clockare positioned within a left/right stereo pair of audio devices. In this example, as the devices of a left/right stereo pair are typically in close proximity to each other, the predefined threshold that the device clocks must maintain is over a smaller or narrower range of plus/minus values, for example, within a range of plus or minus 100 microseconds, e.g., 10 microseconds, 20 microseconds, 50 microseconds, etc. In another example, the primary clockand secondary clockare a part of a multi-room system of audio devices. In this example, as the devices of multi-room system are typically not in close proximity to each other, the predefined threshold that the device clocks must maintain is over a larger or broader range of plus/minus values, for example, within a range of plus or minus 10 milliseconds, e.g., 1 millisecond, 2 milliseconds, 5 milliseconds, etc. If the two clocks are within this predefined threshold, the secondary clock sends a confirmationto the primary clock devicethat the primary clockand the secondary clockhave entered a synchronized state, for example, a state where the primary clock and the secondary clockare within the predefined threshold. If the check resolves in the negative, e.g., the two clocks are not within the predefined threshold, the secondary clock sends a negative confirmation that the two clocks are not in a synchronized stateand the primary clock devicecan reinitiate the clock synchronization sequencewith the secondary deviceA-E. This process continues until the confirmationthat the two clocks are in a synchronized stateor continues for a predetermined number of cycles, e.g., three cycles, and then terminate regardless of whether the two clocks are in the synchronous state. Additionally, it should be appreciated that first time durationcan be dynamic. In other words, if the primary and secondary clocks continuously fall into a synchronous state after 10 seconds of synchronization sequence, first time duration can be limited in future synchronizations to 10-15 seconds to promote efficient power use. Furthermore, the primary clock devicecan simultaneously or sequentially perform this synchronization process with every secondary device connected to networkand/or any device discovered during the discovery phase DP discussed above. Once each secondary device has participated in the clock synchronization process discussed above, each secondary device can optionally reenter power-saving stateor continue within the operational state, and once all of the discovered devices connected to the networkhave participated in the synchronization process, the primary clock devicecan optionally reenter the power-saving state.

124 106 104 124 100 104 106 104 104 104 104 104 158 104 104 160 124 104 104 104 106 158 104 104 162 108 104 104 160 108 160 124 158 104 104 120 104 104 120 7 FIG. 4 FIG. Additionally, periodically it may be necessary and/or desirable to check whether the selected primary clock deviceis still connected to the network. To further the above example, where deviceA is selected as the primary clock device, it is possible that during the operation of media system, deviceA is disconnected from network. This could happen as a result of, for example, deviceA running out of power in the event deviceA is battery powered, or some other form of interference with the data communication to deviceA. If a disconnection occurs, it would be desirable to promote another device from the plurality of devicesA-E as a new primary clock deviceas each device of the plurality of devicesA-E is presumably operating on the same clock domain, e.g., all running clocks that are synchronized with each other, or at least synchronized with each other within a predetermined threshold. The selection of a new primary clock devicefrom the plurality of devicesB-E in the event deviceA is disconnected from networkis illustrated in. To aid in the selection of a new primary clock device, each device of the plurality of devicesB-E utilizes a clock domain identifier(illustrated in), which is included in each device's device characteristicsas discussed above. As each device of plurality of devicesA-E within the same clock domainalready have each device's device characteristicsstored in their respective memories, the algorithm, executable independently on each device, can simply automatically select the next best device from within the clock domainthat meets the same rule or instruction set as originally used to select the primary clock deviceto select the new primary clock devicefrom the remaining devices of the plurality of devicesA-E. Importantly, the process of synchronizing clocks, as discussed above, is not affected by the operational states of any of the devices or the rendering of content, i.e., media data and/or audio playback. In other words, some or all of the devices of plurality of devicesA-E, prior to, during, and/or after the synchronization process discussed herein, can continue to send and receive media data, produce audio playback, and/or otherwise render audio data regardless of and unimpeded by the synchronization process.

124 100 125 126 125 104 104 143 108 125 104 104 124 124 126 125 124 125 106 125 106 125 125 106 124 158 7 FIG. Given the foregoing, in addition to selecting a primary clock device, i.e., primary clock device, it should be appreciated that media systemcan utilize similar selection techniques and rules to select a primary health device(not shown) and a primary media distribution device(not shown). The primary health device, once selected, is responsible for sending and receiving requests and acknowledgments from every device of the plurality of devicesA-E to ensure proper “health” (e.g., responsiveness and/or level of operation) of each device, for example, the primary health device periodically, i.e., at a predefined time interval(not shown), sends request signals to check that each device established in its product list PL, obtained in the discovery phase DP discussed above, is still responsive and ensure that each device's respective device characteristicshave not changed in a way that could affect the media system's performance. If something has changed, the primary health devicecan send corresponding instructions to each device of plurality of devicesA-E requesting that each device reenter the discovery phase DP and update their product lists PL. It should be appreciated that the algorithmic criteria for selection of the primary health device could be the same algorithmic criteria used to select primary clock device, and therefore, the primary clock deviceand the primary health devicecan be embodied by the same device. In one example, the primary health deviceis a separate device from the primary clock device. In this example, the primary health devicecan periodically obtain information from the devices within network. If any of the devices fail to respond to the requests of the primary health device, for example, if they disconnect from the network, primary health deviceis arranged to indicate to each device that they reenter the discovery phase DP and update their respective product lists PL. Importantly, the primary health deviceindicates to the networkthat the primary clock deviceis no longer connected to the network and that a new primary clock deviceshould be selected as discussed above and illustrated in.

104 104 126 124 125 126 106 120 126 104 104 106 124 125 126 104 104 124 125 126 124 126 120 125 124 100 Similarly, each device of plurality of devicesA-E can be designated as a primary media distribution devicethrough similar algorithmic criteria as is used to select the primary clock deviceand the primary health device. The primary media distribution deviceis responsible for sending and receiving media data to each device within network, e.g., data relating to music, voice, or other forms of audio data or video data such that each device can produce audio playback. In one example, primary media distribution devicecan receive an audio stream, video stream, or series of images, from, e.g., a peripheral device such as a smart phone or other media source, and then send, receive, transmit, or otherwise distribute that media data to the other devices of plurality of devicesA-E within network. As the same algorithmic criteria used to select the primary clock devicecan be used to select the primary health deviceand the primary media distribution device, it should be appreciated that each primary device can be embodied within a single device of plurality of devicesA-E. As will be discussed below, the interaction of each primary device, i.e., primary clock device, primary health device, and primary media distribution device, maintains a functioning ecosystem of devices. For example, the primary clock devicewill ensure each device's clocks are synchronized within a predefined threshold so that the primary media distribution deviceaccurately sends and receives data packets with accurate time stamps between each device so that they produce audio playbackwithin space S in a synchronized fashion. Additionally, the primary health deviceperiodically checks the devices connected to the network to at least ensure that the primary clock deviceis constantly connected to the network and available to maintain clock synchronization across media system.

100 104 104 102 108 106 108 104 104 124 100 125 126 124 104 104 110 102 124 114 118 110 124 104 160 138 106 124 138 138 142 124 104 138 104 128 128 104 104 104 104 146 124 128 128 148 128 128 138 146 128 128 144 124 132 132 156 130 124 156 138 120 140 3 FIG. 4 FIG. 5 FIG. 1 FIG. In one example operation of media system, after each device of plurality of devicesA-E is initially powered on within space S, each device communicates with the other devices of the plurality directly or via routerduring a discovery phase DP, as illustrated schematically in. During this discovery phase DP, each device will send and receive information relating to, for example, device characteristicsof each device connected to the network within space S. Each device, will then update a product list PL which includes information relating to all of the other devices connected within network, and stores each device's device characteristicsin the memory of each device as shown schematically in. As discussed above, each device can utilized an algorithm stored in memory and executable by a processor of each device, which determines, based on a set of rules or predefined instructions which device of plurality of devicesA-E will be selected or promoted to the role of primary clock device(shown in). Additionally, using the same or different algorithmic criteria, media systemcan designate or select a primary health device(not shown) and a primary media distribution device(not shown). In one example, the algorithm dictates that the primary clock devicebe selected from the device of the plurality of devicesA-E that has the lowest assigned local IP address(as assigned by the DHCP server/service within router). Alternatively or additionally, the algorithm can layer the preferences for selection of the primary clock device, for example, as the device that has a device power typethat indicates that it is a wall powered device, i.e., is connected to wall outlet(shown in) and has the lowest IP addressof the devices that are wall outlet powered. Once the primary clock deviceis selected, e.g., deviceA, an initial clock synchronization sequence ICS (not shown) is initiated. This sequence can take longer than the periodic synchronization cycles discussed herein in order to place each device on the same clock domain, e.g., have every clock synchronized to within a predetermined threshold. Each device can enter or exit a power-saving stateas needed within network; however, it is the responsibility of the primary clock deviceto periodically exit power-saving state, if it was in power-saving state, at predetermined time interval. After the primary clock device, i.e., deviceA, exits power-saving state, deviceA begins a synchronization process with each secondary deviceB-E, which correspond to devicesB-E of plurality of devicesA-E. The synchronization process involves sending a clock synchronization requestfrom the primary clock deviceto each secondary deviceB-E, and receiving an acknowledgmentfrom each of the secondary devicesB-. After each device exits the power-saving statein response to the clock synchronization request, each secondary deviceB-E enters a clock synchronization sequencewith the primary clock deviceuntil the secondary clocksB-E are in a synchronous state(not shown) with the primary clockof primary clock device. Once in the synchronous state(not shown), each device can optionally resume the state it was in prior to the clock synchronization process, for example, each device can optionally reenter power-saving modeor may continue the production of audio playbackin the operational state.

128 128 132 128 128 130 124 160 126 124 126 128 128 126 140 104 164 166 160 126 128 128 164 164 160 166 164 168 126 164 166 160 Once each device of plurality of secondary devicesB-E is synchronized within the predetermined threshold, each secondary clockof each secondary deviceB-E as well as primary clockof primary clock deviceare now on the same clock domain. In the event that the primary media distribution deviceand the primary clock deviceare not the same device, for example, where the primary media distribution deviceis selected from the plurality of secondary devicesB-E, any locally acquired media data to be distributed from the primary media distribution deviceto and among the plurality of devicesA-E will have local timestamp datawhich will need to be converted to the synchronized timestamp dataof the clock domainby the primary media distribution device. Additionally, every secondary deviceB-E when receiving locally acquired media data having local time stamp data, can make adjustments to any local timestamp dataso that it conforms with the timestamp data of the clock domain, i.e., the synchronized timestamp data. Local timestamp datacan include packet timestampsfor each packet of data sent corresponding to media data sent and/or received by the primary media distribution deviceas well as any time-offset required to convert the local timestamp datato the synchronized timestamp datafor use among the devices within the clock domain.

8 10 FIGS.- 200 200 106 104 104 100 202 124 104 104 124 130 204 124 104 104 124 110 104 104 204 124 104 104 112 104 104 204 124 104 104 124 114 204 200 124 128 132 128 130 206 124 128 138 208 124 138 142 210 146 124 128 104 104 104 104 212 128 138 146 124 214 144 144 132 128 130 124 216 124 154 132 130 156 218 200 143 125 220 158 104 104 106 104 104 160 124 106 222 include a flowchart illustrating the steps of methodas described herein. Methodincludes, for example: discovering, over a network, a plurality of devicesA-E within a media system(step); determining a primary clock deviceof the plurality of devicesA-E, the primary clock devicehaving a primary clock(step); selecting the primary clock devicefrom the plurality of devicesA-E, wherein the primary clock devicehas a lowest IP addressof the plurality of devicesA-E (stepA); selecting the primary clock devicefrom the plurality of devicesA-E based at least in part on the network reliability metricof each device of the plurality of devicesA-E (stepB); or selecting the primary clock devicefrom the plurality of devicesA-E, wherein the primary clock devicehas a wall-powered device power type(stepC). Methodcan further include, for example: initiating an initial clock synchronization sequence ICS between the primary clock deviceand each at least one secondary device, wherein the initial clock synchronization sequence ICS is arranged to synchronize the secondary clockof the secondary devicewith the primary clock(step); entering, with the primary clock deviceand the secondary devicea power-saving state(step); exiting, with the primary clock devicethe power-saving stateat a predetermined time interval(step); sending a clock synchronization requestfrom the primary clock deviceto a secondary deviceof the plurality of devicesA-E, regardless of whether media content is being rendered by any of the plurality of devicesA-E (step); exiting, with the secondary device, the power-saving stateupon receipt of the clock synchronization requestfrom the primary clock device(step); initiating a clock synchronization sequencewherein the clock synchronization sequenceis arranged to synchronize a secondary clockof the secondary devicewith the primary clockof the primary clock device(step); and receiving, at the primary clock device, a confirmationthat the secondary clockand the primary clockhave entered a synchronous state(not shown)(step). Once synchronized, methodcan also include: determining, at predefined time intervals, if the primary clock device is connected to the network using, for example, a primary health device(step); and determining a new primary clock devicefrom the plurality of devicesA-E connected to the networkwhere each device of the plurality of devicesA-E shares a clock domain identifierif the primary clock deviceis no longer connected to the network(step).

All definitions, as defined and used herein, should be understood to control over dictionary definitions, definitions in documents incorporated by reference, and/or ordinary meanings of the defined terms.

The indefinite articles “a” and “an,” as used herein in the specification and in the claims, unless clearly indicated to the contrary, should be understood to mean “at least one.”

The phrase “and/or,” as used herein in the specification and in the claims, should be understood to mean “either or both” of the elements so conjoined, i.e., elements that are conjunctively present in some cases and disjunctively present in other cases. Multiple elements listed with “and/or” should be construed in the same fashion, i.e., “one or more” of the elements so conjoined. Other elements may optionally be present other than the elements specifically identified by the “and/or” clause, whether related or unrelated to those elements specifically identified.

As used herein in the specification and in the claims, “or” should be understood to have the same meaning as “and/or” as defined above. For example, when separating items in a list, “or” or “and/or” shall be interpreted as being inclusive, i.e., the inclusion of at least one, but also including more than one, of a number or list of elements, and, optionally, additional unlisted items. Only terms clearly indicated to the contrary, such as “only one of” or “exactly one of,” or, when used in the claims, “consisting of,” will refer to the inclusion of exactly one element of a number or list of elements. In general, the term “or” as used herein shall only be interpreted as indicating exclusive alternatives (i.e. “one or the other but not both”) when preceded by terms of exclusivity, such as “either,” “one of,” “only one of,” or “exactly one of.”

As used herein in the specification and in the claims, the phrase “at least one,” in reference to a list of one or more elements, should be understood to mean at least one element selected from any one or more of the elements in the list of elements, but not necessarily including at least one of each and every element specifically listed within the list of elements and not excluding any combinations of elements in the list of elements. This definition also allows that elements may optionally be present other than the elements specifically identified within the list of elements to which the phrase “at least one” refers, whether related or unrelated to those elements specifically identified.

It should also be understood that, unless clearly indicated to the contrary, in any methods claimed herein that include more than one step or act, the order of the steps or acts of the method is not necessarily limited to the order in which the steps or acts of the method are recited.

In the claims, as well as in the specification above, all transitional phrases such as “comprising,” “including,” “carrying,” “having,” “containing,” “involving,” “holding,” “composed of,” and the like are to be understood to be open-ended, i.e., to mean including but not limited to. Only the transitional phrases “consisting of” and “consisting essentially of” shall be closed or semi-closed transitional phrases, respectively.

The above-described examples of the described subject matter can be implemented in any of numerous ways. For example, some aspects may be implemented using hardware, software or a combination thereof. When any aspect is implemented at least in part in software, the software code can be executed on any suitable processor or collection of processors, whether provided in a single device or computer or distributed among multiple devices/computers.

The present disclosure may be implemented as a system, a method, and/or a computer program product at any possible technical detail level of integration. The computer program product may include a computer readable storage medium (or media) having computer readable program instructions thereon for causing a processor to carry out aspects of the present disclosure.

The computer readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device. The computer readable storage medium may be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of the computer readable storage medium includes the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon, and any suitable combination of the foregoing. A computer readable storage medium, as used herein, is not to be construed as being transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission media (e.g., light pulses passing through a fiber-optic cable), or electrical signals transmitted through a wire.

Computer readable program instructions described herein can be downloaded to respective computing/processing devices from a computer readable storage medium or to an external computer or external storage device via a network, for example, the Internet, a local area network, a wide area network and/or a wireless network. The network may comprise copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers and/or edge servers. A network adapter card or network interface in each computing/processing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium within the respective computing/processing device.

Computer readable program instructions for carrying out operations of the present disclosure may be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, configuration data for integrated circuitry, or either source code or object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk, C++, or the like, and procedural programming languages, such as the “C” programming language or similar programming languages. The computer readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider). In some examples, electronic circuitry including, for example, programmable logic circuitry, field-programmable gate arrays (FPGA), or programmable logic arrays (PLA) may execute the computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry, in order to perform aspects of the present disclosure.

Aspects of the present disclosure are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to examples of the disclosure. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer readable program instructions.

The computer readable program instructions may be provided to a processor of a, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. These computer readable program instructions may also be stored in a computer readable storage medium that can direct a computer, a programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer readable storage medium having instructions stored therein comprises an article of manufacture including instructions which implement aspects of the function/act specified in the flowchart and/or block diagram or blocks.

The computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to produce a computer implemented process, such that the instructions which execute on the computer, other programmable apparatus, or other device implement the functions/acts specified in the flowchart and/or block diagram block or blocks.

The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various examples of the present disclosure. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in the blocks may occur out of the order noted in the Figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts or carry out combinations of special purpose hardware and computer instructions.

Other implementations are within the scope of the following claims and other claims to which the applicant may be entitled.

While various examples have been described and illustrated herein, those of ordinary skill in the art will readily envision a variety of other means and/or structures for performing the function and/or obtaining the results and/or one or more of the advantages described herein, and each of such variations and/or modifications is deemed to be within the scope of the examples described herein. More generally, those skilled in the art will readily appreciate that all parameters, dimensions, materials, and configurations described herein are meant to be exemplary and that the actual parameters, dimensions, materials, and/or configurations will depend upon the specific application or applications for which the teachings is/are used. Those skilled in the art will recognize, or be able to ascertain using no more than routine experimentation, many equivalents to the specific examples described herein. It is, therefore, to be understood that the foregoing examples are presented by way of example only and that, within the scope of the appended claims and equivalents thereto, examples may be practiced otherwise than as specifically described and claimed. Examples of the present disclosure are directed to each individual feature, system, article, material, kit, and/or method described herein. In addition, any combination of two or more such features, systems, articles, materials, kits, and/or methods, if such features, systems, articles, materials, kits, and/or methods are not mutually inconsistent, is included within the scope of the present disclosure.

Classification Codes (CPC)

Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.

Patent Metadata

Filing Date

July 19, 2022

Publication Date

October 6, 2026

Inventors

Liam Bowler
Michael W. Elliot
Debasmit Banerjee

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “Systems and methods for synchronizing device clocks” (US-12756491-B2). https://patentable.app/patents/US-12756491-B2

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.

Systems and methods for synchronizing device clocks — Liam Bowler | Patentable