“Bilbo saw that the moment had come when he must do something.”
― J.R.R. Tolkien,
As I explained in Chapter 1, while being very pleased with the sound of my newly constructed eTap2hw echo box I really wanted a way to store some settings for the tunes I played regularly.
My previous echo machine had been a Zoom RFX2000 with the EFTP programs from Charlie Hall. These programs or patches were numbered from 0-42 on the Zoom’s two digit seven-segment display and they came with a list of suggested patches for the common tunes by The Shadows.
Having been able to compare the sound of the RFX2000, which I had been previously pretty happy with, to the warmer and more ‘analog’ sounding eTap2hw, I decided to try to add the ability to store the settings for the tunes to the eTap2hw so I could recall them easily. The Zoom RFX2000 still required you to either remember or look up the patch number in a printed list of tunes.
My original short ‘wish list’ was something along the lines of:
- Ability to name patches, for example “Apache” or “Wonderful Land”.
- Be able to adjust the effect parameters by using real knobs,
- and store and recall these settings easily.
- Interface via USB with a computer for backing up and restoring patches
- Addition of MIDI control to select patches, possibly by using a MIDI foot controller or by sending program change messages from a sequencer playing the backing track.
About this time I discovered some forum postings by a guy in the USA called Johan Forrer who had come up with a design for the automation circuit and had produced a simple version of the software to drive it, for the Arduino platform. When I got in touch with Johan he very kindly and with no hesitation, sent me the source code for his automation.
Having studied his code I quickly realised it wouldn’t fulfil my basic requirement of being able to name the patches to match the tunes: he had allowed for 8 presets (basically one for each of the 8 emulations in Piet’s SKRM-eTap2hw module) and only four user patches which could not be named, only referred to by number. Each could use any of the 8 emulation presets and you could set the values of the three parameters of each by hitting the up and down buttons but there was no provision for setting the parameters with real knobs.
Johan’s code did, however, have the basic structure that would be needed so, with his permission, I started to ‘hack’ it and add the features I’d planned. First though I needed the hardware on which to run the automation and, whilst Johan had built his own Atmel Arduino-like microcontroller circuit I decided to go for an off the shelf Arduino Uno and an LCD/Buttons shield kit from Adafruit.
The latter would be more or less essential to leave enough free inputs and outputs on the Arduino to satisfy my ambitious plans. As it connects to the Arduino via the I2C bus, it required only two input/output lines to operate both the LCD and the buttons, rather than the more normal parallel LCD drive which needs up to seven of the Arduino’s precious digital pins.
In the manual eTap2hw design the three parameter pots are connected directly to the SKRM module’s P0, P1 and P2 inputs. These each provide a variable DC voltage between 0 and 3.3V that is read by the DSP code running on the FV-1 chip on the module and can used to alter the parameters, depending on what the code has been designed to do. Piet’s eTap2hw code mainly used P0 to control the mix of wet and dry signal, P1 was a program or ‘heads’ control which usually emulated the heads switch on the Meazzi and Vox echo machines and P2 was usually controlling the feedback or ‘repeats’ of the echoes.
To automate the system these pots had to be disconnected from the echo module and instead the voltages they were outputting would be read by three analog inputs on the Arduino. As the Arduino operates at 5V logic levels and the FV-1 operates at 3.3V logic levels, the pots would have to be wired to GND and +5V rather than +3.3V and some sort of interface would be needed to drop the Arduino’s ‘analog’ outputs to a 0 – 3.3V range.
The P0, P1 and P2 inputs on the echo module would now be driven by dc voltages output from the Arduino. A complication was that the Arduino’s analog outputs are not true analog DC voltages. Instead they use a system of pulse width modulation (PWM) to generate the output and not a true DC voltage – the wider the pulse the higher the average voltage:
Johan and Piet together had already solved these two problems by coming up with a low-pass filter combined with a voltage divider that would both smooth the PWM to give true DC and at the same time reduce it from 5V max to 3.3V max. You can see one of these on the left hand end of the breadboard in the following photo of my first test-bed prototype.
The blue trimmer pot on the right is connected to an analog input pin on the Arduino and the LCD is showing which button was last pressed and the analog input value being read from the pot wiper. The buttons board assembly which I built on Veroboard actually ended up being used in my first completed Echotapper Vintage Echo Unit – until the buttons wore out!
At this point Piet came up with a great little design for a shield that would do all the interfacing between the Arduino, the pots and the SKRM-eTap2hw echo module.He called it the Universal I/O Shield and it certainly simplified the wiring required as it would stack on top of the Arduino and the LCD shield would stack on top of that. The only wiring required would be to the external pots, the eTap2hw motherboard and the 12V dc power supply.
The Universal I/O shield takes care of all the PWM filtering and logic level shifting between the Arduino and the echo module.
Having proved my ideas were going to be feasible I continued to develop the software for the automation, which I’ll refer to as firmware from now on to avoid any confusion with any software possibly running on the PC.
In parallel with the firmware development I looked for a suitable enclosure that could house the project and after much deliberation, measurement and ‘guesstimating’ I settled on a Hammond 1455N2201 Extruded Aluminium Enclosure measuring 223 x 103 x 53mm. As you’ll see below, it was quite a squeeze to fit it all in!
The finished unit turned out very well and I even managed to include the MIDI control that had been on the ‘nice but maybe later’ wish-list.
Word had begun to get around and this project seemed to be generating a good bit of interest from The Shadows forums. Steve Mitchell, who would come to play an important role in the Blue Nebula Team, was probably the first builder to take on the task of emulating my efforts. As he says himself
I eventually got into the Automated eTap2HW after managing to contact Piet who kindly pointed me in the direction of Newtone. Then I realised that there was also an Arduino based automation, which Piet was supporting with his interface shield PCB. So I contacted Johan, Lars and yourself and it went from there when I decided to “bite the bullet” and go for broke without ever building a manual version. Once I’d purchased the interface from Piet then off I went now firmly attached to your “Journey”.
Though doing a few things a little differently, such as using a larger enclosure (good decision Steve!), by April 2013 Steve had become the proud owner of another eTap2HW plus automation or, as he called it on his excellent front panel, his “EchoTapper Vintage Echoes of the Sixties.”
While working with Steve and helping him with his project we formed a close working relationship and soon Steve was coming up with some great suggestions for improving the firmware and some clever ideas to get an even better sound out of Piet’s analog preamp design – but that will have to wait for Chapter 3!