Building Software Releases For Modern Amplifiers And Streamers
By Chris Mann
Principle Software Engineer, Global Engineering
HARMAN Luxury Audio Group
Modern amplifiers and streamers rely on software controlled microprocessors for control, digital signal processing and streaming functionality. Each microprocessor requires its own software to run. In many cases this software can be complex and require periodic updates to ensure that existing features can be updated or new features added.
For instance, the world of streaming is developing rapidly, with regular changes being made by service providers requiring regular updates for the streaming module.
The Upgrade Package
To simplify the update mechanism, the software updates for the individual microprocessors are bundled into a single upgrade package, and the initiation of the upgrade is controlled by one of the microprocessors in the device.
It is the responsibility of the upgrade microprocessor to take the upgrade package file, unpack it into its individual upgrade files and distribute them to the relevant microprocessor which will then be responsible for upgrading itself. Two-way communication may be required between microprocessors to streamline the upgrade process and ensure that the User is kept informed of the upgrade's progress.
Preparing a Release
Preparing an upgrade package for release can involve a number of steps split over a number of different software suppliers. These can involve tasks such as:
Generating Software Release For a Single Microprocessor
Each microprocessor used in the device will have its own software and mechanism for updating itself. The first step in preparing a release is to develop and test the code that is to run on the microprocessor, generate a “compiled” version of the code, and then package that up into a microprocessor update package.
Packaging the Microprocessor Releases
Once all the microprocessor upgrade packages have been prepared they are combined into a single “Upgrade Package”. This will involve generating an Upgrade package file which contains the individual microprocessor update packages, and some metadata that describes the structure of the package.
Signing the Release
To ensure the integrity of the Upgrade Package, and to make sure that the device cannot be infected with unsolicited software the package may be “Signed”. This process involves signing the package with a digital certificate that is strongly linked to the device supplier. This is then checked during the upgrade to ensure that the Upgrade Package has come from a reliable source.
Distributing the Release
Once the Upgrade Package has been prepare it can be distributed to Users. A number of mechanisms can be used to deliver these updates such as OTA updates automatically downloaded from a website, or USB updates using an update file downloaded from an FTP server.
The final stage of the release process is to copy the Upgrade Package to the appropriate locations, and to prepare any metadata used by the upgrade process.
As you can see there are a significant number of steps in the production of an Upgrade package many of which involve some software processing and generation of metadata. If done manually this can easily become a time consuming process that is prone to error.
At ARCAM our solution has been to use release software that automates many aspects of the process. The software performs a number of functions:
Where the microprocessor software is created in-house we have release software that builds the release version, applying naming and version numbering conventions to the release output.
Some of our products include images which are displayed on the device screens. These are compiled into an Image pack for a release using a feature of the release software and included in the Upgrade Package.
Once the individual release builds have been collated they are built into a single Firmware update package by the release software that is then passed to the Streamer software supplier for inclusion in their software build.
Release Signing and Publishing
Once the final Upgrade Package has been produced by the Streamer software supplier it is digitally signed and published by ARCAM. The release software is responsible for monitoring for new releases, downloading them, signing them, then publishing them to our OTA website.
The software release process has many steps that can be performed by a number of different teams.
This can be a significant task in cases where a device requires a number of different microprocessors each performing a different task.
The use of software to automate the release process has the benefit of applying standards, reducing errors, and speeding up the release process as a whole.