I found a really good Instructables on creating modular controllers and decided to have a go at creating my own Arduino powered MIDI DJ Decks.


Below are the steps I took in designing and developing my Arduino powered MIDI DJ Decks.

  • I created some initial designs on paper and brought the components I needed.
  • I created designs in Inkscape and then got them laser cut.
  • I put everything together, wired it all up and then wrote code to run on the arduino.

As I was ordering the components to the UK, I brought the majority of my components from Farnell with a few such as the arcade buttons on eBay. It is worth buying a few components together as the minimum order is around £20. The picture below shows the components I brought.

  • 5 Linier 10k Sliders
  • 5 Slider Knobs
  • 9 10k Potentiometers
  • 8 Small Potentiometer Knobs
  • 1 Large Potentiometer Knob
  • 8 Arcade style buttons
  • Analogue Multiplexor
  • 8 Aluminium standoffs and screws
  • 2 Rotary Encoders

_DSC0003 (Medium)

When the components arrived I created a design using the free design software Inkscape. I designed the base in 3 levels, a top, bottom and face plate to allow some buttons and the jog wheels to be embedded. The design I produced can be seen below:


The pink lines seen in the image are lines that where engraved and blue lines are lines that are cut. In the end I only got the face plate cut as it was expensive to get all 3 layers cut. I ordered plain acrylic and cut it by hand for the middle and bottom layers. The line colors where used so that the design could be send to be laser cut. The designs where produced to real size within Inkscape and I got the acrylic cut using a UK based company RazorLAB for £40.

_DSC0006 (Medium)

I used the following guide to send USB MIDI messages from the adruino. This allowed my to buy a cheap MIDI -> USB MIDI cable and send my MIDI messages to be picked up in programs such as Virtual DJ.

When the cut acrylic arrived, I wired everything up, drilled some additional holes to hold the arduino and USB Midi connector in place. A picture of the wiring can be seen below:


Finally I wrote the arduino program to listen to button presses or changes in potentiometer values. The code is fairly straight forward and some alternate blog posts will explain some of the more complicated parts (analogue multiplexer, multiple buttons on one arduino pin and rotary encoders). However I can post the code on request.

And the final result:



Share Button


  1. Congratulations’m trying to do something just like to see a little more like the libraries arduino code and circuit diagrams to simulate in proteus and can add more things like audio meters etc equilizdor. As you have developed throughout all the project would pass.
    if I prodrias pass code and the circuit diagram and I can help what we can with pleasure. I’m using google language traslator by

  2. PLease send me the code for this >>>> struggling with encoder library/code … can get everything (buttons, pots, leds) to work but can’t find code for encoders.
    Thanks in advance

  3. hi this looks amazing by any chance do you have wiring diagrams or photos and any advice for the wiring etc as i am very new to arduino thanks

  4. Hey Nick,
    i’m interested in the code you wrote for this dj controller. Is it possible to get the code? I made one with buttons and potentiometers -> no problem. But if want to include the jogwheels (I used rotary encoders for that) it doesn’t work. I can’t scratch.

    Thank you

  5. Nick,
    Congratulations on your impressive project, I’m seriously considering making my own in a very similar fashion. Assuming your controller functions satisfactorily, do you recall the P/R on the rotary encoders you selected? I was thinking of mounting 7″ vinyl records on the jog wheels, and I imagine the encoder sensitivity I select will impact the feeling of the controller. I haven’t been able to find that statistic posted about any name brand controller for reference.
    I’ve got access to my university’s laser cutter, so the encoders will likely be the most expensive components I have to purchase. I’d like to make an educated decision! Thanks in advance for your help, and again congrats on your awesome project.

    • I think mine where 100 P/R and yes it will make a difference to the sensitivity. With the 7″ vinyl records the jog wheels will be bigger and so you will notice the sensitivity more easily. I guess the 100 P/R will pick up the movement after you have moved the jog wheel 3.6 degrees.


Leave a Reply

Your email address will not be published. Required fields are marked *