Skip to content

How updates work

JP150PCB 1.3PCB 1.4since 26.10.1Jan PřibyslavskýThis page does not apply to the product or PCB revision chosen in the header.

The update bundle

A release is published as one file, JPx_Update_<version>.zip. It holds the firmware update package, the default DSP program for the boards whose boot memory MuraLink can write (PCB 1.4), the release notes, and a manifest that names the boards the firmware supports. MuraLink reads the bundle in place and checks every file against the manifest before it sends anything to a module. The bundle contains nothing secret and may be passed on.

What the bootloader does

  • Installs only MURA LABS firmware. The bootloader checks every package before it changes anything, and the installed firmware is verified before it is marked valid.
  • Checks the firmware at every start. A firmware that fails the check is not started; the module waits in update mode instead.
  • Refuses downgrades below the floor. Every package carries a security counter. A package below the module's floor is refused, so a withdrawn release cannot be reinstalled; ordinary older releases remain installable.
  • Survives interruptions. A pulled cable or a power loss at any point leaves the module in update mode with the update ready to be repeated. There is no half-installed state that starts.
  • Keeps the settings. Pending settings are written before the module restarts into update mode.

On a production module the update bundle is the only way to change the firmware; the ST ROM bootloader and the old FirmwareUpdater are not used any more.

Update mode

The module enters update mode:

  • when MuraLink sends SYS:BOOTLOADER at the start of an update (the module returns to its firmware by itself after 5 minutes if no update follows);
  • when there is no valid firmware, for example after an interrupted update;
  • after three starts in a row in which the firmware did not come up completely;
  • when the encoder button is held while the module is switched on.

In update mode the module appears on USB as a DFU device (16D0:15B7) and MuraLink lists it under Units in update mode. The LEDs show the state: LED indication. On Linux and macOS the package can be installed with dfu-util; this path is untested so far.

USB identity

From 26.10.1 the application identifies as 16D0:15B8 (USB Audio and the virtual COM port in one composite device) and update mode as 16D0:15B7. Firmware 26.8.0 identified as 0483:5741. Windows installs no driver for either; after the change the PC sees a new device and the COM port number can change.