Popping Sound on Shutdown

After a couple of days with the device, the speakers have started to make a popping sound when shutting down.
Basically, this occurs:

  • On shutdown
  • Through headphones (if used)
  • With speakers muted / unmuted (alsamixer)

and not:

  • On reboot
  • If shutting down before login

I’m guessing this is due to something I’ve installed but I can’t figure out what. Has anyone encountered anything similar or know of a starting point for diagnosis?

Thanks in advance!

try switching to pulse-audio from the raspi-config.

I don’t have that option, though I am currently using pulse.

What os are you using?

I’m using the Debian (bullseye) image provided.

Also get the ‘pop’ sound on shutdown!

1 Like

Are you sure it’s software and not just a quirk of the DAC? DACs translate digital audio streams to analog signals that move magnetic drums in speakers or headphones, so it wouldn’t surprise me if it made a brief pop when powering on or shutting off.

Speakers aside, pops on shutdown are pretty common with battery powered electronics in general. If you weren’t hearing it in your headphones I would have assumed it was a capacitor discharging. Maybe it’s a capacitor in the DAC discharging.

If you think it’s a software bug in something you installed, you could always burn a fresh image to an SD card and check if it solves your issue.

1 Like

I’ve flashed the 2 CM4 images provided by Clockwork, the recent Kali image, and the Bookworm image. All exhibit the pop on shutdown.

What’s interesting is that the 2 Clockwork images pop every time whereas the Kali / Bookworm images only pop when audio was previously played.

The fresh OS’s make me think that it’s a hardware issue but the fact that the popping hadn’t occurred until days after assembly make me think it’s software related.

It shouldn’t be too much of an issue as long as the speakers don’t get too damaged; just a little annoying is all.

uConsole (so DT I think aswell), don’t have any audio DAC. It’s actually PWM, that’s why it’s “horrible”.

I guess that’s the answer on the popping too.

1 Like

Fair point! I was misusing DAC as a catch-all term for whatever was driving the speakers.

On the bright side, I had a USB SoundBlaster dongle lying around and it just worked. I used it because I needed a mic in, but for under $25 you can get a decent headphone jack.

Does it still happens with that SB dongle (that is a DAC indeed)?

Keep in mind that some “sound platforms” (pulse, pipe, etc), react different. It did happen to me too on my desktop Manjaro, with a propper DAC (I do music stuff), and I had pops too. Turned out that for some reason, when no sound was playing, the system just turned the DAC off and on, depending when it was needed, making this pops too. Some energy saving thing, no idea.

I am in the process of making a module for uConsole, but still long to go. Basically a propper sound card, but want to make it “modular”, so you can add/remove stuff as you want (pots, buttons, faders… etc).

EDIT: Now that I think of, I “remember” seeing something about an audio fuse on uConsole. Will take a look.

Let’s test it for science! I’m using PostmarketOS on a CM4 uConsole, and I’m playing a clip from Taskmaster on Chrome before shutting the device down.

Results:

  • No pop from the external SoundBlaster (Play! 3) card.
  • Quiet pop heard from the CM4 headphone jack.
  • No pop heard from speakers.

I’m in a relatively quiet office with street noise and a humming fridge (~38dB according to my watch). It’s possible that my speaker or some other component is making a sound that I can’t detect, and I’d expect there to be some amount of variation from device-to-device.

Edit: Creative markets the SoundBlaster dongle as an “USB DAC Amp and External Sound Card.” I’m not sure if that’s relevant to the popping noise but if you’re looking for a cheap DAC it seems to be relatively well-regarded.

1 Like

Basically “anything” has / “it’s” a DAC. What I mean with this; phone devices, computers (with or without dedicated SC), tablets, tv’s, and I think even those USB-C to 3.5 converters have a DAC (ADC’s too in some cases). Basically any electronic device that has an analog audio output needs one, for this reason, amongst others ofc.

Passing digital audio through PWM it’s never a good choice, because you’re using a medium that it’s not made for that kind of data, that’s why “all” devices nowadays have DAC (out) / ADC (in).

I don’t know if I explained myself correctly really. If it’s not clear enough just ask ahead, happy to explain. And ofc if I said something wrong, happy to get corrected, seriously!

Iep. As you can see there, you have the PWM from “RPI” and no DAC to convert it, neither jack / speakers. Also there’s “EN” pins, which I have no idea what are for, but EN stands for enable I’m mostly positive. Probably at some point during boot / shutdown, the speakers should get enabled / disabled to precisely avoid that. Well, it’s a guess, but could be possible to have a fix for the speakers if it’s the case.

EDIT: Oh wow. Please if someone can explain me the purpose of that switch? I’m trying to wrap my head around it but it just hurts.

1 Like

Maybe it switches between the headphone and speakers when you insert a headphone jack?

I have made a systemd service to disable the speakers on shutdown and reboot to eliminate the pop for the speakers. the 2 files you will need are here.

you need devterm-audio-shutdown.sh and devterm-audio-shutdown.service

devterm-audio-shutdown.sh needs to go in /usr/local/bin make sure file is executable
devterm-audio-shutdown.service needs to go in /etc/systemd/system

then enable with

systemctl enable devterm-audio-shutdown

3 Likes

I remember seeing something from an audio driver, to disable the amplifier through a register before shutdown and delay a few milliseconds (no dear kernel, I stall this process for a greater good!). It’s not about “proper audio I/F” but proper drivers after all.

Powerful audio I/F with a bad driver would still go BOOM at shutdown and fry expensive monitors.

2 Likes

systemctl status shows that the service is loaded, active and exiting successfully but the popping persists.

Did you make sure the .sh file is executable?
What os?

Yup, it’s executable. I’m running Debian 11 from the v1.3 image Clockwork provided.

change out the pinctrl command in the .sh with this

gpio write 11 0

save and test, let us know if that worked.

1 Like