# US 11,327,456 B2 · Efficient controller data generation and extraction

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

- Number: US 11,327,456 B2
- Document ID: US11327456B2
- Status: Granted
- Kind: B2
- Application number: 17/361,081
- Filed: 2021-06-28
- Published: 2021-12-30
- Granted: 2022-05-10
- Earliest claimed: 2020-06-29
- Assignees: Aurora Labs Ltd.
- Applicants: Aurora Labs Ltd.
- Inventors: Zohar Fox; Oren Sokoler; Kfir Ben Shimon
- Web page: https://patentgrep.com/patent/US11327456B2

## CPC

- G05B 19/0426: {Programming the control sequence}
- G06F 8/658: Incremental updates; Differential updates
- G06F 8/71: Version control (security arrangements therefor G06F21/57); Configuration management
- G06F 16/219: {Managing data history or versioning (querying versioned data G06F16/2474; querying temporal data G06F16/2477)}
- G05B 2219/23301: Load program from file system of a controller
- G06F 8/63: {Image based installation; Cloning; Build to order}
- G05B: CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS (systems for controlling or regulating non-electric variables G05D; systems for regulating electric or magnetic variables G05F; control devices or systems insofar as characterised by mechanical features only G05G)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Disclosed herein are techniques for efficiently providing controller data as part of a maintenance or update process. Techniques include receiving, from a first remote computing device, a message associated with at least one controller; extracting, based on the received message, an image of software associated with the at least one controller; accessing, based on the extracted image, a delta file; and transmitting the accessed delta file to a second remote computing device.

## Claims

### Claim 1

A non-transitory computer-readable medium including instructions that, when executed by at least one processor, cause the at least one processor to perform operations for efficiently providing controller data as part of a maintenance or update process, the operations comprising:
receiving, from a first remote computing device, a message associated with at least one electronic control unit (ECU) and comprising an identifier;
extracting, based on the received message, an image of software associated with the at least one ECU;
generating a delta file, the generating comprising:
determining a stored image of software using the identifier;
comparing the extracted image of software to the stored image of software; and
based on the comparison, determining differences between the extracted image of software and the stored image of software, the delta file representing the differences; and
transmitting the generated delta file to a second remote computing device for updating software on the second remote computing device.

### Claim 2 (depends on 1)

The non-transitory computer-readable medium of claim 1, wherein the transmitted delta file is configured for a program to construct an image based on the transmitted delta file.

### Claim 3 (depends on 2)

The non-transitory computer-readable medium of claim 2, wherein the constructed image is configured for being flashed over a communication bus in a vehicle.

### Claim 4 (depends on 1)

The non-transitory computer-readable medium of claim 1, wherein the message is transmitted from the first remote computing device based on the first remote computing device determining that two software version identifiers are different, the extracted image of software being associated with one of the software version identifiers.

### Claim 5 (depends on 1)

The non-transitory computer-readable medium of claim 1, wherein the extracted image is a binary image.

### Claim 6 (depends on 1)

The non-transitory computer-readable medium of claim 1, the operations further comprising storing the extracted image in a database.

### Claim 7 (depends on 6)

The non-transitory computer-readable medium of claim 6, wherein the stored image is a most recently stored image of software for ECUs associated with the identifier.

### Claim 8 (depends on 6)

The non-transitory computer-readable medium of claim 6, wherein
storing the extracted image in the database comprises storing the extracted image with previously extracted images associated with the identifier.

### Claim 9 (depends on 1)

The non-transitory computer-readable medium of claim 1, wherein the extracted image and the previously extracted images are associated with respective vehicle identification numbers (VINs).

### Claim 10 (depends on 1)

The non-transitory computer-readable medium of claim 1, wherein the identifier is a software version identifier.

### Claim 11 (depends on 10)

The non-transitory computer-readable medium of claim 10, wherein
the stored image of software is stored in a database.

### Claim 12 (depends on 1)

The non-transitory computer-readable medium of claim 1, wherein the identifier is an ECU identifier.

### Claim 13 (depends on 1)

The non-transitory computer-readable medium of claim 1, wherein the stored image of software is a most recently stored image of software for the identifier.

### Claim 14 (depends on 1)

The non-transitory computer-readable medium of claim 1, the operations further comprising compressing the delta file prior to transmitting it to the second computing device.

### Claim 15 (depends on 1)

The non-transitory computer-readable medium of claim 1, wherein
the second computing device includes client software configured to build the extracted image based on the transmitted delta file.

### Claim 16 (depends on 1)

The non-transitory computer-readable medium of claim 1, wherein the delta file is transmitted in response to determining damage to a system.

### Claim 17

A method for efficiently providing controller data as part of a maintenance or update process, the method comprising:
receiving, from a first remote computing device, a message associated with at least one electronic control unit (ECU) and comprising an identifier;
extracting, based on the received message, an image of software associated with the at least one ECU;
generating a delta file, the generating comprising:
determining a stored image of software using the identifier;
comparing the extracted image of software to the stored image of software; and
based on the comparison, determining differences between the extracted image of software and the stored image of software, the delta file representing the differences; and
transmitting the generated delta file to a second remote computing device for updating software on the second remote computing device.
