# US 12,001,825 B2 · Method and apparatus for vehicle software update installation

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

- Number: US 12,001,825 B2
- Document ID: US12001825B2
- Status: Granted
- Kind: B2
- Application number: 15/047,715
- Filed: 2016-02-19
- Published: 2017-08-24
- Granted: 2024-06-04
- Earliest claimed: 2016-02-19
- Assignees: Ford Global Technologies, LLC
- Applicants: Ford Global Technologies, LLC
- Inventors: Sangeetha Sangameswaran; Jason Michael Miller; John Naum Vangelov; Brennan Hamilton
- Web page: https://patentgrep.com/patent/US12001825B2

## CPC

- G06F 8/65: Updates (security arrangements therefor G06F21/57)
- G06F 8/656: while running
- H04L 67/06: specially adapted for file transfer, e.g. file transfer protocol [FTP]
- H04L 67/34: {involving the movement of software or configuration parameters (network booting or remote initial program loading [RIPL] G06F9/4416)}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A system includes a processor configured to detect a vehicle key-off. The processor is also configured to delete from a primary memory (“internal memory”) of an electronic control unit an existing software version for which a new software version update exists in a secondary memory of the ECU. The processor is further configured to load the new software version from the secondary memory (“external memory”) into the primary memory and upon detection of a failure during the load, delete the new software version from the primary memory and reload the existing software version from the secondary memory.

## Claims

### Claim 1

A system comprising:
a processor configured to:
detect a vehicle key-off;
responsive to the key-off, suspending vehicle use until an update process can complete;
prior to terminating suspension of vehicle use:;
delete from a primary memory of an electronic control unit (ECU) an existing software version for which a new software version update exists in a secondary memory of the ECU;
load the new software version from the secondary memory into the primary memory; and
upon detection of a failure during the load, delete the new software version from the primary memory and reload the existing software version from the secondary memory; and
responsive to a functioning version of the existing software being in the primary memory as a result of the reload, terminating suspension of vehicle use.

### Claim 2 (depends on 1)

The system of claim 1, wherein the processor is further configured to test the new software version following successful load to the primary memory.

### Claim 3 (depends on 2)

The system of claim 2, wherein the processor is further configured to delete the new software version from the primary memory and reload the existing software version from the secondary memory upon detection of an error during the test.

### Claim 4 (depends on 1)

The system of claim 1, wherein the processor is further configured to delete the new software version from the primary memory and reload the existing software version from the secondary memory if an error occurs when an electronic control unit attempts to utilize the new software version.

### Claim 5 (depends on 1)

The system of claim 1, wherein the processor is configured to reload the existing software version from a location in the secondary memory in which an update resulting in the existing software version was previously stored when the existing software version was first loaded.

### Claim 6 (depends on 1)

The system of claim 1, wherein the processor is configured to copy the existing software version to the secondary memory from the primary memory prior to deleting the existing software version, if the existing software version does not already exist in the secondary memory.

### Claim 7

A computer-implemented method comprising:
detecting software ready to be loaded onto a vehicle and existing in memory of the vehicle;
responsive to a key-off of the vehicle and the detecting, suspending vehicle start up during software update;
deleting from internal memory an existing software version for which a new software version update exists in external memory in response to the vehicle key-off event and during a key-off state prior to a next key-on event;
during the key-off state, loading the new software version into the internal memory from the external memory;
following completion of the deleting and the loading, removing the suspension of vehicle start up; and
responsive to a failure in the loading, deleting the new software version from the internal memory and reloading the existing software version from the external memory.

### Claim 8 (depends on 7)

The method of claim 7, further comprising testing the new software version following successful loading of the new software version into the internal memory.

### Claim 9 (depends on 8)

The method of claim 8, further comprising deleting the new software version from the internal memory and reloading the existing software version from a location where the existing software version exists in the external memory responsive to an error during the testing.

### Claim 10 (depends on 7)

The method of claim 7, further comprising deleting the new software version from the internal memory and reloading the existing software version from a location where the existing software version exists in the external memory responsive to an error occurring when an electronic control unit attempts to utilize the new software version.

### Claim 11 (depends on 7)

The method of claim 7, wherein the reloading includes reloading the existing software version from a location in external memory in which an update resulting in the existing software version was previously stored when the existing software version was first loaded.

### Claim 12 (depends on 7)

The method of claim 7, further comprising copying the existing software version to the external memory prior to deleting the existing software version, if an update corresponding to the existing software version does not already exist in the external memory.

### Claim 13

A non-transitory computer-readable storage medium, storing instructions which, when executed, cause a vehicle processor to perform a method comprising:
suspending vehicle start-up responsive to a key-off state following detection of a new software version in vehicle memory;
deleting an existing software version from internal memory in response to the vehicle key-off event and during a key-off state prior to a next key-on event, during the suspension;
loading the new software version into the internal memory from the external memory during the suspension; and
responsive to a failure in the loading, deleting the new software version from the internal memory and reloading the existing software version from a location where the existing software version exists in the external memory; and
terminating the suspension of vehicle start-up responsive to completion of the reloading.

### Claim 14 (depends on 13)

The storage medium of claim 13, the method further comprising testing the new software version following successful loading of the new software version to the internal memory, during the suspension.

### Claim 15 (depends on 14)

The storage medium of claim 14, the method further comprising deleting the new software version from the internal memory and reloading the existing software version from a location where the existing software version exists in the external memory responsive to an error during the testing.

### Claim 16 (depends on 13)

The storage medium of claim 13, the method further comprising deleting the new software version from the internal memory and reloading the existing software version from a location where the existing software version exists in the external memory responsive to an error occurring when an electronic control unit attempts to utilize the new software version.

### Claim 17 (depends on 13)

The storage medium of claim 13, the method further comprising copying the existing software version to the external memory prior to deleting the existing software version, if an update corresponding to the existing software version does not already exist in the external memory.
