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

Digital Simulation of single
Digital Simulation of single “voice”.

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)


Gantt chart screenshot

Excel Snapshot of Gantt Chart as of 9/24/25.

Team Members

Ben Hopper

Ben Hopper
Project Lead/Embedded Systems

MIDI encode/decode logic, hardware, and overall project coordination.

Vincent

Vincent Perlowin
FPGA Specialist

FPGA integration, pulse engines, and MIDI decoding logic.

Dr. Kim

Dr. Kim
Faculty Advisor

Guides technical decisions, project scope, and academic direction.