Harmonic Motion • FPGA-driven stepper synth
Overview
Project converting precise motion into musical tone. Timing and motor control on an FPGA; input, interface, and I/O on a microcontroller.
- Goals: 5 “voices” across 5 motors; microstepping sound amplification with resonance chamber development
- Tech: Verilog modules, UART and MIDI protocols, C++ firmware
- Status: Single “voice” simulation complete • MIDI protocol in progress

Small Code Sample
User input –> Control Logic –> Rotational Value (note).
// Harmonic Motion Project
const int STEP = 3; //Pin assignment
const int DIR = 2; //Pin assignment
const int ENABLE = 4; //Pin assignment
const int keys[8] = {22, 24, 26, 28, 30, 32, 34, 36}; //Pin assignment
const int tuning[8] = { //Can adjust note pitch as needed for each note
100, //C
200, //D
300, //E
400, //F
500, //G
600, //A
700, //B
800, //C_2
};
int currentNote = -1;
void startNote(int pitch){
if (pitch == currentNote) return;
tone(STEP, tuning[pitch]);
currentNote = pitch;
}
Gantt (snapshot)

Excel Snapshot of Gantt Chart as of 9/24/25.
Team Members
Ben Hopper
Project Lead/Embedded Systems
MIDI encode/decode logic, hardware, and overall project coordination.
Vincent Perlowin
FPGA Specialist
FPGA integration, pulse engines, and MIDI decoding logic.
Dr. Kim
Faculty Advisor
Guides technical decisions, project scope, and academic direction.