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?
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.
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.
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.
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.
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
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.