Is Arduino the platform for this guitar application?

Guitar Effects pedals usually consist of 3-4 parameter potentiometers that modify things like input and output levels, feedback level, timing. Most effect pedals have no way to record these settings for later recall.
What I want to do is make a datalogger to fit within each pedal that will record the position of each of the pots somehow (possibly a separate SAVE button), which then saves to non-volatile memory for later recall via a LED display and rotary switch pointing to the memory positions.

Is this feasible with Arduino? I know little about Arduino - but have experience with electronics in general (including smart motes) and programming right down to machine code level.

As a non-guitarist, I'm afraid I need help following how this would be used.

Are you only looking at a single position value per pedal, or a timeline?

Do you need to know what the pedal position is (e.g. as a numeric value), or to just return the setting to whatever position you saved previously?

My experience of effects pedals is that they are often completely analog and had pots to adjust parameters like distortion or level. Givce the small amount of space within the pedal and the way these things are abused physically, it will be a real challenge to even collect the data from the pots. You would need some kind of angular measurement that could either be read optically or resistive (which would interfere with teh pedals electronics) to do this.

Having dismantled several Boss pedals, there is very little air inside these boxes. This will be a real challenge. A photo of the pedal settings or of the whole floorboard micht be a better way forward here.

My own current pedal is a Boss GT5 which combines nearly all the Boss analog pedals with digital settings. This means that I get the analog sounds but can set up multiple effects and save them on a per song basis. I realize that this is not the cheapest solution but it works and is dead reliable. I have had this board for 6 years.

Here's a simple distortion stomp box schematic
http://diystompboxes.com/pedals/dist10.gif. It is contained + a 9V battery into a box like this

What I want to do is make a datalogger to fit within each pedal that will record the position of each of the pots

That is a difficult if not impossible thing to do. Often, like in that circuit you posted, the pots are not carrying DC voltages. They would need them to if you want the arduino to read the pot.
One way might be to replace the pot with a dual pot of the type used in stereo controls. Then one pot can control the effects and the other can be read by the arduino. However dual pots are twice the size and are not very small so you might have to mount them separately. In effect rebuilding the effects peddle in another box.

Thanks for all the answers and comments. Regarding the BOSS GT5 - I have a Line6 PODHD400 which effectively goes the same job - but these are modelling effects boards. But I accept the points about space and therefore propose the following:
An external Arduino board that reads the resistance values on the individual pots, converts them to numeric values and saves those in a memory array. Most effects pedals run off 9v DC, power usually supplied by battery or from a power supply brick. So the arduino could be powered from one of the 9v positions on the brick.
As I am just a "home" guitarist, the problem of ruggedness doesn't arise so the arduino board could sit in its own box in front of the effects pedal.

So would appreciate further comments on this scenario

Many low impedance audio circuits can handle a DC voltage sharing the same wires (pots) without interfering with the audio. It may mess with the Bass low end a bit. I designed a circuit years ago to send 9v power over a guitar audio cable. So it is possible, just depends on the circuit. I like Grumpy's idea better!

I did the same thing with a guiotar lead. Had a capacitor at each end of the wire for the signal and send the power up the bit between the caps. It worked, I got an FX module (VOX treble booster, I think) inside the guitar as well as a single transitor preamp.

MIke's right, the best way to do this is with dual gang pots. Trouble is, there may not be room for these inside the case. If the OP has a BOSS Metal Zone then there's not much air in those let alone room for extra gangs on the pot. The thing already has (two, I think) concentric dual gang pots.

This is a great idea that would be better done at the design stage but that would put the price up and in any event, the technology was just not there when these things were being invented.

Thanks again for all the comments which have been very helpful and highlighted several factors that I was unaware of.
I think I now know what I might be able to do. I've created my own pedals in the past, including a replica Ibanez TS-808 Tube Screamer - so I'm not adverse to a bit of dirty work. So, if I take the guts out of a pedal, say a cheap one to begin with that I don't mind blowing up, e.g. a Behringer Ultra Fuzz, which has 3 parameter pots, put dual tied gang pots in their place and the whole lot into a bigger box to also accommodate the Arduino board and LED display - will the Arduino "system" be able to do the job of recording the resistance of the "copy" pots, convert to numeric and store the settings as levels e.g. n 2 6 11 (heavy rock influence) where n is the storage position (numeric - would be nice to have say 3 character text but that would need a keypad and it all becomes very complicated) followed by the three pot values. On recall, the LED display will just repeat these values so that the pots can be adjusted to these values.

Is this feasible? The question remains - with the above scenario - is Arduino a suitable platform?

Maybe I misunderstand the problem, or maybe you are missing some point that I see more clearly...
I think the setup should be sort of 2 modes....your analog values from the pots are interpreted as 0-255 typically.
That is all the code sees.
Whether the program reads and converts the digital values live from the pots or uses stored values from a previous save, to EEPROM is trivial. Just a matter of programming.
That is, if you make the core of the program a digital effect, you can then tell it to use previous saved values in one mode, or run "live" from values presently set from the pots while experimenting or playing live.

If you meant to make an analog pedal, and just store the analog value, what would be the point? How will you set it back after it needs to be recalled?

There are some suggestions, I'm assume you need store settings "once" in a while as opposite continuously logging:

  • take a pics with digital camera, recall pics later on and adjust pots manually; :slight_smile:
  • split pots in two groups, one is regular analog pots out of the signal path, just "dumb" DC regulators - "level", "drive", distortion" whatever - feed them to arduino analog inputs. Second groups is digital pots in the signal path, controlled by arduino. When operator or musician adjust regular pot arduino would "mimicry" related digital one synchronously. Add couple buttons + LCD : store settings 1, 2,3 .... Recall 1, 2, 3,... There are a bunch of design examples to create LCD menu for this case. The same with EEPROM, libraries make it easy as two lines of code.

To cornwallav8r:

Firstly - please understand that I currently do not know what the Arduino platform is capable of doing - I have never used it. My initial question and follow-up was meant to provide replies that stated "yes" or "no" that the platform could in principle do the job. I evidently have not explained adequately what I want to do - although it is clear that my original intention was not possible.
So the modified intention is now to:

  1. Replace the 3 (in the case of the Behringer Ultra Fuzz pedal) single parameter potentiometers with 3 dual gang potentiometers - one of each pair for the pedal effect and the other for input/output to/from the Arduino A/D - called the "clone" pot.
  2. Use 3 push button switches, one to cycle through sets of parameter memory locations on the Arduino board, the other to act as a "SAVE" function button, and the third to act as a "LOAD" function button. Alternatively use a rotary switch to cycle through the memory locations.
  3. Each set of memory locations would consist of a value (1-12 say in the case of a 12 way rotary switch) as the "set" number followed by a numeric value that was the conversion value of each of the "clone" pots . If the conversion from the pot is in the range 0-255, then I would divide this output by 25.5 to give a normal audio range of 0-10.
  4. These 4 numbers (set number, Pot1, Pot2, Pot3) would be displayed on a LCD display and would show the current values on the pots (in numeric form).
  5. On "SAVE", these values would be stored in non-volatile memory on the Arduino board.
  6. On "LOAD", for whatever set number was chosen (rotary switch or cycle through switch), the 3 parameter pot values would be indicated on the LCD display - which would then allow me to adjust the actual effect pots to these values.

Essentially I just wondered whether the Arduino board and system could replace the book that I use to note all the parameter positions for different songs and guitars. It would also provide a useful project to get into understanding the Arduino system.

Having written all that - just received a reply from Magician that goes beyond what I have stated above - but probably provides a neater solution once I have got my head around the idea of analog and digital pots.
Thanks Magician.

Great thread. I have been toying with a very similar idea applied to tube amps. My hope is to actually use motorized potentiometers often found in high end hifi to move to settings stored in memory. Digital (solid state) pots replacing analog or even going with encoders could be other options. Please keep us updated on your project if you don't mind. I am very interested.

And oh yes, to your question, I think Arduino is very capable to handling the chores you will throw at it once you figure out how to get the inputs in there... All the best

Would it be feasible to replace the analog pots with digital pots and control them with the Arduino? I've never used one and I'm wondering if this would be an appropriate application.

While a digital pot might sound very attractive it has some hidden problems that might catch you out:-

  1. Most are designed to work on voltages between the supply voltage, that is 0 to 5V. Peddles are almost always 9V so you have to get a digital pot that is capable of that voltage. This might involve doing some level translation on the control signals going from the arduino.

  2. Using a digital pot involves having a common ground with the circuit you have the pot in. This is fine for just one peddle but with more than one it can lead to problems.

I once made a power supply for 6 peddles on a board. All the peddles had external power sockets, so I thought that one supply could simply be fed to all the peddles. When I switched it on there was a lot of smoke and the power supply got very hot. There were several problems. Each peddle had been designed to work with it's own isolated supply and some had the supply ground as positive and others as negative. When the audio cables were chained these had a common signal ground and shorted out the supply. Even then the signal ground and the power ground were not the same on all peddles because of what is known as "earth lift resistors". These go between the signal ground and the power ground and can minimise hum pickup. By making the power grounds common, some of them were burnt up.

So just to power all the peddles they had to have their own independent "floating" supply. This points out problems you could have if you are trying to control the pots on more than one peddle because they would need to have a common reference point.

This would depend on exactly what the circuit of your peddle combination consisted of.

Here is an example of using digital pots with peddles that I came across in another thread:-
video: http://www.dailymotion.com/video/xa7til_collin-s-lab-guitar-pedal-hacking-w_school
code: Google Code Archive - Long-term storage for Google Code Project Hosting.

Other alternative, is take a full advantage of single power, rail-to-rail Microchip programmable gain amplifier, MCP6S21 Microchip
Two chips with couple Ge-diodes in-between that's all it takes, arduino and IC's powered from the same +5V, or 3.3V (depends on a board) + Li-Po battery instead of +9V.

That sounds interesting, Magician. Can you give more details on how this would be implemented?

If you look at the drawings (which pretty similar to posted in reply #3)
http://analogguru.an.ohost.de/193/schematics/DeArmond_SquareWave.gif
first Microchip PGA would replace: IC1, R5/R6, C4/C5, P1. And second goes in place P2, it would only requires identical set of elements R4' - C2' - C6'.

I tried digital pots for a homemade fuzz factory. Not only did I run into the 5v problem but I later learned that you arent supposed to run audio through them because of the huge amount of noise they cause. A optocoupler was suggested and ive been struggling to get them to work with my circuits. My plan was to interface with rotary encoders and do it all digitally, interacting with the analog circuit of the pedal through those optocouplers. I've only been dabbling in it every so often so I haven't made much progress yet...

Here are some related threads...
http://arduino.cc/forum/index.php/topic,74465.0.html