Friday, September 26, 2014

Anubis guitar preamp

So, on electric guitars there are usually 2 or 3 pickups placed along the string.  You use switches to select which ones to use and the resulting sound depends on the pickup placement relative to the nodes and anti-nodes of the strings.

Some people get adventurous and drill holes in the guitars to add switches or knobs to allow for more control than the stock wiring affords.  I decided to make a preamp that would allow any combination and polarity of the pickups (even time-varying ones) without requiring modifications to the guitar's body or pick guard.

And so, the Anubis preamp for Fender/Squier Stratocasters was born!  There's a digital potentiometer and polarity switch for each of the three pickups.  They're all controlled by a microcontroller.  The control software can be edited and uploaded to the Anubis with an Arduino UNO board.

The volume and tone potentiometers have been replaced with a program selection encoder and two program value potentiometers.  Here's a shot of the boards.  The minimum order from the board house was 10 units, so I have some extras :)

And here's the board populated and installed on my Strat's pickguard.  There's a single IDC breakout cable that goes from a header on the board to the switching jack, the pickups, the battery, and the programming cable.

I've made a mostly dry recording of the guitar (direct injected, a little compression and reverb added) to demonstrate a few of the programs I've written for it so far.  In the order of recording they are:

1. Sample and hold: abruptly switching between randomly selected pickups.
2. Fast chorus: The pickups are amplitude modulated with low frequency sine waves that are 120 degrees out of phase with each other.  Sounds kind of like a three tap chorus.
3. Slow chorus: same as above, but with a slower modulation frequency.
4. Some of the 13 different pickup combination and polarity options. 

If I have time to do it over, I may try nice VCAs (like the  SSM2164) instead of digital potentiometers to avoid the annoying stepping/zipper noise. 

Here's a link to the GitHub repository for the microcontroller's software:

As promised, here's the schematic:

And here's the bill of materials:

Description mouser part number unit price quantity line total number on board
Switching jack 502-113X 3.15 1 3.15
IDC plug 617-09-18-520-7803 2.06 1 2.06
IDC header 571-7-146256-0 3.81 1 3.81
Amphenol flat cables 523-135-2801-020FT 1.75 1 1.75
Potentiometer 311-1901F-10K 2.87 2 5.74
Rotary encoder 652-PEC11L4125KN0020 1.43 1 1.43
7805 regulator 595-UA7805CKTTR 0.767 1 0.767 U8
regulator capacitors 77-VJ1206Y334KXJTBC 0.08 4 0.32 C13, C14, C15, C16
decoupling capacitors 77-VJ1206Y104KXJPBC 0.033 5 0.165 C7, C8, C12, C17, C11
output capacitor 77-VJ1206Y332KXJPBC 0.06 1 0.06 C1
crystal capacitors 77-VJ1206A220KXACBC 0.05 2 0.1 C9, C10
pull down resistors 652-CRT1206BY1002ELF 0.31 2 0.62 R8, R9
diodes 696-SML-LX1206YC-TR1 0.1 2 0.2 D3, D4
16 MHz crystal 774-ATS160SM-1 0.24 1 0.24 Y2
power supply resistors 71-CRCW1206J-100-E3 0.03 2 0.06 R10, R11
AD5222 584-AD5222BRZ1M 2.02 2 4.04 U2, U3
DG403 968-DG403DYZ 1.43 3 4.29 U4, U5, U6
9V battery holder 12BH610-GR 1.05 1 1.05
Atmega328 556-ATMEGA328-AU 2.58 1 2.58 U1