Smart wireless MIDI foot controller for guitarists and more.

Similar projects worth following
I know. You are thinking: "yet another MIDI controller with Arduino".

Pedalino™ is something new from any previous DIY projects and even better of commercial alternatives at a fraction of the cost.

Not a guitarist or MIDI addicted? Don't worry there are a lot of interesting things here you can re-use for your projects. For example:

- Smart procedure for ESP8266/ESP32 WiFi configuration
- Arduino board as a programmer for the ESP-01S board
- A responsive mobile-first web interface with Bootstrap 4 and ESP8266
- Serialize data an transfer back and forth from Arduino to ESP8266/ESP32 with JSON
- Blynk app connected to Arduino via Bluetooth LE

Smart wireless MIDI foot controller for guitarists and more.

  • Plug-and-play with any MIDI-compatible app on iOS 8 and above as well as OS X Yosemite and above.
  • High customizable using iOS or Android app
  • 4 MIDI interface (USB, Bluetooth, WiFi, legacy DIN MIDI IN and MIDI OUT connectors)
  • No extra drivers to connect Windows, macOS, iOS (iPad/iPhone) and Android
  • USB MIDI class-compliant device
  • Bluetooth LE MIDI (iOS and macOS compatible)
  • Network MIDI (aka AppleMIDI or RTP-MIDI)
  • ipMIDI
  • Open Sound Control (OSC)
  • IEEE 802.11 b/g/n Wi-Fi 2.4 GHZ with WPA/WPA2 authentication
  • Bluetooth Low Energy 4.0
  • MIDI routing from/to any interface (USB, Bluetooth, WiFi, legacy)
  • MIDI clock master and slave
  • MIDI Time Code (MTC) master and slave
  • OSC to MIDI and vice versa
  • Any number of pedals of any type in any order
  • Auto-sensing footswitches and expression pedals
  • Modular assembly of easy to find hardware and re-use of open source software libraries

More info on


  • Support for digital foot switches (momentary or latch), analog expression pedals and jog wheels (rotary encoders)
  • 10 banks of 16 controllers each
  • 3 profiles
  • Each port can connect 1 expression pedal or up to 3 foot switches for a maximum of 48 foot switches.
  • MIDI output via USB MIDI, Bluetooth, classic MIDI OUT connector, AppleMIDI (also known as RTP-MIDI) or ipMIDI via Wi-Fi
  • Send the following MIDI events: Program Change, Control Code, Note On/Off or Pitch Bend
  • MIDI channel, MIDI note, MIDI control code, MIDI program change can be configured by each pedal and by each bank
  • Switch debouncing and analog noise suppression without decreasing responsiveness
  • Invert polarity via software
  • Individual automatic calibration of expression pedals. Manual fine tuning is not usually requested.
  • Transform a linear expression pedal into log expression pedal and vice versa
  • Responsive and mobile-first configuration web interface (http://pedalino.local)
  • Configuration via IR remote control
  • Change bank via IR remote control
  • Simulate footswitch push via IR remote control
  • Use any spare IR remote control
  • Smart Config technology to help users connect to a Wi-Fi network through simple app on a smartphone.
  • Firmware update via web interface (http://pedalino.local/update)


  • Change preset to your favourite guitar rig
  • Hands-free way to control your audio parameters during live performance
  • Dramatically expanded audio system parameter control via WiFi, Bluetooth, USB, MIDI or OSC.
  • Set your music free with wireless MIDI connectivity
  • Bluetooth wireless MIDI adaptor for connecting instruments with MIDI IN/OUT terminals to your iOS devices (iPhone/iPad/iPod Touch) or Mac
  • Transform legacy MIDI equipment to USB MIDI class-compliant device
  • Transform wired MIDI equipment into wireless MIDI equipment
  • Transform legacy MIDI equipment to OSC control surface
  • Connect Windows to macOS and iOS devices via AppleMIDI or Bluetooth LE
  • Send MIDI messages using an IR remote control from your sofa



fzz - 355.99 kB - 10/21/2018 at 20:14




fzz - 335.63 kB - 10/21/2018 at 20:16


Portable Network Graphics (PNG) - 522.94 kB - 10/19/2018 at 13:11


Portable Network Graphics (PNG) - 503.95 kB - 10/20/2018 at 19:05


Portable Network Graphics (PNG) - 66.08 kB - 10/03/2018 at 14:26


View all 7 files

  • 1 × Arduino Mega 2560 R3
  • 1 × LCD Keypad Shield 16x2 LCD based on the Hitachi HD44780 chipset
  • 3 × 220Ω resistor ¼W
  • 1 × HM-10 (or compatible like HC-08) Bluetooth UART Communication Module
  • 1 × Any IR Receiver module (like KY-022 or equivalent) supported by IRremote library

View all 13 components

  • Ready for the final

    alf45tar10/22/2018 at 07:24 0 comments

    Just in time for the final.

  • Shots from video stage

    alf45tar10/21/2018 at 19:29 0 comments

  • Auto Sensing

    alf45tar10/19/2018 at 14:00 0 comments

    Most of foot switches and expression pedals are plug-and-play because Pedalino will recognize via auto-sensing feature.

    Auto-sensing will also enable automatic calibration. After each power on cycle move the expression pedal to its full range and Pedalino will calibrate it. During the first full movement of the pedal MIDI events could be not precise because Pedalino is still learning the full range of the pedal.

  • Calibration

    alf45tar10/19/2018 at 13:59 0 comments

    Pedalino like some of the more sophisticated effects and controllers incorporate a calibration utility that can mitigate some of the issues with pot rotation. There is a software option that allows the user to match the device to a specific expression pedal. This involves moving the pedal between it’s maximum and minimum settings and the device measuring the result. It then sets it’s internal parameters so that it recognizes where the maximum and minimum settings are of that particular pedal. This can often resolve problems of limited range. It’s important to calibrate all expression pedals. If the pedal is ever replaced, even with the same model, calibration should be run again.

  • How to reset Pedalino to factory default

    alf45tar10/19/2018 at 13:51 0 comments

    • Press and hold RIGHT button on LCD Keypad Shield
    • Press and release RST button on LCD Keypad Shield
    • Release RIGHT button when Pedalino reboot (after about 10 seconds)

  • Responsive mobile-first web interface

    alf45tar10/17/2018 at 21:47 0 comments

    Pedalino can be configured using a web interface pointing your browser to http://pedalino.local once Pedalino is connected to the WiFi network.

    Web interface is designed using Bootstrap 4 the most popular HTML, CSS, and JavaScript framework for developing responsive, mobile first projects on the web

    Final version will be released later this year. Here a couple of sneak preview images.

  • Pedalino App

    alf45tar10/03/2018 at 14:25 0 comments

    Pedalino can be configured and controlled by iOS and Android Pedalino app made with Blynk.

  • ipMIDI

    alf45tar10/03/2018 at 12:13 0 comments

    Pedalino can route MIDI over your Ethernet or WiFi network, using ipMIDI protocol to send and receive MIDI data between computers connected to your LAN.

    Pedalino is designed to be compatible with:

  • Open Sound Control (OSC)

    alf45tar06/01/2018 at 09:01 0 comments

    Open Sound Control (OSC) is an open, transport-independent, message-based protocol developed for communication among computers, sound synthesizers, and other multimedia devices. Although the OSC specification does not enforce any particular type of transport, OSC is nowadays mostly used over traditional networks known as IP (Internet Protocol).

    The OSC protocol uses the IP network to carry messages from a source to a destination. Sources of OSC messages are usually called OSC Clients, and destinations OSC Servers.

    Pedalino is both able to receive (as a server), and send to several destinations (as multiple clients).

    UDP and TCP are network protocols used for communicating OSC messages between two devices. UDP is the most widely used at the moment.

    Pedalino supports UDP protocol only for transmitting and receiving OSC messages because TCP has more latency than UDP.

    Pedalino will listen for OSC messages on UDP port 8000 and broadcast OSC messages on UDP port 9000 on the same WiFi LAN segment it is connected.

    OSC namespace

    OSC specification does not define any namespace. There is no de-facto standard too.

    Pedalino OSC namespace for incoming and outcoming MIDI events is:

    MIDI EventOSC AddressOSC ArgumentsMinMaxNote
    Note On/pedalino/midi/note/#float velocity int channel0 11
    # is the MIDI note number 0..127
    Note Off/pedalino/midi/note/#float velocity int channel0 10
    # is the MIDI note number 0..127
    Control Change/pedalino/midi/cc/#float value int channel0 11
    # is the MIDI CC number 0..127
    Program Change/pedalino/midi/pc/#int channel116# is the MIDI PC number 0..127
    Pitch Bend/pedalino/midi/pitchbend/#float bend01# is the MIDI channel 1..16
    After Touch Poly/pedalino/midi/aftertouchpoly/#float pressure01# is the MIDI note number 0..127
    After Touch Chennel/pedalino/midi/aftertouchchannel/#float pressure01# is the MIDI channel 1..16
    Song Position Pointer/pedalino/midi/songposition/#int beats016383# is song position in beats (1/16 note)
    Song Select/pedalino/midi/songselect/#int number0127# is song number 0..127
    Tune Request/pedalino/midi/tunerequest/
    Active Sensing/pedalino/midi/activesensing/

    OSC-to-MIDI and MIDI-to-OSC

    Pedalino is able to converts incoming OSC messages to MIDI events and outgoing MIDI events to OSC messages.

    The bottom line is you can connect MIDI devices (or software) that does not suport OSC natively with OSC enabled software (or device) without any hard to configure software bridge.

  • AppleMIDI

    alf45tar06/01/2018 at 09:00 0 comments

    RTP-MIDI (also known as AppleMIDI) is a protocol to transport MIDI messages within RTP (Real-time Protocol) packets over Ethernet and WiFi networks. It is completely open and free.

    Pedalino is a session listener over WiFi. It does not support session initiation functionalities, which requires the use of an external session initiator on the network to open a RTP-MIDI session with the Pedalino. This session initiator can be a macOS computer (Audio MIDI Setup->MIDI Studio->MIDI Network Setup) or a Windows computer with the RTP-MIDI driver, an app on your iOS device (for example MIDI Network) or an embedded RTP-MIDI device.

    Pedalino is designed to be compatible with:

View all 12 project logs

  • 1
    Build Pedalino model A or model B

    Right now the hardware is just a working well prototype. It will be boxed when the hardware will be frozen.

    Model A

    WiFi only

    Model B

    WiFi and Bluetooth Low Energy (BLE) MIDI

  • 2
    Firmware upload overview

    Pedalino is using 2 boards and 3 microcontrollers. All of them need to be flashed with the right firmware before using Pedalino.

    BothArduino Mega 2560ATmega2560
    Click here
    Click here and here
    AESP-01S 1MESP8266PedalinoESPClick here
    BDOIT ESP32 DevKit V1ESP32PedalinoESPClick here
  • 3
    Install build and upload IDE

    PlatformIO (recommended)

    PlatformIO is the recommended IDE for Pedalino build and upload.

    1. Install PlatformIO IDE for VSCode
    2. Run the following commands from View->Command Palette (Ctrl+Shift+P)
      • Git: Clone
      • You will be asked for the URL of the remote repository ( and the parent directory under which to put the local repository.
      • PlaftormIO: Build
      • Open platformio.ini and set upload_port according to your PC settings
      • PlatformIO: Upload

    That's all folks.

    Arduino IDE

    Arduino IDE can be used for Pedalino build and upload but it requires more manual steps for board installation and libraries installation.

View all 11 instructions

Enjoy this project?



Andreas wrote 04/26/2020 at 11:22 point

is it possible to configure a switch to send sysex? If so, are there any length limitations?

  Are you sure? yes | no

gurnay1973 wrote 05/27/2019 at 20:43 point

Dear, I love this project and I would love to get to the video, but I see advances that I can not find in the sketch. There will be the possibility of uploading the update and also information on how to install the push button (such as push buttons momentary pedal). also sketches of connection of the trs and of the pedals of expression. I am a rookie and I would appreciate your help, please.

  Are you sure? yes | no

Craig Hissett wrote 02/07/2019 at 01:23 point

I don't know how I've only just discovered this project - it is amazing!

I'm currently putting together a little board that uses a Pi running MODEP and need a footcontroller to allow for control over the software. This is perfect!

I also really like the Reaper demo too; my next project after the Pi one is to build something on a headless Linux box and this would again be perfect for it.

Great work matey!

  Are you sure? yes | no

Daren Schwenke wrote 06/01/2018 at 08:58 point

Might need to steal the wireless bit from this project if I ever get back to my attempt.  #SMidi - Soft MIDI Pedals 

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates