EHX Holy Grail Reverb OCTALMOD - 5 NEW MODES!
Here’s something fun I came up with for an Electro-Harmonix Holy Grail Reverb Pedal called the “OCTALMOD.” I primarily did this to practice my blog posting skills as well as give myself some basic digital logic reminders as I program microprocessors in assembly.
I saw a video online where a user created a modification to add three switches to their Holy Grail, giving them access to five new unlocked modes, for a total of eight different modes. Very cool! That said, I couldn’t help but notice the three SPST’s were awfully close to the footswith, which worries me from a longevity perspective. In viewing the schematic, I came up with an easy way of unlocking all 8 modes with good old Digital Logic.
Let’s examine this more in-depth to fully understand what we are doing to our holy grail, and why we’re doing it.
The basic idea: Set up the pedal to use a simple rotary switch, with an Octal to Binary Encoder IC to select the mode.
What are we modifying?
The holy grail reverb is a digital reverb effect built on the CS4811 Fixed Function Multi Effects Processor. The specific version that both the Hollier/Holy Grails use is the CDB4811MXR. This chip boasts 8 built-in digital reverb effects, all activated by applying low-active combinations of three bits to its interfacing pins (PIO). Reading the state table, “On” means Grounded, “Off” means +5v. I know it’s funky if you’re new to digital logic but stay with me. The combinations are shown below:
The 8 different modes housed within the CDB4811MXR. From: Cirrus datasheet
I cannot post the full Electro-Harmonix Holy Grail schematics online as they are the property of EHX and subject to copyright law. But who left this link here? Hmm.
How does the switch change the modes?
If you take a close look at the Holy Grail schematic, it uses a three-way switch to give you three modes: PIOO Grounded (Spring), PIO1 Grounded (Flange), and Both Ungrounded (Hall). The switch is ON-OFF-ON, with the center pin connected to the pedal ground (0). Connected to the three-way, you’ll see pins PIO0 to PIO2 with resistors going to +5v. PIO2 is not connected to the switch but has +5v at all times, we are going to change that.
In comes the 74LS148 Octal to Binary Encoder
Explaining this TTL device in depth in this blog post simply can’t be done, but there are some great videos on encoding and decoding that can be found on Youtube. To quickly summarize, this IC uses three OR gates to create eight inputs and three outputs. We can use different combinations of inputs to create different signals at the output. Check out the chart below:
The 74LS148 has a few extra features like a low-active enable pin, a carry bit pin, ect. We wont worry about those right now, but what I’d like to point out is the bottom eight outputs for A0, A1, and A2. Compare the output pattern to the input-mode selection chart for the CDB4811MXR. It’s identical! Excellent!
So now we have to create different combinations of 0 (Low) and 1 (High) at the IC’s inputs, in order to get the desired outputs. Adafruit makes a SP8T rotary switch thats pretty small and will allow us to do exactly that. Like a lot of IC’s in the digital world, the 74LS148 needs pullup resistors to function. We’ll connect each input pin of the IC to 8 throw pins of the Adafruit and put a pull up resistor on each as well. Heres a schematic for this setup:
We aren’t going to use E0 and GS, so we can leave them floating. El acts as our enable, so we ground that in this situation.
OCTALMOD Revision 1! I used 47k’s for the pullup as they were the only 1206 sized resistors I had on hand.
I decided to remove the pullup resistors on the Holy Grail board as we’ve now introduced a TTL output that can either source or sink the necessary low current for the CS4811 inputs.
This board definitely needed a second revision as the 74LS148 in through-hole form was just massive! It’s funny to consider a small chip massive, but in this context, it became one of the largest components in the unit besides the CS4811. I opted to create a second revision with all surface mount components (besides the switch) to reduce the overall size, and make assembly easier on myself. Heres a pic of the new board installed, alongside a short video of the assembly:
Done!
With this final revision, our project is complete! We have successfully added 5 extra modes to the Holy Grail Reverb pedal using some basic digital logic, and the new board fits perfectly inside the pedal. Heres a short demo: