# US 12,112,159 B1 · System and methods for staging data and updating vehicle modules using staged data

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

- Number: US 12,112,159 B1
- Document ID: US12112159B1
- Status: Granted
- Kind: B1
- Application number: 18/619,123
- Filed: 2024-03-27
- Granted: 2024-10-08
- Earliest claimed: 2023-10-29
- Assignees: Integrated Engineering, LLC
- Applicants: Integrated Engineering, LLC
- Inventors: Peter Anthony Blais; Damon Earl; Chelsea Montana Throne
- Web page: https://patentgrep.com/patent/US12112159B1

## CPC

- G06F 8/65: Updates (security arrangements therefor G06F21/57)
- G06F 11/0766: {Error or fault reporting or storing}
- G06F 11/1433: {during software upgrading}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Disclosed are methods, systems, and non-transitory computer readable memory for updating vehicle modules. For instance, a system may include: a user interface device configured to: receive and store a re-program file; and display a graphical user interface configured to receive a user input to initiate a re-program process for at least one onboard module of a vehicle. The system may also include a programming device configured to be physically and communicably coupled to an onboard port of the vehicle. The programming device may be configured to: receive, via a defined sequence of messages with the user interface device, and store, via defined operations with a local cache, mapping-and-byte data; re-program the at least one onboard module using the mapping-and-byte data; and in response to determining a checksum condition is satisfied, transmit a re-program success message to the user interface device.

## Claims

### Claim 1

A system for staging data and updating vehicle modules using staged data, the system comprising:
a user interface device, wherein the user interface device is configured to:
receive and store a re-program file from a server; and
display a graphical user interface configured to receive a user input to initiate a re-program process for at least one onboard module of a vehicle; and
a programming device configured to be physically and communicably coupled to an onboard port of the vehicle,
wherein the onboard port is configured to be communicably coupled with the at least one onboard module,
the programming device is configured to be communicably coupled, via a wired or wireless communication, to the user interface device, and
the programming device is configured to:
receive, via a defined sequence of messages with the user interface device, and store, via defined operations with a local cache, one or combinations of: data checksum map metadata, protocol map metadata, data checksum map information, protocol map information, and a data map (collectively, mapping-and-byte data);
in response to receiving an instruction message from the user interface device, re-program the at least one onboard module using the mapping-and-byte data; and
in response to determining a checksum condition is satisfied, transmit a re-program success message to the user interface device.

### Claim 2 (depends on 1)

The system of claim 1, wherein, to re-program the at least one onboard module using the mapping-and-byte data, the programming device is configured to perform a sequence of operations for an operation group in accordance with the mapping-and-byte data, wherein the sequence of operations includes a plurality of operations; determine whether each operation of the plurality of operations was successful; and, in response to determining an operation was not successful, perform a recovery operation or a failure operation.

### Claim 3 (depends on 2)

The system of claim 2, wherein the plurality of operations includes at least a first operation and a second operation, and the first operation is performed before the second operation.

### Claim 4 (depends on 3)

The system of claim 3, wherein the second operation is performed in response to determining the first operation being successful.

### Claim 5 (depends on 3)

The system of claim 3, wherein, to determine the first operation was successful, the programming device is configured to perform the first operation and determine whether a response from the at least one onboard module matches an expected response.

### Claim 6 (depends on 3)

The system of claim 3, wherein the programming device is configured to, in response to determining the first operation was not successful, determine an end of the operation group as a failure.

### Claim 7 (depends on 3)

The system of claim 3, wherein the programming device is configured to, in response to determining the first operation was not successful, perform a recovery operation associated with the first operation.

### Claim 8 (depends on 7)

The system of claim 7, wherein the recovery operation is a first recovery operation, and the programming device is configured to, in response to determining the first recovery operation was not successful, perform a second recovery operation or determine an end of the operation group as a failure.

### Claim 9 (depends on 3)

The system of claim 3, wherein the programming device is configured to, in response to determining the recovery operation was successful, perform a failure operation associated with the recovery operation.

### Claim 10 (depends on 3)

The system of claim 3, wherein the programming device is configured to, in response to determining the failure operation was successful, proceed to the second operation in the sequence of operations.

### Claim 11 (depends on 2)

The system of claim 2, wherein the programming device is configured to, in response to determining a failure operation was not successful, report a failure of the operation group to the user interface device.

### Claim 12 (depends on 1)

The system of claim 1, wherein, to re-program the at least one onboard module using the mapping-and-byte data, the programming device is configured to perform a sequence of operations for an operation group in accordance with the mapping-and-byte data, wherein the sequence of operations includes a plurality of operations; determine whether each operation of the plurality of operations was successful; and, in response to determining each operation was successful, determine a re-programming was successful.

### Claim 13 (depends on 12)

The system of claim 12, wherein, to determine an operation was successful, the programming device is configured to: confirm whether a response to the operation matches an expected response.

### Claim 14 (depends on 13)

The system of claim 13, wherein an expected response is a confirmation message.

### Claim 15 (depends on 13)

The system of claim 13, wherein an expected response is a non-response or a delayed response.

### Claim 16 (depends on 13)

The system of claim 13, wherein an expected response is a checksum.

### Claim 17 (depends on 13)

The system of claim 13, wherein the plurality of operations include one or combinations of: sending a message, performing a multiple message process, prompting a user for an action, or waiting for a time period.

### Claim 18 (depends on 13)

The system of claim 13, wherein the programming device is configured to recursively loop through the plurality of operations, including the plurality of operations in sequence and, if an operation fails, through any recovery or failure operations until the operation group is successful or until a predetermined number of attempts have been made.
