How to Build a MIDI Controller (Hardware)

Detailed description of the building steps of a MIDI Controller. This article contains all the information you need: hardware schematics, micro-controller firmware and PC software to test. It was originally designed by Andras Fuchs in 2006, but it should work with the most recent DJ-software like Native Instruments Traktor without any problem.


  1. 1
    • Some of the hardware design files were created by Orcad 9.
    • To program the Atmel ATMega8 8-16PI you will need a serial port on your PC/Mac, and probably a Atmel programmer hardware.
    • You must to be able to put the hardware pieces together, so you need basic electronic tools and skills to do so.
    • Atmel programming experience is not required but it is definitely a plus.
  2. 2
    • The latest hardware revision number is 9, which was last modified on 2005.08.30.
    • The software has the revision H, which was last modified on 2006.06.13.
  3. 3
    • Image titled Base_schematics_rev9_small.gif
      Image titled Panel_schematics_rev9_small.gif
  4. 4
    Build the hardware
  5. 5
    • Download the firmware source or binary.
    • PonyProg security bits.
      Run PonyProg and set the security bits like this.
  6. 6
    Test MIDI signals
  7. 7
    • Download the mapping file for Traktor File:mapping.tks
    • Template for mapping
      Print the mapping template
  8. 8
    • Mixer01


  • We are not going to work with high voltage / high currents but safety is always should come first
  • There is some bugs in the firmware, so rarely it did an "auto-reset" which caused little "jumps" in the controls.
  • This article is better to be looked at like a starting point of a development, not a final product.

Things You'll Need

  • Software:
  • Orcad 9 (or compatible) (hardware design tool)
  • AVR Studio (Atmel IDE and compiler)
  • MIDI-OX (MIDI tester)
  • PonyProg (serial device programmer)
  • Hardware:
  • 1x Atmel ATmega8 8-16PI (u Controller 8K flash, 1K RAM DIP 28 512b EEPROM)
  • 6x CD4051C or CD4051BE (8-channel analog multiplexer, DIP16)
  • 2x CD4053 (triple 2-channel analog multiplexer, DIP16)
  • 1x 74HC139 (double 2/4 demultiplexer DIP16)
  • 2x 74HC594 (8 bit, DIP16)
  • 2x 2N 2222A *N (75/40V, 800 mA, P=500mW, TO-18)
  • 2x 40-pin IDE cable
  • 1x 5 Volt two-state switch
  • 17x 6FAM 10kOhm potentiometer
  • 1x 6N139 (TOS, 2,5 KV OPCS/TTL-CMOS)
  • 1x 7805 BT (Voltage regulator)
  • 16x DIL16P (DIP16 socket)
  • 1x DIL28P (DIP28 socket)
  • 2x 1N4148 (75V 100mA diode)
  • 4x 220 Ohm resistance
  • 2x 330 Ohm resistance
  • 18x 1k Ohm resistance
  • 1x 10k Ohm resistance
  • 27x 1M Ohm resistance
  • 17x rotating potmeter
  • 1x 22pf capacitor
  • 1x 22uF (16V) capacitor (electrolyte)
  • 2x 27pF capacitor (ceramic)
  • 1x 16 Mhz/30ppm (HC-49/U4H) crystal
  • 18x 3mm, 5V, red led
  • 26x mini-push button (T609 or DTE 6Q-SW)

Article Info

Categories: Hardware | Input Devices