I connected MAX98357 to my RPi4.
Because drivers are already in kernel I just add below line to /boot/config.txt
dtoverlay=max98357a,no-sdmode
and everything works fine except annoying pops and clicks when I start playing or changing track.
The reason of these noises is described in this post:
https://forums.adafruit.com/viewtopic.php?f=50&t=104049
Simplest solution is just play silence to avoid I2S clock frequency changes, and perfect will be play it after system starts.
To do this I created small systemd service as below:
[Unit] Description=Invoke aplay from /dev/zero at system start. [Service] ExecStart=/usr/bin/aplay -D default -t raw -r 44100 -c 2 -f S16_LE /dev/zero [Install] WantedBy=multi-user.target
But after I ran this service nothing's changed (I still hear noise after changing tracks).
When I just run "/usr/bin/aplay -D default -t raw -r 44100 -c 2 -f S16_LE /dev/zero &" issue with noises is resolved.
What am I doing wrong?
How should I configure this service to eliminate noises?
What am I doing wrong?
How should I configure this service to eliminate noises?
I cant help on this as I've not played much with the sound on the rpi. But I think you will find more help if you put your question in the rpi forums. https://forums.raspberrypi.com/index.php