The Pedal Box was built to be a very basic extension to a floorboard. Giving it an extra 8 Expression Pedals, and a display to see patch change / CC names, as well as their values. It has grown far beyond it's original intention.
Is an expression pedal controller to expand an existing floorboard.
In addition to adding up to 8 expression pedals, up to 8 relays can be triggered and the LCD display reflects the actions of your existing floorboard as well.
Is a complete MIOS/MBHP powered floorboard. It can support up to 16 buttons, with banks so there is up to 128 virtual buttons.
No matter how many buttons you connect, you can always access all 128 virtual buttons
It also supports another 16 fixed buttons, that are the same regardless of bank. Great for boost, or effect on/off functions. A further 2 special function buttons allow bank up/down and special functions.
Up to 8 relay's can be triggered and of course up to 8 expression pedals.
Each button or pedal can be assigned to a specific device, up to 7 devices can be controlled over 7 midi channels.
Pedal Box / Pedal Board features an extensive display system;
Program changes can be named, controls can be named, and can also display on/off, a meter showing approximate position for pedals. It can display tap tempo rate, or even the name of a value for a control - eg. For an Amp model select CC, it can display the model name selected.
Basically Pedal Box is a MIDI Monitor / Processor. Pedal Board is a… well… floorboard.
|Display MIDI Input||Y||Y|
|Rig Control Via MIDI||Y||Y|
|Rig Control Via DIN||N||Y|
|Relay Control Via MIDI||Y||Y|
|Relay Control Via DIN||N||Y|
|Gig Control Via MIDI||Y||Y|
|Gig Control Via DIN||N||Y|
|PedalSwap Via MIDI||Y||Y|
|PedalSwap Via DIN||N||Y|
|Setup Via MIDI||Y||Y|
|Setup Via DIN||N||Y|
|External Pedal Input||Y||Y|
* - Setup can still be done via the PC Editor and uploaded via MIDI
Here are some examples of what is displayed on the LCD.
Pedal Box / Pedal Board has been written in C for PIC18F4620.
The legacy version for the PIC18F452 is no longer available.
Firstly your PIC must be setup with bootloader and MIOS 1.9 or higher.
You should be familiar with compliling 'C' files for MIOS.
As well as uploading files to the Core module. See http://www.ucapps.de/
You need to upload the PB software, as well as fill the banksticks with the required info.
The first bankstick is used by PB with info about itself (Master Bankstick), the others are used to tell PB info about the devices it is controlling (Device Banksticks).
USE THE PC EDITOR to setup and upload the Master Bankstick data.
You can also see the manual for more information.
Device Banksticks tell PB about the MIDI devices it is controlling
In these banksticks:
USE THE PC EDITOR to setup and upload Device Bankstick data.
Now we are ready to upload Pedal Box. Browse to your Pedal Box directory and open the pbx_config.h file.
You need to customise the application here. Comments inside in main.h will tell you what each setting does.
Once you've customised the application it needs to be recompiled. Simply run re-make.bat.
Upload the created project.hex using MIOS Studio (or .syx using MIDI-OX or other midi software) file to the core module. MIOS will now reboot, and that's it!
PEDALBOARD - Set to 1 if for Pedalboard mode, or 0 for Pedalbox mode
ENABLE_MIDI_IN - If you wish to utilise the MIDI IN port, set to 1. Otherwise 0
MIDI_MERGER - To forward events recieved at the MIDI input
to the output, set to 1. Otherwise 0.
MIDI_MERGER_DISABLE_MASTER - If the MIDI Merger is enabled, but you do not want to forward messages targeting functions of PB (eg. A patch change) - set to 1. Otherwise set to 0 to forward all messages.
AIN_DEADBAND - (standard MIOS question)
AIN_NUMBER_INPUTS - (standard MIOS question)
DIN_DEBOUNCE_VALUE - (standard MIOS question)
DIN_FIXED_BUTTONS - How many fixed or static footswitches are connected (0-16)
DIN_BANKED_BUTTONS - How many banked or dynamic footswitches are connected (1-16)
DIN_BANK_UP - The pin number assigned for bank up (2-33)
DIN_BANK_DOWN - The pin number assigned for bank down (2-33)
FIRST_PEDALSWAP_DIN_PIN - The pin assigned to the fist PedalSwap footswitch and LED Be wary that placement does not interfere with Relays or LED Digit DOUT pins
NUM_PEDALSWAP_BUTTONS - Number of PedalSwap slots available (max and default = 6)
EVENT_SETUP_DIN_PIN - The pin number assigned for entering event setup mode (while holding bank down) (0-31) Can not be the same as bank up or down
GLOBAL_SETUP_DIN_PIN - The pin number assigned for entering global setup mode (while holding bank down) (0-31) Can not be the same as bank up or down
RELAY_SHIFT_REGISTER - If your using relays, which SR are they connected to if using SOME LED indicators, chosen SR must be after ALL POSSIBLE indicators
RELAY_LED_SHIFT_REGISTER - If your using LED indicators for relays, which SR are they connected to SR should be AFTER the relay SR
USE_LED_INDICATORS - Are you using LED indicators for each footswitch, set 1 for yes, 0 for no
DIGITS_CONNECTED - Numver of LED digits connected (0-2). Set 0 for none.
DOUT_DIGITS_SR - Which SR is the first digit connected to.
This is an example configured for:
/////////////////////////////////////////////////////////////////////////// // Configuration Parameters // /////////////////////////////////////////////////////////////////////////// /* General Settings */ #define PEDALBOARD 1 // 1 = Pedal Board mode 0 = Pedal Box mode #define ENABLE_MIDI_IN 1 // 1 = yes 0 = no #define MIDI_MERGER 0 // 0 = off 1 = on #define MIDI_MERGER_DISABLE_MASTER 1 // 0 = disabled 1 = enabled - If set will disable forwarding of events on the master bankstick channel /* Pedal Settings */ #define AIN_DEADBAND 7 // 7 for 7-bit midi is best #define AIN_NUMBER_INPUTS 4 // 1 - 8 - number of pots connected /* Pedal Board Buttons */ #define DIN_DEBOUNCE_VALUE 20 // debounce value // FIXED BUTTONS MUST CONNECT FIRST #define DIN_FIXED_BUTTONS 8 // 0-16 buttons that always stay the same, regardless of bank // BANKED BUTTONS MUST BE CONNECTED AFTER FIXED BUTTONS #define DIN_BANKED_BUTTONS 8 // 0-16 buttons that change with bank. 1 banked button will cause display errors when bank is over 99 //THESE SPECIAL FUNCTION BUTTONS MUST BE CONNECTED AFTER THE BANKED BUTTONS!!!!!!! #define DIN_BANK_UP 17 // 2 - 33, pin number of button used to bank up #define DIN_BANK_DOWN 16 // 2 - 33, pin number of button used to bank down #define FIRST_PEDALSWAP_DIN_PIN 18 // 4 - 33, First PedalSwap DIN pin (others will be next higher sequentially) // Must be higher than Bank Up and Down // Be careful not to set the same in the space of LED Digits or Relays // Best place is next to the bank up/down pins #define NUM_PEDALSWAP_BUTTONS 6 // 0-6, Number of PedalSwap Buttons connected // if you wish to have access to all 6 via MIDI (with less than 6 buttons connected // - please set to 6 and leave the DIN pins free // THESE SPECIAL BUTTONS CAN BE ANY BUTTON CONNECTED, THEY ARE DUAL USE. #define EVENT_SETUP_DIN_PIN 0 // 0 - 33, pin number of button used to enter event setup #define GLOBAL_SETUP_DIN_PIN 1 // 0 - 33, pin number of button used to enter AIN setup /* Relay setup */ #define RELAY_SHIFT_REGISTER 4 // 0 - 7 Relay's Shift Register #define RELAY_LED_SHIFT_REGISTER 5 // 0 - 7 Relay's LD indicator Shift Register /* LED setup */ #define USE_LED_INDICATORS 1 // Enable LED indicators connected 1 = Enabled 0 = Disabled /* LED Digit Setup */ #define DIGITS_CONNECTED 1 // 0-2 How many LED digits are connected #define DOUT_DIGITS_SR 3 // What SR do the digits start from. // 2nd digit will be on the next SR //////////////////////////////////// // IF NO LED DIGITS ARE CONNECTED // // A 2x20 LCD DISPLAY CAN BE USED // // WITH THE BANK DISPLAYED ON THE // // LAST 4 CHARACTERS // ////////////////////////////////////
Device Bankstick Downloads
Please report bugs in the Pedal Box forum thread
I use normalising (DPST) 6.5mm TRS Sockets.
Tip = +5 (vd)
Ring = CV (A#)
Sleeve = Ground (vs)
Ring and Sleeve are connected together on the normalising side.
When a jack is not inserted, CV connects straight to ground (prevents AIN jitter).
When inserting/removing a jack, make sure the control voltage = 0 (pedal off). Or you will pass voltage straight to ground, causing mios to crash, and maybe cause damage to the circuit.
If your using manufactured expresion pedals or other cv devices, check the pin assignment, some devices use a different setup.
With different setups, there is no way of stopping +5 being passed straight to ground while inserting/removing the jack (that i know of). Make sure you power off first!!!
Up to 34 buttons can be used with Pedal Board mode.
16 fixed buttons, 16 banked buttons, bank up and bank down
This gives a total of 144 possible midi commands.
The fixed buttons must be connected first (pin 0 up to 15), any amount 16 or less if fine (including none).
Fixed buttons are buttons numbers 1-16.
The banked buttons connect next (starting from the next available pin), again any number of banked buttons 16 or less is fine (including none).
They represent buttons 17-144.
The special function buttons pair up with bank down to access the setup menu's these can be any button aside from bank up or bank down. (pins defined in pbx_config.h)
How many of each type of button is defined in pbx_config.h.
The amount of banks available will vary with how many physical banked buttons you have. eg. with 2, there will be 64 banks, with 4 there will be 32 banks.
With 6 buttons there will be 22 banks. In bank 22, the first 2 buttons will represent button number 143 and 144, the 4 remaining will also represent 144.
If you don't have any banked buttons, bank display functions will also be disabled.
Buttons can have indicator LEDs displaying their curent status.
LEDs connect to the first 1,2,3 or 4 shift registers, matching up with their DIN counterparts.
eg. SR1 DIN D0 = DOUT D7, DIN D1 = DOUT D6
If you do not wish to use indicators for buttons, they must be disabled in pbx_config.h
2 seven segment LED digits can be connected to a DOUT module for bank display.
Pedal BoX does not use a LED matrix, each digit requires it's own shift register
Connect digits to the shift registers after LEDs, so if you only use 4 leds, still start at SR2 (or pin 8)
0, 1 or 2 digits can be used (defined in pbx_config.h). If no digits are used, the current bank is displayed on the LCD (requires a 2×20 display)
The shift register of the 1st digit (the one's display) must be defined in pbx_config.h
The second digit (ten's) will be automatically assigned to the next shift register.
If only 1 digit is used, and bank goes higher than 9. The dot will light up to let you know that '0' is actually 10, '1' is actually 11, etc
In place of LED digits. A 2×20 LCD Display can be used (instead of 2×16). The last 4 charcters of each line are used for bank display. This will only happen when DIGITS_CONNECTED = 0 in pbx_config.h.
Buttons, LEDs and LED Digits are only available for Pedal Board mode
Up to 8 relays can be connected to trigger external switches. Relays can be triggered with a button (PbD), a midi event (PbX) or within Rig Control (both).
Relays can also have separate indicator LEDs.
Relays connect to any free shift register (defined in pbx_config.h). The relay indicator LEDs are also assigned their own shift register.
NOTE: Be sure that you use free shift registers. Remember if you use LED indicators for buttons, the shift registers taken up by buttons are the same for their LED's. If not all buttons have LED's you must leave the DOUT pin's free on any pin that has a button connected on it's DIN counterpart.
If you don't use button indicator LED's, they can be disabled in pbx_config.h, freeing up the DOUT shift registers for use by relays or LED digits.
For information on how to connect relays to a DOUT module refer to the midio128 notes at ucapps:
Or this forum thread about creating an FX Bypass/Looper
Please Note: Default connections have changed since 2.6. The default has only one digit connected to SR 5. With bank and PedalSwap footswitches and LED's attched to SR 4
I only built Pedal Box, so I use the Behringer FCV100 Foot Pedal in CV mode. But here's some links that came up on the forum.
If you build Pedal Board please