Arduino/esp32 code for making a DIY Player Piano.
This is a fork from the vikbez's fork of the original project. vikbez added some improvements, this fork keeps the improvements while allowing all 88 keys + sustain to be used.
- usage of ESP32-BLE-MIDI library (improving compatibility with windows / apple / android)
- adding wifi MIDI capability (you can use rtpMidi and loopMidi for connecting to it from windows)
- various bugfixes
last key of piano (88) is used for sustain pedal instead of more electronics connected to ESP32- last key of piano (88) OR pin 13 of ESP32 for sustain pedal. Configured at compile time.
- schemas and solenoid board PCB that I created for making this project
Original project informations can be found here.
Boards are connected using chained serial:
control-box TX -> RX brain TX -> RX note-handler
- Interface for changing settings
- Reset keys button (resets solenoids)
- Receives MIDI data from USB and sends it to ESP32
- Receives note data from Control Box
- Receives and decodes MIDI messages (BLE and/or WIFI)
- Schedules notes and sustain
- Send notes to the note handler
- Receives note data from ESP32
- Receives MIDI data from USB
- Activates notes using shift registers
- Arduino Core for ESP32
- MIDIUSB (Note handler & Control Box)
- ShiftPWM (Note handler) (Already in project folder)
- LiquidCrystal_I2C (Control Box) (Already in project folder)
- ESP32-BLE-MIDI (ESP32) (for bluetooth midi receiving)
- Arduino AppleMIDI Library (ESP32) (for wifi midi receiving from win/osx/android)