Intelligent Relay Bypass module for DIY stompboxes

 

Incorporates on-demand momentary switching

Switching a relay-based stompbox switch with a microcontroller was once the voodoo only wizards could possess. But starting in 2023, some community members created code solutions for the DIY community to use in their projects. Here are the pitfalls and special tricks required to get his code working with all the various DIY boards out there.

Great solutions already exist…

Like VFE’s free .hex code for MCU, MAS Effects’ relay bypass code (great teaching examples), Matt Garman’s MCU relay controller (no momentary mode but open source, includes pre-compiled .hex files and gerbers for making PCBs !!) ← truly a DIY dream come true.

…but this is the gourmet example.

This post will focus on Paul Ruby’s full-featured Arduino sketch. As far as I know, it’s the only code that equals the gold standard code provided by PedalPCB’s Intelligent Bypass MCU. ← These have a momentary mode built-in, without the tap dancing required by other famous makers. That’s right, you tap for more than 500ms, and it assumes you want momentary mode. It truly lives up to the word “intelligent” in the name. Can you tell I’m a fan? I’ve used dozens of them in my premium builds. The feature is moist pro. That’s EQD-level shit in a DIY product. (It’s called “EQD style” because Earthquaker Devices were the first to do it with their Flexi-Switch® Technology. ← is this even true? I don’t know, I read it on reddit.)

Paul walked me through getting the code to work and the Arduino IDE to successfully program his sketch. As a beginner, it was way out of my league. So I’m eternally grateful to him for his patient instruction. And I’m documenting everything here in case I need to program more chips.

The # of features is freakishly numerous.

See the full list of features in Paul’s post at the PedalPCB forums. Seriously, read the whole thread. Twice.

You can use other microcontrollers and other programmers, but the configuration detailed here is for use with the most affordable options:

Add support for ATtiny13 to Arduino

Add these 2 URLs to the board manager to add support for ATtiny13 MCUs. After doing so, be sure to click “ADD” next to attiny and DIY ATtiny in the board manager. Then perform a “blink test.”
				
					
https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json
https://raw.githubusercontent.com/sleemanj/optiboot/master/dists/package_gogo_diy_attiny_index.json
				
			

Sketch configuration

				
					Line 36:
#define PEDALPCB true
Set all other definitions to false
Line 53:
#define SLOW_CLOCK false
Line 69:
#define EEPROM_SIZE_Bytes   ATTINY13_EEPROM_SIZE_Bytes



				
			

Arduino settings:

  • Programmer: DIY ATTiny: USBtinyISP (bottom choice in the list)
  • Override Clock Source: Default
  • Processor Speed: 1.2MHz Internal Oscillator

PCB considerations when using PedalPCB’s Intelligent Relay Bypass board:

  • Never stuff C3 (22nF) as the debouncing is already handled by the MCU
  • ALWAYS stuff R3 (100k) even if you don’t plan to use the multi-effect control scheme.