# US 8,787,210 B2 · Firmware download with adaptive lost packet recovery

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 8,787,210 B2
- Document ID: US8787210B2
- Status: Granted
- Kind: B2
- Application number: 13/833,252
- Filed: 2013-03-15
- Published: 2013-08-15
- Granted: 2014-07-22
- Earliest claimed: 2006-09-15
- Assignees: Itron, Inc.
- Applicants: Itron, Inc.
- Inventors: Gilles Picard
- Web page: https://patentgrep.com/patent/US8787210B2

## CPC

- H04L 41/082: the condition being updates or upgrades of network functionality
- G01D 4/004: {Remote reading of utility meters to a fixed location}
- G01D 4/006: {Remote reading of utility meters to a non-fixed location, i.e. mobile location}
- G08C 19/16: in which transmission is by pulses
- H04L 1/1812: Hybrid protocols; Hybrid automatic repeat request [HARQ]
- H04L 43/0835: {One way packet loss}
- H04L 45/127: {based on intermediate node capabilities}
- H04W 8/005: {Discovery of network devices, e.g. terminals}
- H04L 1/0057: {Block codes (H04L1/0061, H04L1/0064 take precedence)}
- H04L 2001/0093: {Point-to-multipoint}
- H04W 8/245: {from a network towards a terminal}
- H04W 40/10: based on available power or energy
- H04W 48/12: using downlink control channel
- H04W 84/18: Self-organising networks, e.g. ad-hoc networks or sensor networks
- Y02B 90/20: Smart grids as enabling technology in buildings sector (smart grids supporting the management or operation of end-user stationary applications in general, or like technologies with no associated climate change mitigation effect Y04S20/00)
- Y04S 20/30: Smart metering, e.g. specially adapted for remote reading
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G01D: MEASURING NOT SPECIALLY ADAPTED FOR A SPECIFIC VARIABLE; ARRANGEMENTS FOR MEASURING TWO OR MORE VARIABLES NOT COVERED IN A SINGLE OTHER SUBCLASS; TARIFF METERING APPARATUS; MEASURING OR TESTING NOT OTHERWISE PROVIDED FOR
- G08C: TRANSMISSION SYSTEMS FOR MEASURED VALUES, CONTROL OR SIMILAR SIGNALS (fluid pressure transmitting systems F15B; mechanical means for transferring the output of a sensing member into a different variable G01D5/00; mechanical control systems G05G)
- H04W: WIRELESS COMMUNICATION NETWORKS (broadcast communication H04H; communication systems using wireless links for non-selective communication, e.g. wireless extensions H04M1/72)
- Y02B: CLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO BUILDINGS, e.g. HOUSING, HOUSE APPLIANCES OR RELATED END-USER APPLICATIONS
- Y04S: SYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS

## Abstract

Disclosed are methodologies for implementing a firmware download to endpoints in a mesh network. A firmware package is divided into a number of blocks, each block containing a number of packets and sent as a broadcast to endpoints in a wireless mesh network. A number of redundancy packets are sent to permit calculation of lost packets. A maximum number of redundancy packets to be sent is determined and a forward error correction code is developed depending on the maximum number of redundancy packets and the total number of firmware packets to be sent. A first block of redundancy packets, less than the maximum number, is sent followed by additional blocks of redundancy packets depending on reports from the receiving endpoints.

## Claims

### Claim 1

A method for downloading firmware, comprising:
dividing an image of firmware to be downloaded into a plurality of blocks, each block containing a plurality of packets;
broadcasting, by at least one transmitting apparatus, the plurality of blocks;
appending at least one redundancy packet to the broadcast of each of the plurality of blocks; and
computing missing packets within the blocks based on the at least one redundancy packet;
wherein the last block of the plurality of blocks is adjusted in length to fit an exact number of packets to be downloaded.

### Claim 2 (depends on 1)

A method as in claim 1, wherein the number of redundancy packets is a percentage of the total number of packets broadcast.

### Claim 3 (depends on 2)

A method as in claim 2, wherein the percentage is about 5%.

### Claim 4 (depends on 1)

A method as in claim 1, wherein the combined length of the plurality of packets and the at least one redundancy packet corresponds to the length of a forward error correcting code word.

### Claim 5 (depends on 4)

A method as in claim 4, wherein the forward error correcting code word is a Reed-Solomon code word.

### Claim 6 (depends on 5)

A method as in claim 5, wherein computing missing packets comprises Reed-Solomon decoding using an erasure procedure.

### Claim 7 (depends on 1)

A method as in claim 1, further comprising:
reporting computation of missing packet results; and
broadcasting at least one additional redundancy packet based on the reported results.

### Claim 8 (depends on 7)

A method as in claim 7, wherein each broadcast and computation step uses the same Reed-Solomon code.

### Claim 9 (depends on 8)

A method as in claim 8, wherein the Reed-Solomon code is based on a predetermined maximum number of packets to be broadcast.

### Claim 10 (depends on 1)

A method as in claim 1, further comprising sending an acknowledgment request.

### Claim 11

A method for transferring software, comprising:
dividing the software into a plurality of blocks, each block containing a plurality of packets;
establishing a predetermined maximum number of redundancy packets to be downloaded with the plurality of packets;
setting a forward error correction code word to a length equal to that of the total of the plurality of software packets and the predetermined maximum number of redundancy packets;
transferring, by at least one transmitting apparatus a first block of a subset of the plurality of software packets;
transferring a first block of a subset of the predetermined maximum number of redundancy packets; and
computing missing software packets based on the first block of the subset of redundancy packets using the forward error correction code word.

### Claim 12 (depends on 11)

A method as in claim 11, wherein the forward error correction code word is a Reed-Solomon code word.

### Claim 13 (depends on 12)

A method 11 as in claim 12, further comprising:
transferring at least one second block of a subset of the predetermined maximum number of redundancy packets; and
computing missing software packets based on the first and at least one second blocks of the subsets of redundancy packets.

### Claim 14 (depends on 11)

A method as in claim 11, wherein the predetermined maximum number of redundancy packets is a percentage of the total number of software packets to be transferred.

### Claim 15 (depends on 14)

A method as in claim 14, wherein the percentage is about 5%.

### Claim 16

In a wireless mesh network including a head end and at least one cell relay configured to provide communications between the head end and one or more endpoints, a method for updating endpoint firmware, comprising:
dividing an image of firmware to be downloaded into a plurality of blocks, each block containing a plurality of packets;
broadcasting, by at least one transmitting apparatus the plurality of blocks;
appending at least one redundancy packet to the broadcast of each of the plurality of blocks;
computing missing packets within the block based on the at least one redundancy packet;
reporting computation of missing packet results to the cell relay; and
broadcasting, by at least one transmitting apparatus, from the cell relay at least, one additional redundancy packet based on the reported results.

### Claim 17 (depends on 16)

A method as in claim 16, wherein the number of redundancy packets is a percentage of the total number of packets broadcast.

### Claim 18 (depends on 17)

A method as in claim 17, wherein redundancy is about 5%.

### Claim 19 (depends on 16)

A method as in claim 16, wherein the plurality of packets is broadcast from the cell relay to the one or more endpoints.

### Claim 20 (depends on 16)

A method as in claim 16, wherein the last block of the plurality of blocks is adjusted in length to fit an exact number of packets to be downloaded.

### Claim 21 (depends on 16)

A method as in claim 16, wherein the combined length of the plurality of packets and the at least one redundancy packet corresponds to the length of a forward error correcting code word.

### Claim 22 (depends on 21)

A method as in claim 21, wherein the forward error correcting code word is a Reed-Solomon code word.

### Claim 23 (depends on 22)

A method as in claim 22, wherein computing missing packets comprises Reed-Solomon decoding using an erasure procedure.

### Claim 24 (depends on 16)

A method as in claim 16, wherein each broadcast and computation step uses the same Reed-Solomon code.

### Claim 25 (depends on 24)

A method as in claim 24, wherein the Reed-Solomon code is based on a predetermined maximum number of packets to be broadcast.

### Claim 26 (depends on 16)

A method as in claim 16, further comprising sending an acknowledgment request from the cell relay.

### Claim 27 (depends on 16)

A method as in claim 16, wherein at least one of the endpoints comprises a meter.
