Find all your DIY electronics in the MakerShed. 3D Printing, Kits, Arduino, Raspberry Pi, Books & more!

Instead of chaining multiple guitar effects in search of a new sound, I decided to mod just one. Using an Arduino microcontroller board + digi-pot chip (MCP41100), I was able to add a variable gating effect to a fuzz pedal fairly easily. I definitely dig the resulting sounds and a bit of rewiring should reduce the unwanted noise in the output. Switching to the MCP42100 would allow control over a second pot – perhaps the volume control for a tremolo effect.

You can find the “WavePot” sketch I used (including the necessary wiring list) here.

Download the m4v file or subscribe in iTunes

Collin Cunningham

Born, drew a lot, made video, made music on 4-track, then computer, more songwriting, met future wife, went to art school for video major, made websites, toured in a band, worked as web media tech, discovered electronics, taught myself electronics, blogged about DIY electronics, made web videos about electronics and made music for them … and I still do!


Related

Comments

  1. Mike Dixon says:

    Very cool!
    Also, sweet riffs!

  2. Phil says:

    Great idea, I’m totally doing this. I can envision a stand-alone device like this and putting a bunch of connections on various pots on various pedals, the device could have an input for and expression pedal, an array of variable resistors to select from as well as the wave-modulating.

    1. Collin Cunningham says:

      that would be cool – if one settled on a standard (banana jacks?) and added similar ports on all their applicable gear – modular, reconfigurable hacking/bending sounds sweet.

      1. Phil says:

        I was thinking of maybe 1/8″ stereo jacks for each pedal pot I might want this used with, that would cover the 3 connections and they’re small enough to put almost anywhere.

        Got some MCP41100′s in from DigiKey today ( in Toronto ) I’ll give this a go on the weekend hopefully.

  3. Maker Dino says:

    Collin, you rock! What a cool project, and so manny possibilities! :)

  4. failrate says:

    Awesome project, Collin. You should check out the fatmanandcircuitgirl episode where George modulates some of his gear using a wave generator. Not to detract from what you’ve done. Instead, I think it’s exciting that we can do this sort of modulation with small, inexpensive, reprogrammable modules instead of needing gigantic rackmount modules tied together with patch cables.

    I think that microcontrollers are the future of stompboxes.

    1. Collin Cunningham says:

      sounds cool – I’ll check out the vid!

      I think there’s still so much we can make using inexpensive combinations of analog + digital. The contrasts that show up when you combine the two are fascinating by themselves.

      1. jasojohns says:

        I am in the process of making a rack wah controlled from a midi foot controller that I built myself with an Arduino Mega. I was originally going to just put the guts of a Morley wah in the rack and control the LED from a second arduino, but then I found a circuit board that models the old Vox wahs, just add your pot and jacks.

        Seeing you use a digi-pot in this application gave me the idea to try one for the wah circuit instead of a LED and photo-resistor…

  5. coolness says:

    this is great. lots and lots of ideas. been wondering how these digital pots work too…

    anyone know where to get a 500k digital pot? looked on digikey and mouser but no luck….

    you just match the digital pot value with the pot you are replacing right?

    thanks.

  6. Ian says:

    Great project idea. Opens so many possibilities. Thanks.

    Am I missing something? When I click the link, I get a zip file with the arduino code. But no wiring diagrams. No sketch.

    I’d love to get involved with any discussions involving the modular design (stereo mini-plug, or banana plugs). Especially as it pertains to the idea of being able to use the plug to override the analog pots. If the conversation moves off the board, please let me know how to stay in the loop.

    Question: Can the design include amplitude control? It would be nice to control the amount of modulation. With “waveform selection”, “rate” and “amplitude” controls, the versatility would be out of sight.

    If you were to use the 42100 design to control two parameters simultaneously, separate amplitude controls might be necessary. How difficult would that be?

    Thanks for letting me spew a couple of the ten thousand questions that this wonderful project has inspired in me. I look forward to hearing other people’s ideas.

    1. wiiman21 says:

      The link takes you to a .zip file which has the all of the code in it. The code tells you where to hook everything up.

  7. eddy depoorter says:

    Hi,

    I’m trying to replace a wah pot by a digital one but I get the same added noise that we can hear in you’re video (high pitched hiss).
    Seems to me that it comes from the SPI clock.
    How did you got rid of it ?

    Eddy

  8. karman100 says:

    How do i increase the pitch in music without the digipot chip
    can you tell me the source code

  9. MuffinPunch says:

    Very cool idea modding a guitar pedal with Arduino. I want to emulate this experiment for a project at school this week, but im new to digital electronics and know basically nothing. I have copied almost exactly what you’ve done here, with one small modification. Im using a 250k pot instead of the 100k pot you used, because I had one on hand. Any idea on what kind of alterations would need to be made to the sketch in order for this setup to work properly? Im getting results, but not like you did. The wave is super slow, and turning the pot makes no noticeable difference to the signal. I appreciate your help.

    1. Collin Cunningham says:

      You shouldn’t have to make any changes to the sketch when using a 250K pot. Have you tried double-checking your connections? The middle lug of the pot should be connected to Analog pin 1, while the other 2 should be connected to 5V & GND respectively (ie – left to GND, right to 5V)

      If possible, post a link to pic of your setup.

  10. Anonymous says:

    In reviewing the sketch for Arduino, it seems like there arrays of hexi-decimal values (the so-called “wave tables”) that can be sent to the potentiometer in sequence, thus creating a “low frequency oscillator”.  It seems that on each pass of the loop the next hexi-decimal value is arrived at by adding 1 to the value of the index for the array that holds the hexi-decimal numbers (in the sketch that incrementing of the index seems to be represented by “i++”).

    My question is how and when does the index of the array loop back to index 0?  

    Also, the variable ‘rate’ is defined as an integer, but it is being assigned hexi-decimal values.  I am guessing that the Arduino software automatically translates the hexi-decimal values into integers.  Is that right?

    I am also wondering what modifications would need to be made to controll multiple digital potentiometers simultaneously (using for example a AD5206 which has 6 digital potentiometers built in).

    1. Bill says:

      “Also, the variable ‘rate’ is defined as an integer, but it is being assigned hexi-decimal values. I am guessing that the Arduino software automatically translates the hexi-decimal values into integers. Is that right?”

      I’m curious about this as well. The rate does not seem to actually be a rate in milliseconds, but rather how fast it steps through the 256 “wave table” arrays. Is there an easy conversion from the “rate” to the actual rate in milliseconds?

  11. Anonymous says:

    In reviewing the sketch for Arduino, it seems like there arrays of hexi-decimal values (the so-called “wave tables”) that can be sent to the potentiometer in sequence, thus creating a “low frequency oscillator”.  It seems that on each pass of the loop the next hexi-decimal value is arrived at by adding 1 to the value of the index for the array that holds the hexi-decimal numbers (in the sketch that incrementing of the index seems to be represented by “i++”).

    My question is how and when does the index of the array loop back to index 0?  

    Also, the variable ‘rate’ is defined as an integer, but it is being assigned hexi-decimal values.  I am guessing that the Arduino software automatically translates the hexi-decimal values into integers.  Is that right?

    I am also wondering what modifications would need to be made to controll multiple digital potentiometers simultaneously (using for example a AD5206 which has 6 digital potentiometers built in).

    1. Luis Rene Ventura says:

      The AD5206 is the pot that is on the arduino tutorial, but I have a question: can it handle different pots KOhms values? a normal guitar pedal normally has pots of different values, can this work with all of them or do I need one with he specific value of the analog pot that I’m replacing?

      1. v8media says:

        I’m also curious about this. Would love some part numbers for some 25k and 50k digipots as well. Seems like you would lose some accuracy if you just used 100k for everything.

  12. John V says:

    Is there a way to take out the noise (popping/clicking)?
    This is a great start, but unusable with the popping.

  13. [...] Collin’s Lab: Guitar Pedal Modding with Arduino [...]

  14. [...] Collin’s Lab: Guitar Pedal Modding with Arduino [...]

  15. [...] Collin’s Lab: Guitar Pedal Modding with Arduino [...]

  16. [...] Collin’s Lab: Guitar Pedal Modding with Arduino [...]

  17. [...] Collin’s Lab: Guitar Pedal Modding with Arduino [...]

  18. Collin this is an awesome project — I’m going to try to reproduce it soon. Question though, how long can the wave table entry be though. Could you shape swell patterns with it somehow?