Project 007 - Zoom Fire-30 Guitar Amplifier Modifications
DISCLAIMER: This design is experimental, so if you decide to build one yourself then you are on your own, I can't be held responsible for any problems/issues/damage/injury that may occur if you decide to follow this build and make one yourself.
INTRO:
Having played guitar for many years I've built up quite an amount of gear, including a small 30watt practise amp that I use at home & with the guys at the practise room. It's a ZOOM FIRE-30. and quite handy because apart from it's size it has built in effects thus there's no need for individual effects pedals scattered all over the place.
However, the down side is that there's no facility for connecting up an external pedal to control the effects, all those functions must be done on the amp itself. So, I decided to modify the amp by duplicating some of the panel controls down on the floor with a custom built foot-switch. A small wedge shaped enclosure and fitted out with 10off footswitches, associated on/off LEDs and a function switch. These are as follows:-
Effects Master Select (multi-select)
Boost (on/off)
Edge (on/off)
Sustain (on/off)
Bottom (on/off)
Chorus (on/off)
Phase (on/off)
Tremelo (on/off)
Flanger (on/off)
Vintage (on/off)
Auto-Wah (on/off)
In addition, as the Zoom pre-amp as can be quite noisy. I've replaced the existing el-cheapo 9.5" driver and the final stage amplifier (TDA-2050 powered) with the following:-
Weber 10F150 - 10" Vintage Series (hand made in USA) 50w, 8ohm.
AmpsLab Bi70mk2 - Class AB Bipolar Amplifier, 55w (8ohm) - Note: output power limited to about 40w.
TECHNICAL:
With 12off foot switches, 10off Led's and an LCD on the foot pedal I'd rather not run a multi-core cable between the amplifier & pedal so I'm using an Arduino and I2C comms technology. The Arduino is installed in the amplifier as Master, and the pedal as remote I/O Slave.
Inside the pedal, a version of my own I2C 32ch Digital I/O extender circuit using the PCA8574 general purpose remote I/O extender IC interfaces the foot switches and LEDs. Each pin on the PCA8574 IC's are configurable via the I2C bus / Arduino as input or output.
A backlit 2*20 LCD, also I2C, displays status and show which master effect is currently in operation (Effects Master Select).
The Arduino Mega inside the amplifier interfaces the panel pushbutton switches & LEDs via a couple of pcb's that i've designed to bridge the switches and leds to the Arduino; a Switch Interface Pcb and an Led Interface Pcb.
SWITCHES - Digital outputs from the Arduino will drive 10off relays (Switch Interface Pcb) which will then interface to the Zoom processor board.
The Amplifiers existing panel switches are interfaced to the Zoom processor board on a grid/matrix, and so the easiest way to interface to them is to use volt-free contacts driven via Arduino digital outputs. The relays I've chosen have a relatively high coil resistance thus keeping power requirements down.
LEDS - The Arduino will also piggy back the existing panel Led's (Led Interface Pcb) thus picking up there status via digital inputs on the Arduino in order to replicate them down on the pedal.
The Amplifiers main panel LEDs are also driven on a grid/matrix and so will be interfaced to the Arduino via low-forward-current opto-couplers. There's a pulse train to both sides of each existing LED and relying on phase shifting to provide the potential difference to turn them on/off. 8off HPCL-2300 low forward voltage opto-isolator enable me to use a pretty high series resistor (3K3) to lower the current draw through the opto but still have it operate reliably.
The output of the opto is effectively the sum of the LED pin pulse train (both sides), a bit like what the human eye picks up, and gives the following TTL logic signal, which will be picked up by the Arduino:
LED off = +5vdc
LED on = 50Hz square wave
Note: If i'd managed to find a full schematic diagram of the Zoom processor board, or indeed had the will to create one then I might have been able to simplify the design of my interface pcb's, but as it is i've resorted to a more manual way of interfacing the led's & switches as above.
Lastly, I also want to replicate the main 11-way Effects Master Select rotary switch on the amp panel, which in actual fact is potentiometer giving set voltages between 0 & 3.3vdc back to the Zoom processor board, and actually this helps me as it makes it easy to use a pair of up/down switches to replicate the function via an Arduino analogue output (converted PWM).
A 5-core cable connects the amp to the pedal via a couple of lockable 5-pin DIN type (PREH) connectors, wiring will be as follows:
1 - I2C SCL
2 - I2C SDA
3 - 0vdc
4 - 0vdc
5 - +5vdc
SCHEMATICS - A few quick schematics till I get time to re-draw them properly - Arduino, Led Interface, I2C, Switch Interface, PSU, Pre-Amp.
SOURCE CODE - Download the code here.
TESTING / SOFTWARE DEVELOPMENT (LATEST AT TOP):
18/07/11 - On testing of the Bi70mk2 power amplifier I noticed that I wasn't getting quite the volume I should through the Zoom pre-amp, and on closer inspection it seems the Zoom pre-amp output is 300mV maximum, whilst the Bi70mk2 is expecting 700mV. So, not wanting to rip the Zoom electronics apart I opted to build a small add-on pre-amp board for the Bi70mk2 thus giving it a max. input of around 300mV.
15/07/11 - I re-mapped the I/O and was therefore able to put in a bunch of FOR loops thus significantly reducing the code. It's down from 407 lines to around 200. I also fixed the spurious phase differences as described below. This was due to one of the opto-isolators having it's input diode the wrong way round and thus was upsetting the Zoom Processor LED bus. Now all the LEDs light when they should, and only when. I have also finished the Effects Master Select code and with the LEFT, RIGHT foot switches the LCD displays the current selection.
The software I'd say is as complete as it can be at the moment, subject to full "band" testing.
14/07/11 - Lots of work tonight and happy to say I've got an alpha version of the code to release. It's pretty basic and long winded due to some array mapping problems I had with the I/O so I elected not to try and get it all working with FOR loops, instead it's all working one I/O at a time.
So everything is basically working, the only hardware issue I have is with the LED detection on the Zoom Processor board. It's due to the way the on-board LEDs are driven (phase shifting) that my opto-isolators are picking up spurious phase differences and switching on when it shouldn't be just for a second or so before it settles.
I've also managed to put in some test code for the Effects Master Select switch for proof of concept. The Zoom selector switch (pot) now interfaces to the Arduino, and the Arduino then controls the Zoom Processor board. This is so that I can ultimately have control over the Zoom board, or indeed let the Zoom selector pot 'write through'.
13/07/11 - After powering up for the first time yesterday and making sure all my wiring was in correctly and including the Pedal, I made a start on the Arduino code.
- Install I2C bus code - Done
- Initial test 2*16 LCD - Done
- Initial test Relay Interface board could be driven from the Arduino - Done
- Initial test Led Interface board could be read at the Arduino - Done
- Initial test Pedal Led's could be lit via remote I/O - Done
- Initial test Pedal switches could be read via remote I/O - Done
The next test was to get down and write some proper code and structure it towards the final release. I started with the Led Interface board as this was likely to cause me the most problems given the way the Zoom Processor board drives it's Led's, and I did come across a few problems which has required me to take more than a simplistic approach to simple DI's on the Arduino.
PHOTOS (LATEST AT TOP):
19/07/11 - Fitted the Weber 10F150 driver today.
18/07/11 - Home built pre-amp added. This is to boost the Zoom pre-amp up from around 300mV to 700mV and more suitable for the Bi70mk2. The add-on is based on an OP275 op-amp which I had laying around and which has the necessary high slew rate for audio applications. It's running off 5vdc.
15/07/11 - I added some additional external capacitors on the power supply bridge rectifier, the more the merrier as they say. With these new 10,000uF 63v caps there's now a total of 18,000uF on each rail at the Psu. Not much space left inside the case!
12/07/11 (more)- I completed the wiring of the amplifier panel led's and switches. It wasn't so easy to solder beneath the small add-on board (Zoom processor over on the right in the piccy below) as I didn't want to rip the panel apart again. However, job done.
12/07/11 - She breathes once again!..........Ok, I've still got to terminate the loom inside the amplifier but after finally getting the parts to get the home-built Psu up & running I couldn't resist a full power up. So after beeping out all the various DC supply connections throughout I powered up in stages:
- Psu with no load,
- With amplifier board connected,
- Arduino, Led Interface & Switch Interface boards connected,
- Zoom Processor board connected,
- Pedal connected.
And it all seems fine, everything running in spec.
The Zoom Processor runs off +5vdc for the processing electronics, and +4vdc for the Led's, so all good here:
The first power up of the Pedal after hooking up the 5-core interconnecting cable. The Led's lit are just random power up defaults since I haven't written any code yet. Give's an idea of what to expect in terms of brightness etc though:
And here's a close-up of the +5vdc/+4vdc section of the Psu. It's actually a switch-mode design which I was wary about to begin with given this is an audio project, but the spec of the IC used says to me it's super smooth and stable and I needed an IC capable of +45vdc input. Your usual 7805 etc will have problems over 30vdc not to mention heat dissipation issues. The extra 4-way terminal block on the board is for optional connection of additional external electrolytic caps - the more the merrier as they say, and I have a couple of 10,000uF 63v caps sitting if I can find the space to fit them:
11/07/11 - The AmpsLab Bi70mk2 audio amplifier kit arrived, so after assembling the pcb and testing it I installed it in the case. Wow things are getting a bit tight in there! Next job to do is complete the Psu once the parts arrive, finish the wiring and I can start writing the Arduino code:
Here's the amplifier undergoing calibration and testing at a relatively low +/- 31.5vdc (actual will be +/-45vdc):
10/07/11 - Started wiring the Arduino, Switch Interface & LED Interface pcb's.
09/07/11 - Started work on re-fitting the amplifier.
Here's the original amplifier set-up. Power amp module far left, Psu in the middle and the transformer on the right:
The refit started, the old boards removed, the new ones in place along with the Arduino Mega, toroidal transformer and home built Psu (wip).
Also pictured is a template for where the new amplifier will sit (when it arrives!):
Here's a close-up of the Psu which is still a work-in-progress.
Assembled so far are a couple of nice audio grade 8200uF 56v electrolytic caps, and and an off-board bridge rectifier. The outputs will be +/- 45vdc for the main amplifier, and +5vdc & +4vdc for the Zoom electronics, Arduino and the other pcb's.
08/07/11 - Completed the wiring of the pedal today. Ready for testing.
Wiring complete. 7/0.2mm wire used throughout, doubled up on various runs i.e. +5vdc & 0vdc. I also fitted a few supply de-coupling capacitors throughout to help keep the +5vdc supply as smooth as possible.
Close up of the base of the pedal showing the connector off to the left carrying the +5vdc supply and the I2C data signals. You can also see the I2C board and the loom going off to the front panel:
Close up of the front panel showing the loom off to the left coming in and interfacing to the switches, led's and the LCD display.
Note: The LCD is at the end of the I2C bus and therefore carries the termination resistors:
Side view of the assembled panel showing the loom connecting both halves.
Note: As with any good wiring job the loom/fixings are unstressed in position:
The Pedal test assembled c/w labels and with the end panels fitted:
Interconnecting cable made up c/w lockable 5-pin DIN connectors. It's a 6-core unscreened cable so 3 of the cores are used for 0vdc.
02/07/11 - Lots of metal work done on the pedal today. Switches, LCD, LEDs & connector fitted as well as trial fitting the Pcb.
The 2 rows of 5 switches/LEDs are for turning effects on/off, and the 2 switches at the top will be used for the Effects Master Select function:
Here's the back side of the panel. You'll notice a couple of strips of veroboard which are soldered on the back of the LEDs, these are to save me attaching my wiring directly to the LED legs themselves as they are rather flimsy. In addition, the strips act to connect up the common sides of all the LEDs and push switches.
Here's the Pcb trial fitted to the base of the enclosure. You can also see the external connector at the top left:
Here's the connector. It's a 5-pin DIN lockable type. Nice and robust:
Here's a close-up of the LCD. I chose to mount it quite flat with the panel since the switches nearby will be operated with one's foot I reckoned it should be as resistant to knocks and bashes as much as possible:
Here's a side view without the end panels attached. You can clearly see the internal layout and the space available:
30/06/11 (& 07/07/11) - Here are the three pcb's pending testing. The Switch Interface Pcb, LED Driver Interface Pcb and on the far right the I2C Pedal pcb. There was originally just 2off pcb's, but a small design changed requires a 3rd (relay board).
Underside of the 3 pcb's. Great fun to do a good amount of prototyping!:
28/06/11 - A work-in-progress, the I2C Pedal pcb at the front, the LED/Switch interface pcb for the amp at the back alongside the new toroidal transformer for the amplifier:
27/06/11 - The pedal enclosure. I've started to mark out the switches, LEDs & LCD positions.
A little R&D here with proof of concept, I hooked up an opto-isolator to one of the lEDs on the actual Zoom amplifier board, optimized the circuit and scoped the output to see what I had. With the LED 'off' the level is +3.3vdc constant, and LED 'on' a 50Hz square wave as below:
PHOTOS - EXISTING HARDWARE:
Here's the amp:
Here's the internal electronics, the final stage amp (TDA-2050) on the left and the power supply including the transformer to the right of it. These 3 items will be replaced with my new kit.
A couple of points regarding the power supply: As well as providing power to the amplifier pcb, it also provides +5vdc to the main board and slightly less than +5vdc to the LED circuitry on the main board, however, they use black for +5vdc, and red for 0vdc - Wierd eh! Also, the LED power is simply a 470ohm resistor off the +5vdc supply - Not a great design!:
Here's the main board, the control & effects processor. I'll use an Arduino to interface onto this board.
Here's the main board exposed:
PHOTOS - NEW HARDWARE:
Here's the new amplifier board sourced from AmpsLab in the USA. These guys seem to get great reviews for their audio gear despite a low price. All that needs added is a suitable toroidal transformer:
Again sourced from the USA, here's the Weber 10F150 driver. These are hand-made to order and seem to get great reviews from amplifier builders. The particular one I've chosen is made to mimic thegreat old Jensen drivers from the likes of 60's Fender amps. Quote:
For mid 60's amps using ceramic 10's where very strong punch and tight low end is needed.
Replaces Chicago Jensen C10N and Oxford 10's.
10", 40oz ceramic magnet, 50 watt, 1-1/2" voice coil, ribbed cone.
Bold, big bottom, later/smooth breakup, aggressive.
Here's the enclosure to be used for the Pedal.
Size = 300 x 184 x 68/30mm