Dynamic Range MIDI Foot Pedal

USB MIDI foot pedal with customizable range of motion
17h 53m
2× print file
0.20 mm
0.40 mm
209.00 g
282
538
3
6607
updated September 24, 2022

Description

PDF

About

I was looking to buy a MIDI pedal with a good range of motion and a fairly low price (mainly to control virtual instrument's expression/volume while my hands are on the keyboard, and my right leg is on a sustain pedal).

I didn't find what I was looking for, so I figured it's a good motivation to improve my CAD skills, and make my own.

My idea was to let the user choose the range they want, so... this pedal supports up to 80 degrees. While not expected to be fully used (I know I don't have that flexibility) different ranges work for different positioning of the pedal, and personal comfort.

Behavior

  • By default, the full range is used.
  • A press on the blue side-button initiates range selection mode, which is enabled for 5 seconds. It's indicated by a blue light, and can be ended sooner, by an additional press on the button.
  • Range is chosen by moving the foot pedal back and forward, over the desired range.
  • After the range is set, it is saved to EEPROM (so it's not power depended).
  • Movements in the range are indicated by the green light (indicating MIDI commands are sent to the host) while movements outside of the range, are ignored.

Software

Developed in C with the Arduino framework.

Code can be found here.

Hardware

Mostly 3d printed (PLA) and split to avoid support material, and to be strong (in terms of printing orientation).

You can print the “part_groups” 01 and 02 (3mf or stl), or download the parts separately.

There is also "assembly.step", to help you customize the design.

Additional parts:

Assembly

Notes:

  1. All screws will be connected from the top (with washers) to nuts at the bottom (of the relevant part).
  2. The computer-generated images below don't show screws and wires (because I was too lazy to model them. Sorry about that).
  3. I've used these externally available models:
    1. Arduino Micro
    2. Potentiometer

Steps:

  1. Solder 3 wires to the potentiometer (15cm each. You can cut them more precisely later).
  2. Connect the potentiometer to the potentiometer_holder (Use glue):
  3. Connect the potentiometer_gear to the potentiometer (make sure it's tightly coupled with the shaft):                             
  4. Connect the potentiometer_holder to the base_plate, using 2 screws. Don't tighten the screws too much (allow the potentiometer_holder to slide on the rail, for later adjusments):                               
  5. Connect the 2 bearings to the left and right bearing holders:
  6. Connect the right_bearing_holder to the base_plate with 2 screws:
  7. Connect the rod_gear to the rod.
  8. Push the rod through the bearing of the right_bearing_holder. Make sure it's oriented correctly, so that the rod_gear's teeth connect to potentiometer_gear's teeth when both gears are aligned:                 
  9. Connect the left_bearing_holder to the base_plate with 2 screws, pushing the other side of the rod into the left bearing:      
  10. Make sure that rod_gear is aligned to the potentiometer_gear, and that a bit of the rod sticks from both sides of the bearing holders.
  11. Connect both left and right rod connectors to the rod:    
  12. Put the pedal on the left and right rod connectors, and connect the screws, without connecting the nuts:          
  13. Move the pedal back and forth, making sure both gears are in contact. Correct the angle of the potentiometer_gear, so that it moves together with the rod_gear and doesn't block it from moving the whole range of the pedal.
  14. Disconnect the pedal from the rod connectors, and tighten the potentiometer_holder screws:                                
  15. Solder potentiometer wires to Arduino (The picture below is from the finished assembly. In this step you only need to solder the marked wires):
    1. Potentiometer top wire -> Arduino GND
    2. Potentiometer middle wire -> Arduino A0
    3. Potentiometer bottom wire -> Arduino 5V
  16. Solder micro_switch to Arduino (The picture below is from the finished assembly. In this step you only need to solder the marked wires):
    1. LED minus & one of the button pins -> Arduino GND
    2. Other button pin -> Arduino pin 2
    3. LED plus -> Arduino pin 3
  17. Connect the micro_switch to the base_plate (use glue):  
  18. Connect the button_holder to the micro_switch and base_plate (use glue):
  19. Connect Arduino to the base_plate (use glue):  
  20. Reconnect the pedal to the rod connectors with screws and nuts.
  21. Add rubber pads:                
  22. You can optionally add a pad to the button, to make it easier to press with your other leg.

Have fun!

Tags



Model origin

The author marked this model as their own original creation.

License