Hermetic Modular

01/Quickstart

Your First Firmware

Get a properly set up SDK environment and get a custom firmware deployed fast.

Install the toolchain

macOS (Homebrew)
brew install git make dfu-util
brew install --cask gcc-arm-embedded
Ubuntu / Debian
sudo apt install git make gcc-arm-none-eabi dfu-util

Clone the template

alchemy-template is the recommended starting point: a standalone project that vendors the Alchemy SDK and libDaisy as git submodules and builds with the standard Daisy make workflow. It ships as a complete, working firmware: a dual mono three-band EQ that opts into the full framework stack.

If you aren't familiar with git submodules: they're essentially mini-linked git repositories within your git project. They version separately from your main repo, so you can choose when to bump SDK versions by just pulling down the latest into that submodule.

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

make libdaisy    # Do once
make             # build the firmware -> build/stereo_eq.bin

Flash it

  1. 1

    Connect the front USB-C port

    The panel port, not the one on the Daisy Seed inside.
  2. 2

    Enter update mode

    During the ~2 second window after power-on, while the rings spin a warm-white comet, press B3 (or just hold it while powering on). The rings switch to a slow breathe and the module waits in DFU mode until flashed or reset.
  3. 3

    Program

    Run make program-dfu. When it finishes, the module reboots into your build. Even more conveniently, you can run make program-live to force a reboot and flash of the module outside the bootloader, if hostlink is enabled.

Tip

No terminal required for updates: the Web Programmer flashes any .bin straight from the browser over the same port.

Make it yours

  1. 1

    Rename the firmware

    Change TARGET at the top of the Makefile (this names the .bin), rename the src/ files to taste, and update CPP_SOURCES to match.
  2. 2

    Bring your own DSP

    Replace stereo_eq_dsp.* with your process function, then rewire the knobs, pages, and CV routing in the main file.

Two Examples

The template is the full-stack on-ramp: pagination, pot catch, param lock, CV routing, presets, settings, LED animations, all live from the first build. The SDK's examples/kick is the more minimal contrast: one page, six knobs, no persistence, about 130 lines. You can also go bare metal with the BSP or pure libDaisy, and opt out of the Framework entirely.

Next: the five ideas those lines are built from. Fundamentals breaks down the philosophy more.