Firmware
Any digital hardware is only as good as the code that makes it tick.

I2C
I2C allows the MTP-25K to take in over 30 different user inputs, and funnel them all into one microcontroller.

Button Features
Features like Octave Up/Down, Note Hold and Arpeggio are what make the MTP-25K able to keep up with other MIDI devices - and that's only the beginning.

Charlieplexing
With over 80 LED's and a limited power budget, Charlieplexing was the critical piece in making our user interface come to life.
I2C
Inter-Integrated Circuit

Inter-Integrated Cirtuit (I²C)
The MTP-25K relies on the I2C communication protocol to manage all our input and output components. Rather than rely on the limited GPIO pins on the MPU, we can outsource much of this to dedicated ICs.
Musical Functions:
-Octave
-Shift
-Hold
-Arpeggio

Octave, Shift, Hold, Arpeggio
The Octave buttons allow you to move up or down an octave and has light indicators to help the user know what octave they are in.
​
The Shift button allows the user to change the tempo & more.
​
Hold allows the user to hold a note. This feature is intended to mimic a piano's ability to hold notes.
​
Arpeggio creates a scale based on the note pressed. There are different arpeggio modes that dictate whether the scale goes up, down, up and down or based off what the user inputs.
Charlieplexing

Charlieplexing
Due to the sheer number of LED indicators we have on the MTP-25K, paired with a tight power budget, we needed a reliable way to control so many LEDs. Charlieplexing is a perfect way to control many lights while not using a lot of power at the same time.

