Keystone Musical Instruments
Shipped7 shipped guitar effect pedals with embedded firmware on STM32H750. Launched January 2026 and selling at keystonemusical.com.
CTO at Keystone Musical Instruments. Sole engineer and technical decision-maker.

Overview
Seven hardware guitar effect pedals built on the STM32H750 (ARM Cortex-M7, 480MHz) via Daisy Seed. Each pedal features 6 analog potentiometers, 2 footswitches, 3 rotary switches, MIDI (5-pin DIN + USB), expression pedal input, and RGB LEDs. 24-bit/96kHz stereo audio, custom QSPI bootloader for OTA firmware updates, and configurable I/O modes with true bypass. Launched January 2026.
Tech Stack
MCU: STM32H750 (ARM Cortex-M7, 480MHz) via Daisy SeedMemory: 128KB Flash + 480KB SRAM + 64MB SDRAM + 8MB QSPI FlashAudio: 24-bit/96kHz stereo codec, DMA-managed buffersLanguages: C++, ARM assembly (VTOR/FPU setup)Build: GNU Make, ARM GCC toolchainLibraries: libDaisy, DaisySP, CMSIS-DSPBootloader: Custom QSPI bootloader with firmware header (CRC32, version, device ID)I/O: 6 pots, 2 footswitches, 3 rotary switches, MIDI (5-pin DIN + USB), expression pedal, RGB LEDs
Engineering Highlights
- 01Cross-platform DSP cores — Same C++ effect algorithms compile for both STM32H750 firmware (ARM) and VST3 plugins (x86_64/ARM64) without modification. Identical audio quality across hardware and software.
- 02Custom QSPI bootloader — Firmware exceeds 128KB internal flash, boots from 8MB QSPI. Python post-build script patches firmware header (size, CRC32, timestamp) at offset 0x400. Enables OTA updates via USB MIDI SysEx.
- 03Expression pedal learning — Runtime parameter mapping without recompilation. Users assign expression pedal to any parameter with custom min/max/inversion, saved to flash.
- 04Hardware-agnostic parameter smoothing — ParameterSmoother class provides audio-rate interpolation preventing zipper artifacts. Used identically in firmware and plugins.
- 05Sanitizer testing — AddressSanitizer, ThreadSanitizer, and RealtimeSanitizer scripts for memory safety, thread safety, and real-time constraint verification.
Stats
~144,000 lines of custom C++ production code
stat_0
211 commits
stat_1
48 test files, ~15,700 lines of test code
stat_2
7 shipped hardware pedals
stat_3
128 preset slots per pedal
stat_4
Sole developer (~95% of all commits)
stat_5