Reverse engineering the communication protocol for Fender footswitches (MS-4 and EXP-1)

ferenc_in_bp

TDPRI Member
Joined
Sep 9, 2022
Posts
11
Age
35
Location
Hungary
I am building my guitar amp, and I want to be able to switch the on-board effects with a footswitch, and maybe even change the effects parameters with an expression pedal while I'm at it. I already have a footswitch and expression pedal I bought for my Fender Mustang III. So, all I need to do is figure out how to communicate with these.

And that is what I did :) This is a report of my findings just in case anyone else is interested.

I've put the files and instructions to github. You can find them here: https://github.com/nodep/fender_foot

I am still tweaking the description and the source code for the example project.

All suggestions and comments are welcome!
 

sds1

Friend of Leo's
Joined
May 4, 2017
Posts
3,274
Location
GA, USA
This is really cool, thanks for sharing.

Obviously very impressive what they were able to accomplish using only 2-wire cable between the amp and footswitch. Interesting from a requirements standpoint too, I reckon they introduced some complexity into the solution in exchange for compatibility with a common instrument cable.

I implemented something similar to this, and it became clear to me at some point that there's no reason to re-invent the wheel where MIDI is a very capable protocol. So like Fender did here, my solution isn't MIDI-compatible but definitely reminiscent. I also pondered the cable solution and couldn't settle on anything less than 4 wires (MIDI only uses 3). My 4th wire is providing power to the footswitch.

Which makes me wonder -- how do they share data and power on 1 wire? Is the data so fast and sparse that we'd never see the LED's blinking?
 

AAT65

Doctor of Teleocity
Joined
May 29, 2016
Posts
10,008
Location
Edinburgh, Scotland
Which makes me wonder -- how do they share data and power on 1 wire? Is the data so fast and sparse that we'd never see the LED's blinking?
There are a few electronics interfaces that share power and signal, the one I’ve worked on mostly often being referred to as the “Dallas 1-Wire Protocol” (although of course it needs two wires, the second one being the ground / return). I’m sure the way it works is the same as for this Fender circuit — the line is held high when idle, and a capacitor is charged up on the device which gives steady power while there are messages being sent in either direction. You can easily store enough power for a few hundred milliseconds’ operation. It can be a very nice solution.
 

ferenc_in_bp

TDPRI Member
Joined
Sep 9, 2022
Posts
11
Age
35
Location
Hungary
Which makes me wonder -- how do they share data and power on 1 wire? Is the data so fast and sparse that we'd never see the LED's blinking?

Yes, that is basically it. There is a 100uF capacitor on the pedal which provides power while the line is pulled low for communication.

And, the interesting part and a semi-bummer is that standard instrument cables are not recommended for the footswitch connection, because the capacitance of the cable might make problems for communication. Especially if the cable is long. A simple 2 wire cable (like a cheap speaker cable) which the pedals come with is all that is needed.
 

sds1

Friend of Leo's
Joined
May 4, 2017
Posts
3,274
Location
GA, USA
Thanks guys that makes sense!

And, the interesting part and a semi-bummer is that standard instrument cables are not recommended for the footswitch connection, because the capacitance of the cable might make problems for communication. Especially if the cable is long. A simple 2 wire cable (like a cheap speaker cable) which the pedals come with is all that is needed.
Ah that makes sense, well as long as you can get what you need at the local music store or whatever... the requirement provides some value.
 

SRHmusic

Friend of Leo's
Joined
Oct 19, 2020
Posts
2,512
Location
North Carolina, USA
Nice work sorting it out!

Fender has a history of what I find somewhat baffling pedal interface circuit design decisions. (For example the power resistors that burn the board in HRD amps, at least in gen 2, were part of the footswitch circuit, dropping voltage resisistively with a lot of current. They didn't create another low voltage in the power supply and arrived at this method, I guess.)

More recently the three wire, current mode MIDI over TRS method seems a better overall choice to me than a custom protocol. It works with a TRS/stereo cable. Capacitance is less a concern with a lower voltage swing current mode interface. I believe both Roland/Boss and Blackstar use it for their footswitches. That leaves a lot of room for adding commands and options for what switches can do in a custom controller.

A description here: https://minimidi.world/

Edit-
Things I'd question on the circuit shown on your github page are:
1. Why are they using an OR gate as a high current capable buffer instead of a line driver buffer rated for the purpose?
Maybe it's okay, but seems an odd choice.
2. Why two different supply voltages, 3.3 and 5V, instead of a single supply circuit at either 3.3 or 5V? Again seems odd.
Cheers
 
Last edited:

ferenc_in_bp

TDPRI Member
Joined
Sep 9, 2022
Posts
11
Age
35
Location
Hungary
1. Why are they using an OR gate as a high current capable buffer instead of a line driver buffer rated for the purpose?
Maybe it's okay, but seems an odd choice.
2. Why two different supply voltages, 3.3 and 5V, instead of a single supply circuit at either 3.3 or 5V? Again seems odd.
Cheers

Yes, I have wondered about those myself. I have no idea about the first question, and I only have a wild guess about the second: maybe the Schmitt trigger working at 5V has a higher voltage threshold for a low signal and that is, maybe, better at catching comms from the pedals.

While testing yesterday I found a new message type the foot switch pedal outputs. It turns out that if you press (or release) two buttons at the same time, the pedal will send a single "double button message" containing info about the change on two buttons, instead of two "single button messages". It is not very easy to trigger these on the pedal which is why I missed this message until yesterday. The button state changes have to be very closely timed for the pedal to decide to send one double instead of two single messages. I don't know if these are used by the amp, and I guess it is a leftover from some previous version of the pedal or maybe a requirement that was never followed through on the amp. Who knows...

I've updated the protocol description and the source code on github to cover these.
 

sds1

Friend of Leo's
Joined
May 4, 2017
Posts
3,274
Location
GA, USA
While testing yesterday I found a new message type the foot switch pedal outputs. It turns out that if you press (or release) two buttons at the same time, the pedal will send a single "double button message" containing info about the change on two buttons, instead of two "single button messages".
Another fascinating level of engineering effort there IMO.

I woulda maybe just serialized the 2 messages, or ignore one of them. Something simpler!

They painted themselves into a bit of a corner there though eh? Can't serialize 2 messages from the footswitch as the 1-wire protocol requires a strict back-and-forth conversation.
 

Blrfl

Friend of Leo's
Joined
May 3, 2018
Posts
3,976
Location
Northern Virginia
I woulda maybe just serialized the 2 messages, or ignore one of them. Something simpler!

Switch 1 followed by Switch 2 is a different thing than Switch 1 and Switch 2 simultaneously. The latter can be used to add more functions without adding buttons. If you try to decode S1+S2 in the firmware at the other end using single messages, you can't immediately do the S1 action without some latency waiting to see if a S2 follows.
 

SRHmusic

Friend of Leo's
Joined
Oct 19, 2020
Posts
2,512
Location
North Carolina, USA
...
I woulda maybe just serialized the 2 messages, or ignore one of them. Something simpler!

They painted themselves into a bit of a corner there though eh? Can't serialize 2 messages from the footswitch as the 1-wire protocol requires a strict back-and-forth conversation.
A few commands with acks in between should be "fast" compared to human perception, I think?

For example, I haven't looked to closely at the 3 wire MIDI approach, so this may be way off, but I would think there's enough time given even ~100kHz clock rates to have a handshake:
1. Pedal sends request/command to amp
2. Amp sends acknowledgement of state change and implements the change (amp updating it's state and lights)
3. Pedal receives ack and updates its state and lights
4. If Pedal doesn't receive ack within specific time, it resends, starting at 1 again.
This should be at most a few milliseconds if the messages are, say, 24 bits each at 100kbps.
Cheers
 

sds1

Friend of Leo's
Joined
May 4, 2017
Posts
3,274
Location
GA, USA
Switch 1 followed by Switch 2 is a different thing than Switch 1 and Switch 2 simultaneously.
For sure, was just kinda assuming that a simultaneous button press with your foot is a difficult "gesture" to perform. Perhaps moreso the kind of thing that would happen on accident in a live situation under a size 14 combat boot. \m/

Maybe there are examples of footswitches that take simultaneous button commands, and the concept is proven to work well.
 

Blrfl

Friend of Leo's
Joined
May 3, 2018
Posts
3,976
Location
Northern Virginia
Maybe there are examples of footswitches that take simultaneous button commands, and the concept is proven to work well.

There are plenty. I have two right here in the room:

On the one for my Blues Cube, switches 4 and 5 enables boost in whatever channel(s) you're using. The Katana uses the same unit but has 2+3 toggling control 1 in the current patch, 4+5 toggling control 2 and 3+4 toggling both. Edit: Nope. See below.

My Ampero provides three:

Screenshot from 2022-11-06 11-16-44.png


I've been lobbying hard for Hotone to add an option for the external switch (5 and 6) to have a 5+6, but they haven't done it yet. If they don't I might punt and go for a MIDI controller. (And yes, I know Bank- and Bank+ are duplicated; tapping 1+2 and 2+3 make a bank change instantly; holding 1 or 2 repeats.)

I have switch caps on the Ampero that make them wider and my size 10½ sneaks do just fine.
 
Last edited:

SRHmusic

Friend of Leo's
Joined
Oct 19, 2020
Posts
2,512
Location
North Carolina, USA
For sure, was just kinda assuming that a simultaneous button press with your foot is a difficult "gesture" to perform. Perhaps moreso the kind of thing that would happen on accident in a live situation under a size 14 combat boot. \m/

Maybe there are examples of footswitches that take simultaneous button commands, and the concept is proven to work well.
Ha! I have that problem even with day hikers.

I think some controllers enter "tuner" mode with a two foot press.

The Blackstar ID TVP amp and footswitch enter different modes with long presses, which is really annoying in the middle of a song. So to have to group "patches" in a way to avoiding multiple or long presses. That's just beyond the effort I wanted to deal with and so I went back to a simple amp and pedals, a Blues Cube Artist.

The BCA's footswitch arrangement is quite good in that there is a separate switch each for: ch 1 select, ch1 boost enable ch2 select, ch2 boost enable. So you can hit one, say ch1 sel, multiple times and it'a just going to go to and stay on channel 1, not toggle back and forth between channels. That's much better than a state toggle for live use, I think, where you can't always see due to very bright lights or sun, or distraction, etc.
 

SRHmusic

Friend of Leo's
Joined
Oct 19, 2020
Posts
2,512
Location
North Carolina, USA
There are plenty. I have two right here in the room:
On the one for my Blues Cube, switches 4 and 5 enables boost in whatever channel(s) you're using. The Katana uses the same unit but has 2+3 toggling control 1 in the current patch, 4+5 toggling control 2 and 3+4 toggling both.
Hmm... I use the GA-FC with my BCA and these are single press each; none require pressing two switches simultaneously.
Oh, maybe that's what you meant; I read it as 4+5 needing to be pressed simultaneously to toggle boost on the current channel.

The switches left to right are:
1: Ch1 sel, 2: Ch2 sel, 3: dual tone sel, 4: Ch1 boost en toggle, 5: Ch2 boost en toggle, 6: toggle switches 4,5 to FX loop and Tremolo enables

The nice thing about this arrangement is I can stage the un-selected channel's boost, e.g.
- Playing Ch1 (with boost on or not) for a rhythm part
- (press button 5 if needed) Disable Ch2 boost at any time
- (press 2) Switch to Ch2 to play louder/crunchier rhythm in part of the song
- (press 1) Switch to Ch1 for quieter part
- (press 5) Enable Ch 2 boost on to get ready for loud solo at any time
- (press 2) Switch to Ch2, already with boost on now, and bridge pickup (and play amazing, high gain solo!)
- (press 1) Switch to Ch1 for the next verse

And any of the 1 or 2 switches can be stomped again if I missed.... (Go - To - Ch - 2 - Darn It! 😛)

I was thinking of making a MIDI based pedal switcher that would allow both stomp box routing and amp switching after decoding how they use MIDI in the footswitch. (But it's not really a big problem for the music I've been playing so far.)


@ferenc_in_bp Aaaanyway, what's cool about designing your own amp and foot switch is you can make it however works best for you. Keep us posted, eh?
 

Blrfl

Friend of Leo's
Joined
May 3, 2018
Posts
3,976
Location
Northern Virginia
Hmm... I use the GA-FC with my BCA and these are single press each; none require pressing two switches simultaneously.
Oh, maybe that's what you meant; I read it as 4+5 needing to be pressed simultaneously to toggle boost on the current channel.

No, you're right. I glanced at a picture of mine, which I haven't used in quite some time, and made the wrong assumption about the markings. There is a newer GA-FC EX for the Katana that has the multi-button controls.

Edit: I found this page at Roland Australia that shows the various configurations for the GA-FC, one of which (the WAZA Tube Amp Expander) has a multi-button function. The GA-FC is the same unit for all products and the different function sets are on stick-ons that come with each amp. The conclusion I'd draw is that the firmware in the footswitch can generate multi-button messages even if most products ignore them.
 
Last edited:

ferenc_in_bp

TDPRI Member
Joined
Sep 9, 2022
Posts
11
Age
35
Location
Hungary
@ferenc_in_bp Aaaanyway, what's cool about designing your own amp and foot switch is you can make it however works best for you. Keep us posted, eh?

Yup, that's what I plan to do!

I will update the code and the protocol description with a few tweaks later today, but I am happy with how everything works. Next week (hopefully) I should receive the cabinet I ordered custom made almost a month ago. After that it will all be about KiCad and designing new PCBs which will go into the cabinet.

Fun times ahead...
 
Top