IP Library Granted Patent US 11,809,257
Granted Patent B2
US 11,809,257 · App. 18/058,958 · Granted Nov 7, 2023

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 11,809,257
App. No.
18/058,958
Granted
Nov 7, 2023
Kind
B2
Abstract

Example techniques related to portable playback device power management. An example implementation 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 (83)

1. A portable playback device comprising:

one or more speakers;

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

a battery;

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 portable 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 control program that configures the portable playback device to playback audio content,

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,

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 control program, the audio content through the one or more speakers and the one or more amplifiers.

2. The portable playback device of claim 1 , wherein:

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

determine a current time, and

estimate a system resume time based on a usage history of the portable 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 portable playback device of claim 1 , wherein:

the program instructions comprise program instructions executable by the one or more processors to cause the portable 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 portable playback device of claim 1 , wherein to detect the one or more triggers comprises to detect one or more of a power button trigger, a battery voltage level trigger, a wake-on-wireless trigger, or a timeout trigger.

5. The portable playback device of claim 1 , wherein:

the one or more programs comprise a network manager program; and

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

determine, via execution of the network manager 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

the network manager program is ready to suspend, and

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

6. The portable 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 portable 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.

7. The portable playback device of claim 1 , wherein the program instructions comprise program instructions executable by the one or more processors to cause the portable 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.

8. The portable playback device of claim 7 , wherein:

the portable 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 portable 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.

9. The portable 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 portable 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.

10. The portable playback device of claim 9 , wherein the at least one critical program is the control program.

11. The portable playback device of claim 1 , wherein the one or more programs comprise one or more client programs.

12. A method of power management method executed by a portable 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 control program that configures the portable playback device to playback audio content;

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;

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 control program, the audio content via one or more speakers and one or more amplifiers.

13. The method of claim 12 , further comprising:

determining a current time; and

estimating a system resume time based on a usage history of the portable 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.

14. The method of claim 12 , 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.

15. The method of claim 12 , wherein detecting one or more triggers comprises detecting one or more of a power button trigger, a battery voltage level trigger, a wake-on-wireless trigger, or a timeout trigger.

16. The method of claim 12 , 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.

17. The method of claim 16 , further comprising setting a timeout trigger based on an earliest time of the one or more resume times;

wherein the plurality of triggers includes the timeout trigger.

18. The method of claim 16 , wherein:

generating the one or more messages comprises generating one or more messages indicating one or more power level requirements of the one or more programs; and

the method further comprises

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

operating the portable playback device at a power level of a plurality of power levels that supports the highest power level requirement.

19. A non-transitory computer readable medium storing instructions executable by one or more processors to cause a portable 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 control program that configures the portable playback device to playback audio content;

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;

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 control program, the audio content through one or more speakers and one or more amplifiers of the portable playback device.

20. The non-transitory computer readable medium of claim 19 , wherein the instructions further comprise instructions to:

generate one or more messages via execution of the one or more programs, the one or more messages indicating one or more power level requirements of the one or more programs;

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

operate the portable playback device at a power level that supports the highest power level requirement.

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 Nov 30, 2022
From: NICHOLAS, JOSHUA; STEFANI, BRENDA; CHAI, LIANG; WANG, XIANG; VELZY, ALLAN; FITZPATRICK, EDWIN JOSEPH; GOSSAIN, HRISHIKESH
To: SONOS, INC.
Reel/Frame 061922/0569 →
Continuity (3)
Continuation 17443885 · Jul 28, 2021
Continuation 16435214 · Jun 7, 2019
Related Publication 20230089875A1 · Mar 23, 2023