Tag Archives: LCD

The Journey Continues

“Bilbo saw that the moment had come when he must do something.”
J.R.R. Tolkien, The Hobbit

 Chapter 2

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.


The Zoom RFX2000 displays two-digit preset numbers

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:

  1. Ability to name patches, for example “Apache” or “Wonderful Land”.
  2. Be able to adjust the effect parameters by using real knobs,
  3. and store and recall these settings easily.
To which I added, as possible future additions:
  1. Interface via USB with a computer for backing up and restoring patches
  2. 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.

eTap2hw-Automation 014

One of Johan Forrer’s early prototypes with basic automation from October 2012.

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.


My first bread-boarded automation test-bed. January 2013

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.


The Universal I/O Shield stacked on top of the Arduino Uno.

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.


The Automation Version Completed – January 2013

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.”



The Finished Project by Steve Mitchell

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!


LCD – Common Anode or Common Cathode?

It has come to my attention recently that there are some LCD display modules on sale that are ‘Common Cathode’ types (e.g. this one from SparkFun) , rather than the more common ‘Common Anode’ type (e.g. this one from Adafruit).

Why would you care about this?

Because the two types of display essentially operate with ‘inverted’ logic signals relative to each other, you will probably find that your LCD display is very dark after you upload the ‘wrong’ Automation code. Essentially the ‘common cathode’ type is insisting that white is black and black is white – just like some people we know!

If you’re got an RGB display then all the other colours will not appear as intended either and they won’t match what’s stated in the User Guide.

As a result I’m now providing two versions of the Automation code on the Updates page so make sure you use the correct one for your LCD type.

If, after uploading, your screen is very dark then try the other version.

A handy feature I’ve added to the code (thanks to Eric Thacker for prompting me to implement it), the unit now ‘remembers’ the last preset or user patch that you used and starts up with this when it’s next switched on, rather than always defaulting to Preset 0: Apache. This is actually very convenient if there is a favourite patch you use a lot 🙂

A Look Inside the Finished Unit

I’ve just completed the wiring and testing of the MIDI functionality. In my previous automation Mark II box the MIDI hardware was mounted on a small veroboard and soldered directly onto the MIDI sockets. In this Mark III version I wired up the MIDI circuit on an Adafruit Protoshield pcb together with the circuitry for an I2C EEPROM which would allow more patches to be stored but is not yet supported by the software.


This shows the ‘stack’ of Arduino-style Shields – saves a lot of extra wiring doing it this way.


The MIDI sockets and the Audio Out socket on the back panel.


This is the MIDI/EEPROM protoshield. I haven’t plugged in the EEPROM yet as there is no support for it in the software.

The only remaining job is to wire the foot-switch socket for up/down preset selection.