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:
https://github.com/thecowgoesmoo/AnubisArray
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 |
|