Arduino-based Wireless MIDI Foot Controller

#music #lab
May 2, 2026

In attempts to digitise my guitar rig - currently consisting of a Boss Katana 50 MkII and a XSonic Airstep Kat foot-switch, which are a pain to lug around since the amp is so heavy - I started building a MIDI foot controller using the Arduino Uno R4 Wifi, which can be used in combination with my DAW. This would make my setup much more portable (since it would now consist only of my laptop, the compact foot-switch and my audio interface), and much more versatile, since I would have access to so many more digital presets and effects as compared with the Katana.

April 26th, 2026

I started by getting my Mac to register the Arduino as a bluetooth MIDI device, and for my DAW to register incoming MIDI signals from the Arduino.

(Left) Setup: Arduino Uno R4 Wifi connected to my laptop, (Right) Code: the Arduino Sketch in Arduino IDE

I was able to connect to the Arduino via Bluetooth through Audio MIDI Setup. After this, the Arduino started showing up in MIDI studio.

(Left) Connecting to the Arduino via Bluetooth, (Right) “Arduino MIDI” starts showing up in MIDI Studio on Mac

April 30th, 2026

Today was spent finalising the circuit, and getting the system to work with Apple’s MainStage application. The final circuit consists of three switches: one to trigger the tuner, one to move to the next patch, and one to move to the previous patch. The Arduino sends MIDI CC signals (different ones depending on which switch you press), which can be mapped in MainStage to any assignment.

IMG_9601
Preliminary circuit
Testing the system with MainStage. (Left) activating the tuner, (Right) switching through patches in “Perform” mode

May 1st, 2026

Today was spent designing the enclosure. I used FreeCAD to do the 3D design and Finite Element Analysis (FEA), opting to use a curved profile (an ellipse) rather than a rectangular one, enabling the model to better handle the stress it would be under.

Screenshot 2026-05-01 at 19.26.33
A FreeCAD sketch to make the upper curved shell.
The finished design consisted of a curved top shell with the switches, which screwed on to a baseplate holding the Arduino
Screenshot 2026-05-01 at 23.06.06
Finite Element Analysis (FEA) for the curved top shell

May 2nd, 2026

Today I completed Footswitch MK1. After printing the design, I soldered al the components together and assembled them into the shell.

F192D3C6-7A61-4B2C-9912-B9B7F16A9B90_1_102_o
Print in progress: top shell
8EC712B2-BC3E-4019-8826-9466E525A1FA_1_102_o
Setup
All components soldered. I used 90º-angle header pins to ensure there was a solid electrical contact between the switches and the Arduino (instead of flimsy jumper wires)
IMG_1551
Finished footswitch

Connections