Introduction
This project uses an Arduino microprocessor and a MAX522 8 bit serial DAC to produce arbitrary low frequency oscillator (LFO) waveforms. These waveforms are useful for driving a tremolo/vibrato circuit in a guitar amplifier such as the Lil Tiger or the Hammonator 2RVT. This is a second generation version of this project, see the first version for reference.
The first prototype of this project was build using the Arduino Diecimila development board and an Arduino prototype shield for the DAC and associated parts. The original assembly can be seen in the photographs of the Lil Tiger project. This final version of the circuit was built using just the Arduino’s Atmega 168 (or Atmega 328) processor chip on a hand-wired perf-board as shown in the above photo. The microprocessor should be programmed on the Arduino board then moved to the stand-alone LFO board.
Hardware
The 7.5VDC power to the board comes from a full-wave Schottky diode bridge rectifier and 2200uF filter capacitor that is connected to the 6.3VAC filament winding of a vacuum tube power supply. The 7.5V is regulated down to 5V using a 78L05 regulator. The 7.5V and 5V sources power the processor, DAC and op-amp. Note that when this circuit is used with the Lil-Tiger amp, the LFO ground is not connected to the chassis ground, it is floating at 3.15VAC. Be sure to keep the LFO circuit board electrically isolated from the chassis.
The DAC is a MAX522 that is connected to Port B on the Arduino, the port is setup to use the SPI (serial) output mode. The DAC output goes to an RC low-pass circuit to remove the waveform stairsteps. The smoothed waveform is sent to a variable voltage divider that is used to set the LED bias voltage to 1.4V. The output of the voltage divider drives two sections of a TLC2272 CMOS rail-to-rail op-amp. Note that the LED bias adjustment changes the waveform amplitude, adjust the bias first then adjust the LVR drive.
One op-amp section drives the front panel LED and the other drives the Light Variable Resistor opto coupler. Note that the TLC2272 op-amp has a fairly low maximum output current, the 1.5K resistors limit the LED currents to below this level. The low drive level is perfect for the opto-coupler, a high efficiency LED should be used for the front panel LED indicator.
The bias is set so that the LED is just turning on when the DAC is set to output zero volts, red LEDs typically turn on at around 1.4V. The bias adjustment can be preset by adjusting the potentiometer to 26.5K. A more accurate bias adjustment can be done by monitoring the output of either TLC2272 op-amp section with an oscilloscope in DC mode and setting the low point of the waveform to 1.4V. Due to the above mentioned floating ground situation, the LFO should be powered by an external 7.5VDC supply when adjusting the LED bias.
Software
The current Arduino “sketch” for this project is LiquidatorDACirq.ino. The sketch uses a clocked hardware interrupt to step through one of three sine waves that are selected by the two Sel jumpers at power-up. The three waves are a regular sine wave, an exponentially weighted sine wave and an inverted exponentially weighted sine wave. The regular sine wave is useful for driving a transformer-based phaser such as the Liquidator. The exponentially weighted sine wave compensates for the non-linearities in the phase shift circuit’s LED/LVR opto-isolator to produce a more natural sweeping sound, it is used for the Hammonator and Lil’ Tiger phase shift circuits.
Read More: Arduino LFO Waveform Generator V2