Arduino based circuit controlling 3 Zoom pedals

I just finished my DIY Arduino based MIDI Zoom pedals controller. Its main goal is to use 1 MIDI channel to control 3 Zoom pedals with PC messages.

I own 2 Zoom MS-50G, one for my MERIS ENZO synth pedal, and one for my EHX C9 organ pedal. I have also a Zoom B1ON to handle all bass sounds. All these 3 pedals have 40 presets and a mini-USB plug to receive MIDI messages.

In live conditions, I want to be able to change completely my sound in a heartbeat. I need to control these pedals.

Bill of material:

  1. An Arduino Pro Mini Atmega328P 5V or equivalent
  2. An Arduino MIDI shield
  3. 3 X USB Host Controller Board V2.4 only provided by Hobbytronics, with the option "MIDI device" pre-installed (one per pedal)
  4. A LM7805 voltage regulator to turn the 9V input into a 5V for every board


The MIDI message goes in the MIDI shield ==> Then in the RX of the Arduino Pro Mini ==> Which, according to the value entered, will either send the message to PIN2, PIN3 or PIN4 that are setup as extra TX pins ==> this goes to a USB Host Controller board that sends the signal to the dedicated pedal.

BINGO! Using only one MIDI channel (channel 5 in my case), I control 3 pedals. Indeed, a PC message can take a value ranging from 0 to 127. Way to much far a 40-memory pedal. So I organised things as follows:

  • With PC from 0 to 39, I control pedal 1
  • With PC from 40 to 79, I control pedal2
  • With PC from 80, I control pedal 3

Main drawback: I control only one pedal per message. But in a real use case, that is OK. Most of the time, I don't need to control them all at once.

The casing has been done by a friend of mine with a 3D printer ! By the way, the same box also controls my MERIS ENZO presets and powers my Behringer FCB-1010 through the MIDI cable (the famous one-cable mod).