Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ESP32 MIDI Stepper Motor Synth

Plays MIDI notes on NEMA 17 stepper motors. One motor per MIDI channel, default 7 voices. ESP32 + A4988 drivers, tones generated by hardware timers (LEDC + MCPWM).

Inspired by jzkmath/Arduino-MIDI-Stepper-Motor-Instrument.

Hardware

  • ESP32
  • 7× A4988 driver + 7× NEMA 17
  • 12V PSU
  • 100µF cap per driver on VMOT/GND

Wiring

STEP pins: GPIO 4, 5, 6, 7, 15, 16, 17. All grounds common. Vref ~0.5–0.6V.

MIDI

Raw MIDI bytes over USB serial. Channels 1–7 → motors 1–7. Supported: note on/off, pitch bend (±2 st), CC 120/123.

Changing motor count

Edit STEP_PINS[] in src/main.cpp. First 4 voices use LEDC, rest MCPWM. Max 10 voices on ESP32-S3 (4 LEDC + 6 MCPWM timers), 14 on original ESP32. Avoid GPIO 0, 3, 19, 20, 26–32, 45, 46 on the S3.

License

MIT

About

Stepper Motor Synth, MIDI notes rendered as square-wave step pulses on NEMA 17 motors.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages