Skip to content
 
 

Latest commit

 

History

9 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

alchemy-template

The recommended starting point for your own Hermetic Modular Alchemy Lab module firmware.

This is the Alchemy SDK's stereo_eq example — a dual mono three-band EQ that opts into the full framework stack (pagination, pot catch, param lock, CV routing, presets, settings, LED animations) — packaged as a standalone project that vendors the Alchemy SDK and libDaisy as git submodules and builds with the standard Daisy make workflow. Clone it, build it, flash it, then gut src/ and make it yours.

What's inside

├── Makefile             standard Daisy Makefile (libDaisy core underneath)
├── src/                 the firmware — this is the part you edit
│   ├── stereo_eq.cpp        hardware wiring, pages, knobs, CV, presets
│   ├── stereo_eq_dsp.*      pure DSP (three-band biquad EQ per channel)
│   └── stereo_eq_palette.h  LED color palettes
└── lib/
    ├── alchemy-sdk/     Alchemy framework + board support   (submodule)
    └── libDaisy/        Electrosmith Daisy library           (submodule)

Requirements

  • git
  • make
  • arm-none-eabi-gcc
  • dfu-util

Ubuntu / Debian:

sudo apt install git make gcc-arm-none-eabi dfu-util

macOS (Homebrew):

brew install git make dfu-util
brew install --cask gcc-arm-embedded

Getting started

git clone --recurse-submodules https://github.com/hermetic-modular/alchemy-template.git my-module
cd my-module

make libdaisy    # build libDaisy once after cloning
make             # build the firmware → build/stereo_eq.bin

Flashing

The Alchemy Lab runs a custom bootloader (DaisyBootloader-AlchemyLabV2) that serves DFU over the front-panel USB-C port. Connect that port, then put the module in update mode: during the ~2 s window after power-on — the LED rings spin a warm-white comet — press or hold B3. The rings switch to a slow breathe, and the module stays in DFU mode until it's flashed or reset. Then:

make program-dfu

You can also use the Hermetic Modular Web Programmer straight from the browser.

Flashing without reboot

Once the firmware is running, you can skip the DFU button dance entirely, program-live asks the running module to reboot itself into the bootloader over USB, waits for it to enumerate, and flashes in one step:

make program-live

Requires node and dfu-util ≥ 0.11 on your PATH. (This works because the template firmware speaks HostLink, the same integration that powers the web editor.)

Make it yours

  1. Rename the firmware — change TARGET at the top of the Makefile (this names the .bin), and rename the src/ files to taste, updating CPP_SOURCES to match.
  2. Bring your own DSP — replace stereo_eq_dsp.* and rewire the knobs, pages, and CV matrix in stereo_eq.cpp. Every framework feature is an explicit constructor call; delete what you don't want.
  3. Add source files — append them to CPP_SOURCES in the Makefile. One caveat from the underlying Daisy build: object files are flattened into build/ by basename, so two sources can't share a filename even in different directories.
  4. Learn the SDK — the framework headers live in lib/alchemy-sdk/framework/include/alchemy/, and the SDK's examples/ show other usage styles (the kick example is a minimal-opt-in contrast to this template).

Updating the vendored libraries

git -C lib/alchemy-sdk pull origin main
git add lib/alchemy-sdk && git commit -m "Bump alchemy-sdk"

The pinned libDaisy commit matches the one the Alchemy SDK itself vendors and tests against; if you bump one, consider bumping the other to match.

License

MIT — see LICENSE. libDaisy is independently MIT-licensed by Electrosmith.

About

Custom firmwares for the Hermetic Modular Alchemy Lab eurorack module.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages