I came across a company based in Texas by the name of Livid Instruments. As well as manufacturing their own brand of MIDI controllers, they also make a MIDI enabled microcontroller board which allows you to add various controls such as potentiometers, buttons and LED's in as many configurations as you can think of. It's a relatively simple process and their technical support is incredibly good should you get stuck or have any questions, of which I had many.
Step 1: Choose your controls
Next came the analog controls. Analog in this sense means anything that will output a specific value/voltage such as a slider, rotary potentiometer or force sensitive resistor. It's important to note here that potentiometers with values between 10k and 100k work best with the BrainWith all my shop bought controllers I've always found that they were lacking even just an extra 2 or 3 sliders so I decided to play it safe and go for 11, one of them being a dedicated crossfader. I wanted to recreate the look of the effects racks I use the most in Ableton on my controller so for rotary potentiometers I chose to include two lots of 8 in a 4x2 configuration, two lots of 3 for channel EQ's and 4 extra just in case. I made a crude design in Sketchbook express which you can see in the images to get a rough idea of how to layout the controls and to figure out whether I had enough controls for its purpose.
Step 2: Important considerations when choosing your controls
Secondly, if you have a certain type of knob fitting you want to use, make sure it fits the type of potentiometer you are using. Check the diameter and fitting type on both the knob and the potentiometer shaft. For example, a d shaped knob fitting will not fit on a splined shaft potentiometer. It seems obvious but it's worth remembering, especially if you have a certain preference for the look/ feel of your controller. Also make sure that on your layout, you space the potentiometers far enough apart to accomodate the size of the knobs so that you can control them easily. Slide potentiometers are pretty thin but the control knobs are usually about 2cm and you don't want to be knocking knobs against each other when your playing with them.
Step 3: IGNORE ALL OF THE INNUENDOS IN THE PREVIOUS STEP
Step 4: Spend ages trying to figure out how to solder it all together
Firstly, one side of each button needs to be wired to what's called the 'external header' (labelled C on the Brain board diagram), specifically the VDD pin which is the 13th pin on the header (check the pin header image to see the pin number order). The other side of the button needs to be wired to one of the 'button matrix' pins (labelled A on the Brain board diagram), one button per pin, allowing up to 16 buttons to be added. In order to prevent two signals being sent to the brain when a button is pressed (ON and OFF) you need to add pull down resistors, a normal resistor which pulls an input to ground to allow current to escape when a button is turned off. When I first tested the buttons I'd wired, I was using them to control the on/off of an effect but I hadn't used pull down resistors. It meant that when I pressed a button, the effect turned on fine but as soon as I released the button, the effect would go off again. It was really annoying and took me ages to figure out.
To add pull down resistors, you need to connect a resistor between 30k and 39k to a 'button matrix' pin. The other side should then be connected to the external headers ground pin, the first pin on the 'external header' indicated by an arrow. Each button matrix pin used needs a pull down resistor.
To make the wiring easier and less messy I decided to create a mini circuit board to connect it all together to save connecting 16 different wires to one pin. Using DIY Layout Creator to plan my perfboard circuit I came up with the image above. It should also help show how everything is wired up.
Step 5: Wiring the pots
When it comes to slide potentiometers, they connect in the same way through ground, voltage and wiper solder lugs although they look slightly more complicated. The sliders I got had 4 lugs on one side and 2 on the other. Check the picture to see which lug is which. I wasn't feeling very convinced that the connections to the lugs would be strong enough so I stuck some heat shrink on each connection for peace of mind. Again, this isn't totally necessary but it's preferable to going through each connection one by one testing with a multimeter when something comes loose.
To connect analog controls/potentiometer to the Brain you need some 10 way ribbon cable. Using ribbon cable connectors, the ribbon cable is attached to one of the analog jumpers on the board named JP7 through to JP14 (labelled D on the Brain board diagram). The first pin on each jumper is ground, indicated by an arrow. The second pin is voltage and the remaining 8 pins are the wipers for each potentiometer. This allows for 8 separate controls per pin header, resulting in a total of 64 available analog controls. It's important to note that the Brain scans the potentiometer inputs sequentially, starting at JP7, so your first set of potentiometers should connect to JP7, the second set to JP8 and so on. The red wire on the 10 way ribbon cable connects to ground (the first pin on the header) so each potentiometers ground lug should connect to this. The next wire on the ribbon cable (pin number 2 on the header) is voltage so each potentiometers voltage lug connects to this. The remaining 8 wires on the ribbon cable are wiper inputs which obviously connect to the wiper lugs on each potentiometer.
All the potentiometers need a low pass filter to improve their overall response. The low pass filters come in the form of capacitors. Larger potentiometer resistances requires smaller capacitance so as I was using 100k potentiometer I used 0.01uF ceramic capacitors. If I was to have less potentiometers on my controller I could use smaller value capacitors but I won't go into that now.
The capacitors need to be wired between the ground and wiper of each potentiometer. To make things easier to manage I made another perfboard circuit to do this for each potentiometer based on the above layout created in DIY Layout Creator.
Step 6: Adding LED's
I ended up biting the bullet and making the only function of the LEDs aesthetic, providing no MIDI feedback whatsoever.
I grouped the 16 LEDs into 8 groups of 2, connecting the anode (positive/long leg) to a 270 ohm resistor, then the other end of the resistor to the positive lug of a 12v power supply input. The cathode (negative/short leg) of the LED was then connected to the anode of another LED with it's cathode running to the negative lug of the power supply input. I repeated this process for each of the remaining LEDs. Once again I made things easier by making a perfboard circuit for everything as shown in the above picture.
Step 7: Boxing It All Up
I cut a notch out of the box where the lid opened so that I could feed the power supply and usb cable through to the brain and screwed the brain to the base to secure it in the enclosure, making sure there was plenty of room between the circuitry and the component in order to prevent any short circuits. A few final tests on the components and it was ready to program.
Step 8: Program the brain and you're done.
And that's it!