A 10-channel interface for connecting piezo drum pads to your computer via USB-MIDI. It uses an ESP32-S3 to handle high-speed analog signals and features a web-based console for real-time tuning.
- High-Speed Sampling: The ESP32-S3 continuously samples 10 analog pins.
- Peak Detection: When a piezo voltage exceeds the user-defined
Threshold, aNote Onevent is fired. - Re-trigger Masking: After a hit, the pin is "muted" for the duration of the
Mask Time. This ignores the physical vibration (after-ring) of the drum pad to prevent double-triggering. - Timed Note-Off: Notes are automatically released after a
Scan Timeperiod.
Instead of hardcoding settings, you can tune the hardware in real-time via the web.
- URL: console.lukewakeford.co.uk
- Live Sync: The console pulls current settings from the ESP32-S3 via SysEx on connection.
- Persistent Storage: Use the "Commit to Flash" button to save settings to the ESP32's non-volatile storage (NVS) so they persist after power cycles.
- Note: Requires a Chromium-based browser (Chrome, Edge, Brave) for WebMIDI support.
The hardware is designed specifically for the voltage spikes generated by piezo-electric sensors (found in pads like the Yamaha TP65).
- MCU: ESP32-S3 (chosen for native USB-MIDI support).
- Inputs: 10 screw terminal inputs for secure wiring.
- Protection: The PCB includes clamping diodes and resistors to ensure the piezo signal stays within the safe 0V-3.3V range for the ESP32.
- Zones: Supports 10 mono triggers or can be wired for 5 stereo/dual-zone pads.
If you're modifying the firmware or building the project from scratch:
- Board: ESP32-S3 Dev Module
- USB Mode: Native USB (ensure
USB CDC On Boot: Enabledin Arduino IDE) - Libraries:
Licensed under the Apache License, Version 2.0.
You may use, modify, and distribute this project provided that attribution to the original repository is maintained in all copies or substantial portions of the software and hardware designs.
Created by Luke Wakeford