IP Library Granted Patent US 10,846,048
Granted Patent B2
US 10,846,048 · App. 16/266,101 · Granted Nov 24, 2020

Wireless coordination of audio playback

Inventors: Leo Lay (Oakland, CA); Adrian Harold Chadd (Santa Clara, CA); Haisong Wang (Fremont, CA); Shiwei Zhao (Union City, CA); Li Li (San Jose, CA); Gaylord Yu (San Francisco, CA)
Assignee: EVA Automation, Inc.
G06F3/165H04H60/80H04J3/0632H04J3/0661H04L7/0012H04L7/0016H04L7/033H04L7/0331H04L65/4069H04L65/60H04L65/608H04L65/80H04M1/72558H04N21/233H04N21/4305H04N21/8113H04R3/12H04R27/00H04R2227/005H04R2420/07
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 10,846,048
App. No.
16/266,101
Granted
Nov 24, 2020
Kind
B2
Abstract

An electronic device that coordinates a playback operation is described. In particular, an interface circuit in the electronic device may calculate, based on differences between transmit times when packets were transmitted by a second electronic device and receive times of the packets, relative drift as a function of time between a clock in the interface circuit and a second clock in the second electronic device. Then, the interface circuit may adjust, based on the relative drift, a clock circuit that provides the clock to eliminate the relative drift, and may determine a remaining time offset between the clock and the second clock. Next, the interface circuit may modify a future time when the electronic device is to perform the playback operation based on the remaining time offset to determine a corrected future time, and the electronic device may perform the playback operation at the corrected future time.

Claims (62)

1. An electronic device, comprising:

one or more antennas;

a clock circuit that is configured to provide a clock; and

an interface circuit communicatively coupled to the one or more antennas and the clock circuit, wherein the electronic device is configured to:

receive, from the one or more antennas, packets associated with a second electronic device, wherein a given packet comprises a transmit time, based on a second clock in the second electronic device, when the second electronic device transmitted the given packet;

store receive times when the packets were received, wherein the receive times are based on the clock and are determined in a physical layer in the electronic device;

calculate, based on differences between the transmit times and the receive times, relative drift as a function of time between the clock and the second clock, wherein a given difference is between a given transmit time and a given receive time for a given packet;

adjust, based on the relative drift, the clock circuit that provides the clock to eliminate the relative drift;

determine a remaining time offset between the clock and the second clock;

receive, from the one or more antennas, information associated with the second electronic device specifying a future time when the electronic device is to perform a playback operation; and

modify the future time based on the remaining time offset to determine a corrected future time; and

wherein the electronic device is configured to perform the playback operation at the corrected future time.

2. The electronic device of claim 1 , wherein the transmit time is included in the given packet in one of: a payload; and a media access control (MAC) header.

3. The electronic device of claim 1 , wherein the clock circuit further comprises:

an oscillator configured to provide a reference clock; and

a frequency-locked-loop (FLL) circuit, coupled to the oscillator, configured to generate the clock based on the reference clock; and

wherein the electronic device is configured to eliminate the relative drift by modifying the FLL to adjust the clock.

4. The electronic device of claim 3 , wherein modifying the FLL comprises changing a seed of a synthesizer in the FLL.

5. The electronic device of claim 1 , wherein the transmit time and the receive time are stored on opposite ends of a payload of the given packet; and

wherein the electronic device is configured to determine a duration of the payload and the electronic device is configured to add the duration to the remaining offset time.

6. The electronic device of claim 1 , wherein the transmit times comprise second counter values corresponding to the second clock and the receive times comprise counter values corresponding to the clock.

7. The electronic device of claim 1 , wherein the packets comprise audio data in payloads;

wherein the electronic device is configured to store the audio data in a queue; and

wherein the playback operation comprises outputting the audio data from the queue.

8. The electronic device of claim 1 , wherein the adjusting the clock and the modifying the future time coordinate the playback operation in a clock domain of the clock to within a predefined value of a clock domain of the second clock.

9. The electronic device of claim 1 , wherein the packets comprise control packets.

10. The electronic device of claim 1 , wherein the second electronic device is a master and the electronic device is a slave.

11. The electronic device of claim 1 , wherein the receive times are associated with a wireless ranging capability of the interface circuit; and

wherein the given difference ignores a spatial distance between the electronic device and the second electronic device.

12. A non-transitory computer-readable storage medium for use with an electronic device, the computer-readable storage medium storing program instructions that, when executed by the electronic device, coordinates a playback operation by causing the electronic device to perform one or more operations comprising:

receiving, from one or more antennas in the electronic device, packets associated with a second electronic device, wherein a given packet comprises a transmit time, based on a second clock in the second electronic device, when the second electronic device transmitted the given packet;

storing receive times when the packets were received, wherein the receive times are based on a clock in the electronic device and are determined in a physical layer in the electronic device;

calculating, based on differences between the transmit times and the receive times, relative drift as a function of time between the clock and the second clock, wherein a given difference is between a given transmit time and a given receive time for a given packet;

adjusting, based on the relative drift, a clock circuit that provides the clock to eliminate the relative drift;

determining a remaining time offset between the clock and the second clock;

receiving, from the one or more antennas, information associated with the second electronic device specifying a future time when the electronic device is to perform the playback operation;

modifying the future time based on the remaining time offset to determine a corrected future time; and

performing the playback operation at the corrected future time, wherein the adjusting the clock and the modifying the future time coordinate the playback operation in a clock domain of the clock to within a predefined value of a clock domain of the second clock.

13. The non-transitory computer-readable storage medium of claim 12 , wherein the transmit time is included in the given packet in one of: a payload; and a media access control (MAC) header.

14. The non-transitory computer-readable storage medium of claim 12 , wherein the transmit time and the receive time are stored on opposite ends of a payload of the given packet; and

wherein the one or more operations comprise adding a duration of the packet to the remaining offset time.

15. The non-transitory computer-readable storage medium of claim 12 , wherein the packets comprise audio data in payloads;

wherein the one or more operations comprise storing the audio data in a queue; and

wherein the playback operation comprises outputting the audio data from the queue.

16. A method for coordinating a playback operation, comprising:

by an electronic device:

receiving, from one or more antennas in the electronic device, packets associated with a second electronic device, wherein a given packet comprises a transmit time, based on a second clock in the second electronic device, when the second electronic device transmitted the given packet;

storing receive times when the packets were received, wherein the receive times are based on a clock in the electronic device and are determined in a physical layer in the electronic device;

calculating, based on differences between the transmit times and the receive times, relative drift as a function of time between the clock and the second clock, wherein a given difference is between a given transmit time and a given receive time for a given packet;

adjusting, based on the relative drift, a clock circuit that provides the clock to eliminate the relative drift;

determining a remaining time offset between the clock and the second clock;

receiving, from the one or more antennas, information associated with the second electronic device specifying a future time when the electronic device is to perform the playback operation; and

modifying the future time based on the remaining time offset to determine a corrected future time; and

by the electronic device:

performing the playback operation at the corrected future time, wherein the adjusting the clock and the modifying the future time coordinate the playback operation in a clock domain of the clock to within a predefined value of a clock domain of the second clock.

17. The method of claim 16 , wherein the transmit time is included in the given packet in one of: a payload; and a media access control (MAC) header.

18. The method of claim 16 , wherein the adjusting comprises modifying a seed of a synthesizer in a frequency-locked loop (FLL) in the clock circuit.

19. The method of claim 16 , wherein the transmit time and the receive time are stored on opposite ends of a payload of the given packet; and

wherein the method further comprises adding a duration of the packet to the remaining offset time.

20. The method of claim 16 , wherein the packets comprise audio data in payloads;

wherein the method further comprises storing the audio data in a queue; and

wherein the playback operation involves outputting the audio data from the queue.

Assignments (8)
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL (REEL/FRAME 057187/0613) Recorded Apr 12, 2022
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: B & W GROUP LTD
Reel/Frame 059988/0688 →
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL (REEL/FRAME 057187/0572) Recorded Apr 12, 2022
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: B & W GROUP LTD
Reel/Frame 059988/0738 →
ABL PATENT SECURITY AGREEMENT Recorded Aug 16, 2021
From: B & W GROUP LTD
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 057187/0572 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Aug 16, 2021
From: B & W GROUP LTD
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 057187/0613 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 29, 2021
From: DEI SALES, INC.
To: B&W GROUP LTD
Reel/Frame 055174/0024 →
RELEASE OF SECURITY INTEREST Recorded Jan 29, 2021
From: LUCID TRUSTEE SERVICES LIMITED
To: EVA AUTOMATION, INC.; EVA HOLDING, CORP.; EVA OPERATIONS CORP.
Reel/Frame 055174/0064 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 29, 2021
From: EVA AUTOMATION, INC.; EVA HOLDING, CORP.; EVA OPERATIONS CORP.
To: DEI SALES, INC.
Reel/Frame 055222/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 3, 2019
From: LAY, LEO; CHADD, ADRIAN HAROLD; WANG, HAISONG; ZHAO, SHIWEI; LI, LI; YU, GAYLORD
To: EVA AUTOMATION, INC.
Reel/Frame 048224/0973 →