Close

So where to start?

A project log for Organ Pedalboard MIDI Conversion

Arduino Uno shield & sketch to convert the input from 32 switches to MIDI notes via Hiduino firmware

Johan CronjeJohan Cronje 03/13/2015 at 20:230 Comments

At this point I have a massive 200+ lbs American Guild of Organists specification pedalboard sitting in my lab. I have many questionable talents, but music isn't one of them. In fact I have no idea what the word what octave means, at which point my very musical son gave up trying to explain and said: "You'll figure it out dad, you always do!".

The pedalboard has 32 pedals, corresponding to notes C2 on the left up to a G4 on the right. Push a pedal, arduino reads the switch position then sends a MIDI note. Easy right?

Step 1: Use an Arduino Uno with Hiduino (or Moco) firmware to create a class-compliant USB-MIDI plug-and-play device, or use a Teensyduino which has built in MIDI support. I have an Arduino Uno R3 - so easy decision.

Immediately this presents a problem: the Arduino Uno doesn't have 32 inputs. I considered using a switch matrix, but this still uses a lot of inputs & complicates the shield PCB routing. I decided to use 4 daisy-chained CD4021 Static Shift Register ICs which allows me to read 32 switches with 3 pins on the Arduino. The shift register works by reading 8 inputs parallel then outputting it serially as a 8-bit byte. As an example 255, or 11111111 would mean all inputs are high.

Research indicated it is better for noise reduction to to pull the pins on the CD4021 high, then pull them to GND when a switch is closed. This is done by connecting the 8 CD4021 input pins to +5V via a 10K resistor & connecting directly to GND via the reed switch.

This resulted in a few iterations of a schematic in Eagle CAD. Next step software!

Discussions