Hi all!
I’ve finally gotten around to posting the pics of the MIDI control service project I was working on. Here are the details on this guy:
Total Cost to Build: ~$60 if you count the hot glue gun, $45 ish if you don’t
Total Time to Build: ~A month of planning, a weekend of building, a few weeks of tweaking software

How’s it made?

The guts

This project has the following components:

  • 1 wooden cigar box from a hobby shop ($7)
  • 1 clone Arduino Mega from Amazon ($9)
  • 4 faders and 8 pots from digikey ($18)
  • 1 1602A LCD from Amazon ($8)
  • 1 rotary knob with pushbutton from Amazon ($3)
  • 4 LEDs in different colors (freeee – I have a bunch already)
  • 1 SPDT switch from Amazon ($1)
  • 1 hot glue gun and hot glue sticks from hobby shop ($15)


I first drew out a few templates on graph paper of what I wanted the end product to look like. Then I took each variation and taped it to the box’s top and tried to visualize using it in that form factor. Once I had decided on the way it was to be laid out, I went to the shop.
I taped over (with clear tape) where I would cut and drill so the layout template wouldn’t tear off, then I used a drill press to put holes in the right places and the jigsaw to my the slots and the LCD hole.

The Assembly

The first parts I put in were the faders. I used Gorilla Glue to tack them in position, and I let them cure for about 2 days. Then I put in all the other pots, switches, and hot-glued the LCD in place. Finally I put in the LEDs and hot-glued them in place.

Here’s a picture before all the hardware was in:

MIDI Control Surface w/ Some Components

MIDI Control Surface w/ Some Components


I used solid core wire and high quality solder to build the wiring harness. The last step in assembly was to cut a slot for the USB cable go through the side of the box and wire up the microcontroller.

The uC

I used the Arduino Mega form factor, but did not use the IDE. The code I used was AVR-libc based and was an extension of the littleKernel project I had been working on. I eventually added the optiboot bootloader so I didn’t need to pull the Mega from the box to update the code. I’ll get around to putting the code up eventually (probably).

What does it do?

Here, a feature list makes sense:

  • MIDI TX and RX lights
  • Power good light
  • Debug light (always good to have)
  • Reset switch
  • 12 control surfaces which can be independently mapped to different MIDI channels and Change Control numbers
  • LCD and scroll knob user interface for setting up the aforementioned options
  • A settings Save and Recall function using the uC EEPROM
  • A settings Dump and Load function using the serial interface

All in all, this was a really fun project. Perhaps I’ll put up a demo of me using it with a DAW…
Anyhow, here are the pics of the final product and an early prototype for reference! Thanks for reading!