Firmware

mark-alchemy

Hype16/100

Mark for the Hermetic Alchemy Lab V2: a five-track live looper, with USB audio, Launchpad / Launch Control XL / Haute42 control and SD-card firmware switching

mark-alchemy is custom firmware for the Hermetic Modular Alchemy Lab, by @timncox. Latest release v0.2.0 (September 2026).

forHermetic Modular Alchemy Lab·by@timncox

Unclaimed. Is this yours? Sign in with GitHub as @timncox to claim it.

Downloads
0
Stars
0
Forks
0
Commits
36
Last commit
Download v0.2.0

mark_alchemy.bin· 373 KB

Custom license· timncox/mark-alchemy·timncox.github.io/mark-alchemy/·downloads come from the creator’s GitHub releases

36
Commits
1
Releases
36 commits and 1 release in the last year
Activity · last 12 months

mark-alchemy

Mark — the RC-505-style five-track live looper — for the Hermetic Modular Alchemy Lab V2, built on the Alchemy SDK.

Same C engine as schwung-mark for the Ableton Move, recompiled for six pots on three pages, three buttons, six CV jacks and 102 LEDs. Five loop tracks of 55 seconds each in the module's SDRAM; pick a track, tap to record, tap to play, tap to overdub; the five rings are the five tracks' displays. With nothing on the clock jack the first loop you record is the bar; with a clock, everything snaps to it. Tap B3 for the selected track's own page: one-shot, reverse, an insert effect and its amount, pan.

Status: builds and passes its native tests. Nothing has been heard yet. See DESIGN.md for the control map, what is verified and what is not. The Move build's sessions and external FX modules are not on this panel.

Build

Requires arm-none-eabi-gcc, make, dfu-util.

git clone --recurse-submodules <this repo>
cd mark-alchemy
make libdaisy        # once
make                 # build/mark_alchemy.bin
make test            # native tests, no hardware

MARK_SECONDS=<n> on the make line changes the per-track capacity; the native test then proves that capacity fits the SDRAM pool, which the engine's own fallback cannot do on this allocator (see src/versio_alloc.h).

Flash

Front USB-C with the factory bootloader: hold B3 during the ~2 s boot window (rings spin a warm-white comet), the rings switch to a slow breathe, then:

make program-dfu

or the web programmer. Once this firmware is running on the front port, make program-live reboots and flashes without touching the module.

Bench setup (Hermetic's intdfu bootloader on the Seed's micro-USB): same gesture on the micro-USB port; build with BENCH_USB=1 if you want HostLink there too.

Firmware on the SD card

Put .bin files built for the Alchemy Lab bootloader in a folder named alchemy on a FAT32 card. Hold B2+B3 for two seconds, tap B1 to the Firmware page, pick a file with the top-left pot, then turn the top-right pot down and all the way up. It writes, verifies, and reboots into the chosen firmware. Every firmware in this family (Smack, Mark, Belt) carries the same page, so the card is the module's library and any of them can hand the module to any other.

The site

docs/index.html is the operation manual, a single file meant for GitHub Pages from main:/docs. Its panel drawing is generated from the SDK's KiCad front-panel template by tools/emit_panel_geometry.py; run it with --check before publishing and --write after the template changes, and never hand-edit the coordinates. The repository URL the page links to is one constant at the top of the file.

Files on the card over USB

tools/hostlink-fs.mjs speaks HostLink's filesystem block, so images reach the card without pulling it:

node tools/hostlink-fs.mjs info
node tools/hostlink-fs.mjs ls /alchemy
node tools/hostlink-fs.mjs put build/mark_alchemy.bin /alchemy/mark_alchemy.bin --overwrite

The picker lists files in on-disk order, one dot each, so the order you upload them is the order the FILE pot walks.

Family

smack-alchemy, belt-alchemy and this repository share, by copy, the picker, the SDRAM allocator, the clock adapter, the linker script, the card tool and the shape of the Makefile and main file. A fix in one belongs in all three.

Not a Hermetic Modular product

Custom firmware. Hermetic Modular did not write, test or endorse it; ask here, not there.

License

MIT (this firmware). The vendored engine is Tim Cox's; see the file headers.

src/usbd_ctlreq_uac.c is STMicroelectronics' usbd_ctlreq.c from the STM32 USB Device Library (as shipped in libDaisy), changed only to allow three interfaces; it stays under ST's license, in src/LICENSE-ST-USB.md.