IP Library Granted Patent US 11,983,522
Granted Patent B2
US 11,983,522 · App. 17/085,541 · Granted May 14, 2024

Edge-based intelligence for over the air update

Inventors: Yi Chang (Saratoga, CA); Yipei Wang (Sunnyvale, CA); Sahir Sait (Mountain View, CA); Ashish Agrawal (Saratoga, CA)
Assignee: Ayla Networks, Inc.
G06F8/65G06F11/1433G06N20/00H04L12/28H04L67/34
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,983,522
App. No.
17/085,541
Granted
May 14, 2024
Kind
B2
Abstract

A computing device receives one or more idle state conditions that indicate an idle device state for a class of devices associated with the computing device. The computing device receives an over the air (OTA) update of a firmware of the computing device, where the OTA update is to be applied by the computing device responsive to detecting the idle device state of the computing device. The computing device identifies a device state of the computing device and determines whether the device state satisfies the one or more idle state conditions. Responsive to determining that the first device state of the computing device satisfies the one or more idle state conditions, the computing device applies the OTA update of the firmware to the computing device.

Claims (85)

1. A method comprising:

receiving, by a processing device executing a wide area network (WAN) accessible service, a firmware update for a plurality of devices, wherein the firmware update is to be provided to the plurality of devices by an over the air (OTA) update;

identifying, using a selection criteria, a set of candidate devices from the plurality of devices to receive the OTA update, wherein the selection criteria comprises one or more device attributes;

determining a status check time interval based on historical usage patterns associated with the set of candidate devices;

determining, by the processing device executing the WAN accessible service, one or more idle state conditions that indicate an idle device state for a class of devices associated with the set of candidate devices, wherein the one or more idle state conditions comprises the status check time interval;

selecting a candidate device from the set of candidate devices to receive the firmware update; and

providing, to the selected candidate device, the one or more idle state conditions and the firmware update, to cause the candidate device to monitor, using a machine learning classifier, for the idle state conditions before applying the firmware update, wherein the one or more idle state conditions are associated with an expiration time period associated with applying the firmware update regardless of the idle state conditions of the selected candidate device.

2. The method of claim 1 , wherein the one or more device attributes comprise at least one of a device property, a client identifier, a device usage value, a time window, a device location, or a current firmware version.

3. The method of claim 1 , wherein determining the one or more idle state conditions further comprises:

receiving the one or more idle state conditions from a user interface of a management console.

4. The method of claim 1 , wherein determining the one or more idle state conditions further comprises:

performing clustering on historical data of device state activity associated with the plurality of devices to divide the historical data into a first subset indicative of an idle state and a second subset indicative of an active state;

determining one or more idle state conditions for the first subset and one or more active state conditions for the second subset; and

generating a machine learning model trained to classify between the idle state and the active state.

5. The method of claim 1 , wherein the one or more idle state conditions comprise at least one of a time period, a device activity level, a device communication port status, a device component status, or a device embedded system status.

6. The method of claim 1 , wherein the candidate device is an internet of things (IoT) device comprising an embedded system, and wherein the embedded system monitors for the idle state conditions before applying the firmware update.

7. The method of claim 1 , wherein providing the one or more idle state conditions to the selected candidate device further comprises:

sending a notification to the selected candidate device to cause the selected candidate device to retrieve the idle state conditions and the firmware update from the WAN accessible service.

8. A method comprising:

receiving, by a computing device, one or more idle state conditions that indicate an idle device state for a class of devices associated with the computing device and an over the air (OTA) update of a firmware of the computing device, wherein the OTA update is to be applied by the computing device responsive to detecting the idle device state of the computing device;

determining, based on historical activity information stored on the computing device, a status check time interval;

identifying, at expiration of the status check time interval, a first device state of the computing device;

determining, using a trained machine learning model executed by the computing device, whether the first device state of the computing device satisfies the one or more idle state conditions associated with applying the OTA update of the firmware to the computing device;

responsive to determining that the first device state of the computing device satisfies the one or more idle state conditions, applying, by the computing device, the OTA update of the firmware to the computing device; and

responsive to determining that the first device state of the computing device fails to satisfy the one or more idle state conditions:

identifying a current device state of the computing device at expiration of an expiration time period associated with the one or more idle state conditions; and

responsive to determining that the current device state of the computing device does not satisfy the one or more idle state conditions, applying, by the computing device, the OTA update of the firmware to the computing device.

9. The method of claim 8 , wherein the first device state of the computing device is identified at a first time, the method further comprising:

determining that a second device state of the computing device does not satisfy the one or more idle state conditions at a second time that occurs before the first time; and

waiting for expiration of the status check time interval before identifying the first device state at the first time.

10. The method of claim 9 , further comprising:

receiving the status check time interval from a wide area network (WAN) accessible service.

11. The method of claim 9 , further comprising:

analyzing the historical activity information stored on the computing device to identify one or more time periods of activity for the computing device; and

determining the status check time interval in view of the one or more time periods of activity.

12. The method of claim 8 , wherein applying the OTA update further comprises:

saving the first device state of the computing device to a saved state;

determining a completion status of the OTA update of the firmware; and

sending, to a wide area network (WAN) accessible service, a notification that indicates the completion status of the OTA update of the firmware for the computing device.

13. The method of claim 12 , further comprising:

detecting a failure to apply the OTA update of the firmware;

restoring the first device state of the computing device to the saved state;

identifying a device state condition that caused the failure;

determining that the device state condition that cause the failure has ceased; and

reapplying the OTA update of the firmware.

14. The method of claim 8 , further comprising:

responsive to determining that the first device state of the computing device does not satisfy the one or more idle state conditions, starting a timer that expires at the expiration of the expiration time period; and

responsive to determining that the timer has expired, determining the expiration of the expiration time period.

15. The method of claim 8 , wherein the one or more idle state conditions are associated with a second expiration time period, the method further comprising:

responsive to determining that the first device state of the computing device does not satisfy the one or more idle state conditions, starting a timer that expires at an end of the second expiration time period;

determining that the timer has expired;

identifying a second current device state of the computing device; and

determining that the second current device state of the computing device does not satisfy the one or more idle state conditions;

deleting the OTA update of the firmware from a memory of the computing device; and

sending, to a wide area network (WAN) accessible service, a notification to indicate that the OTA update of the firmware has failed.

16. The method of claim 8 , wherein the one or more idle state conditions comprise at least one of a time period, a device activity level, a device communication port status, a device component status, or a device embedded system status.

17. The method of claim 8 , wherein the computing device is an internet of things (IoT) device comprising an embedded system.

18. The method of claim 8 , further comprising:

storing the OTA update of the firmware in a memory of the computing device.

19. The method of claim 8 , further comprising:

receiving a notification from a WAN accessible service that indicates that the OTA update of the firmware is available for the computing device;

retrieving the OTA update from the WAN accessible service;

retrieving the one or more idle state conditions from the WAN accessible service; and

storing the OTA update and the one or more idle state conditions in a memory of the computing device.

20. A system comprising:

a computing device comprising:

a memory; and

a processing device operatively coupled to the memory, the processing device to:

receive one or more idle state conditions that indicate an idle device state for a class of devices associated with the computing device and an over the air (OTA) update of a firmware of the computing device, wherein the OTA update is to be applied by the computing device responsive to detecting the idle device state of the computing device;

determine, based on historical activity information stored on the computing device, a status check time interval;

identify, at expiration of the status check time interval, a first device state of the computing device;

determine, using a trained machine learning model executed by the computing device, whether the first device state of the computing device satisfies the one or more idle state conditions associated with applying the OTA update of the firmware to the computing device;

responsive to determining that the first device state of the computing device satisfies the one or more idle state conditions, apply the OTA update of the firmware to the computing device; and

responsive to determining that the first device state of the computing device does not satisfy the one or more idle state conditions:

identify a current device state of the computing device at expiration of an expiration time period associated with the one or more idle state conditions; and

responsive to determining that the current device state of the computing device does not satisfy the one or more idle state conditions, apply the OTA update of the firmware to the computing device.

21. The system of claim 20 , further comprising:

a server computing device comprising:

a second memory; and

a second processing device operatively coupled to the second memory, the second processing device to execute a WAN accessible service to:

receive a second firmware update for a plurality of devices, wherein the firmware update is to be provided to the plurality of devices by a second over the air (OTA) update;

identify, using a selection criteria, a set of candidate devices from the plurality of devices to receive the second OTA update, wherein the selection criteria comprises one or more device attributes;

determine one or more second idle state conditions that indicate a second idle device state for a second class of devices associated with the set of candidate devices;

selecting a candidate device from the set of candidate devices to receive the firmware update; and

providing the one or more second idle state conditions to the selected candidate device to cause the candidate device to monitor for the second idle state conditions before applying the second firmware update.

Assignments (4)
SECURITY INTEREST Recorded Jul 2, 2025
From: AYLA NETWORKS, INC.
To: PINNACLE VENTURES, L.L.C., AS AGENT
Reel/Frame 071597/0059 →
CORRECTIVE ASSIGNMENT TO CORRECT THE RECEIVING PARTY FROM AYLA NETWORKS, NC. TI AYLA NETWORKS, INC. PREVIOUSLY RECORDED AT REEL: 055716 FRAME: 0287. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Oct 21, 2021
From: CHANG, YI; WANG, YIPEI; SAIT, SAHIR; AGRAWAL, ASHISH
To: AYLA NETWORKS, INC.
Reel/Frame 057885/0290 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 25, 2021
From: CHANG, YI; WANG, YIPEI; SAIT, SAHIR; AGRAWAL, ASHISH
To: AYLA NETWORKS, NC.
Reel/Frame 055716/0287 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 19, 2021
From: CHANG, YI; WANG, YIPEI; SAIT, SAHIR; AGRAWAL, ASHISH
To: AYLA NETWORKS, INC.
Reel/Frame 055341/0971 →
Continuity (1)
Related Publication 20220137948A1 · May 5, 2022