A battery powered node within a wireless mesh network maintains a mapping between temperature and oscillator drift and compensates for oscillator drift based on this mapping. When the mapping includes insufficient data points to map the current temperature to an oscillator drift value, the battery powered node requests calibration packets from an adjacent upstream node in the network. The adjacent node transmits two calibration packets with a transmit time delta and also indicates this time delta in the first calibration packet. The battery powered node receives the two calibration packets and measures the receive time delta. The battery powered node compares the transmit time delta to the receive time delta to determine oscillator drift compared to an oscillator in the adjacent node. The battery powered node then updates the mapping based on the current temperature and determined oscillator drift.
Legal claims defining the scope of protection, as filed with the USPTO.
1. A computer-implemented method for compensating for oscillator drift, the method comprising: acquiring, at a first node residing in a wireless mesh network, a first calibration packet from a second node residing in the wireless mesh network, wherein the first calibration packet specifies a first period of time between transmission of the first calibration packet by the second node and transmission of a second calibration packet by the second node; acquiring, at the first node, the second calibration packet from the second node after a second period of time has elapsed; comparing the second period of time to the first period of time specified in the first calibration packet to determine a first drift value associated with an oscillator included in the first node; and adjusting the oscillator to compensate for the first drift value.
2. The computer-implemented method of claim 1 , further comprising: generating a first temperature measurement; determining a first difference between the first temperature measurement and a second temperature measurement included in a first dataset; determining that the first difference is greater than a first threshold value; and in response, requesting from the second node the first calibration packet and the second calibration packet.
3. The computer-implemented method of claim 1 , further comprising: generating a first temperature measurement; generating a first reference point that includes the first drift value and the first temperature measurement; and updating a dataset to include the first reference point.
4. The computer-implemented method of claim 3 , wherein the dataset comprises a mapping between temperature values and drift values associated with the oscillator.
5. The computer-implemented method of claim 1 , further comprising: generating a first temperature measurement; determining that a first dataset does not include any reference points associated with the first temperature measurement; generating a first estimated reference point that includes the first temperature measurement and a second drift value; and adjusting the oscillator to compensate for the second drift value.
6. The computer-implemented method of claim 5 , wherein generating the first estimated reference point comprises: interpolating between a first reference point included in the first dataset and a second reference point included in the first dataset to generate one or more estimated reference points; and identifying one estimated reference point included in the one or more estimated reference points as the first estimated reference point based on the first temperature measurement.
7. The computer-implemented method of claim 1 , further comprising: determining, based on the oscillator, a number of clock edges that occur between receiving the first calibration packet and receiving the second calibration packet; and determining the second period of time based on the number of clock edges.
8. The computer-implemented method of claim 1 , wherein the first drift value comprises a relative drift between the oscillator and another oscillator included in the second node.
9. A first node residing in a wireless mesh network, comprising: a memory storing a calibration application, and a processor that, upon executing the calibration application, performs the steps of: acquiring a first calibration packet from a second node residing in the wireless mesh network, wherein the first calibration packet specifies a first period of time between transmission of the first calibration packet by the second node and transmission of a second calibration packet by the second node; acquiring a second calibration packet from the second node after a second period of time has elapsed; comparing the second period of time to the first period of time specified in the first calibration packet to determine a first drift value associated with an oscillator included in the first node; and adjusting the oscillator to compensate for the first drift value.
10. The first node of claim 9 , wherein the processor further performs the steps of: generating a first temperature measurement; determining a first difference between the first temperature measurement and a second temperature measurement included in a first dataset; determining that the first difference is greater than a first threshold value; and in response, requesting from the second node the first calibration packet and the second calibration packet.
11. The first node of claim 9 , wherein the processor further performs the steps of: generating a first temperature measurement; generating a first reference point that includes the first drift value and the first temperature measurement; and updating a dataset to include the first reference point.
12. The first node of claim 11 , wherein the dataset comprises a mapping between temperature values and drift values associated with the oscillator.
13. The first node of claim 9 , wherein the processor further performs the steps of: generating a first temperature measurement; determining that a first dataset does not include any reference points associated with the first temperature measurement; generating a first estimated reference point that includes the first temperature measurement and a second drift value; and adjusting the oscillator to compensate for the second drift value.
14. The first node of claim 13 , wherein the processor generates the first estimated reference point by: interpolating between a first reference point included in the first dataset and a second reference point included in the first dataset to generate one or more estimated reference points; and identifying one estimated reference point included in the one or more estimated reference points as the first estimated reference point based on the first temperature measurement.
15. The first node of claim 9 , wherein the first node comprises a battery powered device, and the second node comprises a continuously powered device that includes a temperature compensated crystal oscillator.
16. The first node of claim 9 , wherein the processor further performs the steps of: receiving a request for calibration packets from a downstream node; determining a first transmission time for a third calibration packet; determining a second transmission time for a fourth calibration packet based on the first transmission time and the first period of time; and specifying the first period of time within the third calibration packet.
17. The first node of claim 16 , wherein the processor further performs the steps of: transmitting, based on the oscillator, the third calibration packet to the downstream node at the first transmission time; and transmitting, based on the oscillator, the fourth calibration packet to the downstream node at the second transmission time.
18. A system, comprising: a first node that measures time via a first oscillator and transmits calibration packets to downstream nodes, wherein each calibration packet of one or more of the calibration packets indicates a period of time between a transmit time of the calibration packet and a transmit time of a subsequent calibration packet, and wherein the transmit times of the calibration packet and the subsequent calibration packet are measured according to the first oscillator; and a second node that: resides downstream of the first node, measures time via a second oscillator, receives the calibration packets from the first node, and determines relative drift between the first oscillator and the second oscillator based on a comparison of the period of time indicated by each calibration packet of the one or more of the calibration packets with a period of time between a receive time associated with the calibration packet and a receive time associated with the subsequent calibration packet, wherein the receive times of the calibration packet and the subsequent calibration packet are measured according to the second oscillator.
19. The system of claim 18 , wherein the second node: generates a first temperature measurement; determines a first difference between the first temperature measurement and a second temperature measurement included in a first dataset; determines that the first difference is greater than a first threshold value; and in response, requests the calibration packets from the first node.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
July 20, 2017
November 24, 2020
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.