Skip to main content
Version: FILS English

OxiNMP

Digital Signal Processing on a INMP microphone, having multiple voice effects chosen by the user.

info

Author: Khalghamouz Ali-Nicolas
GitHub Project Link: https://github.com/UPB-PMRust-Students/fils-project-2026-K-Nicolas-10

Description

My project's purpose is to have multiple integrated DSP algorithms (aiming to implement 4) that transform the captured audio into audio with multiple effects, kind of like a Voice Changer. I aim to have an 8-bit Retro audio effect, a high pitch effect, a low pitch effect and a sci-fi sounding effect (kind of like Dalke).

Motivation

Choosing this project was a mix of my interest in mathematics and wanting to learn DMA more in-depth.

Architecture

  • 4x Buttons: This acts as a control panel for all the audio effects. They are connected to the GPIO pins on the STM32 configured as hardware interrupts.
  • INMP441 Module: It sends clean digital audio arryas straight to the STM32 via I2S
  • STM32: Calculates FFT to draw on the screen and the algorithms for the audio effects.
  • UDA1334A: Takes the I2S output from the STM32 and outputs it into a 3.5mm Jack where you connect speakers or headphones.
  • SPI TFT LCD Display: Chose an SPI screen over a I2C screen because it handles video better than I2C. I2C is too slow for smooth video.

Architecture Diagram

Log

Week 5 - 11 May

Week 12 - 18 May

Week 19 - 25 May

Hardware

Microcontroller: STM32U545RE Nucleo (Core logic)

Input: INMP441 I2S Microphone (Captures audio)

Output: UDA1334A I2S DAC (Plays audio)

Display: SPI TFT LCD (Shows visualizer)

Interface: 4x Tactile Buttons (Changes effects)

Schematics

Not available right now.

Bill of Materials

DeviceUsagePrice
STM32 Nucleo-U545REThe microcontrollerBorrowed
INMP441 I2S MicrophoneCaptures ambient audio digitally via I2S, bypassing analog ADC noise.21 RON
UDA1334A I2S DAC ModuleDecodes processed digital audio to an analog signal via a 3.5mm jack.37 RON
Starting Electronics KitContains Miscellaneous components like resistors,breadboard,etc51 RON

Software

LibraryDescriptionUsage
embassy-stm32Hardware Abstraction Layer for STM32Used for accessing I2S, SPI, DMA, and GPIO peripherals asynchronously.
embassy-executorAsync runtime for embedded systemsUsed for managing and scheduling concurrent tasks (audio pipeline, UI, buttons).
embassy-syncSynchronization primitives for asyncUsed for safely passing audio data buffers between async tasks via channels.
embedded-graphicsno_std 2D graphics libraryUsed for drawing the real-time audio waveforms and frequency bars on the display.
mipidsiDisplay driver for MIPI DSI displaysUsed as the hardware driver for the ILI9341 or ST7789 SPI TFT LCD.
microfftFast Fourier Transform library for no_stdUsed for calculating the frequency spectrum for the audio visualizer.
  1. Embassy-rs Official Book
  2. STM32 NUCLEO-U545RE Board Documentation
  3. INMP441 I2S Digital Microphone Official Datasheet
  4. Adafruit UDA1334A I2S DAC Guide
  5. embedded-graphics Rust Crate Documentation
  6. mipidsi Rust Crate Documentation
  7. microfft Rust Crate Documentation
  8. STM32U5 Series Reference Manual