The Arduino Guitar Pedal is a digital multi-effect pedal based upon the Lo-Fi Arduino Guitar Pedal originally posted by Kyle McDonald. I made a few modifications to his original design. The most noticeable changes are the built-in preamp, and the active mixer stage which lets you combine the clean signal with the effects signal. I also added a sturdier case, foot switch, and rotary switch to have 6 discreet steps between the different effects.
The cool thing about this pedal is that it can be endlessly customized. If you don't like one of the effects, simply program another one. In this way, this pedal's potential is largely dependent upon your skills and imagination as a programmer.
Remove these ads by
Signing UpStep 1: Go get stuff
(x1) Arduino Uno REV 3 (Radioshack #276-128)
(x1) Make MakerShield Prototyping Kit (Radioshack #276-138)
(x3) 100K-Ohm Linear-Taper Potentiometer (Radioshack #271-092)
(x1) 2-Pole, 6-Position Rotary Switch (Radioshack #275-1386)
(x4) Hexagonal Control Knob with Aluminum Insert (Radioshack #274-415)
(x1) TL082/TL082CP Wide Dual JFET Input Op Amp (8-Pin DIP) (Radioshack #276-1715)
(x2) 1/4" Stereo Panel-Mount Audio Jack (Radioshack #274-312)
(x4) 1uF 63v capacitor (Radioshack #55047191)
(x2) 47uF 16v capacitor (Radioshack #55047280)
(x1) 100pF 50V 10% Hi-Q Ceramic Disc Capacitor (Radioshack #272-123)
(x1) 0.082µf 100V Mylar Capacitor (Radioshack #55046837)
(x1) 5pf 50V Ceramic Disc Capacitor (Radioshack #55047529)
(x6) 10K Ohm 1/4-Watt Carbon Film Resistor (Radioshack #271-1335)
(x2) 1M Ohm 1/4-Watt Carbon Film Resistor (Radioshack #271-1356)
(x1) 390K Ohm 1/4-Watt Carbon Film Resistor (Radioshack #55049555)
(x1) 1.5K Ohm 1/4W 5% Carbon Film Resistor (Radioshack #271-1120)
(x1) 510K Ohm 1/4W 5% Carbon Film Resistor (Radioshack #55049227)
(x1) 330K Ohm 1/4W 5% Carbon Film Resistor (Radioshack #44049468)
(x1) 4.7K Ohm 1/4-Watt Carbon Film Resistor (Radioshack #271-1330)
(x1) 12K Ohm 1/4-Watt Carbon Film Resistor (Radioshack #55049436)
(x1) 1.2K Ohm 1/4-Watt Carbon Film Resistor (Radioshack #55049409)
(x1) 1K Ohm 1/4-Watt Carbon Film Resistor (Radioshack #271-1321)
(x2) 100K Ohm 1/4-Watt Carbon Film Resistor (Radioshack #271-1347)
(x1) 22K Ohm 1/4-Watt Carbon Film Resistor (Radioshack #271-1339)
(x1) 33K Ohm 1/4-Watt Carbon Film Resistor (Radioshack #55048044)
(x1) 47K Ohm 1/4-Watt Carbon Film Resistor (Radioshack #271-1342)
(x1) 68K Ohm 1/4-Watt Carbon Film Resistor (Radioshack #55049451)
(x1) Heavy-Duty 9V Snap Connectors (Radioshack #270-324)
(x1) 90-Ft. UL-Recognized Hookup Wire (Radioshack #278-1221)
(x1) Enercell® Alkaline 9 Volt Battery (Radioshack #25-853)
(x1) Box 'BB' Size Orange Powder Coat (Small Bear #0301G)
(x1) DPDT Stomp switch (Small Bear #0203)
(x1) 1/8" x 6" x 6" rubber mat
(x1) 1/8" x 12" x 12" cork mat




























































Visit Our Store »
Go Pro Today »




Great work, I'm doing mine version of this guitar pedal with a different preamp and output, but i have just one problem :
I can't find Wprogram.h and Wconstants.h, i read all comments and nobody seems to have this probleme.
Is it about my version of arduino ide ? (i didnt dl version 20 yet)
I'm thinking of building on internally!
dsp.cpp: In function 'void output(int, short int)':
dsp.cpp:23: error: 'OCR2B' was not declared in this scope
dsp.cpp:24: error: 'OCR2A' was not declared in this scope
I'm using Arduino 1.0.3 and my board is an Arduino Leonardo
Box : http://www.smallbearelec.com/servlet/Detail?no=718
Stomp switch : http://www.smallbearelec.com/servlet/Detail?no=23
Very nice Instructs !!
Thank you !
//set initial values
j = 50;
value50 = 50;
value300 = 300;
value10000 = 1000;
the value indicated was not set correctly, it should be value100000=100000
value10000=10000
please help!
thanks!
At first I couldn't get anything but buzz - I think flipping the capacitor you mentioned solved that one. Or I had a bad connection somewhere.
Luckily I ordered parts by the list, not the schematic, so I got the right capacitor for C2. I've also bypassed R3 and R4 (although i couldn't hear a difference).
I'm currently having the same issue as many others, in that I only hear clean audio out, with everything put together as in the schematics (so, through the arduino, as far as I can tell). Does this mean the problem lies in the arduino? I've hardcoded it to just use the bitcrush mode, but that has raised problems of its own.
I'm getting all sorts of buzzes, particularly when I disconnect the Arduino from the USB sketch connection. I'm powering the breadboard via a 9v transformer (600mA) but it doesn't seem to change a lot.
I recorded what happens.
First part: USB-connected Arduino and transformer-powered breadboard.
Second: Switched off the transformer.
Third: Changed to battery-power.
Fourth: Back to transformer. The buzz starts when I disconnect the Arduino from the USB connection. It's hard to tell, could this be the bitcrusher? Curse my infatuation with lo-fi!
Fifth: No USB, battery-power. Other than the slight wobble to the buzz, no real difference.
Have I got a short somewhere? I had to lay the breadboard out a little differently but I can get a picture/diagram of it.
Thanks for any help, looking forward to your response.
One thing I have not considered yet is that I developed this on the older versions of the Arduino software (not Arduino 1). Perhaps this has something to do with it? I know some libraries have become broken with this software. Maybe try running one of the older Arduino programmers. Those are quick to download and don't typically require any installment (on Mac at least)
Thanks for the reply, i'll try Kyle's code.
I'm not sure if it's my breadboard, or perhaps my cables, but I've carefully been through all of my connections several times and I'm sure I have wired it correctly to the spec (including the changes you mentioned); the whole "pedal" only works intermittently. I've only had it actually working around three times. (And still only clean audio!)
On the times when it has worked, it's suddenly started working for no apparent reason after being switched on for a while. I'm loathe to solder to fully test, but the time contingent suggests capacitor charging or something similar?
I'd be really interested to see if you can build another one and recreate it, possibly documenting each step as you do it. Would that be possible? The schematics and instructions posted don't seem to be quite enough for most of us to follow and end up with a working pedal, so knowing and following exactly what you have done would help greatly! Thank you, anyway!
thx! (awesome tutorial by the way)
It should not sound remarkably good. Theoretically it is 10-bit... but... this is limited by the sampling rate on the input. You can perhaps try different output techniques. This is a good project to see other (better) ways to process audio output with the Arduino.
It should sound a bit static-y and perhaps pop every now and again. Think under-sampled audio.
This is why I have two pots to mix the Arduino signal and the clean signal together before going to the op amp output. This allows you to balance the two together and fudge the output a little bit. Of course, if you are really distorting the guitar signal with your code, no amount of mixing will help that.
I'm glad you got this part working since this is the part most people seem to be stuck on. I was beginning to suspect something was very wrong with my instructions somewhere.
Please post a picture of it when you are done, and let me know if you get stuck anywhere else. If you make any improvements, also please let me know.
Here are few pics. The wiring was cleaner but I had to dismantle it for troubleshooting. I decided to ditch the battery and add a power adapter, + a diode for reverse polarity detection. That was an afterthought. I also threw in an LED and a slick little stomp switch PCB I got from smallbear. The LED shows bypass on/off. Poking the USB out the side was key. I have a super-high tech wooden dowel wedged in between the arduino and the stomp switch to keep things steady for USB cable insertion/removal.
Not shown is a picture of the horrible mess I made trying to solder bridge stuff. I've never done that before and although I got better along the way, my work is still embarrassing. A PCB would probably saved me some time here and there.
All in all, this was a great project and I learned a lot.
There are three things that probably need changing in the schematic. Capacitor C2 should be 100pF and not nF (it may not work with 100nF). Resistors R3 and R4 should be cut and those pins wired directly to the junction of the 10K voltage divider (4.5V) (it will work with these values - just sound noisy). Another silly mistake just spotted... flip C7 around to reverse the polarity. The positive pin should be pointing towards the Arduino (that said - mine is wired backwards as drawn in the schematic and still works).
Nonetheless, this is a bit of a tricky build and may take some fussing about to get it to work.
***************
* dsp.cpp *
***************
#include "dsp.h"
#include "timers.h"
#include "WProgram.h"
void setupIO() {
// prepare left
waveformGenerationMode(3, phaseCorrect);
timerPrescale(3, 1);
analogWrite(3, 0);
// prepare right
waveformGenerationMode(5, phaseCorrect);
timerPrescale(5, 1);
// analogWrite(5, 0);
// analogWrite(6, 0);
// faster input
analogReference(INTERNAL);
analogPrescale(analogPrescale32);
}
void output(int channel, short value) {
if(channel == left) {
analogWrite(3,value >> 2);
analogWrite(11, (value & B11) << 6);
} else if(channel == right) {
analogWrite(5 , value >> 2);
analogWrite(6 , (value & B11) << 6);
}
}