The Time Manipulator is an Open-Source Arduino microcontroller based Delay/Echo/Reverb guitar pedal. This is a short guide to start programming your own effects:
1. What Do You Need to Know About the Hardware?
You need to know which pins are used to connects the hardware resources (LEDs, button, encoder, TAP foot-switch, True-Bypass foot-switch, PWM to control the delay time, etc). Its important so in the effect codes, you will know which pins need to be read or write.
This image resumes the hardware configuration:
You will see how the pins are mapped (#define) at the beginning of any code:
// Pin Definitions:
#define DELAY1 10
#define DELAY2 9
#define SWA 3
#define SWB 14
#define SWC 2
#define SWD 4
#define LED1_G 1
#define LED1_R 0
#define LED2_G 5
#define LED2_R 6
#define ENC_A 16
#define ENC_B 18
#define ENC_GND 17
#define ENC_PUSH 19
#define BYPASS_DETECT 8
#define TAP_DETECT 15
Where DELAY1/2 are the PWM signals that will control the delay time on the PT2399 chips, SWA/B/C/D are the analog switches (from the CD4066), LED1/2_G/R are the leds 1 and 2 and the Green and Red lines, ENC_A/B/GND/PUSH are the encoder related lines (+ the push button which is integrated on the encoder itself), the BYPASS_DETECT will detect the True Bypass foot-switch and the TAP_DETECT will detect the TAP foot-switch.
If you want to know more about the hardware you can have a look at the Time Manipulator Circuit Analysis
2. Installing the Software.
You would need the Arduino IDE Software. It is available in the Arduino Software page with all the instructions
. There is also a "Getting Started with Arduino"
guide for more details.
3. Getting Ready the Microcontroller
The Time Manipulator uses the Arduino UNO microcontroller, the ATMEGA328P-PU
(not to be confused with the ATMEGA328-PU), there is a topic that explains how to get the microcontroller ready, burning the Bootloader (if the chip is brand new) or loading any code:
4. Lets Start Coding!
We have a series of pedal effects already coded and available in the forum. All these effects have "educational" purposes. You can have them as a base to start improving or coding your own effects. Therefore, these codes have a balance between performance and complexity so you can understand them easily and have fun
Going from easy to difficult, the natural evolution is: