Skip to content

Implement Over-The-Air Firmware Updates #4

@Koloss0

Description

@Koloss0

Each subsystem needs to be reprogrammable. In order to accomplish this, we will need an update installer. The base work for this has already been done in a demo project by @edvirs here.

This is a big task that will require careful consideration of software design, and the hardware itself. You will also need to finalize the update commands from the command list.

The following must be implemented for this issue to be considered complete:

  • All functionality from the example project is implemented into its own module called update_installer.
  • The commands pertaining to the updating process are finalized in the command reference.
  • The module is wrapped in an easy-to-use interface to initialize and perform updates. Your interface must keep in mind that CDH will be using SPI to download updates while every other subsystem will be using CAN.
  • The received .ELF file is checked for corruption after being downloaded from CAN. This will be accomplished by sending a CRC value with the .ELF file. Once the entire file has been loaded, a new CRC value is calculated and compared against the received CRC. If it matches, the update proceeds. If it fails, an error is reported to CDH.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions