Caution

▷ Check at regular intervals whether updates are available.

▷ Install updates promptly to address potential security vulnerabilities.

The RevPi I/O Modules and RevPi Gateways come with their own firmware installed. New firmware versions fix bugs and improve the function of the expansion modules. The update is transferred from the RevPi base module over the PiBridge to the expansion module using the application piTest.

How the Update Works #

  • During a firmware update the cyclic data exchange with all expansion modules is stopped. The process image is not updated and outputs are no longer controlled until the update has finished.

  • An update takes a few seconds up to a minute per expansion module.

  • Each expansion module is updated individually. This allows the update to be run specifically for each device.

  • The firmware update does not affect the PiCtory configuration of the RevPi system stored on the base module. Module-specific data such as the serial number is retained on the device.

Updating an Expansion Module #

Caution
Damage to the device software caused by disconnecting the power supply during the update

If the device is disconnected from the power supply during the update, it may become irreversibly locked up.

▷ Do not disconnect the device from the power supply during a firmware update.

▷ Do not disconnect the power supply even if the update fails. Instead, restart the update.

Checking the Firmware Version #

▷ Log in to the RevPi via a terminal.

▷ Check the addresses and firmware versions of the connected devices with:

piTest -d

❯ For every configured device the address, type and firmware version are displayed:

Address: 31 module type: 96 (0x60) RevPi DIO V1.7
Module is present
     input offset: 0 length: 70
    output offset: 70 length: 18

Updating the Firmware #

✓ Perform the update during an operating phase in which the data exchange between the devices may be interrupted.

✓ Ensure that the expansion module is properly connected to the RevPi base module.

✓ Ensure that the expansion module is part of your PiCtory configuration and is shown by piTest -d.

The firmware files are included in the revpi-firmware package and are located in the /lib/firmware/revpi/ directory.

▷ Install the latest firmware files with:

sudo apt update
sudo apt install revpi-firmware

▷ Start the firmware update with:

piTest --module <address> -f

▷ Confirm the start of the update with yes.

❯ The firmware is transferred to the expansion module and it restarts with the new version. This takes a few seconds.

The firmware is only written if the available version is newer than the running version.

In exceptional cases it can be necessary to write the firmware again, even if the version is identical or older.

▷ Force the update with:

piTest --module <address> --force -f
Note

RevPi Gateways with firmware versions that do not yet support retrieving device information are reported as not present. They can still be updated this way.

Rescue Update #

If an update transfer fails, piControl automatically retries it.
If all automatic retry attempts fail, the expansion module remains in update mode and can be restored.
In update mode the expansion module does not respond to the module scan, and piTest -d reports it as not present.
The expansion module is not damaged, it is waiting for another update attempt.

Restoring the Expansion Module #

✓ piControl version 2.8.0 or higher

You can retrieve the installed piControl version with modinfo piControl.
Also see Installing Software Updates.

▷ Start the firmware update again with:

piTest --module <address> -f

❯ In most cases the update completes successfully.

If piTest still does not detect the expansion module, it outputs a rescue command, for example:

The module might be stuck in firmware update mode, retry with: piTest --module 31 --rescue 1 -f

▷ Run the output command, or build it yourself:

piTest --module <address> --rescue <hardware revision> -f

❯ After a successful rescue update the expansion module restarts and is detected again.

Troubleshooting #

Problem Cause Solution

The update reports that the firmware is already up to date.

The available firmware version is not newer than the version on the module.

Use the --force option if you want to write it anyway.

piTest reports Failed to update firmware.

Typical causes are a missing firmware file, an undetected expansion module, or communication errors during the transfer.

Check the kernel log with dmesg for details.

The kernel log shows Failed to load firmware.

There is no firmware file for your combination of device type and hardware revision in /lib/firmware/revpi/.

Install the latest revpi-firmware package.
If the file is still missing, there is no published update for this expansion module.

The update is refused with Disconnected modules can’t be updated.

The expansion module is configured but was not detected.

Check that the expansion module is properly connected.
If the expansion module was working before a failed update, it is waiting in update mode.
Run a rescue update.

The power LED of an expansion module lights red after a failed update.

The expansion module is waiting in update mode.

Run a rescue update.
Do not interrupt the power supply.

A RevPi Gateway is no longer reachable after other expansion modules were updated.

Gateways with older firmware can misinterpret update commands and accidentally switch into update mode.
This does not damage the gateway’s firmware.

Switch the gateway’s power off and on again, it then restarts.
Install an update for the gateway if available.

Further Resources #