04 — Hardware
Programmer
In 2024 Chase Bliss reached out to me so MOOD MKII owners could install the 1.1 firmware. I got it working on a forked flasher, then rebuilt it properly this year (2026) with beta and nightly channels, plus an admin panel to swap out and upload new ones.
04.1 — It needs a pedal
You can click around without a pedal, right up until you hit update. Plug one in over USB and it's the real thing, so maybe don't flash your MOOD just to watch the progress bar. The one up top is pretend, flash it all you want.
04.2 — Three steps
- 1Pick a pedal and a version
- 2Plug in over USB, then power
- 3Connect, update, watch the bar
04.3 — The old one
It already worked
Credit where it's due, my 2024 version was Electro-Smith's open-source flasher with a Chase Bliss coat of paint. It worked, but every new build meant me hand-editing JSON and hoping I didn't miss a comma.
04.4 — The build
USB in browser
WebUSB lets the page talk to the pedal directly, so everything runs in your browser. The catch is it's Chrome only, sorry Safari people. I've been mostly in Astro lately, but this is one big interactive thing, so Vite and React made more sense.
04.5 — Behind it
I fired myself
Chase Bliss logs into an admin, uploads a build, picks a channel and hits save. That commits to GitHub and kicks off a deploy, no Jake required. Unlisting a bad release moves the file off its public URL, so pulling it pulls it everywhere.
04.6 — The DFU part
Hand-me-down code
The flashing runs on DFU code from the original, ported to TypeScript. The libraries behind it haven't been touched in years, so I patched a few things myself, like writing to the right flash bank. Way lower level than I usually get.
Every build lands in production, beta or nightly. Same page, different list. Beta needs a password and nightly makes you tick a disclaimer, because nightly builds are nightly builds. The little computer down there is from the real site, clicktap it.
04.7 — Made of
ReactTypeScriptViteTailwindWebUSBVercel