Troubleshooting · Audio · PCM5102 / PCM5102A · ESP32 I2S · Raspberry Pi

PCM5102 DAC Hiss or Whine? Fix ESP32 I2S Audio Noise

PCM5102 noise driving you mad? You paused the music, and the speaker still plays

a steady hiss a whine that follows Wi-Fi a buzz on USB

That isn’t the DAC being cheap. Most of the time you are hearing its power supply.

Ramanu Systems · Pune, India · 3-minute answer, 10-minute deep dive

Quick answer

The PCM5102’s analog output runs straight from its 3.3 V supply. In most projects that supply is the ESP32’s 3V3 pin, which also feeds Wi-Fi transmit bursts. The bursts ride on the rail, the DAC passes a little of them to the output, and the amplifier makes them loud.

Fix: give the DAC its own clean, low-noise 3.3 V, join all grounds at one point, and power the speaker amplifier separately.

SymptomHiss, whine or buzz when nothing is playing
Likely causeDAC shares a noisy 3.3 V with Wi-Fi and the MCU
FixDedicated low-noise 3.3 V + one ground point
Show me the fix ↓ Test it with AA cells

Is this your problem?

If two or more of these sound familiar, the DAC’s power supply is your prime suspect:

  • Hiss you can hear when the music is paused
  • A whine or chirp that changes with Wi-Fi activity
  • Buzz on a phone charger or laptop USB, quieter on battery
  • Clicks or ticks while streaming internet radio
  • Noise gets worse as you turn the amplifier up
  • Noise changes when you touch or move the wires

Why it happens, in one picture

An ESP32 pulls short, heavy bursts of current every time Wi-Fi transmits. Those bursts show up as dips and spikes on its 3V3 pin. If the PCM5102 board is powered from that same pin, its analog section sees every burst. A little of that leaks to the audio output, and your amplifier turns it into an audible whine.

PCM5102 DAC powered from the shared ESP32 3V3 pin passes Wi-Fi burst noise to the speaker as hiss and whine; powered from a dedicated LN-7A2033 low-noise 3.3 V, silence is silent
Figure 1. Same DAC, same code. Only the 3.3 V source changed. Illustration.

The 2-minute test: is the supply really the problem?

Batteries are electrically quiet, so they make the perfect reference. Power only the DAC board from AA cells and listen.

Flowchart: power only the PCM5102 DAC board from 3 AA cells with ground joined to the ESP32; if the hiss or whine disappears it is DAC supply noise, otherwise check the amplifier supply, ground loop and wiring
Figure 2. Disconnect the DAC’s VIN from the ESP32 and connect 3× AA (≈4.5 V). Keep the DAC’s GND joined to the ESP32’s GND. The common purple PCM5102 boards accept 3.3–5 V on VIN because they carry their own small regulators. If your board has no regulator (bare chip, 3.3 V only), use 2× AA instead.

The fix in 3 steps

  1. Give the DAC its own clean 3.3 VFeed a dedicated low-noise 3.3 V regulator from the ESP32’s 5 V pin (or your 5 V supply), and power only the DAC board from it. Don’t take the DAC’s supply from the ESP32’s 3V3 pin.
  2. Join all grounds at one pointRun the ESP32, regulator and DAC grounds to one spot, and bring the amplifier’s ground there too. This keeps the amplifier’s and Wi-Fi’s return currents out of the DAC’s ground.
  3. Keep the amplifier on its own supply, and wires shortClass-D amplifiers such as the PAM8403 pull large current pulses: give them their own 5 V, never the DAC’s 3.3 V. Keep the three I²S wires under about 10 cm, and run audio wires away from power and speaker wires.
Wiring: ESP32 5V to LN-7A2033 VIN, VOUT clean 3.3 V to PCM5102 VIN, grounds joined at one point, GPIO27 to BCK, GPIO26 to LCK, GPIO25 to DIN, SCK bridged to GND, amplifier on its own 5 V
Figure 3. Recommended wiring. The GPIO numbers match the popular ESP32-audioI2S library examples; any free pins work if you set the same ones in code.
#include "Audio.h"          // ESP32-audioI2S library
Audio audio;

void setup() {
  // ... connect to Wi-Fi first ...
  audio.setPinout(27, 26, 25);   // BCK, LCK (LRC), DIN (DOUT)
  audio.setVolume(15);           // 0..21: leave headroom, avoid clipping
  audio.connecttohost("http://your-stream-url");
}

void loop() { audio.loop(); }

Board jumper settings (back of the purple PCM5102 board)

Pad / pinSet toWhat it does
SCKBridge to GNDNo master clock needed; the DAC’s internal PLL runs from BCK
H1L · FLTLowNormal-latency digital filter
H2L · DEMPLowDe-emphasis off
H3L · XSMTHighUn-muted. If this floats, you may get no sound
H4L · FMTLowStandard I²S format

Which setup are you using?

Your setupWhat to do
ESP32 internet radio / Bluetooth speakerClean 3.3 V for the DAC from the 5 V pin; amplifier on its own 5 V; one ground point
DAC straight into headphonesNo amplifier to blame, so any hiss you hear is the DAC or its supply. The clean rail matters most here
Raspberry Pi + PCM5102The Pi’s 3.3 V comes from a switching regulator. Feed the DAC from a low-noise regulator on the Pi’s 5 V pin
Powered from a phone chargerThe charger adds ripple too. The clean regulator blocks most of it; also try a different charger to compare

The clean audio supply we designed for this

TrueVolt LN-7A2033 · Clean power for sensors, radios & audio

Sits between your 5 V and the DAC. Three pins, no code.

  • 7 µVrms noise, 95 dB ripple rejection at 1 kHz (genuine TI TPS7A2033)
  • 300 mA: plenty for a DAC board, which draws a few tens of mA
  • Ferrite filtering, Samsung capacitors, aluminium PCB
  • Reverse-polarity and reverse-current protection
  • Designed & made in Pune, India

Still noisy? The other common causes

If the battery test didn’t silence it, work through this list:

CauseWhat you hearFix
Ground loop (amplifier or PC on mains)Steady 50 Hz / 100 Hz humIsolate: ground-loop isolator, battery-powered amp, or one shared supply
Amplifier’s own noise (cheap class-D)Hiss even with the DAC input shortedLower amp gain, better amplifier, or a quieter supply for the amp
Streaming buffer underrunsClicks and dropouts on weak Wi-FiBetter signal, lower bitrate stream, bigger buffer
Digital volume set too highHarsh crackle on loud passagesTurn the software volume down, the amplifier up
Long I²S wiresRandom crackle, noise near the ESP32Keep I²S wires short; add a GND wire alongside
XSMT or SCK pads left openNo sound, or sound that cuts in and outSet the jumpers as in the table above
That’s the practical answer.Engineers who want the numbers, read on.

For engineers: why a 112 dB DAC needs a quiet rail

1. The noise floor is tiny

TI specifies the PCM5102A at about 112 dB dynamic range with a 2.1 Vrms full-scale output. That puts its own noise floor around 5 µVrms (2.1 V ÷ 10112/20). Now consider tens of millivolts of Wi-Fi burst noise on a shared 3V3 pin. Even if the chip rejected 99.9% of it (60 dB), the leftover would be tens of microvolts, several times the DAC’s own floor. That’s why the whine is audible.

2. What the datasheet says about the supply

Pin (TI PCM5102A)RequirementNotes
AVDD3.3 VPowers all the analog circuitry. TI notes many systems use a low-noise regulator for it
CPVDD3.3 VCharge pump for the ground-centred output
DVDD3.3 V (or 1.8 V)Digital supply and I/O level
XSMT≤ DVDD + 0.3 VTI warns supply noise can push it over the limit and damage the device

The purple boards feed these pins from small on-board regulators. Those help with a 5 V input, but they are tiny general-purpose parts. When VIN is the ESP32’s own 3.3 V, they have almost no headroom left and pass most of the noise straight through. A clean 3.3 V at VIN fixes the problem at the source.

3. Why the TPS7A2033 suits this job

Parameter (TI datasheet)ValueWhy it matters here
Output noise7 µVrms (10 Hz–100 kHz)Close to the DAC’s own floor, then reduced further by the DAC’s supply rejection
PSRR95 dB at 1 kHzBlocks USB and charger ripple in the audio band
Dropout140 mV at 300 mAKeeps regulating when USB 5 V sags under load
Output current300 mAAmple for the DAC board. Not for a speaker amplifier
What a clean supply won’t fix Ground-loop hum needs isolation, not a better regulator. A noisy or poorly-built amplifier adds its own hiss. Compressed streams and Bluetooth codecs have their own artefacts, and Wi-Fi buffer underruns cause clicks no supply can stop. The battery test tells you which problem you have.

Frequently asked questions

Why does my PCM5102 DAC hiss or whine?

Usually because it shares a noisy 3.3 V supply with the ESP32, whose Wi-Fi transmit bursts ride on that rail. The DAC’s analog output runs from its supply, so the noise reaches the speaker. Power the DAC from its own low-noise 3.3 V regulator and join all grounds at one point.

Can I power the PCM5102 from the ESP32 3.3 V pin?

It will work, but it is the most common cause of hiss and Wi-Fi whine. For clean audio, feed the DAC board from a separate low-noise 3.3 V regulator powered from the 5 V pin.

Can the PCM5102 module run on 5 V?

The common purple PCM5102 boards accept 3.3–5 V on VIN because they have on-board regulators. The PCM5102A chip itself needs 3.3 V, so a bare chip or a board without regulators must never get 5 V.

Why do I hear a whine that changes with Wi-Fi?

Each Wi-Fi transmission pulls a burst of current from the ESP32’s supply. If the DAC shares that supply or its ground path, the bursts become an audible whine or chirp. A dedicated clean 3.3 V for the DAC and a single ground point stop it.

How do I remove 50 Hz hum from my ESP32 audio project?

Steady 50 or 100 Hz hum usually comes from a ground loop between mains-powered devices, such as the amplifier and a PC. Use a ground-loop isolator, run the amplifier from battery, or power everything from one supply. A better regulator alone won’t remove ground-loop hum.

Which PCM5102 jumpers do I need to solder?

On the purple board, bridge SCK to GND, set FLT low, DEMP low, XSMT high and FMT low for standard I²S. A floating XSMT can mute the output.

What is the best power supply for a PCM5102 DAC?

A dedicated low-noise 3.3 V linear regulator fed from 5 V, used only for the DAC. For example, the Ramanu TrueVolt LN-7A2033 (TI TPS7A2033, 7 µVrms, 95 dB PSRR at 1 kHz, 300 mA) gives a PCM5102 board a quiet supply. Power the speaker amplifier separately.

Fix it today

Make silence silent

One small module between your 5 V and the DAC: quiet 3.3 V, genuine TI, made in India. Cheaper than one failed demo.

© Ramanu Systems · Precision electronics modules, Made in India · PCM5102A figures from the Texas Instruments PCM510xA datasheet. Regulator figures from the TI TPS7A20 datasheet. Pin numbers follow the ESP32-audioI2S library examples. Found an error? Tell us and we will fix it and credit you.

Leave a Comment

Your email address will not be published. Required fields are marked *

Shopping Cart
Scroll to Top