Introduction: DIY Arduino Based MIDI Foot Controller

I've been wanting to try a guitar looper for a while, but I don't like the idea of expending money on a looper specific pedal when I can use a computer for that and since I've been learning arduino for fun made perfect sense to make a an arduino based controller.

After some experiments and search on the web I found a similar project, and that pointed me in the right direction, this lib that provides basic MIDI device functionality for arduino.

so far this project has been lot of fun, and now I have more ideas I want to try when I have the time.

Step 1: Build Process

I wish I had taken pictures of the building process, but I didn't, sorry.


  • Arduino Leonardo
  • prototype board
  • pin headers
  • 10k resistors
  • push buttons (normal open)
  • wires
  • enclosure


  • Soldering Iron
  • wire cutters
  • hand saw
  • multimeter


I tried using some metal push buttons but they were expensive, not very reliable (the ones I got anyways) and very noisy. so I decided to try microswitches. these worked just fine. on the next version I'll probably try using arcade switchesm but YMMV.

Start by deciding how many switches you need in your foot controller. find or build a case that will be able to hold everything.

layout how you want your buttons to be and drill the holes for them

then connect the switches to the arduino. you can go many ways about this, what I did was to create a shield with a protoboard and some pin headers.

remember to ground each of the input pins with a 10k resistor.

Step 2: Program the Arduino

  1. Install the Arduino IDE (download it from ) install into your computer
  2. clone this repo you can fork it if you plan to change the code to suit your needs
  3. select artcore on the board selection

  4. change the scketch to suit your needs

  5. compile and upload the scketch to your arduino (I used Leonardo)


I found out the hard way that some bad soldering can create some weird bugs, this MIDI monitor software is really helpful to understand what was happening ( )

Now it's time to connect the foot controller to your computer, launch your DAW and configure it to use the controller. you should see it as a usb midi device. I tried it on OSX and Linux and didn't need any special driver

IMPORTANT: if you are going to change the code do not try to use Serial to log messages into the console, that won't work since the serial is being used to create the usb midi device.

Whats next

I'm planning on creating another foot controller with many more switches, and if I figure it out how to create the chasis, an expresion pedal.

and also another, lets say "desk" controller with faders and some buttons to control the DAW on live situations.

Arduino All The Things! Contest

Participated in the
Arduino All The Things! Contest