Pedal-O-Matic foot pedal module

Pedal-O-Matic is a quad foot pedal to CV and midi module I designed recently. I bought some analogue gear last year and a synth with 100+ knobs on it, and noticed that it is difficult if not impossible to change settings on these machines while playing with both hands.

So I bought a couple of foot / expression pedals. That worked fine but gave me limited options. Because basically the pedal ( M-Audio EX-P ) is a potentiometer, your synth has to have a special input for that. The pedal does not output a CV or any midi data. So how could I use them for other synths and digital synths?

You can see Pedal-O-Matic in the following picture in my 19 inch rack. I’ve inserted one footpedal here.

Because of the limited possibilities the pedals themselves offer I decided to make my own pedal to CV / midi interface. And since one can not stand on 1 foot for long, I decided to make a quad version of it :wink:

Per foot pedal there are 3 LEDs and a switch, one 6.5 mm input and one 3.5 mm output. The green and yellow LEDs signal whether the output voltage is positive or negative and they light up proportional to the voltage. The blue LED signals whether midi data is sent to the DIN connector.

The switch allows to choose between a unipolar and bipolar output voltage range, between an output voltage range from 0 V … 5 V or from -5 V … 5 V. I’ve chosen these ranges because they fit the input voltage ranges of my Behringer Neutron and Model D and I believe they are a euro rack standard.

One might think it would have been convenient maybe to add an atenuator to adjust the range of a pedal, but that would make the panel even bigger and a more generic solution would be to make a separate attenuation module. I went for the latter.

The schematic looks like this:

Note, the schematic only shows the opamps required for one foot pedal.

[Edit] I’ve added a schematic made in KiCad in a later post (see below).

So how does it work?
The idea is that each foot pedal being a potentiometer basically can act as a voltage divider. So I choose to use a voltage reference of 5V, the LT1021 as a reference. All foot pedals are connected to its 5V end. Given that I wanted a voltage range from 0 to 5 Volts, the circuit could have been very simple from here. Add an output and we would have been set!

But adding the option of a range of -5V to +5V made things a bit more complicated. For the 0 … 5 Volt range (switch in position I) the pedal provides a voltage to the minus input of the first opamp (top left of 4) which subtracts the voltage on its minus input ( 0 … 5 V ) from the 5 V reference on its plus input. This effectively gives a 5 … 0 Volts range, which can be read from the switch as Vout.

When the switch is set to position 2, only half of the reference voltage is fed to the plus input of the opamp, so the output will be (0V … 5V) - 2.5 = -2.5 V … 2.5 V. So whit that we are half way there. The second opamp (top right of 4) is used as a non inverting amplifier and will multiply its input signal by 2 which gives an output range from -5 V to 5 V. Voila!

Because I like to see what happens in a module I added the opamps in the lower part of the schematic. They are not necessary for realizing the voltage ranges, so you can leave them out. If I were to connect 2 LEDs + series resistor to the Vout point, one against the minus and one against the plus supply, then I would have seen the LEDs light up as soon as Vout is high enough to light the LEDs, which is not earlier than +2.7 Volts or -2.7 Volts (depending on the LED you use). So there would be a Vout range of -2.7V … 2.7V in which non of the LEDs would light up. WT*, I hear you cry out! Obviously, we can’t have that!

So I added the two extra opamps (with 4 of them in a TL074, this requires one chip per pedal). What they do is they take Vout as input and a voltage set by a trim pot, so that the green LED lights up as soon as Vout gets higher than 0 Volts (by adding exactly the 2.7 Volts needed to light up the LED) and the yellow LED lights up as soon as Vout goes below zero Volts. When calibrated these opamps take care of a smooth transition of the light of the LEDs around 0 Volts ( about the pedals center position ).

So, what is it with all the diodes in the schematic? The diodes allow the arduino to light up the LEDs (irrespective of the foot pedal’s position). This I’ve added to make it possible at startup of the module to let the arduino blink the LEDs so that I know they are all in working order. Who doesn’t like a bit of a light show?

The midi part is relatively simple. The arduino reads the foot pedal´s position via A0…A3. It then sends a midi controller value to the DIN connector via its TX output. The code can be found in this Pedal-O-Matic github project. The main trick of the sofware is to use the ResponsiveAnalogRead.h code, which smooths the analog input values and gets rid of numerical noise so that the arduino only sends out midi values if a pedal changes its position.

The pedals use 6.5 mm jacks, therefor the inputs are 6.5 mm stereo jacks. Given that my synths have 3.5 mm jacks I’m using mini jacks for CV outputs. If no pedal is present a 100k resistor keeps the CV value and midi output at a fixed value. Midi values are only send when the pedal changes position.

I used a proto board to build the module. The type I use makes it easy to use ICs and has copper tracks that “reach every corner” of the board that can be used for GND, +12V and -12V. Because there are 4 x 4 opamps involved, 2 x 4 jacks, 4 switches, 12 LEDs there are quite a few connections to be made as you can see in the pictures below.


I printed the panel with a 3D printer and the support for the proto board.

Note, the hand drawn schematic shows numbers for TL074 opamps (in red) and for TL072 opamps in case you want to omit the level LED circuitry from the build.

Note that for each LED color I’ve chosen a series resistor that on the whole makes them all give about the same amount of light.

8 Likes

The midi output of the module is controller 20 … 23 for footpedal 1 … 3, each on their own midi channel (1 … 4).

Midi channels can be easily rerouted via a sequencer, so the fact that they are set to a fixed value in the software should not be a problem. But what about the controller values I chose?

Given that some synths want e.g. a controller 19 for the cutoff frequency of their filter and I thought it would become too complicated to allow the user to set the value of the controllers from the front panel, I decided being a user of Ableton, to try and make a controller remap patch. I’m currently working on one in Max for Live (my 1st patch for Max), and will add it to the Pedal-O-Matic repository as soon as it is ready.

3 Likes

Super clean! Now just Mechanically modify your quad foot pedals into a way you can move one or two or three at a time with one foot :smile:

2 Likes

I printed this foot pedal a while ago:

and connected a wire to it this morning. Works nicely.

Its a wee little thing though, it is half the size of the M-audio fx-pedal. We’ll see how that works out in actual use.

4 Likes

Added a ‘Midi Effect patch’ for MaxForLive (or is it Max4Live?), to Pedal-O-Matic’s github repository. This makes it possible to change the controller number of a midi control message while keeping the controller value, which enables you to map a pedal’s midi messages to a control of a synth that requires a specific controller number. But there may be other use cases for this.

1 Like

Pedal-O-Matic v0.1 schematic.

Only one op-amp circuit for one pedal is drawn here. Adding pedal [2-4] is easily done by copying the op-amp circuitry, input and output jack connectors and connecting them for each foot pedal to Vref, Vp[2-4], LTA[2-4] and LTB[2-4].

Note: this is my 1st KiCad schematic.

[Edit] Unfortunately there are a few mistakes in this schematic. The + and - of U1A have been swapped and the resistor on pin 4 of the midi connector should be connected to +5V (not +12V).

5 Likes

this looks awesome . would love something like this set up ! . are you going to make PCB’s for this ?. I have not the skill or time to strip board or design something of this complexity . I am sure there would be many people interested in purchasing my self included .

2 Likes

Hmm, make a pcb… Well, the schematic is the first step in a KiCad design. As the pictures show I already have a strip board version. I do need to check whether everything works the way I want it though if 4 pedals are connected to it (still waiting for some 6 mm jack outlets). I will have a look at what it takes to design a PCB tomorrow. I’m not promising anything here.

4 Likes

no pressure , you are just farther in on something I have dreamt of . I am sure if you put the time into making it work , I / we could make it worth your while .

1 Like

I like your idea of -5v to +5v foot pedal ,it was discussed on another thread and dismissed , but it would be great to go up octaves and down too with your foot . I could build the pedal to do this , its just the electronics part is beyond my skill level at this point .

1 Like

The -5V to 5V range is added to accommodate Euro rack modules and in my ecosystem a few Behringer synths use that. What is the CV range for the Kosmo modules?

2 Likes

I don’t think that’s any more standardized for Kosmo than for Eurorack, but @antoine.pasde2 has collected some information here:

but I think the first question should be “which CV” – anything with a summing node and either an existing on-board offset (e.g. coarse tune, octave selector, etc) or one external CV plugged in can handle an additional negative CV just fine. Other circuits might be less willing to deal with negative CVs.

3 Likes

Exactly that brought me to the 2 ranges. Some of the semi modular Behringer synths I have ( Model D, Neutron, Craft ) allow a -5V to 5V CV signal to certain inputs, but only 0V - 5V to others. I’m not sure though whether the latter are protected against negative voltages ( a diode would be adequate ). I suppose I could maybe measure the presence of a diode on the input when the device is not switched on …

3 Likes

I updated the schematic.

I split the arduino and voltage reference bit from the op-amp circuits and put them on separate sheets. The main sheet looks like this:

The sub sheets for the 4 pedals are basically the same. The one for pedal 01 looks like this:

[Edit] Unfortunately there are a few mistakes in this schematic. The + and - of U1A have been swapped and the resistor on pin 4 of the midi connector should be connected to +5V (not +12V).

4 Likes

Since the Arduino already reads the pedals’ analog values, you could use it to drive the yellow and green LEDs too. You could then get rid of two opamps, a bunch of resistors and diodes and maybe even the transistors.

You could also use the second switch of the DPDT to change the feedback resistor of the first opamp U1A to select a gain of 1 or 2, and get rid of U1B. (BTW you’ve got the feedback to the + input of U1B so that needs to be fixed anyways.)

The MIDI out pull-up should be to +5V, not +12V.

3 Likes

Thank you for looking at the schematic so thoroughly!

[Edit] The LEDs are not essential and could have been left out. That will save 2 opamps, the transistors and a few diodes. Then the TL074 could be replaced with one TL072 per foot pedal.

Indeed I could have the arduino control all the leds. I started out with analog electronics because I needed to do all calculations in that domain to make the 2 voltage ranges possible and I added the LEDs afterwards but didn’t think of the arduino controlling the LEDs via PWM, so I implemented that in analog electronics as well. Had I gone ‘your way’, that would have saved a few components indeed! But your suggestion would not work out of the box. For this to work the arduino should also be able to read negative voltages from the foot pedals. So those would then need to be connected between +12V and -12V. And then also the configuration of the controlling op-amps UxA and UxB who are responsible for creating the 2 voltages ranges needs to be adapted.

The feedback for U1B is to the negative input, to make it a 2x amplifier. But it is a non inverting amplifier, so that may seem a bit odd at first. But it is drawn correctly. As you can see all op-amp circuits are using in a non-inverting way.

[quote=“antoine.pasde2, post:15, topic:1210”]
The MIDI out pull-up should be to +5V, not +12V.
[/quote] Yep, that is not what it should be, should be a +5V label.

I will change the schematics to make the corrections needed and leave the rest as is because I already have a working prototype. [Edit] I think that I will draw a sketch of the circuit which includes controlling the LEDs via the arduino and changing the foot-pedal circuitry. This sketch will however remain untested until I need a second Pedal-O-Matic. I leave simplifying the design to anyone who wants to. Feel free to contact me if you need any help.

Thanks again for looking at the schematic!

4 Likes

Sorry, I meant the feedback on U1A is on the + input.

That is not a feedback loop in the sense of a normal feedback loop. The circuit subtracts the voltage on the switch from the voltage VP_x.

Agreed.
You could have the Arduino read the voltage at pin 2 of SW1A to determine if the range is bipolar or not, and control the LEDs accordingly.

1 Like

If you don’t have negative feedback, the opamp becomes a comparator and you’ll only get two discreet output values.

2 Likes