A modular multi-track hardware metronome system capable of running multiple independent rhythm patterns synchronized to a master tempo. Built on ESP32 with OLED display and precise solenoid actuation.
- Hardware Documentation - Circuit diagrams and component specifications
- Software Architecture - Code structure and implementation details
- Screen Layout - UI design and display management
- Two independent metronome channels
- 20-500 BPM range with multipliers (1/4×, 1/3×, 1/2×, 1×, 2×, 3×, 4×)
- Pattern editing with up to 16 steps per channel
- Global tempo synchronization
- Real-time visual feedback
- Solenoid actuation with accent support
- Wireless sync via ESP-NOW for multiple devices
- Core Functionality
- Basic timing engine
- Pattern storage and playback
- Solenoid control
- Display rendering
- Encoder input handling
- Multi-channel synchronization
- Enhanced Features
- Tap tempo input
- Pattern templates
- MIDI Clock sync
- Settings storage
- Wireless control
- Hardware Improvements
- PCB design
- Case design
- Power supply optimization
- Multiple solenoid support
- LED indicators
- Modular system:
- Connectors
- Solenoids
- Piezo buzzers
- Speakers/amplifiers
- LED arrays/strips
- LCD displays
- MIDI interface modules
- Rotary encoders
- Buttons/switches
- Potentiometers
- Accelerometers
- Wireless modules (WiFi/BLE)
- SD card readers
- External DACs
- CV/Gate outputs
- USB interfaces
The metronome now includes a wireless synchronization system using ESP-NOW, allowing multiple devices to stay in perfect sync:
- Leader-Follower Architecture: One metronome acts as the leader, broadcasting timing and pattern information
- Low Latency: ESP-NOW provides sub-5ms latency for tight synchronization
- Robust Protocol: Custom protocol with heartbeats, tempo, pattern, and control messages
- Auto-Recovery: Followers automatically reconnect if connection is lost
- Expandable: Support for LED strips, additional solenoids, and other output devices
A companion project is included for an ESP32-controlled LED strip that syncs with the metronome:
- Receives wireless sync data from the metronome
- Visualizes beats with configurable colors for each channel
- Automatically follows pattern changes
- See the LED Receiver README for details