Skip to main content
Version: FILS English

The tone corrector

Your tool to have a right tone EVERYWHERE

info

Author: Shafiei Armin
GitHub Project Link: link to my github

Description

This device helps users maintain an appropriate speaking volume in different situations. First, the user selects a scenario—like a quiet library or speaking with an elderly loved one who has hearing difficulties. Using its microphone, the system monitors voice volume in real time and gives instant feedback. If the volume fits the setting, it confirms with a positive signal; if not, it gently prompts the user to adjust, at the end of each trial a statistic will be shown for user to see the decible he/she was speaking with.

Motivation

A few months ago, I visited my grandmother and realized her hearing wasn’t what it used to be. Sometimes, I’d speak at my normal volume—unaware she couldn’t hear me—and she’d just smile silently. That’s when I thought: What if there was a gentle reminder to keep my voice just loud enough for her? That brought me to the idea of this project.

Architecture

alt text

Main components:

  • Raspberry Pico 2W Central processing unit, the brain of the project, Receives Analog Data (from Microphone via ADC), processes the signal and sends output to logs and display.
  • Microphone recieves analog electrical signal with air vibrations and transmit it to microprocessor.
  • Display Shows visual informations, sent from the microcontroller so the user can observe the results.
  • power supply provides electrical energy to the raspberry and the connected components.

Log

Week 28 April - 4 May

In this week I started my documentation. I have been doing research and learned how the decible is calculated after getting the analog outputs from microphone, Unfortunately I must change my microphone because it was broken, so placed an order for new one..

Week 5 - 11 May

This week I worked with my project and fixed the basic function (turning on leds based on your voice and printing db numbers at the display.) I recieved my microphone and approximately calibrated it.( it is not like calibrated microphone but still it wokrs.)

Week 12 - 18 May

Week 19 - 25 May

Hardware

In my project, I have used two Raspberry Pi Pico 2W ( one as a debugger and the other one as the central microcontroller ) , which reads analog audio signals from a MAX9814 microphone module connected to one of its ADC pins . The Pico processes the input to calculate sound intensity in decibels (dB). The results are displayed on a 128x64 SSD1306 OLED display connected via the I²C interface (SDA on GP6, SCL on GP7). To visually indicate sound levels, two LEDs are connected—typically a white LED to GPIO16 and a red LED to GPIO17—turning on based on defined dB thresholds. The entire setup is powered through a standard USB connection, supplying 5V to the board and its peripherals.

alt text alt text alt text

Schematics

alt text

Bill of Materials

DeviceUsagePrice
Raspberry Pi Pico WThe microcontroller35 RON
Raspberry Pi Pico WThe debugger35 RON
Max9814The microphone23 RON
[0.96" Inch OLED Display]The display8 RON
[Bread board]Connecting the components10 RON
[Male-Male wires]Connecting the components15 RON

Software

LibraryDescriptionUsage
embassy-rpHAL for Raspberry Pi PicoUsed for ADC reading from microphone
embassy-executorAsync runtimeRuns the main async task loop for sampling
embassy-timeTiming and delaysDelays between ADC readings and UI updates
libmno_std math libraryUsed for sqrt() and log10() in RMS and dB calculations
embedded-graphicsDrawing primitivesRenders text and UI elements to OLED screen
defmtLightweight logging frameworkPrints decibel values for debugging and calibrating
  1. How to convert Adc to Decibel

...