IP Library Granted Patent US 12,282,373
Granted Patent B2
US 12,282,373 · App. 18/473,406 · Granted Apr 22, 2025

Portable playback device power management

Inventors: Joshua Nicholas (Waltham, MA); Brenda Stefani (Andover, MA); Liang Chai (Acton, MA); Xiang Wang (Braintree, MA); Allan Velzy (Needham, MA); Edwin Joseph Fitzpatrick, III (Boston, MA); Hrishikesh Gossain (Santa Barbara, CA)
Assignee: Sonos, Inc.
G06F1/3228G06F1/324G06F1/3293
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,282,373
App. No.
18/473,406
Granted
Apr 22, 2025
Kind
B2
Abstract

An implementation of portable playback device power management involves launching a power coordinator background process, the power coordinator background process having multiple client programs and establishing respective inter-process communication (IPC) mechanisms between the multiple client programs and the power coordinator background process. The implementation further involves receiving, via the established IPC mechanisms from the multiple client programs, messages indicating that the respective client program is ready to suspend, and determining that each client program of the multiple client programs is ready to suspend. The implementation further includes sending instructions to the operating system to kernel suspend. While in kernel suspend, the playback device detects a particular trigger to kernel resume and in response, performs a kernel resume.

Claims (84)

1. A playback device comprising:

one or more speakers;

one or more amplifiers configured to drive the one or more speakers;

a communications interface configured to facilitate communication over at least one network;

one or more processors; and

at least one non-transitory computer-readable medium comprising program instructions that are executable by the one or more processors such that the playback device is configured to

execute an operating system,

execute one or more programs of a plurality of programs, at least one program of the plurality of programs being a first program that facilitates the playback of audio content by the playback device,

determine that each program of the one or more programs is ready to suspend execution,

suspend execution of the one or more programs and the operating system,

detect one or more triggers of a plurality of triggers to resume execution of the one or more suspended programs and the suspended operating system, the plurality of triggers comprising a wake-on-wireless trigger, a wake-on-touch trigger, and a timeout trigger,

resume, based on detection of the one or more triggers, execution of the one or more suspended programs and the suspended operating system, and

playback, via execution of the first program, the audio content through the one or more speakers and the one or more amplifiers.

2. The playback device of claim 1 , wherein:

the program instructions comprise program instructions executable by the one or more processors to cause the playback device to

determine a current time, and

estimate a system resume time based on a usage history of the playback device; and

to suspend comprises to suspend execution based on a determination that the system resume time is at least a threshold period of time in advance of the current time.

3. The playback device of claim 1 , wherein:

the program instructions comprise program instructions executable by the one or more processors to cause the playback device to generate at least one message indicating imminent suspension of execution of the one or more programs and the operating system; and

to suspend comprises to suspend execution after expiration of at least a pre-determined time period from communication of the at least one message.

4. The playback device of claim 1 , wherein:

the one or more programs comprise a second program that facilitates communication; and

the program instructions comprise program instructions executable by the one or more processors to cause the playback device to

determine, via execution of the second program, that the communications interface is idle,

determine a time that the communications interface is expected to receive packets, and

generate a message that indicates

(i) the second program is ready to suspend, and

(ii) a resume time that is a pre-determined period of time before the time that the communications interface is expected to receive packets.

5. The playback device of claim 1 , wherein:

the one or more programs comprise an update manager program; and

the program instructions comprise program instructions executable by the one or more processors to cause the playback device to

determine, via execution of the update manager program, that no updates are scheduled, and

generate a message that indicates

the update manager program is ready to suspend, and

a resume time that is a pre-determined period of time from a current time.

6. The playback device of claim 5 , wherein the program instructions comprise program instructions executable by the one or more processors to cause the playback device to generate one or more messages via execution of the one or more programs, the one or more messages indicating one or more resume times of the one or more programs.

7. The playback device of claim 6 , wherein:

the playback device is configured to operate at one of a plurality of power levels comprising a first power level and a second power level, the first power level being greater than the second power level;

the one or more messages indicate one or more power level requirements of the one or more programs; and

the program instructions comprise program instructions executable by the one or more processors to cause the playback device to

determine, based on the one or more messages, a highest power level requirement from the one or more power level requirements, and

operate at a power level of the plurality of power levels that supports the highest power level requirement, wherein to operate at the power level comprises one or more of to decrease a frequency of at least one processor of the one or more processors or to disable one or more cores of the one or more processors.

8. The playback device of claim 1 , wherein:

the one or more programs comprise at least one critical program; and

the program instructions comprise program instructions executable by the one or more processors to cause the playback device to prevent suspension of execution of the one or more programs and the operating system where the at least one critical program is disconnected.

9. The playback device of claim 8 , wherein the at least one critical program is the first program.

10. The playback device of claim 5 , wherein the one or more programs comprise one or more client programs.

11. A method of power management method executed by a playback device, the method comprising:

executing an operating system;

executing one or more programs of a plurality of programs, the plurality of programs comprising a first program that facilitates playback of audio content by the playback device;

determining that each program of the one or more programs is ready to suspend execution;

suspending execution of the one or more programs and the operating system;

detecting one or more triggers of a plurality of triggers to resume execution of the one or more suspended programs and the suspended operating system, the plurality of triggers including a wake-on-wireless trigger, a wake-on-touch trigger, and a timeout trigger;

resuming, based on detection of the one or more triggers, execution of the one or more suspended programs and the suspended operating system; and

playing back, via execution of the first program, the audio content via one or more speakers and one or more amplifiers.

12. The method of claim 11 , further comprising:

determining a current time; and

estimating a system resume time based on a usage history of the playback device, wherein suspending execution comprises suspending execution based on a determination that the system resume time is at least a threshold period of time in advance of the current time.

13. The method of claim 11 , further comprising generating at least one message indicating imminent suspension of execution of the one or more programs and the operating system, wherein suspending execution comprises suspending execution after expiration of at least a pre-determined time period from communication of the at least one message.

14. The method of claim 11 , wherein detecting one or more triggers comprises detecting the wake-on-wireless trigger.

15. The method of claim 11 , further comprising:

generating one or more messages via execution of the one or more programs, the one or more messages indicating one or more resume times of the one or more programs; and

setting the timeout trigger based on an earliest time of the one or more resume times.

16. The method of claim 15 , wherein the one or more programs comprise a second program, the method further comprising:

determining, via execution of the second program, that a communications interface of the playback device is idle; and

determining a time that the communications interface is expected to receive packets;

wherein generating the one or more messages includes generating a message that indicates that the second program is ready to suspend; and

wherein the one or more resume times includes a network resume time that is a pre-determined period of time before the time that the communications interface is expected to receive packets.

17. The method of claim 11 , wherein detecting one or more triggers comprises detecting the wake-on-touch trigger.

18. A non-transitory computer readable medium storing instructions executable by one or more processors to cause a playback device to execute a power management method, the instructions comprising instructions to:

execute an operating system;

execute one or more programs of a plurality of programs, at least one program of the plurality of programs being a first program that facilitates playback of audio content by the playback device;

determine that each program of the one or more programs is ready to suspend execution;

suspend execution of the one or more programs and the operating system;

detect one or more triggers of a plurality of triggers to resume execution of the one or more suspended programs and the suspended operating system, the plurality of triggers including a wake-on-wireless trigger, a wake-on-touch trigger, and a timeout trigger;

resume, based on detection of the one or more triggers, execution of the one or more suspended programs and the suspended operating system; and

playback, via execution of the first program, the audio content through one or more speakers and one or more amplifiers of the playback device.

19. The non-transitory computer readable medium of claim 18 , wherein the one or more programs comprise a second program, and wherein the instructions further comprise instructions to:

determine, via execution of the second program, that a communications interface of the playback device is idle;

determine a time that the communications interface is expected to receive packets; and

generate a message that indicates

(i) the second program is ready to suspend, and

(ii) a resume time that is a pre-determined period of time before the time that the communications interface is expected to receive packets.

Assignments (2)
SECURITY INTEREST Recorded Jan 30, 2026
From: SONOS, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 074533/0615 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 16, 2023
From: NICHOLAS, JOSHUA; STEFANI, BRENDA; CHAI, LIANG; WANG, XIANG; VELZY, ALLAN; FITZPATRICK, EDWIN JOSEPH; GOSSAIN, HRISHIKESH
To: SONOS, INC.
Reel/Frame 065231/0423 →
Continuity (4)
Continuation 18058958 · Nov 28, 2022
Continuation 17443885 · Jul 28, 2021
Continuation 16435214 · Jun 7, 2019
Related Publication 20240012463A1 · Jan 11, 2024
References Cited (68)
US 5440644A · Farinelli et al. · 1995 [cited by applicant]
US 5761320A · Farinelli et al. · 1998 [cited by applicant]
US 5923902A · Inagaki · 1999 [cited by applicant]
US 6032202A · Lea et al. · 2000 [cited by applicant]
US 6256554B1 · DiLorenzo · 2001 [cited by applicant]
US 6404811B1 · Cvetko et al. · 2002 [cited by applicant]
US 6469633B1 · Wachter · 2002 [cited by applicant]
US 6522886B1 · Youngs et al. · 2003 [cited by applicant]
US 6611537B1 · Edens et al. · 2003 [cited by applicant]
US 6631410B1 · Kowalski et al. · 2003 [cited by applicant]
US 6757517B2 · Chang · 2004 [cited by applicant]
US 6778869B2 · Champion · 2004 [cited by applicant]
US 7130608B2 · Hollstrom et al. · 2006 [cited by applicant]
US 7130616B2 · Janik · 2006 [cited by applicant]
US 7143939B2 · Henzerling · 2006 [cited by applicant]
US 7236773B2 · Thomas · 2007 [cited by applicant]
US 7295548B2 · Blank et al. · 2007 [cited by applicant]
US 7391791B2 · Balassanian et al. · 2008 [cited by applicant]
US 7483538B2 · McCarty et al. · 2009 [cited by applicant]
US 7571014B1 · Lambourne et al. · 2009 [cited by applicant]
US 7630501B2 · Blank et al. · 2009 [cited by applicant]
US 7643894B2 · Braithwaite et al. · 2010 [cited by applicant]
US 7657910B1 · McAulay et al. · 2010 [cited by applicant]
US 7853341B2 · McCarty et al. · 2010 [cited by applicant]
US 7987294B2 · Bryce et al. · 2011 [cited by applicant]
US 8014423B2 · Thaler et al. · 2011 [cited by applicant]
US 8045952B2 · Qureshey et al. · 2011 [cited by applicant]
US 8103009B2 · McCarty et al. · 2012 [cited by applicant]
US 8234395B2 · Millington · 2012 [cited by applicant]
US 8483853B1 · Lambourne · 2013 [cited by applicant]
US 8942252B2 · Balassanian et al. · 2015 [cited by applicant]
US 20010042107A1 · Palm · 2001 [cited by applicant]
US 20020022453A1 · Balog et al. · 2002 [cited by applicant]
US 20020026442A1 · Lipscomb et al. · 2002 [cited by applicant]
US 20020124097A1 · Isely et al. · 2002 [cited by applicant]
US 20030157951A1 · Hasty, Jr. · 2003 [cited by applicant]
US 20040024478A1 · Hans et al. · 2004 [cited by applicant]
US 20070142944A1 · Goldberg et al. · 2007 [cited by applicant]
US 20150277545A1 · Flowers et al. · 2015 [cited by applicant]
US 20160246348A1 · Ambapuram et al. · 2016 [cited by applicant]
EP 1389853A1 · 2004 [cited by applicant]
WO 200153994 · 2001 [cited by applicant]
WO 2003093950A2 · 2003 [cited by applicant]
AudioTron Quick Start Guide, Version 1.0, Mar. 2001, 24 pages. [cited by applicant]
AudioTron Reference Manual, Version 3.0, May 2002, 70 pages. [cited by applicant]
AudioTron Setup Guide, Version 3.0, May 2002, 38 pages. [cited by applicant]
Bluetooth. “Specification of the Bluetooth System: The ad hoc SCATTERNET for affordable and highly functional wireless connectivity,” Core, Version 1.0 A, Jul. 26, 1999, 1068 pages. [cited by applicant]
Bluetooth. “Specification of the Bluetooth System: Wireless connections made easy,” Core, Version 1.0 B, Dec. 1, 1999, 1076 pages. [cited by applicant]
Dell, Inc. “Dell Digital Audio Receiver: Reference Guide,” Jun. 2000, 70 pages. [cited by applicant]
Dell, Inc. “Start Here,” Jun. 2000, 2 pages. [cited by applicant]
“Denon 2003-2004 Product Catalog,” Denon, 2003-2004, 44 pages. [cited by applicant]
European Patent Office, European EPC Article 94.3 mailed on Feb. 22, 2023, issued in connection with European Application No. 18190934.2, 4 pages. [cited by applicant]
International Searching Authority, International Search Report and Written Opinion mailed on Oct. 14, 2020, issued in connection with International Application No. PCT/US2020/036429, filed on Jun. 5, 2020, 9 pages. [cited by applicant]
Jo et al., “Synchronized One-to-many Media Streaming with Adaptive Playout Control,” Proceedings of SPIE, 2002, pp. 71-82, vol. 4861. [cited by applicant]
Jones, Stephen, “Dell Digital Audio Receiver: Digital upgrade for your analog stereo,” Analog Stereo, Jun. 24, 2000 http://www.reviewsonline.com/articles/961906864.htm retrieved Jun. 18, 2014, 2 pages. [cited by applicant]
Louderback, Jim, “Affordable Audio Receiver Furnishes Homes With MP3,” TechTV Vault. Jun. 28, 2000 retrieved Jul. 10, 2014, 2 pages. [cited by applicant]
Notice of Allowance mailed on Aug. 2, 2023, issued in connection with U.S. Appl. No. 18/058,958, filed Nov. 28, 2022, 11 pages. [cited by applicant]
Notice of Allowance mailed on Sep. 28, 2022, issued in connection with U.S. Appl. No. 17/443,885, filed Jul. 28, 2021, 14 pages. [cited by applicant]
Notice of Allowance mailed on Apr. 9, 2021, issued in connection with U.S. Appl. No. 16/435,214, filed Jun. 7, 2019, 9 pages. [cited by applicant]
Palm, Inc., “Handbook for the Palm VII Handheld,” May 2000, 311 pages. [cited by applicant]
Presentations at WinHEC 2000, May 2000, 138 pages. [cited by applicant]
[cited by applicant]
U.S. Appl. No. 60/490,768, filed Jul. 28, 2003, entitled “Method for synchronizing audio playback between multiple networked devices,” 13 pages. [cited by applicant]
U.S. Appl. No. 60/825,407, filed Sep. 12, 2006, entitled “Controlling and manipulating groupings in a multi-zone music or media system,” 82 pages. [cited by applicant]
UPnP; “Universal Plug and Play Device Architecture,” Jun. 8, 2000; version 1.0; Microsoft Corporation; pp. 1-54. [cited by applicant]
Yamaha DME 64 Owner's Manual; copyright 2004, 80 pages. [cited by applicant]
Yamaha DME Designer 3.5 setup manual guide; copyright 2004, 16 pages. [cited by applicant]
Yamaha DME Designer 3.5 User Manual; Copyright 2004, 507 pages. [cited by applicant]