pedalSHIELD Arduino Guitar Pedal.

pedalSHIELD is a programmable Arduino Open Source & Open Hardware guitar pedal made for guitarists, hackers and programmers. Users can program their own effects in C/C++ or download ready effects from the online library.

It is designed to be a platform to learn about digital signal processing, effects, synthesizers and experiment without deep knowledge in electronics or programming.


  pedalSHIELD-parts-small     

How Does it Work?

The shield has three parts:

  • The Input Stage or Preamp: Amplifies the guitar input signal and sends it to the Arduino microcontroller to be processed. 
  • Arduino Board: It does all the Digital Signal Processing (DSP) modifying the signal and adding the effect (delay, echo, distortion, volume...).
  • The Output Stage: Once the waveform is processed, the signal is taken from the Arduino DACs and prepared to be sent to the Guitar Amplifier.
    This part also includes a Summing Amplifier which is very useful for delay effects like echo or chorus.

pedalshield-arduino-guitar-pedal-diagram

pedalSHIELD uses 2 ADCs and 2 DACS in parallel in order to achieve higher bit resolution (2 x 12bits). However using only 1 DAC and 1 ADC is possible without modifications. You can check all the details in the hardware design section and in the pedalHIELD Hardware forum.

pedalSHIELD-PCB-360-view-small

 How to Program it?

The shield is programmed in C/C++ using the standard free Arduino platform (Linux/Windows/Mac). All tools and programs are open source and compatible with Arduino libraries.

Basic knowledge of C is needed. The best way to show how to program it is showing an example pedal:

1. Clean Volume/Booster Pedal:

 This code creates a Volume/Booster pedal, the architecture of the program looks like

exaple-code

// Licensed under a Creative Commons Attribution 3.0 Unported License.
// Based on rcarduino.blogspot.com previous work.
// www.electrosmash.com/pedalshield

int in_ADC0, in_ADC1;  //variables for 2 ADCs values (ADC0, ADC1)
int POT0, POT1, POT2, out_DAC0, out_DAC1; //variables for 3 pots (ADC8, ADC9, ADC10)
int LED = 3;
int FOOTSWITCH = 7; 
int TOGGLE = 2; 

void setup()
{
  //ADC Configuration
  ADC->ADC_MR |= 0x80;   // DAC in free running mode.
  ADC->ADC_CR=2;         // Starts ADC conversion.
  ADC->ADC_CHER=0x1CC0;  // Enable ADC channels 0 and 1.  

  //DAC Configuration
  analogWrite(DAC0,0);  // Enables DAC0
  analogWrite(DAC1,0);  // Enables DAC0
}

void loop()
{
  //Read the ADCs
  while((ADC->ADC_ISR & 0x1CC0)!=0x1CC0);// wait for ADC 0, 1, 8, 9, 10 conversion complete.
  in_ADC0=ADC->ADC_CDR[7];               // read data from ADC0
  in_ADC1=ADC->ADC_CDR[6];               // read data from ADC1  
  POT0=ADC->ADC_CDR[10];                 // read data from ADC8        
  POT1=ADC->ADC_CDR[11];                 // read data from ADC9   
  POT2=ADC->ADC_CDR[12];                 // read data from ADC10 
    
  //Add volume feature with POT2
  out_DAC0=map(in_ADC0,0,4095,1,POT2);
  out_DAC1=map(in_ADC1,0,4095,1,POT2);
  
  //Write the DACs
  dacc_set_channel_selection(DACC_INTERFACE, 0);       //select DAC channel 0
  dacc_write_conversion_data(DACC_INTERFACE, out_DAC0);//write on DAC
  dacc_set_channel_selection(DACC_INTERFACE, 1);       //select DAC channel 1
  dacc_write_conversion_data(DACC_INTERFACE, out_DAC1);//write on DAC
}

You can check all the codes and more examples at the pedalSHIELD Software Forum. 

You can listen in SounCloud all the already programmed effects (delay, reverb, echo, metronome, tremolo, distortion, etc...):

 

 

 

 

Order a pedalSHIELD online.

There are several options in the store:

  1. Order only the PCB. It uses easy-to-find standard components and you can build the kit yourself. The bill of materials is published with all the references and the Mouser part numbers.
  2. Order the full kit: This kit includes the PCB and all the components to build pedalSHIELD at home.

All the transactions are done though PayPal for maximum security.

If you have any question, contact us.

pedalSHIELD intro

pedalSHIELD Hardware Design.

Specifications:

  • Based in Arduino Due.
  • Configurable sampling time from 8kHz to 192kHz.
  • More than 2200 instructions per sample at 48kHz
  • Microcontroller:
    • 84MHz 32bit Atmel SAM3X8E ARM Cortex-M3.
    • 96KB RAM, 512KB Flash Memory.
    • Integrated DMA.
    • 12 bit ADC/DAC integrated sampling up to 1Msps.
  • Interface:
    • 3 Configurable potentiometers.
    • 2 Configurable switches.
    • Blue power-on led PWM controlled.
    • True Bypass Footswitch.
  • Connectors:
    • Input Jack, 1/4 inch unbalanced, Zin=10MΩ.
    • Output Jack, 1/4 inch unbalanced, Zout=1KΩ.
    • Power supply: power taken from Arduino Due board.

The design was created using KiCad, a open-source GNU free of charge electronic design CAD tool. All schematic native files 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 Arduino Connectors:

pedalshield schematic
The functionality is simple; 2 opamps will prepare the signal to be digitized and also 2 opamps will recover the signal from
the microcontroller. Two ADCs in parallel can be used to read the guitar signal, improving the bit depth (2x12bits). Furthermore, this arrange is also compatible with the "Double Span and Digitize Signals using Two ADCs" by placing the Jumper1.

  • Input Stage / Preamp: The guitar signal is amplified for better acquisition by the first op-amp which follows the MicroAmp guitar pedal design. The trimmer VR1 adjusts the gain of this amplifier. There is also program which helps to automatically adjust this trimmer. The second inverting op-amp inverts the amplified signal to be applied to the ADC1. The Diodes D1, D2, D3, D4 are clamping diodes that protect the Arduino's ADC from signals above 3,3V and below 0V.
  • The Output State: Using a Differential amplifier (Gain=1) two DACs can be read in parallel improving the bit resolution (2x12bits). However, if a signal is generated at DAC0 and DAC1 is not used, the Differential amplifier behaves as a normal Buffer. The last op-amp is in a Summing configuration, adding the processed signal and the original one if the Mix Switch is ON. This stage is very convenient to implement some pedals like delay, flanger, chorus, metronome, etc..
  • The Power Supply: Generates ±5V to feed the operational amplifiers and achieve maximum signal swing without distortion.
  • User Interface: Is composed by the configurable potentiometers, switches, footswitch and LED.
  • Arduino Connectors: 5 connectors link the shield with Arduino transferring the signals.

pedalSHIELD-360-view-small

Bill Of Materials:

The components were selected using easy-to-find through hole parts and minimum number of references. You can also download it in txt, pdf, excel or open office format.

 
pedalSHIELD Bill of Materials /Parts List
 
Value Qty References Description Mouser Reference
Capacitors        
270p 5 C2 C5 C8 C9 C12 Ceramic Disc Capacitors 140-50S5-271J-RC
0.1u 6 C1 C4 C6 C7 C10 C11 Film Capacitors. ECQ-V1H104JL
1u 1 C13 Aluminium Electrolytic Capacitors ECE-A1HKA010
4.7u 1 C3 Aluminium Electrolytic Capacitors ECE-A1EKA4R7
10u 2 C14 C15 Aluminium Electrolytic Capacitors ECE-A1HKA100B
47uF 1 C18 Aluminium Electrolytic Capacitors REA470M1CBK-0511P
Resistors        
1K 2 R3 R21 Metal Film Resistors, 1% Tol. MF1/4DC1001F
4.7K 3 R5 R9 R10 Metal Film Resistors, 1% Tol. MF1/4DCT52R4701F
50K 1 R7 Metal Film Resistors, 1% Tol. MF1/4DCT52R4992F
100K 12 R4 R6 R8 R11 R12 R13 R14 R15 R16 R17 R19 R20 Metal Film Resistors, 1% Tol. MF1/4DCT52R1003F
10M 2 R1 R2 Metal Film Resistors, 1% Tol. RK1/4DC1005F
500K 1 RV1 Trimmer Res. -9mm Single Turn 3319W-3-504
10K 3 RV2 RV3 RV4 Alpha Potentiometers Flat 20mm RK09L114001T
Plastic Knobs 3 RV2, RV3, RV4 Plastic Knob +crew, Shaft:6.35mm 450-2023-GRX
Others        
1N5817 4 D1 D2 D3 D4 Schottky Diodes Vr/20V Io/1A 1N5817
LED 1 D5 Through hole, blue led. C4SMG-BJS-CQ0T0451
SWITCH_3PDT 1 SW1 3PDT True Bypass Footswitch 107-SF17020F-32-21RL
SWITCH_INV 2 SW2 SW3 Toggle Switch SPDT 612-100-A1111
Connectors        
CONN_8pins 5 CONN2 CONN3 CONN4 CONN5 CONN6    
JACKS 2 JI, J2 Neutrix 1/4 stereo Chrome Conn. NMJ6HCD2
IC's        
TL072 2 U1 U2 Operational amplifier. TL072IPE4
TC1044 1 U3 Voltage switching regulator. TC1044SCPA
8PIN SOCKETS 3 U1, U2, U3 8pin DIP plastic socket. 1-390261-2
Mechanic        
pedalSHIELD PCB 1   Dual Layer 2x4” PCB soldermask.  
Plastic Protector 1   3D printed plastic cover protector.  

 

3D Printed Cover

pedalSHIELD includes a custom cover designed and manufactured by our friends at Shuttl3d. The first release used a 3D printed cover made of ABS plastic with 3mm thickness, it provides enough robustness and protection to the electronic circuits while adding a touch of color to the pedal.

For the next releases and once the design was trimmed with the 3D printer, the cover was made of plexiglas which is strong and lightweight. The last review is in transparent color which makes easier to check the hardware behind it.

pedalSHIELD covers

 

Frequently Asked Questions (FAQ):

What is Arduino?

  • Arduino is a single-board microcontroller to make using electronics in multidisciplinary projects more accessible. The hardware and software are open-source.

Where can I buy Arduino Due borad?

Does pedalSHIELD work with all Arduino boards?

  • No, only with Arduino DUE.

Is pedalSHIELD suitable for bass players?

  •  Yes, but you need to swap 6 capacitors (C1 C4 C6 C7 C10 C11) from 0.1uF to 0.5uF, that is all.

Can I plug headphones directly to pedalSHIELD?

  •  No, pedalSHIELD is not an amplifier. It needs to be plugged to a guitar amplifier, or to a multieffects (Line 6 pods, etc..).

 

  Thanks for reading, all feedback is appreciated    jr(at)ElectroSmash.com

 Some Rights Reserved, you are free to copy, share, remix and use all material.
Trademarks, brand names and logos are the property of their respective owners.

 

UK ES

Newsletter

Subscribe to receive new articles.
FacebookDiggRedditPinterestElectroSmash VimeoElectroSmash youtubeElectroSmash Google PlusElectroSmash Flickr
Pin It
  • Web Last Update April 2014.

Creative Commons Attribution