Embedded Firmware Updates with Partitioned Differential Compression

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing firmware update methods for IoT devices face challenges due to limited computing power, memory resources, and storage space, leading to high traffic and time consumption, and lack of compatibility across devices with varying functions and resources.

Innovation Solution

A firmware update method for embedded devices that includes a bootloader program and a firmware update acquisition program, utilizing differential and compression updates, along with data processing in the bootloader program to optimize memory usage and support multiple update modes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional FOTA update methods are used on IoT devices, then firmware can be updated remotely, but traffic consumption and time consumption increase significantly

Engineering Contradiction:
Improvefirmware update capabilityVSAvoidupdate time consumption
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The firmware is segmented into multiple partitions (e.g., first partition and second partition) that can be updated independently. The update acquisition program selectively updates only necessary partitions rather than the entire firmware, reducing update time and traffic consumption while maintaining reliable firmware update capability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The bootloader program performs preliminary verification of update packages before full installation. It checks integrity, validates partitions, and prepares the system for selective updates, which reduces unnecessary data transmission and accelerates the overall update process.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If traditional FOTA update methods are used on IoT devices, then firmware can be updated remotely, but traffic consumption increases significantly

Engineering Contradiction:
Improvefirmware update capabilityVSAvoidtraffic consumption
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The firmware update is divided into selective partition updates. The update acquisition program identifies which specific partitions need updating and transmits only those portions, significantly reducing traffic consumption while ensuring reliable updates are applied where needed.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system changes the parameter of update granularity from whole-firmware to partition-level. By controlling the scope and size of update data transmitted based on actual needs, traffic consumption is reduced while maintaining update reliability.

Inventive Principle:
Principle #35Parameter changes

3Device complexity

If a unified firmware update solution is adopted, then implementation is simplified, but compatibility across devices with varying functions and resources is reduced

Engineering Contradiction:
Improveupdate solution complexityVSAvoiddevice compatibility
Core Design Contradiction:
Device complexityVSAdaptability or versatility

Solution Approach 1:

The update acquisition program is designed with multi-functionality to handle different update scenarios. It can perform full firmware updates, selective partition updates, and verification operations, making it universally applicable across devices with varying functions and resources while maintaining adaptability.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The update mechanism dynamically adapts to different device configurations and requirements. The system can adjust update strategies based on available resources, partition structures, and specific device needs, providing both simplicity through a unified approach and versatility through adaptive behavior.

Inventive Principle:
Principle #15Dynamics

4Quantity of substance

If limited memory resources are used in IoT devices, then device size and cost are reduced, but firmware update capability is compromised

Engineering Contradiction:
Improvememory resourceVSAvoidfirmware update capability
Core Design Contradiction:
Quantity of substanceVSReliability

Solution Approach 1:

Firmware is segmented into multiple partitions that can be managed independently. This allows the system to update only necessary partitions using limited memory resources, avoiding the need to load entire firmware images into memory and thus preserving update capability despite constrained resources.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The verification and processing logic for firmware updates is extracted into a dedicated bootloader program that operates with minimal memory footprint. This separates the resource-intensive update operations from the main application, enabling reliable updates even with limited available memory.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS20250307410A1Firmware update method for embedded device, embedded device, and development end device
Publication Date: 2025.10.02 ESPRESSIF SYST SHANGHAI
  • US20250307410A1 patent drawing
  • US20250307410A1 patent drawing
  • US20250307410A1 patent drawing

AI summary

Disclosed in the present application are a firmware update method for an embedded device, an embedded device, a development end device, and a firmware update system for an embedded device. In response to that an update triggering module detects a triggering event for updating firmware of the embedded device, a data receiving module acquires transmission data from a source device, and writes update data for firmware update of the embedded device in the transmission data into a partition storing the transmission data. A data processing module processes the received update data according to update mode information in the transmission data to obtain new firmware data, and applies the new firmware data from a partition storing the new firmware data during the running of a bootloader program, so as to accomplish the firmware update.