I've an idea I am trying to implement, and hoping the Arduino platform is capable of solving this problem.
I have a device (guitar effect pedal) which uses analog potentiometers to set parameter values, and I want to add the capability to store and recall presets for resistance values on the pins to which the analog potentiometers are connected.
The POTS are measuring 80k across the sweep. The pedal has 6 POTs, but I only need preset control over 2 of them.
Here is what I'm working with ...
... and I want to enable preset recall on the LEVEL and the DRIVE parameters.
The pedal operates on 9v power, either battery or external DC power supply. I typically run it off the external power supply.
Here is a rough list of requirements I drafted up to help me define scope of what I am trying to do:
Add ability to turn knobs and set desired parameters, then save current settings to memory for future recall through MIDI Program Change messages.
Control over DRIVE and LEVEL parameters as a minimum. DRIVE, LEVEL, MID, and CHARACTER as a stretch goal
Retain ability to manually turn knobs and use the pedal without MIDI connected
Need to retain 9v DC power to the pedal.
Using an external control box for MIDI preset storage and control is a suitable solution, so long as the pedal can still be manually used without the external controller connected.
Pedal must retain last known state of parameter values when powered up, even without external MIDI controller connected. Last known values can be physical position of the knobs if MIDI controller is not connected.
Would prefer to retain the original enclosure, but will transplant to a new enclosure if needed.
My 1st thought was to replace the two POTs with rotary encoders, and determine a way to enable those encoders to control a resistance circuit connected to the PCB inside the pedal. Then have an external box for MIDI interface, and have it send preset values to the resistance circuit.
But looking at all the Arduino projects and capability, I'm wondering if I can leave the existing POTs in place, and just re-reoute their signal into a Nano's analog inputs. Then have code inside the Nano to enable the POTs values to be passed when no external MIDI controller is connected (therefore retaining normal use of the pedal), and also allow POT override when the MIDI controller sends a Program Change message; thus recalling preset values for the two circuits to which those POTS are connected.
There is enough room inside the pedal enclosure, on top of the POTs, to fit an Arduino Nano. I'm thinking this could be for controlling the two resistance circuits. Then have an external enclosure with some sort of MIDI interface, connected by an interface cable, for receiving PC messages and, in turn, sending messages to the Nano inside the pedal, overriding the POT values and setting specific values for the two resistance circuits. The presets would be stored in the external MIDI controller in this type of scenario. But if the NAno can do that as well, great!
I know Arduino also has a MIDI device, and I'm hoping this can be used for the external controller.
I hope what I typed makes sense, and appreciate any advice you guys can offer.