IP Library Granted Patent US 10,849,086
Granted Patent B2
US 10,849,086 · App. 15/655,031 · Granted Nov 24, 2020

Compensating for oscillator drift in wireless mesh networks

Inventors: Kamal Poorrezaei (San Jose, CA); Brandon Inberg (Belmont, CA)
Assignee: ITRON NETWORKED SOLUTIONS, INC.
H04W56/003H04B17/318H04J3/0664H04W56/001H04W56/0075H04J3/0655H04J3/0667H04W84/18
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 10,849,086
App. No.
15/655,031
Granted
Nov 24, 2020
Kind
B2
Abstract

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.

Claims (73)

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.

Assignments (4)
SECURITY INTEREST Recorded Nov 30, 2023
From: ITRON, INC.; ITRON NETWORKED SOLUTIONS, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
Reel/Frame 065727/0302 →
CHANGE OF NAME Recorded Feb 1, 2018
From: SILVER SPRING NETWORKS, INC.
To: ITRON NETWORKED SOLUTIONS, INC.
Reel/Frame 045221/0804 →
SECURITY INTEREST Recorded Jan 8, 2018
From: ITRON, INC.; ITRON NETWORKED SOLUTIONS, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 045017/0893 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 20, 2017
From: POORREZAEI, KAMAL; INBERG, BRANDON
To: SILVER SPRING NETWORKS, INC.
Reel/Frame 043059/0029 →
Continuity (1)
Related Publication 20190028986A1 · Jan 24, 2019