Skip to main content
Version: FILS English

Guitar Tuner

Used to tune your guitar

info

Author: Magureanu Alin
GitHub Project Link : https://github.com/UPB-PMRust-Students/project-Alin1502

Description

The project consists of a guitar tuner that helps the user to accurately tune each guitar string without the need for external devices or application. Firstly, the sound is captured by the MAX9814 microphone and is sent to the microcontroller. The Raspberry Pi Pico analyzes the signal using Fast Fourier Transform in order to determine the dominant frequency. The obtained frequency is compared to the standard tuning values and identifies the closest musical note. After all the computations, the obtained note is shown on the OLED Display and the buzzer replicates the sound of the chord. For simplicity of the user interface, the user can select which string he is currently tuning using a push button.

Motivation

As someone who started to play guitar recently, I found it frustrating that my guitar was getting out of tune frequently. While there are mobile apps available for tuning, I disliked the idea of always depending on a phone and internet access to perform this. By researching how to detect sound frequencies, process them and display them in real time, I was able to create my own, fully functional device for tuning the guitar.

Architecture

  1. Raspberry Pi Pico: used for handling the logic of the project. It receives analog audio input from the microphone, makes it digital using ADC and performs signal processing to detect the frequency
  2. Microphone Module: captures the sound of the guitar being plucked, which is then sent to the microcontroller
  3. OLED Display: displays when the chord is in tune and the current string selected
  4. Push Button: prompts the user to select between the 6 chords ( E, A, D, G, B, E) to select what to tune.
  5. LED: blinks red when guitar is out of tune, green when it is in tune
  6. Buzzer: replicates the sound of the respective chord after it gets in tune

Guitar_Tuner

Log

Week 28 April - 4 May

I started working on the documentation for the project. I bought every necessary component and i started to connect them on the breadboard, in order to be able to make the schematics and understand how they interact with eachother.

Week 5-11 May

Week 12-18 May

Week 19-25 May

Hardware

Schematics

KiCad_Schematic

Bill of Materials

DeviceUsagePrice
Raspberry Pi Pico 2WThe microcontroller40 RON
MAX9814Microphone Module60 RON
Push ButtonSelect Button0.36 RON
OLED DisplayThe Display30 RON
LEDBlink LED0.4 RON
BuzzerReplicates Sound1.4 RON

Software

LibraryDescriptionUsage
ssd1306Display LibraryUsed for I2C OLED Display
embassy-rpPico PeripheralsUsed for accessing the peripherals
num-complexComplex Numbers LibraryUsed to compute complex part of fourier
microfftFourier Transform LibraryUsed to compute frequency with fourier
embassy-timeTime management libraryUsed for time-based operations such as delays
libmMath libraryUsed for calculations