ECU Delta File Updates for Low-Memory Vehicle Software Patching

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current methods for updating Electronic Control Unit (ECU) software in vehicles are inefficient, requiring significant memory, causing downtime, and introducing additional bugs, especially when updating entire software modules over-the-air, and lack efficient mechanisms for differential updates, anomaly detection, and managing dependencies between ECUs.

Innovation Solution

The implementation of delta files that allow for incremental software updates by receiving and integrating delta files into ECUs without rebooting, using position-independent executable code segments, and updating memory addresses, enabling efficient software updates and anomaly detection without significant memory usage or downtime, and utilizing a virtual file system to manage different software versions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If entire ECU software modules are updated over-the-air, then software vulnerabilities can be fixed promptly, but significant memory space is required and additional bugs may be introduced

Engineering Contradiction:
Improvesoftware vulnerability fixationVSAvoidmemory space requirement
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent divides the ECU software update into separate modules or components that can be updated independently. Instead of updating the entire software stack, only specific vulnerable modules are targeted for update, reducing the memory space required while maintaining the ability to fix software vulnerabilities promptly.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent extracts and separates the update mechanism from the main ECU software system. By using a standalone update manager and separating update files from core software, the system can apply updates without requiring significant additional memory space in the main ECU firmware.

Inventive Principle:
Principle #2Taking out (Extraction)

2Reliability

If entire ECU software modules are updated over-the-air, then software vulnerabilities can be fixed promptly, but the update process is inefficient and inconvenient

Engineering Contradiction:
Improvesoftware vulnerability fixationVSAvoidupdate efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The update process is segmented into discrete, manageable modules that can be downloaded, validated, and installed independently. This allows for more efficient over-the-air updates compared to transmitting and installing entire software suites, reducing both transmission time and processing overhead.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements preliminary validation and verification steps before actual software installation. Update packages are pre-validated for integrity and compatibility, and the system prepares receiving buffers and validation routines in advance, making the overall update process more efficient and less prone to errors.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If ECU software is updated using current methods, then updates can be applied, but significant downtime is required and ECU operations are interrupted

Engineering Contradiction:
Improvesoftware update capabilityVSAvoidECU downtime
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The ECU software system is segmented into multiple operational partitions or images. While one partition is being updated, the other continues to operate, allowing for update application without complete system shutdown. This enables non-stop or minimal-downtime updating of critical vehicle control systems.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements dynamic switching between software partitions during update operations. The system can dynamically activate different software versions based on update progress and validation results, allowing seamless transitions that minimize operational interruption and downtime.

Inventive Principle:
Principle #15Dynamics

4Reliability

If ECU memory is used for software updates, then new software versions can be installed, but available storage space is limited and reprogramming is costly

Engineering Contradiction:
Improvesoftware update capabilityVSAvoidreprogramming cost
Core Design Contradiction:
ReliabilityVSEase of manufacture

Solution Approach 1:

The patent extracts the update storage function from the main ECU memory. By using external or dedicated update storage areas separate from primary operational memory, the system can store update packages without consuming valuable ECU flash space, reducing the need for costly memory reprogramming or expansion.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent implements a mechanism where temporary update storage space is allocated only during the update process and then recovered or reused afterward. Update files are temporarily stored in available memory buffers during installation, then discarded after successful deployment, allowing the same memory space to be reused for subsequent operations without permanent allocation.

Inventive Principle:
Principle #34Discarding and recovering

Data Source

PatentUS12260210B2Using data deltas in controllers and managing interdependencies between software versions in controllers using tool chain
Publication Date: 2025.03.25 AURORA LABS LTD
  • US12260210B2 patent drawing
  • US12260210B2 patent drawing
  • US12260210B2 patent drawing

AI summary

Disclosed embodiments relate to perform operations for receiving and integrating a delta file in a vehicle. Operations may include receiving, at an Electronic Control Unit (ECU) in the vehicle, a delta file, the delta file comprising a plurality of deltas corresponding to a software update for software on the ECU and startup code for executing the delta file in the ECU; executing the delta file, based on the startup code, in the ECU; and updating memory addresses in the ECU to correspond to the plurality of deltas from the delta file.