MIDI
Footswitch
|
This MIDI footswitch is a guitarist's best friend. Using only seven switches,
one out of 128 possible patches can be quickly selected. Each patch can issue up to 16
program change messages (one per MIDI channel) and it also supports two real-time
controller pedals. All footswitch programming is saved in battery-backed SRAM.
|
|
|
Click
on the picture at the left to see a larger photo of the prototype footswitch.
Each switch is dual-purpose. Tap it quickly to invoke the primary function,
and press and hold (for longer than 1 1/2 seconds) to invoke the secondary function. |
|
The first five switches (on the left) are used to select one out of 128 presets.
Quickly tap the 1/6 switch twice and press and briefly hold
the 0/5 switch (for longer than 1 1/2 seconds) to select patch 115.
By tapping one of the two switches on the right, the patch number is either increased or decreased by one.
Press and hold one of the two switches to change the patch number by 10; hold the switch down
to continue to cycle through the presets by 10s.
Simultaneously tap the right-most two switches to toggle between two patches.
|
|
|
Central to the design is an 8031 microcontroller (8051 family).
Click on the picture at the left for a larger view of the top of the circuit board.
A linear voltage regulator ensures a stable 5 volt supply for all components.
The four green LEDs seen in the upper left portion of the circuit were used
while debugging the firmware.
|
|
|
|
The footswitch supports two real-time controller pedals.
A common volume pedal serves as the resistive element of an RC circuit.
The microcontroller sends real-time
messages proportional to the discharge time of the RC circuit.
A setup function calibrates minimum and maximum values for each
of the two controller pedal inputs. Click on the picture on the
left for a better view.
|
|
This project was initially intended as a magazine article.
I was responsible for all aspects of the project, including
conception, hardware design (plus implementation and debugging),
firmware design (plus implementation and debugging), product testing,
and building the wooden case (I took welding classes a few years too late).
|