Build your own multi-room audio system Project - Sound is crackling or skipping

Team,

Thank you for the project. Everything went exceptionally well with setting up the account, installing the image, and getting the RaspberryPi’s on to the Balena Dashboard. My only problem is that I have set up two speakers, can connect to their Bluetooth’s (both will play the audio regardless of the one I have connected to - as expected), but the audio is skippy or crackling. Any suggestions to try to fix this? The skipping or crackling happens to both speakers regardless of how close I am too them.

Thank you,
Sam

Hi @DW2054. Welcome to the forums!

Can you tell us more about your setup? What version of the raspberry pi are you using? What brand and size of SD cards? Are you only using Bluetooth audio streaming? Have you tried using AirPlay or Spotify Connect? Do they exhibit the same symptoms?

Thanks,
James.

James,

Thank you, sure.

Internet - Linksys Router (bridged) > TP-Router (for IOT Projects) |> Raspberry Pi 3 (1)
|> Raspberry Pi 3 (2)

SD Cards:
Raspberry Pi 3 (1) - No Name 16GB Speed Class 10
Raspberry Pi 3 (2) - SanDisk 16GB UHC Class 1

Only Bluetooth audio streaming and Airplay. Also put my audible on the system, same thing.

Thank you,
Sam

hey @DW2054,

Thanks for the detailed response. Can you confirm if you have configured one of the Raspberry Pi 3 as the master?
if so, I’m afraid you are seeing a limitation of the device itself. You can take a look at the 4th point in docs here

Hope this helps,
Thanks

Rahul-Thakoor,

Thank you. I thought when you connected to one it became the master server. How do I set it as the master?

Thank you,
Sam

Hello Sam,

Any device on the fleet that starts streaming will broadcast itself as the new master and replace the previous one.

Hi there, there is a known issue with all variants of the Raspberry Pi 3 where Bluetooth and WiFi interfere with each other. This will only impact the performance of balenaSound if you use a Pi 3 as the master server to do multi-room bluetooth streaming, resulting in stuttering audio (Airplay and Spotify Connect will work fine, as well as all streaming methods with multi-room disabled). In this cases we recommend the use of a Raspberry Pi 4 as the master server or a Pi 3 with an external bluetooth dongle.

Ok, so I don’t need to reconfigure anything there. It auto does that for me. Right?

Ok, that make sense. Is there anyway just to broadcast through IP to the PI’s and skip Bluetooth all together?

Hi there, to switch off on-board BT on RPi3 you can use the dtoverlay=pi3-disable-bt overlay, below are some helpful links:

https://www.balena.io/docs/reference/OS/advanced/
https://www.raspberrypi.org/documentation/configuration/uart.md
https://blog.sleeplessbeastie.eu/2018/12/31/how-to-disable-onboard-wifi-and-bluetooth-on-raspberry-pi-3/

Once that is done, the external dongle should be picked up by default by balenaSound.

You could also just disable BT and use a protocol running over Wi-Fi, such as AirPlay, depending on your desktop/mobile hardware support.

Why you don’t use SnapCast and define one pi3 with master for IP address and connect the another with SnapCast client with the IP of master.

Everyone,

Thank you for the support and suggestions. What about taking another PI3 disable WIFI? Then leave Bluetooth on and physically connect the PI to the LAN? Wouldn’t that take care of the PI3 issue?

Does someone know the command for disabling the WIFI?

Thank you,
DW

Hi Sam, I think this should work, I believe you should be able to disable the wifi from the balenaOS console using nmcli radio wifi off which should disable the radios. If that doesn’t have the desired effect you might want also try disable the wifi using the config.txt setting dtoverlay=disable-wifi. Let us know how this works out!

Thank you, I will try that this weekend and let you all know. Appreciate all the assistance!

Shaun,

Thank you…I appreciate it. Its funny, suddenly I find myself having to go through all sorts of searching for cables to get my 3rd PI powered…Before now I would have just driven up to the local gadget store :).

Will let everyone know.

Thanks again,

Sam

Sounds good, thanks Sam!

Team,

Installed the 3rd PI (bf576ac) plugged directly in to the router (see image below).

Originally it showed 2 IP addresses (Wired and Wireless). I ran the nmcli radio wifi off command from the OS console and disabled the wireless IP. I then connected to its bluetooth and although it is better it is still crackling and skipping, but way less. One PI is about 15’ away from the router and the second PI is about 40’ away, same crackling.

Any thoughts?

Thank you,
DW

Hi @DW2054 . Thanks for doing all that testing. So both devices are running purely on ethernet now and still crackling, thats weird. Does the same level of crackling happen if you use airplay or spotify rather than bluetooth, that will help us narrow down which part of the system is struggling. I can’t imagine the distance from the router would make too much of a difference if they are running on ethernet. Can you also remind me what audio hardware you are using, or are you just connecting up to the pi’s audio jack?

Shaun,

Slight clarification.

The Master is hardwired to the lan, Bluetooth enabled and wifi disabled.
The Slaves have their Bluetooth and wifi enabled…But just thought I will go disable their Bluetooth’s.

Warm regards,
DW

Thanks for the update, please let us know your results of testing with Bluetooth disabled on those devices.