DaisyBed -- a soft landing for my adventures into Electro-Smith Daisy audio platform.
last updated: August 6, 2026DaisyBed
trying to simplify development on the Electro-Smith Daisy Patch.Init() and Patch Submodule board with libDaisy and DaisySP.

structure
daisybed/
├── package.json # convenience scripts (configure / build / flash), per firmware
├── lib/
│ ├── libDaisy/ # git submodule
│ └── DaisySP/ # git submodule
├── shared/ # reusable helpers shared across firmware projects
│ ├── any shared .h or .cpp files
│ └── cmake/
│ └── daisybed.cmake # included by each project: sets up libDaisy + DaisySP
└── patches/ # one self-contained CMake project per firmware
├── my-cool-patch/ # CMakeLists.txt + src/ + build/ (per-project)
There is intentionally no top-level CMakeLists.txt. Each firmware is a
standalone CMake project that pulls in libDaisy + DaisySP via
shared/cmake/daisybed.cmake. This keeps libDaisy's ARM toolchain autodetect
working (it runs in the same scope as the project's project() call) and lets
you configure/build/flash one firmware at a time without touching the others.
shared/ is exposed as the daisybed_shared INTERFACE library (header-only
include path). Projects that need a .cpp from it (e.g. knob.cpp,
Voice.cpp) list it in their own FIRMWARE_SOURCES.
getting started
requirements
- CMake: Version 3.26 or higher.
- ARM Cross-compiler toolchain: For building the project.
- dfu-util: For flashing the firmware.
building a firmware
clone the repository:
git clone --recurse-submodules https://github.com/alexander-daniel/daisybed.git cd daisybedconfigure one firmware (each gets its own build dir under the project; this also wires up the shared/ compile database for clangd):
FW=basic-monosynth npm run configurebuild it:
FW=basic-monosynth npm run build
flashing
FW=basic-monosynth npm run flash
-a 0: select the first alt setting
-s 0x08000000:leave: specify the address to flash the firmware to and leave the device in DFU mode after flashing
-D patches/$FW/build/$FW.bin: specify the path to the firmware binary
-d ,0483:df11: specify the USB VID:PID of the device
License
This project is licensed under the MIT License.