IP Library Granted Patent US 9,986,696
Granted Patent B2
US 9,986,696 · App. 14/469,494 · Granted Jun 5, 2018

Irrigation smart controllers with programming and firmware updating

Inventors: Patrick B. Halahan (Santa Rosa, CA); Peter Bice (Sebastopol, CA); Mark Elliot (Santa Rosa, CA)
Assignee: ET Water Systems, Inc.
A01G25/16G05B15/02G05B2219/2642
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 9,986,696
App. No.
14/469,494
Granted
Jun 5, 2018
Kind
B2
Abstract

Embodiments of the present disclosure include systems and methods for downloading and installing software updates upon an irrigation control unit (ICU). Some of the disclosed embodiments include error checking and integrity verification procedures which help ensure that the new software is properly installed. In some embodiments the update is coordinated in conjunction with the ICU's regular contact with a control server.

Claims (50)

1. An irrigation control unit (ICU), comprising:

at least one interface configured to control at least one water distribution element;

at least one network interface;

at least one processor;

a first memory; and

a second memory comprising:

a boot portion comprising a first family ID value;

instructions executable by the at least one processor to:

receive, from a first server address via the at least one network interface, a time and a second server address to request a software update;

request a data block associated with the software update based upon a block number associated with the block;

receive the data block, a first error code, and a second family ID value from the second server address via the at least one network interface;

determine that the first family ID value and second family ID value are the same;

confirm an integrity of the data block based upon the first error code;

generate a second error code based upon the data block;

store the data block in the first memory;

confirm the integrity of the data block as stored in the first memory based upon the second error code;

generate a third error code based upon a plurality of data blocks stored in the first memory, the plurality of data blocks including the first data block;

confirm the integrity of the plurality of data blocks based upon the third error code;

store a plurality of configuration parameters to the second memory;

transfer a portion of contents of the first memory to the second memory, the portion comprising the data block as stored in the first memory; and

restart the ICU based in part upon the boot portion.

2. The ICU of claim 1 , wherein the second memory comprises a watering schedule.

3. The ICU of claim 1 , wherein the first error code, the second error code, and the third error code are cyclic redundancy checks.

4. The ICU of claim 1 , the instructions further executable by the at least one processor to:

create an event based upon at least one of the first error code, the second error code; and the third error code.

5. The ICU of claim 4 , the instructions further executable by the at least one processor to:

transmit the event to a server.

6. An irrigation control unit (ICU), comprising:

at least one interface configured to control a water distribution element;

at least one processor;

a first memory; and

a second memory comprising instructions executable by the at least one processor to:

receive a data block and a first error code from a server;

confirm an integrity of the data block based upon the first code;

store the data block in the first memory;

transfer the contents of the first memory to the second memory;

create a first event based on the first error code received from the server;

generate a second error code based on a directory;

generate a third error code based on a binary code in the first memory;

create a second event based on the second error code;

create a third event based on the third error code; and

restart the ICU.

7. The ICU of claim 6 , the instructions further executable by the at least one processor to:

transmit at least one of the first event, the second event, and the third event to the server.

8. The ICU of claim 6 , the instructions further executable by the at least one processor to:

receive a time to request a download; and

request the data block from the server at the time to request prior to receiving the data block from the server.

9. The ICU of claim 6 , wherein storing the data block in a first memory comprises storing the data block in a directory in the first memory, wherein the directory comprises a first address entry and a second address entry, wherein the first address entry comprises the beginning of the block in the first memory and the second address entry comprises the beginning of the block in the second memory.

10. The ICU of claim 6 , wherein the ICU comprises a first family code at a fixed location in a boot sector and the data block comprises a second family code, the method further comprising verifying that the first family code of the boot sector and the second family code of the data block are consistent.

11. The ICU of claim 10 , wherein the boot sector comprises all operating code needed to interpret a directory in the first memory, to burn the contents of the first memory into the second memory according to the directory, and to restart the system.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 9, 2024
From: ET WATER SYSTEMS, INC.
To: HUSQVARNA AB
Reel/Frame 068532/0509 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 25, 2017
From: HALAHAN, PATRICK B.; BICE, PETER; ELLIOT, MARK
To: ET WATER SYSTEMS, INC.
Reel/Frame 043684/0236 →
Continuity (2)
Provisional Application 61870126 · Aug 26, 2013
Related Publication 20150057818A1 · Feb 26, 2015