Firmware
Updater
Chapter 1About Us
Modbap. Built different. On purpose.
Modbap is an independent music technology company founded by Corry Banks. We design creative instruments and sound-shaping tools for musicians, producers, beatmakers, sound designers, and people who simply love working with sound. Our approach combines opinionated sound, intuitive control, and performance-forward design to create tools that feel immediate, musical, and inspiring to use.
Modbap began in the world of modular synthesis, developing Eurorack hardware shaped by the intersection of electronic music technology, beat culture, and hands-on performance. That foundation still runs through everything we make. Today Modbap extends beyond the rack into software, developing plugins and creative audio tools that bring the same philosophy to the desktop.
1.1 Modbap
Whether hardware or software, the goal is the same: build tools that encourage exploration, spark ideas, and become part of the creative process. Modbap is rooted in beat culture, informed by electronic music, and built for anyone who approaches sound creatively.
1.2 About the firmware updater
Modbap modules are built on the Electro-smith Daisy platform, and the code that gives each module its voice can be replaced. New firmware brings fixes, refinements, and occasionally new behavior to a module you already own, without sending it anywhere and without buying anything.
The updater at updater.modbap.com is how you install it. It runs entirely in your browser and talks to the module over the USB cable, so there is nothing to download, nothing to install, and no driver to find. The page holds the current firmware for every Modbap module, and it walks through the four steps in order.
An update takes about two minutes, most of which is the module writing to its own flash memory while you watch a progress bar.
Chapter 2Before You Start
Three things have to be true before an update can work: the right browser, a data-capable cable, and physical access to the Daisy Seed on the back of the module.
2.1 What you need
- A Chromium browser on a desktop computer. Google Chrome, Microsoft Edge, Brave, Opera, or Arc, on macOS, Windows, or Linux. The updater uses WebUSB, which Safari and Firefox do not support.
- A USB cable that carries data. See below.
- Access to the back of the module, where the Daisy Seed sits. You need to reach its BOOT and RESET buttons and its USB port.
- Power to the module, from your case as normal.
You do not need a Modbap account, and you do not need to be signed in to anything. Firmware is free and the updater is open to everyone.
No browser on iOS or iPadOS supports WebUSB, including Chrome, because every browser on those systems is required to use Safari's engine underneath. Use a desktop or laptop computer.
2.2 The cable is the usual culprit
Many USB cables sold with phone chargers and battery packs carry power but no data. They are physically identical from the outside. A power-only cable will charge a device and will look completely normal, but the updater will never see your module, or will lose it partway through a write.
If the module does not appear in the browser's device dialog, or an update stops with Device Disconnected, change the cable before you change anything else. Use a cable you know has moved files. It is the single most common cause of a failed update.
Connect the module directly to the computer where you can. USB hubs, and especially unpowered hubs and monitor ports, are the second most common cause.
2.3 Supported modules
The dropdown at the top of the updater lists every Modbap module and the current firmware for each. Selecting a module loads its picture, its version number, its changelog, and instructions written for that specific module.
| Module | Update mode | Device to select |
|---|---|---|
| CLRS | Hold BOOT, press RESET | DFU in FS Mode |
| Hue | Hold BOOT, press RESET | DFU in FS Mode |
| Meridian | Hold BOOT, press RESET | DFU in FS Mode |
| Osiris | Hold BOOT, press RESET | DFU in FS Mode |
| Per4mer | Hold BOOT, press RESET | DFU in FS Mode |
| Transit | Hold BOOT, press RESET | DFU in FS Mode |
| Trinity 2.0 | Press RESET, then press BOOT | Daisy Bootloader |
Trinity 2.0 is the exception. It runs from external memory through the Daisy bootloader, so both the button sequence and the name of the device you pick are different. The updater shows you the correct instructions once you have selected it, so follow what is on screen rather than what you remember from another module. The optional firmware check described in Chapter 4 does not work on Trinity 2.0 and is not offered for it. Updating Trinity 2.0 works normally.
This is the question we are asked most often about Trinity, so to be clear: Trinity 2.0 firmware runs on original Trinity hardware and on Trinity 2.0 hardware. There is no separate build for each, and you do not need to know which one you own before updating. Select Trinity 2.0 either way.
The only difference between the two is the type of USB connector on the front panel. Original Trinity has USB Micro there, Trinity 2.0 has USB-C. Nothing else changes, the Daisy Seed included.
That connector is not used for firmware updates. On both versions you update through the USB connector on the Daisy Seed at the rear of the module, exactly as Step 1 describes, and the four steps are the same either way.
A Legacy firmware group at the bottom of the dropdown holds older releases. You will not normally need it. It exists so that a specific older version can be reinstalled deliberately, usually because support asked you to.
You can link straight to a module by adding its identifier to the address, for example updater.modbap.com/#/?fw_id=clrs. Support may send you a link in that form.
2.4 What can and cannot go wrong
The usual outcome of a failed update is a module that does not start, because the new firmware was only partly written. In almost every case that is recoverable rather than damage. The bootloader that receives firmware normally sits in a separate area of the chip that an update does not write to, which is why a module that will not start can usually be put back into update mode and programmed again.
Rarely, a module will not enter update mode afterward at all. If that happens, stop and open a support case rather than repeating the attempt.
An update does not erase anything you have saved on the module unless the changelog for that release says so. Read the changelog before you update. It is on the page, under Show Changelog.
Chapter 3Updating Your Module
Four steps, in order, on one page. The step you can act on next is marked with a pink rule down its left edge.
3.1 Select your module
Choose your module from Select Module To Update at the top of the page. Everything below changes to match: the version number, the changelog, the instructions, and the firmware that will be written.
Read Show Changelog before you continue. It tells you what this release changes and whether it affects anything you have stored on the module.
The updater writes whatever firmware is selected. Selecting the wrong module and programming it will install firmware built for different hardware, and the module will not run until the correct firmware is installed over it. Check the dropdown against the module in front of you.
3.2 Step 1: Connect USB
Connect a data-capable USB cable from the Daisy Seed on the rear of the module to your computer. The module should be powered from your case as normal.
3.3 Step 2: Enter update mode
The module has to be told to listen for new firmware rather than run its own. There are two small buttons on the Daisy Seed, marked BOOT and RESET.
- Press and hold the BOOT button.
- While still holding BOOT, press and release RESET.
- Release BOOT.
- Press and release RESET.
- Then press and release BOOT.
Nothing dramatic happens on screen. The module simply goes quiet and waits. If the module's lights behave as usual afterward, it did not enter update mode, so try the sequence again.
3.4 Step 3: Connect to the device
Press Connect. Your browser opens its own device dialog listing the USB devices it can see. This dialog belongs to the browser, not to us, and nothing can be selected on your behalf.
Choose the entry named in Step 3 on the page: DFU in FS Mode for most modules, or Daisy Bootloader for Trinity 2.0. Then press Connect in the dialog.
The log reports Device connected and Step 4 becomes available.
If the list is empty, or your module is not in it, the module is not in update mode or the cable does not carry data. Redo Step 2, then try a different cable.
3.5 Step 4: Program firmware
Press Program. The module erases its flash memory, receives the new firmware, and restarts into it. Two progress bars fill, one for the erase and one for the write.
Do not unplug the cable, close the tab, or power down the case while this is running. It takes well under a minute. The updater will warn you if you try to leave the page during a write.
3.6 What success looks like
A completed update ends like this:
Erasing DFU device memory
Copying data from browser to DFU device
Wrote 124640 bytes
Device acknowledged every block written
Manifesting new firmware
Module rebooted into the new firmware
Done! Firmware installed successfully.
The green line is the one that matters. Your module has already restarted into the new firmware by that point, which is why it disappears from the browser: it is no longer in update mode, it is running.
Disconnect the USB cable and use the module as normal.
Chapter 4Checking Installed FirmwareBeta
An optional step between Connect and Program that tells you what is on the module before you write anything over it.
Use it to answer the question people actually have, which is usually not "what version am I on" but "do I already have the latest".
4.1 How the check works
A module in update mode is running its bootloader, not its own firmware, so it cannot be asked what version it is. There is nobody home to answer.
Instead the updater reads the installed firmware back off the module and compares it, byte for byte, against the firmware images it has. If every byte matches a release, that release is what is installed, and there is no interpretation involved in saying so.
Press Check Firmware after Step 3. The result appears in the status bar above the log.
4.2 What it can and cannot tell you
The result is not symmetrical, and it is worth understanding which half you are looking at.
A match is certain. If the check names a version, that version is installed. A byte-for-byte match across the whole image cannot be a coincidence.
A non-match is not. It proves only that the firmware is not one of the images the updater has on hand. It cannot name what is there. In practice that usually means an earlier release that is no longer hosted here, but the check has no way to confirm that, so it does not claim it.
Two consequences follow:
- It compares against the module selected in the dropdown. Choose the wrong module and the answer will be technically correct and completely useless. Check the dropdown first.
- It can only name a version whose exact image is available here. CLRS and Hue each have one earlier release hosted, so those can be named. For every other module only the current release is hosted, so anything older reports as a non-match without a name.
- It does not work on Trinity 2.0. The step does not appear at all when Trinity 2.0 is selected. See the note below.
4.3 Reading the result
| What you see | What it means |
|---|---|
| Confirmed: (module) v(x) is installed. That is the latest firmware for this module. | You are up to date. Nothing to do. |
| Confirmed: (module) v(x) is installed. Continue to Step 4 to install (newer). | An older release, identified exactly. Program to update. |
| The installed firmware is not (module) v(x). | Not the selected release, and not one we can name. Usually an older version. Program to update. |
| The module's flash is erased: there is no firmware installed. | Expected after an update that was interrupted before the write. Program the module. |
Trinity 2.0 runs from external memory through the Daisy bootloader, and that bootloader will not hand its firmware back when asked to read it. There is nothing for the check to compare against, so it is not offered for Trinity 2.0 at all rather than allowed to report a module as not running the firmware it is in fact running. This was confirmed on hardware, not assumed.
Programming Trinity 2.0 is completely unaffected and works normally. The check is confirmed working on every other module, all of which run from the processor's own flash.
Chapter 5Reading the Log
The updater tells you what is happening in two places, and the difference tells you where to look for a problem.
5.1 Two places, two jobs
The status bar is the colored band under the four steps. It carries one message at a time about the tool: which device you chose, what a check found, what to do next.
The log is the black box at the bottom. It is a running transcript of the conversation with your module: erase, write, commit, reboot.
That split is useful when something goes wrong. A red line in the status bar means the update never started. A red line in the log means it started and stopped.
5.2 What the colors mean
| Color | Meaning |
|---|---|
| Cream | Normal progress. Nothing to do. |
| Gold | A caution. The operation continues. Usually nothing to do. |
| Green | Success. |
| Red | The operation stopped. Chapter 6 tells you what to do. |
5.3 A normal update, line by line
| Line | What is happening |
|---|---|
| Device connected | The browser has opened a connection to the module. |
| Erasing DFU device memory | Clearing the flash to make room. The first progress bar. |
| Copying data from browser to DFU device | The firmware is being written in one-kilobyte blocks. The second progress bar. |
| Wrote N bytes | The complete image was sent. N is the size of the firmware file. |
| Device acknowledged every block written | The module confirmed each block as it landed. A bad write would have stopped before this line. |
| Manifesting new firmware | The module is being told to commit what it received and start using it. |
| Module rebooted into the new firmware | The module restarted and left the USB connection. This is the expected end. |
| Done! Firmware installed successfully. | Finished. |
Chapter 6Troubleshooting
Work through this chapter in order. The first section solves most of what comes into support.
6.1 The module does not appear
You pressed Connect and the browser's dialog is empty, or your module is not in it. In order of how often each turns out to be the answer:
- The module is not in update mode. Redo Step 2. Note that Trinity 2.0 uses a different button sequence from every other module.
- The cable carries power but not data. Swap it for one you know has moved files. This is the most common cause of all.
- A hub is in the way. Connect the module directly to the computer.
- The browser cannot use WebUSB. If you are in Safari or Firefox, the page will say so near the top. Use a Chromium browser.
- The module is not powered. The USB connection alone may not be enough. Power the case.
6.2 Messages in the status bar
| Message | What to do |
|---|---|
| WebUSB is not available in this browser | Use Chrome, Edge, Brave, or another Chromium browser on a desktop computer. Safari, Firefox, and every browser on iOS cannot do this. |
| Invalid Device: The selected device does not have any USB DFU interfaces. | The device you picked is not in update mode. Redo Step 2, then Connect again. |
| Invalid Device: Please be sure to select "DFU in FS Mode" from the Device Dialog | Right kind of device, wrong entry. Press Connect again and choose exactly the name shown in Step 3. |
| Connect to the module first. | Check Firmware was pressed before Step 3 finished. Connect, then check. |
| This module's bootloader does not allow reading firmware back | Check Firmware cannot run on this module. Programming is unaffected. Continue to Step 4. |
| Could not load the reference firmware images. | The comparison files did not download. Reload the page. If it persists, try another network. |
| Could not read the firmware back from the module. | The module left update mode partway through the read. Nothing was written and nothing is at risk. Redo Step 2 and Step 3. |
6.3 Messages in the log
| Message | What to do |
|---|---|
| Device Disconnected: (reason) | The module left the USB bus while the updater was using it. Change the cable, connect directly rather than through a hub, and check the connection is not loose. If this happened during a write, see 6.5. |
| Start address 0x(address) outside of memory map bounds | The firmware selected targets memory this device does not have. This is what a wrong dropdown selection looks like. Check the module against the dropdown and reconnect. |
| DFU DOWNLOAD failed state=(n), status=(n) | The module rejected a block of firmware. Power-cycle, re-enter update mode, run the update again. If it fails twice at roughly the same point, stop and open a support case with the full log. |
| Error during special DfuSe command ERASE_SECTOR | The flash would not erase. Nothing was overwritten. Power-cycle, re-enter update mode, try again. |
| Error during DfuSe download / Error during DfuSe manifestation | The transfer or the final commit hit a USB error. Treat as above: power-cycle, re-enter update mode, run again. |
| No memory map information available | The updater could not read the module's description of its own memory. Usually an incomplete connection rather than a fault. Reload the page and redo Steps 2 and 3. |
| ControlTransferIn failed / ControlTransferOut failed | The raw USB error underneath most of the messages above. Read the text in front of it, which names the operation that was interrupted. |
6.4 Messages that are not errors
| Message | What it means |
|---|---|
| Module flash is erased: no firmware installed | Check Firmware found nothing on the module. Expected after an interrupted update. Not damage. Program the module. |
| Installed firmware does not match any image available here | The check could not name what is installed. Not evidence of a problem. See 4.2. |
| Failed to clear status | The updater tried to reset a leftover condition before starting and got no answer. It programs anyway. Almost always harmless. |
| Using inferred start address 0x(address) | The updater worked out where to write rather than being told. Normal. |
6.5 An update that stopped partway
If a write was interrupted, the module has an incomplete image on it and will not run. The lights may not come on, or it may appear dead.
In almost every case this is recoverable rather than damage. The bootloader that receives firmware normally sits in a separate area of the chip that an update does not write to, so it is usually still there waiting for another attempt.
- Change the USB cable for one you know carries data.
- Connect the module directly to the computer, not through a hub.
- Reload the updater page.
- Run the update again from Step 1.
If the same failure repeats at roughly the same point twice, or the module will not enter update mode at all, stop retrying and open a support case. A failure that lands consistently in the same place is worth investigating rather than repeating.
6.6 One message you may have seen before
Updates before September 2026 ended with a red line reading:
Manifesting new firmware
DFU GETSTATUS failed: ControlTransferIn failed: NetworkError: Failed to execute 'controlTransferIn' on 'USBDevice': A transfer error has occurred.
Done!
That was never a failure. Your module reboots into its new firmware the instant the transfer finishes, which means it leaves the USB connection before the browser's final status question can be answered. The browser reported the missing answer as an error, and the updater printed it in red.
The updater now recognizes that as the normal end of a successful update and prints Module rebooted into the new firmware instead. If you are looking at an older screenshot or an older support thread that shows that red line above a Done!, the update in question succeeded.
Chapter 7Support
If an update fails twice in the same place, or something here does not match what you are seeing, we want to hear about it.
7.1 Before you open a case
Two things will get you an answer much faster.
- Try a different USB cable and a direct connection. It resolves most failed updates, and it is the first thing we will ask.
- Copy the whole log, not just the red line. The lines above a failure say which step was running when it stopped, and that is usually what identifies the cause. Select the text in the black box and copy it, or send a screenshot that includes everything from
Device connecteddown.
Tell us the module, the firmware version you were installing, your operating system, and your browser.
7.2 Getting help
Sign in at hub.modbap.com and open a support case. Signing in lets us see which modules are yours and keeps the whole conversation in one place.
7.3 Credits and licensing
The Modbap Modular firmware updater is built on the Electro-smith Daisy Web Programmer and on Infrasonic Audio's updater. Both are open source, and the licenses that cover them are published alongside the updater itself.
© 2026 Beatppl Inc. All rights reserved. Modbap™ is a trademark of Beatppl Inc.