The complete pedalSHIELD MEGA project is Open Source Hardware, the design was done using KiCad, an open-source and free of charge ECAD tool. All the project files, schematics, and bill of materials are public. The circuit can be broken down into 5 simpler blocks: Power Supply, Input Stage, Output Stage, User Interface and Raspberry Pi Connector:
In a nutshell, it works like this: One op-amp will prepare the signal to be digitized by the ADC (amplifying and filtering the waveform) and also 1 opamp will recover the signal from the Arduino MEGA board. Two PWM signals are used in parallel to generate the output signal.
The guitar signal is amplified and filtered using one op-amp, this part of the circuit looks very similar to the MXR MicroAmp guitar pedal, you can have a look to the analysis.
The trimmer RV1 adjusts the gain of this amplifier from 1 to 21, so the guitar level (typically 200mVpp) can be optimized for the ADC (ideally 5Vpp). The signal pass through several filters:
- 2 low pass filters (formed by R3&C2, R5&C4, R6&C5) that will remove the excess of high harmonics that can create aliasing during the ADC signal acquisition. The cut frequency used is 5KHz, also used in other commercial effects.
- 2 high pass filters: (formed by R2&C1, R4&C3) that will remove DC and avoid any hum in the signal.
Other important parts:
R1: is a pull-down resistor which avoids popping sounds when the pedal is switched on. The input pull-down resistor becomes the maximum input impedance of the pedal (which is 1 Mega Ohm).
R2: Is a bias resistor, it gives the virtual ground (2.5V) to the op-amp.
C4: Will eliminate oscillations or noise in the line.
The C10 cap eliminates any DC offset of the guitar signal
R10 and R11 are chosen to be one 256 times bigger than the other (4.7Kx256=1.2M)
The power supply is taken from the Arduino MEGA board, 5V are used to power the op-amp and a resistor divider (R7 and R8) generates 2.5V to be used as a virtual ground. A rail-to-rail op-amp (TL972) is used in order to work with audio signals very close to the supply rails.
The player can use 2 configurable push-buttons, 1 configurable toggle switch, 3PDT true-bypass footswitch and a programmable LED.
A 1.3 inches (0.96 are also compatible) I2C OLED display is used.
Arduino MEGA Connectors:
Several pin headers are used to connect the Arduino MEGA board with the header.