Low power mode for speech capture devices
A system configured to enable a Wi-Fi processor to enter a low power mode (LPM) for short periods of time without compromising functionality is provided. A device reduces power consumption by enabling the Wi-Fi processor to enter LPM with scheduled wakeup events to enable specific functionality. In some examples, the Wi-Fi processor toggles between LPM and an active mode based on a first duty cycle to enable new device provisioning. The first duty cycle corresponds to a time required to scan a plurality of wireless channels, waking the Wi-Fi processor at a first frequency to monitor for incoming probe requests. In other examples, the Wi-Fi processor uses a second duty cycle chosen to maintain time synchronicity between a time master device and time follower devices. The device sets the second duty cycle to wake the Wi-Fi processor at a second frequency to exchange data packets with synchronized devices.
1. A computer-implemented method, the method comprising:
operating a wireless interface component of a first device in a first mode associated with first power consumption;
determining that a first period of time has elapsed;
after the first period of time has elapsed, operating the wireless interface component in a second mode associated with second power consumption that is lower than the first power consumption;
determining that a second period of time has elapsed;
after the second period of time has elapsed, operating the wireless interface component in the first mode;
receiving, by the wireless interface component while operating in the first mode, a probe request from a second device;
sending, to the second device, a probe response;
establishing a wireless communication session between the first device and the second device; and
sending network data to the second device during the wireless communication session.
2. The computer-implemented method of claim 1 , further comprising, prior to determining that the first period of time has elapsed:
determining a first number of wireless channels associated with a wireless network;
determining a length of time associated with sending a second probe request on one of the first number of wireless channels; and
determining the second period of time using the first number of wireless channels and the length of time.
3. The computer-implemented method of claim 1 , further comprising, prior to determining that the first period of time has elapsed:
determining the second period of time, wherein the first period of time is different than the second period of time.
4. The computer-implemented method of claim 1 , further comprising, prior to receiving the probe request:
establishing, by the first device, a connection to a wireless network using the network data.
5. The computer-implemented method of claim 1 , further comprising:
sending, to a remote device after receiving the probe request, a verification request associated with the second device;
receiving, from the remote device, first data; and
generating the probe response using the first data.
6. The computer-implemented method of claim 1 , further comprising:
sending, to a remote device after receiving the probe request, a verification request associated with the second device;
receiving, from the remote device, first data indicating a network identifier;
creating a wireless network using the network identifier; and
generating the probe response corresponding to the wireless network.
7. The computer-implemented method of claim 1 , further comprising:
establishing, by the first device prior to receiving the probe request, a connection to a wireless network associated with an access point; and
receiving, from a remote device via the wireless network, the network data, wherein the network data corresponds to the wireless network.
8. The computer-implemented method of claim 1 , further comprising:
identifying first wakeup events that are periodically received by the first device on a first schedule having a first time interval between the first wakeup events;
identifying second wakeup events periodically generated by the first device on a second schedule having a second time interval between the second wakeup events; and
synchronizing the second schedule with the first schedule.
9. A system comprising:
at least one processor; and
memory including instructions operable to be executed by the at least one processor to cause the system to:
operate a wireless interface component of a first device in a first mode associated with first power consumption;
determine, by the first device, a first number of devices that are synchronized using a first clock associated with the first device, the first number of devices including a second device and a third device;
determine a first period of time during which the first device is configured to communicate with the first number of devices;
determine a second period of time during which the wireless interface component is configured to operate in a second mode associated with second power consumption that is lower than the first power consumption;
receive, by the wireless interface component while operating in the first mode, first data from the second device;
receive, by the wireless interface component while operating in the first mode, second data from the third device;
operate the wireless interface component in the second mode;
determine that the second period of time has elapsed;
after the second period of time has elapsed, operate the wireless interface component in the first mode; and
receive, by the wireless interface component while operating in the first mode, third data from the second device.
10. The system of claim 9 , wherein the memory further comprises instructions that, when executed by the at least one processor, further cause the system to:
receive, by the wireless interface component, the third data, the third data including a first data packet and a first timestamp associated with the second device transmitting the first data packet; and
send, by the wireless interface component to the second device, fourth data including the first data packet, the first timestamp, and a second timestamp corresponding to receipt of the third data by the first device.
11. The system of claim 9 , wherein the memory further comprises instructions that, when executed by the at least one processor, further cause the system to:
determine a maximum number of time slots available to the first device to communicate with the first number of devices while maintaining synchronization, each of the time slots associated with a third period of time;
determine the first period of time by multiplying the first number of devices and the third period of time;
determine a difference between the maximum number of time slots and the first number of devices; and
determine the second period of time by multiplying the difference and the third period of time.
12. The system of claim 9 , wherein the memory further comprises instructions that, when executed by the at least one processor, further cause the system to:
determine a time interval corresponding to a frequency with which the second device synchronizes with the first device; and
determine the second period of time by subtracting the first period of time from the time interval.
13. The system of claim 9 , wherein the memory further comprises instructions that, when executed by the at least one processor, further cause the system to:
receive, during a first portion of the first period of time, the first data from the second device;
send, during the first portion of the first period of time, fourth data to the second device;
receive, during the first portion of the first period of time, the second data from the third device; and
send, during the first portion of the first period of time, fifth data to the third device.
14. The system of claim 9 , wherein the first clock is synchronized with a second clock of the second device using a first synchronization value, and the memory further comprises instructions that, when executed by the at least one processor, further cause the system to:
receive an instruction to synchronize the first clock with the second clock using a second synchronization threshold value that is smaller than the first synchronization threshold value; and
set the second period of time equal to zero.
15. The system of claim 9 , wherein the memory further comprises instructions that, when executed by the at least one processor, further cause the system to:
determine, by the second device, a third period of time during which the second device is configured to communicate with the first device;
determine, by the second device, a fourth period of time during which a second wireless interface component of the second device is configured to operate in the second mode;
operate the wireless interface component in the second mode;
determine that the fourth period of time has elapsed;
after the fourth period of time has elapsed, operate the second wireless interface component in the first mode; and
send, by the second wireless interface component while operating in the first mode, the third data to the first device.
16. The system of claim 9 , wherein the memory further comprises instructions that, when executed by the at least one processor, further cause the system to:
identify first wakeup events that are periodically received by the first device on a first schedule having a first time interval between the first wakeup events;
identify second wakeup events periodically generated by the first device on a second schedule having a second time interval between the second wakeup events; and
synchronize the second schedule with the first schedule.
17. A computer-implemented method, the method comprising:
operating a wireless interface component of a first device in a first mode associated with first power consumption;
determining, by the first device, a first number of devices that are synchronized using a first clock associated with the first device, the first number of devices including a second device and a third device;
determining a first period of time during which the first device is configured to communicate with the first number of devices;
determining a second period of time during which the wireless interface component is configured to operate in a second mode associated with second power consumption that is lower than the first power consumption;
receiving, by the wireless interface component while operating in the first mode, first data from the second device;
receiving, by the wireless interface component while operating in the first mode, second data from the third device;
operating the wireless interface component in the second mode;
determining that the second period of time has elapsed;
after the second period of time has elapsed, operating the wireless interface component in the first mode; and
receiving, by the wireless interface component while operating in the first mode, third data from the second device.
18. The computer-implemented method of claim 17 , further comprising:
receiving, by the wireless interface component, the third data, the third data including a first data packet and a first timestamp associated with the second device transmitting the first data packet; and
sending, by the wireless interface component to the second device, fourth data including the first data packet, the first timestamp, and a second timestamp corresponding to receipt of the third data by the first device.
19. The computer-implemented method of claim 17 , further comprising:
determining a maximum number of time slots available to the first device to communicate with the first number of devices while maintaining synchronization, each of the time slots associated with a third period of time;
determining the first period of time by multiplying the first number of devices and the third period of time;
determining a difference between the maximum number of time slots and the first number of devices; and
determining the second period of time by multiplying the difference and the third period of time.
20. The computer-implemented method of claim 17 , further comprising:
determining a time interval corresponding to a frequency with which the second device synchronizes with the first device; and
determining the second period of time by subtracting the first period of time from the time interval.