Introduction: Nucleo Guitar Effects Pedal
Playing an instrument like the electric guitar requires a lot of time to practice and
improve your playing skills. Certain styles of playing requires specifc effects. To achieve this guitarists use effect units which are commonly known as effects pedals. An effect pedal is an electronic device that uses the output signal from the guitar pick-up as input and changes the signal by applying signal processing techniques to create an altered output signal.
These pedals come in various price ranges, but it does not oer the guitarist the possibility to create his own effects by reprogramming the effects pedal or using a custom effect. With the advancement in digital signal processors and the improvement in the field of music and electronics, it has become possible to create a multi-effects pedal capable of processing audio in real time.
The primary aim of this project is to design and construct a multi-effects pedal that can be reprogrammed for the electric guitar. The multi-effects pedal and guitar should be able to be reprogrammed using a computer or function without any other external accessories when just practicing. This functionality is important for the guitarist.
Step 1: Nucleo F303RE Development Board - Digital Signal Processor
The Nucleo-STM32F303RE board from ST-Microelectronics was chosen to be used for the Digital Signal Processor. This board is used due to the high speed floating point operation and DSP functionality provided by the ARM based processor on the MCU.
The Nucleo boards comes with their own on-board programmer/debugger. The Arduino header along with the ST-Morpho header pins allow the user to easily access each pin of the MCU to gain full control for application being developed.
The Nucleo was programmed by using mbed which is a platform and operating system for devices based on 32-bit ARM Cortex-M microcontrollers. Along with mbed, CooCox was also used which is a open-source Eclipse based IDE and ARM Cortex-M development tool using the GNU ARM Toolchain. In CooCox the HALdrivers were used to help code the microcontroller.
The HAL drivers layers provide a generic multi instance simple set of application programming interfaces that interact with the upper layer (application, libraries and stacks). These drivers are built around a generic architecture which gives the ability to built-upon these layers, to implement their functions without knowing in-depth how to use the MCU.
Step 2: Design Procedure
In order to design the effects pedal a functional architecture was used created. The functional architecture could be seen as a system that is laid out. This system shows how people and objects of the product interfaces with it. The main modules within the project is shown with the interfaces indicated.
Input Stage
The output signal of a electric guitar differs from each other depending on the type of pick-ups and manufacturer. Since the amplitude is different for various of guitars we need to design an input stage that is able to amplify and buffer the signal for any type of electric guitar.
Analog to Digital Converter
The amplified buffered analog signal must be digitized by the ADC. Decision regarding the sampling rate, bit depth and interfacing of the ADC must be taken into consideration. Decision was made to use Nucleo on-board ADC.
Digital Signal Processor
As discussed in into the NucleoF303RE is used.
Digital to Analog Converter
After the the digitized samples is processed through algorithms, the samples are converted back to analog through the DAC. Decision was made to use Nucleo on-board DAC.
Interfacing
Interfacing is important for the operator using the effects pedal. There are various ways interfacing can be implemented on a effects pedal.
Power Supply
The power supply must be designed to operate the effects pedal from a dc input. There are various factors needed to be taken into consideration. The input voltage to the effects pedal and protection.
Output Stage
The output stage will allow the operator to connect an cable to the guitar effects pedal to drive the guitar output signal through a speaker or headphones. This can be achieved as discussed in the input stage by using amplifier circuits.
Step 3: Componetns
This following components is needed to create the project. Many of the components listed could be changed except the resistor and capacitor values. These components are surface mount, but if PCB is not created through hole components could also be used. The 1206 package size was used to make soldering easier since the board has sufficient space.
The PCB design along with circuit diagram is given in the following steps.
(X1) Nokia 5510 LCD screen
(X6) 16mm Through hole mount push buttons
(X1) DC input jack barrel
(X1) IDE 40-pin connector
(X1) 5V Low drop out Voltage regulator
(X1) 3.3V Low drop out Voltage regulator
(X2) PCB Guitar jacks stereo
(X10) 100k Ohm resistor
(X1) 3.6k Ohm resistor
(X2) 1k Ohm resistor
(X2) 10M Ohm resistor
(X1) 10k Ohm resistor
(X6) 0.1uF Capacitor
(X4) 10uF Capacitor
(X1) 15uF Capacitor
(X1) 180pF Capacitor
Step 4: Circuit Design and PCB
Input Stage
This stage amplifies and buffer the guitars output signal before it is received by the ADC. A non-inverting op-amp topology was used to design the amplifier. A function wave generator was used to simulate a guitar output signal. The 20M input resistor is used as a pull down resistor. This resistor is used to avoid the popping sound which is found when switching on the pedal. A simple voltage divider from the 3.3V railing is added by using two 100k resistors to create a new virtual ground at 1.65V.
This allows the amplifier to amplify the bipolar guitar output signal. This is necessary since most ADC read values from 0-3.3V. This amplified signal is connected to A0 on the Nucleo board which is an analog in pin. The gain of the input stage is controlled by the guitar volume knob that will attenuate the signal or amplify.
Power Supply
Low drop out voltage regulators was used to create a output voltage of 5V and 3.3V from a 9V dc input. The 5V is used to power the Nucleo board and the 3.3V is used to power the LCD and amplifiers
All the simulations done can be found under the GitHub repository.
PCB
The schematic design along with the PCB layout were done in Altium Designer 15. The breakout board contains the following functionality:
Guitar 6.35mm input jack along with an output jack to connect to an power amplifier. A power supply that supplies 5V and 3.3V to the Nucleo board from a 9-12V AC adapter input. Input stage circuitry to amplify the guitar signal along with impedance matching. The LCD and buttons to control and display the current effects along with its parameters.
All the pin connection needed for the LCD and components is shown in the Figures. The Nucleo pin layout sheet must also be used to ensure that pins is connected properly. The gerber files of the PCB is available under the GitHub repository. Any other PCB software could be used. In order to create the shield for the Nucleo the mechanical drawing was used in order to get the dimensions and this indicated how the components needed to be placed
Attachments
Step 5: Programming
The file can be uploaded to have the effects as demo in the video I made without any programming skills needed. If you are a novice programmer and would like to program your own effects it is possible. The code is self explanatory and full of comments. All the code can be downloaded on GitHub.
https://github.com/Guitarman9119/Nucleo_Guitar_Effects_Pedal
Step 6: Enclosure Design
The effects pedal chassis is designed using Solid Works. This design was taken to be cut from perspex. This method was chosen due to the cost and simplicity of design.
The solid works drawings along with the digital drawings is available to be downloaded.
For more information on this design visit the following link:
http://support.ponoko.com/entries/20344437-Laser-cut-project-box-tutorial
The DXF files along with part files to be edited is added. Any free DXF file can be used to view this files or taken to material fabricator for laser cutting.
Step 7: Final Product
If you need any help let me know.