💾 Archived View for eoinrul.es › projects › MidiKeyboard captured on 2023-07-10 at 13:20:28. Gemini links have been rewritten to link to archived content

View Raw

More Information

⬅️ Previous capture (2022-04-28)

-=-=-=-=-=-=-

MIDI Keyboard

Someone just threw this thing into the recycling! Who would do that? First of all, that's not WEEE-compliant. Secondly, it's probably in there because it's broken but we could surely fix it.

Indeed it was broken, but inspection of the components showed up nothing suspect. We can still make an improved version. This is just a toy, but we already have code for wiring up MIDI events - this should be a copy-paste job to turn it into a MIDI controller.

Investigating the wiring for all the keys, we need a bunch more pins for input. I used an MCP23S17 and some additional pins on an Arduino; in all, it was an 8x10 key matrix. The MCP23S17 is such a great IC - lovely to setup and control - just works and frees up 16 pins on the Arduino in exchange for SPI.

Initial probing key layout

Mid wire-up

Trying to optimize space. This probably caused more problems than it solved.

I knew it was going to be tight quarters to fit the board into the case, so opted for shorter wires at the cost of being a little awkward to solder together. I realized pretty early on that I should have made a connector to connect the original PCB to this new board, but steamed ahead regardless - I opted to not worry about the order of the wires conecting to the new board and would just fix it up in software, since I'd need to decide what to do with the additional buttons.

Just about enough room

Not much else to say; press buttons, get MIDI events via Hairless MIDI. I've been playing with Bespoke Synth lately, so I wrote a MIDI Control surface display for the controller. Bespoke is a lot of fun to experiment with and having the visual display of the buttons really helps.

Visualized in Bespoke

Hairless MIDI

Bespoke Synth

There's an additional switch, potentiometer and 2 7-segment LCDs; I might wire those up in the future.