The problem
Many older wired speakers still sound fine, yet modern phones have dropped the 3.5 mm headphone jack, leaving a working speaker pair with no convenient way to play phone audio through it. Buying a new Bluetooth speaker replaces hardware that still works, while cheap plug-in Bluetooth dongles hide their audio path, amplifier limits and tone controls inside a sealed case, so a student learns nothing from them. The ESP32 Bluetooth Audio Receiver with Amplifier and Tone Control for Speakers closes that gap by turning an ordinary wired speaker pair into a Bluetooth speaker through an open, inspectable build: an ESP32 board receives the phone audio stream, a dedicated DAC converts it to analogue sound, a three-knob tone stage shapes bass and treble, and a Class-D amplifier drives the speakers. Every stage is visible, measurable and explainable, which is exactly what an electronics project should demonstrate.
The phone streams music over Bluetooth Classic using the A2DP profile and the SBC codec.
Follow the working sequence
How it works
The signal chain runs end to end from the phone to the speakers in six stages. The phone sends music over Bluetooth Classic using the A2DP profile, with the SBC codec carrying the compressed audio. The ESP32, acting as an A2DP sink, receives that stream, decodes the SBC frames back into digital audio samples, and re-clocks those samples out over its I2S bus. The PCM5102A DAC converts the I2S samples into a stereo analogue signal, which then passes through the tone-control stage where the bass and treble knobs boost or cut their frequency bands. Finally, the PAM8403 Class-D amplifier raises the shaped signal to speaker level and drives the wired speaker pair, so the sound heard from the speakers is the phone's audio, processed through a fully visible hardware chain.
- The receiver is powered from a 5 V DC adapter and the pairing button puts the ESP32 into discoverable mode, shown by a blinking status LED.
- The phone finds the receiver in its Bluetooth audio device list, pairs once, and stores the pairing for automatic reconnection later.
- Playing music on the phone sends the audio over Bluetooth Classic using the A2DP profile, with SBC as the mandatory audio codec.
- The ESP32 firmware receives the A2DP stream, decodes the SBC frames into digital audio samples, and outputs them over the I2S bus.
- The PCM5102A DAC converts the I2S samples into a stereo analogue signal for the tone-control stage.
- The NE5532 tone stage applies the volume, bass and treble knob settings to the analogue signal before it reaches the amplifier.
- The PAM8403 Class-D amplifier raises the shaped signal to speaker level and drives the wired speaker pair, with play, pause and track-skip commands handled over AVRCP.
Tech stack:
- ESP32-WROOM-32
- Bluetooth Classic · A2DP sink
- PCM5102A I2S DAC
- PAM8403 Class-D amplifier
- NE5532 tone-control stage
- ESP-IDF Bluetooth stack
- Arduino IDE firmware
- I2S digital audio
| Parameter | Value |
|---|---|
| Controller | ESP32-WROOM-32 module |
| Bluetooth profile | A2DP sink (Bluetooth Classic) with SBC codec |
| Audio path | I2S bus from ESP32 to PCM5102A DAC |
| Tone control | NE5532-based stage · volume · bass · treble knobs (design target approximately ±12 dB at 100 Hz bass and 10 kHz treble) |
| Amplifier | PAM8403 Class-D · 3 W per channel (datasheet value · 4 Ω load · 5 V supply · 10% total harmonic distortion) |
| Speakers | Stereo wired speaker pair · 4 Ω impedance (design target) |
| Power supply | 5 V DC adapter · 2 A current rating (design target) |
| Bluetooth range | Approximately 10 m in open space (typical value · Class 2 radio) |
| Audio latency | Approximately 200 ms (expected value · SBC over A2DP) |
| Controls | Pairing push button · status LED · 3 rotary knobs |
| Builder note | The amplifier module gets its own short, thick ground return to a single supply star point, with a 100 µF electrolytic capacitor and a 100 nF ceramic capacitor fitted within a few millimetres of the amplifier supply pins; in the bench build this removed the buzz that appeared when the amplifier shared the ESP32 board's thin breadboard ground rail. Bluetooth audio is not a wire replacement for analogue sound: the phone encodes audio with the SBC codec, the ESP32 decodes the A2DP stream and re-clocks it as I2S samples, so sound quality is bounded by the codec and the clock, not by the speaker cable. |
Project features
The ESP32 Bluetooth Audio Receiver with Amplifier and Tone Control for Speakers combines four capabilities that make it a complete audio-system project rather than a single-board demo. First, the ESP32 acts as a Bluetooth A2DP sink, so any phone can stream music to it without an app or an internet connection. Second, the digital audio leaves the ESP32 over I2S into a dedicated PCM5102A DAC, keeping conversion quality out of the microcontroller's noisy internal converters. Third, an analogue tone-control stage with separate volume, bass and treble knobs lets the listener shape the sound by hand. Fourth, a PAM8403 Class-D amplifier stage delivers real speaker-driving power, with a datasheet value of 3 W per channel into a 4 Ω load at a 5 V supply. The tone stage and amplifier are deliberately separate modules, so a reviewer can trace the signal from the phone through conversion, shaping and amplification without any hidden processing in between.
- [Bluetooth A2DP sink reception] The ESP32 advertises as a Bluetooth audio receiver, pairs with a phone, and accepts the standard A2DP audio stream with SBC codec decoding handled on the board.
- [I2S DAC audio path] Decoded audio leaves the ESP32 over I2S into a PCM5102A DAC, so the analogue signal comes from a dedicated converter instead of the microcontroller's internal DAC.
- [Analogue bass and treble tone control] A NE5532-based tone stage provides separate volume, bass and treble knobs, with a design target of approximately ±12 dB of bass adjustment at 100 Hz and treble adjustment at 10 kHz.
- [Class-D stereo amplifier] A PAM8403 amplifier module drives a stereo speaker pair, with a datasheet value of 3 W per channel into a 4 Ω load at a 5 V supply and 10% total harmonic distortion.
- [Phone-side playback control] AVRCP support lets play, pause and track-skip commands from the phone control the stream, so the phone remains the remote control for the system.
- [Automatic reconnection] The receiver stores its last pairing and reconnects to that phone automatically when both are powered and in range, without repeating the pairing step.
- [Pairing status indication] A push button starts pairing mode and an onboard LED shows pairing, connected and streaming states, giving a visible check at every stage of the link.
What is included
- Assembled ESP32 Bluetooth audio receiver with amplifier and tone-control stage
- Firmware source code for A2DP sink, I2S output and AVRCP control
- Circuit diagram and wiring documentation for the ESP32, DAC, tone stage and amplifier
- Component list with module part numbers and supply ratings
- Setup and pairing instructions for phone connection and reconnection
- Project report PDF (background, audio chain theory, methodology, results)
- PPT presentation for final review
- Viva Q&A preparation document (Bluetooth profiles, SBC codec, I2S, DAC operation, Class-D amplification, tone-control theory)
Limitations & prerequisites
- Audio quality is bounded by the SBC codec and Bluetooth Classic link; lossless codecs such as aptX and LDAC are not supported by this receiver.
- Expected audio latency of approximately 200 ms makes the receiver unsuitable for lip-synced video watching or live gaming audio.
- Output power is limited by the PAM8403 datasheet value of 3 W per channel into a 4 Ω load at a 5 V supply; large room-filling speakers need a higher-power amplifier module.
- Bluetooth range is approximately 10 m in open space (typical value) and drops through walls and in crowded 2.4 GHz environments.
- Only one phone streams at a time; a second phone must wait until the first disconnects.
- The receiver is a mains-adapter-powered prototype with no battery, no enclosure waterproofing and no audio certification.
- ESP32 A2DP sink support depends on the Bluetooth stack in firmware; moving the code to a different ESP32 board variant needs re-verification of I2S pin mapping.
Frequently Asked Questions
Is this project suitable for a final-year project?
Yes, for Electronics and Telecommunication programs. It demonstrates Bluetooth audio profiles, SBC decoding, I2S digital audio, DAC conversion, analogue tone control and Class-D amplification in one working system, giving a complete signal chain to discuss and demonstrate live during review.
What is the main technology used?
Bluetooth Classic audio on the ESP32, using the A2DP sink profile. The ESP32 receives the phone's SBC-encoded stream, decodes it, and sends digital audio over I2S to a dedicated DAC, which is the core technical chain of the project and what separates it from a simple plug-in Bluetooth dongle.
Does this project need internet?
No, it works entirely offline. Pairing, streaming and playback control all run over a direct Bluetooth link between the phone and the receiver, so no Wi-Fi, router or cloud service is involved, and the phone itself acts as the remote control.
Can it drive bigger speakers?
The base build drives a small stereo speaker pair at the PAM8403 datasheet value of 3 W per channel. Larger speakers can be supported by swapping in a higher-power Class-D amplifier module, offered as a customization, while the ESP32 receiver and tone stage stay unchanged.
What power supply does it need?
A 5 V DC adapter rated at 2 A (design target). The ESP32, DAC, tone stage and amplifier all run from this single supply, with separate decoupling at the amplifier pins and star-point grounding to keep supply noise and hum out of the audio.
Can an AUX input be added?
Yes, as an optional customization. A wired 3.5 mm AUX input can be switched into the tone stage ahead of the amplifier, so the same speakers play from a wired source when Bluetooth is not in use, and wired sources still benefit from the volume, bass and treble knobs.
Components & software requirements
- ESP32-WROOM-32
- Bluetooth Classic · A2DP sink
- PCM5102A I2S DAC
- PAM8403 Class-D amplifier
- NE5532 tone-control stage
- ESP-IDF Bluetooth stack
- Arduino IDE firmware
- I2S digital audio
Delivery information
Built-to-order project. Delivery timeline is shared after order confirmation based on current queue.
Support terms
Complete documentation, setup guide, and viva preparation included. Support for setup and explanation provided.
Download free synopsis (PDF)
Enter your name and WhatsApp number — the synopsis PDF downloads immediately. We may send occasional project updates on WhatsApp; no spam.