Skip to main content
Version: FILS English

PiGlowTune

PiglowTune is a Rust-powered project that syncs LED light patterns with music in real time.

info

Author: Stoean Miruna-Teodora
GitHub Project Link: [https://github.com/UPB-PMRust-Students/project-mirunastoean]

Description

This project features a music-reactive LED system powered by a Raspberry Pi Pico W 2, which lights up 5 RGB LEDs in real time based on sound intensity. Using 2 shift registers (74HC595), the Pico controls each LED’s color and brightness through pulse and fade effects. A web app connected over Wi-Fi allows you to remotely select different LED effects, making it easy to switch between vibrant color modes and create an interactive light-and-sound experience.

Motivation

My motivation for this project comes from my passion for both music and visual aesthetics. I've always been fascinated by how sound can be transformed into something you can see and feel, not just hear. This project gave me the perfect opportunity to blend those interests by creating a system where music drives a visual experience in real time. I wanted to explore how technology could bridge the gap between auditory and visual art, and building a music-reactive LED setup felt like a natural and exciting challenge—especially with the added control and customization through a web interface.

Architecture

Diagram

The sound sensor picks up music and sends audio intensity data to the Raspberry Pi Pico W 2, which also connects via Wi-Fi to a mobile web app for remote control. The Pico processes the analog sound input and controls 5 RGB LEDs (common cathode) using 2× 74HC595 shift registers, with each RGB channel driven through current-limiting resistors. The entire LED system is powered by an external 5V power supply. The LEDs respond to music with synchronized light effects, including pulsing and dynamic color changes.

Log

Week 5 - 11 May

After purchasing all the necessary materials for my project, I began assembling the components, connected everything using jumper wires, performed debugging, and verified that my Raspberry Pi was functioning correctly.

Week 12 - 18 May

poza1
poza2
This week, I began by individually testing all my RGB LEDs to ensure they were functioning properly. I then carefully connected them using two shift registers, which required a lot of patience and precision. After setting up the hardware, I created three distinct lighting effects: Rainbow, Pulse White, and Strobe Party—each selectable by the user. Finally, I made the effects respond to sound by connecting the LEDs to a sound sensor, allowing the lights to react dynamically to audio input.

Week 19 - 25 May

poza_finala poza_finala1 This week, I successfully configured the Wi-Fi on my Raspberry Pi Pico 2W, turning it into an access point. Additionally, I created a simple HTML page where the user can select their desired LED effect. The project's software is finished and I also worked on the design of the project. Video of the Project working

Hardware

Poza
1. Raspberry Pi Pico 2W – Controls the LEDs, processes sound input, and connects to Wi-Fi for command input.
2. Microphone Sound Sensor – Detects sound intensity from music and sends analog signal to the Pico.
3. 5× RGB LEDs (Common Cathode) – Light up based on sound input, creating pulse and color effects.
4. 2× 74HC595 Shift Registers – Control the 15 LED channels (R, G, B for 5 LEDs) using only 3 GPIO pins.
5. 15× Resistors (220Ω–330Ω) – Current-limiting resistors for each RGB channel.
6. Power Supply (5V) – External power source to provide enough current for the LEDs.
7. Breadboard & Jumper Wires – For assembling and wiring the circuit easily.
The project uses several hardware components working together to create light effects synchronized with music. The Raspberry Pi Pico 2W acts as the brain: it receives the audio signal from the microphone sensor, processes it, and controls the RGB LEDs based on the sound intensity. The 5 common-cathode RGB LEDs light up in different colors and pulse according to the music rhythm.

To control all 15 RGB channels (3 colors × 5 LEDs) using only a few GPIO pins from the Pico, two 74HC595 shift registers are used. Each color channel has a resistor to limit current and protect the LEDs.

The LEDs are powered separately by an external 5V power supply to ensure enough current and stable operation. All components are connected on a breadboard, with jumper wires used for easy wiring between them.

Schematics

schema

Bill of Materials

DeviceUsagePrice
Raspberry Pi Pico 2WThe microcontroller39 RON
Sound Sensor ModuleThe sound sensor5 RON
2 x Breadboard The breadboards used15 RON
40 x Male-Male WiresMale to Male Jumpers Wires5,99 RON
10 x Female-Male WiresFemale to Male Jumper Wires5,99 RON
Power Supply ModuleAlimentation Source for Breadboard4,69 RON
5 x RGB LEDS - common cathode RGB Leds10 RON
2 x Shift Registers sn74hc595nShift Registers[3,99 RON]
15 x Resistors 220 ohmsResistors for Leds[0,20 RON]

Software

LibraryDescriptionUsage
embassy-rpHardware abstraction layer for RP2040Enables async interaction with the microcontroller hardware
embassy-netNetworking stack for embedded systemsManages Wi-Fi connectivity and enables web server features
cyw43Wi-Fi driver for CYW43439 chipSupports wireless communication for Raspberry Pi Pico W
defmtLightweight logging frameworkUsed for efficient embedded debugging
panic-probePanic handler for embedded Rust appsHelps capture crash reports in no-std environments
  1. Raspberry Pi Audio Reactive LED Strip (2020)
  2. Sound Reactive WS Led with Raspberry Pi Pico