I know, I know…I was supposed to be working on upgrading MODEP to 1.10…but I have a more pressing need. I really wanted to have a small floor based MIDI controller that I could use with MODEP when playing live. I found the one mentioned here at treefallsound.com but I already have my PiSound card and matching case for my setup. I also wanted the option to NOT have to break out the MIDI pedal in situations where I might not need to change my sound. I also wanted the ability to change pedalboards in MODEP in the same device. There are MIDI pedalboards out there but they are all very generic and certainly don’t have the ability to select a pedalboard from MODEP. So…I decided to make one.
With the recent release of the Raspberry Pi Pico W (“W” means it has wifi) I embarked on creating a MIDI pedalboard that could also connect to MODEP to select a pedalboard. Happy to report that I am getting VERY close. Attached is a picture of what I’ve dubbed “MIDIZilla”.
So basically it has:
- 6 programmable switches that can be mapped to any MIDI CC (0 to 127). To the right of each switch is an LED that will toggle on/off as the switch is pressed.
- The LCD in the upper left shows a small description (4 characters) of what each footswitch does and this label can be changed.
- The set of buttons to the right allow for changing the pedal’s settings. Through these buttons you can create one or more “Mappings” (MIDI CC and label for the 6 switches), edit the MIDI CC and label for each button, enable/disable a button, create a new mapping, delete a mapping, etc.
- 4 function buttons. F1 currently allows you to switch between upper, lower, numbers and symbols when editing text on the LCD. F2 is a backspace character when editing text on the LCD. F3 is not currently used. F4 is hooked to the “RUN” pin on the Pico W. Pressing F4 once resets the microcontroller and runs the main code. Pressing F4 slowly twice puts the controller in “safe mode” where it won’t run the main code. Useful when you write code that crashes the microcontroller.
- The switch on the upper right is a Mode switch where you can press while playing and select a Mapping. After pressing the Mode switch you can press switch 3 for up and switch 6 for down. Once you have selected a mapping pressing the Mode switch again loads the mapping.
- A red LED to the left of the Mode switch turns on if the microcontroller code runs into an error.
- There is an expression pedal jack on the right hand side (code not yet implemented because I don’t have an expression pedal)
- USB Connection on the back
- The board can be powered off the USB port connected to the PI.
The button panel is a custom panel that I created with simple tactile switches and PCB board.
The code on the microcontroller is custom written by yours truly. I’m using CircutPyton currently and the only drawback is the wifi module on the Pico W is not yet supported in CircuitPython. I could use MicroPython but it lacks USB midi support which is more important to me at the moment. When CircuitPython enables support for the wifi module I will add code to connect to a MODEP instance. Then pressing the MODE switch will allow you to load a pedalboard in MODEP. At that point the code will also look for a mapping that matches the selected pedalboard and load that mapping.
One of my primary goals in this project was to keep the cost to a minimum. That’s why I chose a character LCD instead of a TFT or similar. I did get the 4x20 LCD so I could have more lines/characters to work with.
Everything needed for this board can be purchased on Amazon. If anyone is interested I will also supply the code that will need to be loaded on the microcontroller as well as a Scribus document that you can use to cut out the holes for the enclosure. Let me know and I can post a list of items that I purchased for the project. FYI, Pico W are hard to find right now, hopefully supply will get better soon.
I used an aluminum enclosure and if I did this again I might pick ABS plastic box. Cutting out the LCD/USB holes was a pain as I don’t have great tools at home for cutting rectangles into metal.
I’ll try to post a video of the unit in action once I get all the connections made.