• WANTED: Happy members who like to discuss audio and other topics related to our interest. Desire to learn and share knowledge of science required. There are many reviews of audio hardware and expert members to help answer your questions. Click here to have your audio equipment measured for free!

DAC and bluetooth with LDAC for PicorePlayer Pi based streamer

JakeK

Active Member
Forum Donor
Joined
Nov 9, 2022
Messages
228
Likes
206
Location
UK
I had a Squeezebox duet in the bedroom connected to a little class D amp and some small speakers. I was happy with this but the duet died last week after many years of use so I need a replacement and I don't want to just get a second hand duet as this will also be very old. I like the squeezebox system and my wife can use it so sticking with that. I have a Pi 3 based player with Picoreplayer and a screen in my garage gym and that works well but I don't want exactly that again.

In the bedroom we don't want a screen as it tucks under the dressing table and we control it with phones etc.. I would also like to add bluetooth in with LDAC or as a minimum APTX so we can play sound from phones or my Chromebook through the amp and speakers which is where it gets more complicated and I don't know what's best. I would also like it to boot faster than the Pi3 based player I have if possible and I'm not sure if the SD card or RAM makes any difference or if that's just down to CPU. Here are two paths I can see so far:

1: Raspberry Pi 4B 2GB with Picoreplayer + SD card 32GB + HiFiBerry DAC2 Pro HAT in Steel case for HiFiBerry DAC+/ADC, Pi 4, V2 as a bundle £151.30
Add a bluetooth dongle like this one: https://www.audiosciencereview.com/...c3-review-bluetooth-receiver-bt-codecs.23740/ £70
Something with a remote to switch between inputs as the amp only has one pair of RCA inputs.

2: Raspberry Pi 4B 2GB with Picoreplayer + SD card 32GB + Basic case £74
Topping - DX3Pro+ DAC & Headphone Amplifier £200

3: Something else that's tidy, a DAC HAT with bluetooth LDAC for the Pi all in one box? Is one of the tiny PI Zero a good idea?

Option 1 looks messy to me and switching between inputs will be awkward so maybe that needs a new amp as well, maybe one with LDAC? Needs to be more streamlined! Option 2, that DAC seems like overkill for the job and the headphone part won't be used but its the best I've found so far. Also not sure if that DAC will work with a Picoreplayer.
 
Last edited:
I ran a Pi 4 with Moode Audio loaded in my living room setup for a while. The Pi was connected to a USB DAC (Topping E30), but the setup could be the same with a DAC HAT if you prefer. Moode offers squeezelite and Bluetooth inputs out of the box. No need for a Bluetooth dongle as the Pi has Bluetooth on board. Older versions of Moode shipped without AptX due to licencing I think but compiling from source wasn't difficult following instructions from the Moode forums. That gave me LMS as my main music system via the squeezelite endpoint but also seemless switching to Bluetooth input (APTx HD) when required (Moode audio switches when a Bluetooth device connects). I think more recent versions of Moode might ship with AptX pre-installed.

I don't know about LDAC. I remember looking at how I might compile the blueasla library (used for Bluetooth audio on Linux) with LDAC support, but never had a device to test with so not sure I bothered finishing that research!

So I guess that looks mostly like your option 2 above.

Another (cheaper) option might be a similar setup with a Pi Zero W or Zero 2W. I also have ones of these setup with a little E1DA USB DAC and it works great. I'm using DietPi as an OS on that at the moment to try out other options and have not tried Bluetooth on it, but so far squeezelite routing to the USB DAC has been great! The compact size is great for a cluttered desktop setup! This might be more of an experimental option as I'm not sure what support Moode has for these lower power Pi devices. I am interested to see if I can get a Bluetooth input working on DietPi as per Moode but having briefly looked at how Moode implements this it certainly isn't trivial!

Does PiCorePlayer handle Bluetooth in or is it just squeezelite?
 
I ran a Pi 4 with Moode Audio loaded in my living room setup for a while. The Pi was connected to a USB DAC (Topping E30), but the setup could be the same with a DAC HAT if you prefer. Moode offers squeezelite and Bluetooth inputs out of the box. No need for a Bluetooth dongle as the Pi has Bluetooth on board. Older versions of Moode shipped without AptX due to licencing I think but compiling from source wasn't difficult following instructions from the Moode forums. That gave me LMS as my main music system via the squeezelite endpoint but also seemless switching to Bluetooth input (APTx HD) when required (Moode audio switches when a Bluetooth device connects). I think more recent versions of Moode might ship with AptX pre-installed.
Thanks. I had searched around and it didn't look like I would be able to use the bluetooth on the pi as an input. If Moode can do it with good enough quality then that's a solution! According to the Moode website it can do 'Bluetooth SBC XQ' which I hadn't heard of before today and searching finds that some say that's as good as APTX.

Does PiCorePlayer handle Bluetooth in or is it just squeezelite?
Not that I can find. It can be made to do bluetooth out with some wrangling but not in as far as I can see.

Another (cheaper) option might be a similar setup with a Pi Zero W or Zero 2W. I also have ones of these setup with a little E1DA USB DAC and it works great. I'm using DietPi as an OS on that at the moment to try out other options and have not tried Bluetooth on it, but so far squeezelite routing to the USB DAC has been great! The compact size is great for a cluttered desktop setup! This might be more of an experimental option as I'm not sure what support Moode has for these lower power Pi devices. I am interested to see if I can get a Bluetooth input working on DietPi as per Moode but having briefly looked at how Moode implements this it certainly isn't trivial!
That's interesting. I would consider one of the smaller type Pi but I'm not sure what the performance will be like.
 
Thanks. I had searched around and it didn't look like I would be able to use the bluetooth on the pi as an input. If Moode can do it with good enough quality then that's a solution! According to the Moode website it can do 'Bluetooth SBC XQ' which I hadn't heard of before today and searching finds that some say that's as good as APTX.


Not that I can find. It can be made to do bluetooth out with some wrangling but not in as far as I can see.


That's interesting. I would consider one of the smaller type Pi but I'm not sure what the performance will be like.
The Pi Zero W was a recent purchase for me as a bit of an experiment. I would have gone with a Zero 2W if I could find one at a normal price but pulled the trigger on the older model after waiting a while to se if it was up to the job. That's part of the reason to run DietPi as an OS - it's very resource lite.

Sitting idle earlier the 5 minute load average was 0.08 and 55.2M of 500M RAM used. That is with squeezelite running and available but not playing anything. I have udev rules configured to power down the USB DAC when not in use (squeezelite not playing) so power consumption should be in the order of 0.85W. CPU temperature sits at ~34c in a room at ~21c.

When I start playing music using squeezelite I see the CPU usage jump up for short bursts as tracks load but most of the time squeezelite stays steady at around 7% CPU utilisation. The 5 minute load average when playing is 0.3 and I see 59.3M of 500M RAM used. CPU temperature sits at 42c now.

In more subjective terms the performance seems absolutely fine. Tracks load "instantly" when hitting play, and I notice no delay in response form the player. In fact squeezelite has normally started playback of the track before the DAC comes fully out of power-down (i need to figure out how to delay starting playback in LMS/Squeezelite to compensate for this). During playback I cannot hear any stuttering or other unwanted audio artifacts. So far testing has been a mixture of local tracks (mostly CD quality up to 96/24) and with tracks from Qobuz (anything up to about 96/24 i guess) and haven't the Pi struggle with any of this. I have just loaded up a vinyl rip which I have stored as a 192/24 FLAC, squeezelite now sits at ~13% CPU utilisation. No issues with playback.

I have started to play with CamillaDSP on this PI too. I had to compile this specially for the 32-bit CPU but it seems to run fine and the Pi seems to cope with at least some basic filters. I am going to play with this more next week so can report back.

Two issues I have found so far. Number 1 is that the Pi seems to reboot when I plug the USB DAC (E1DA 9038D) into the USB port. This is a bit strange and I originally assumed it was a current draw issue, however the same thing doesn't happen when the DAC comes out of power suspend so I'm not totally convinced by that. I need to try and look at some kernel logs to see if anything obvious happens to cause this. Not a huge problem for me at the moment as this DAC is pretty much permently attached to the Pi. Number 2, the first USB cable I used to connect the DAC must have had terrible shielding as I was hearing digital noise through the headphones at first. This seemed like it coincided either with lots of network activity or CPU activity. This was a cheap micro-USB to USB-C cable I found which would have been perfect for connecting the DAC to the Pi Zero W without any extra adapters. Switching to a micro-USB to USB-A adapter plus a standard USB-A to USB-C cable I had previously used to connect the DAC to a laptop has fixed this and I haven't heard any noise, hiss, clicks etc since. I think the E1DA is know to be susceptible to noise from things like LTE connecitons to not sure if this is DAC specific but take it as a warning anyway that a "good" cable (i.e. proper shielding and grounding) might be needed.

Overall, I am starting to think that a Pi Zero W / Zero 2W with a "good" USB DAC that is supported by Linux might be about the best bang for the buck HiFi streamer setup available. Sure it might take a little bit of fiddling and digging around to get it setup "just right" but so far I'm finding most thing work without much effort at all.
 
Last edited:
I've come up with an option 4 replacing the amp with a DAC/amp:
Pi Zero 2 W plus case etc £45
and one of these two:
Loxjie A30 Amplifier £170
or
Topping MX3s £220

It seems like either will do the job but the topping has better bluetooth codecs (aptX, aptX-HD, and aptX Adaptive) and better sound quality. Hopefully either will work with a Pi and maybe even power the Pi through USB.
 
Not that I can find. It can be made to do bluetooth out with some wrangling but not in as far as I can see.
PiCorePlayer is meant to be able to use bluetooth for input as well as output. If I understand it correctly once you've enabled bluetooth and paired a device (phone etc.) you may need to go to the Paired Devices section and set the Type for that device to Player. Squeezelite also needs to release the output device - by default it should do this after 5 seconds if nothing is playing. It used not to work if you used both the onboard WiFi and bluetooth. I don't know if that was a fundamental hardware limitation or a software one that's been fixed since. I've not tried using it recently.
 
My Picoreplayer is stock runing on a 3b. I've just tried, and am playing from my iPhone using bluetooth.
 
PiCorePlayer is meant to be able to use bluetooth for input as well as output. If I understand it correctly once you've enabled bluetooth and paired a device (phone etc.) you may need to go to the Paired Devices section and set the Type for that device to Player. Squeezelite also needs to release the output device - by default it should do this after 5 seconds if nothing is playing. It used not to work if you used both the onboard WiFi and bluetooth. I don't know if that was a fundamental hardware limitation or a software one that's been fixed since. I've not tried using it recently.
My Picoreplayer is stock runing on a 3b. I've just tried, and am playing from my iPhone using bluetooth.
That's interesting. I'll try this myself on another picoreplayer. Currently installing bluetooth within picoreplayer.

Edit: It works for me as well!
 
Last edited:
I ran a Pi 4 with Moode Audio loaded in my living room setup for a while. The Pi was connected to a USB DAC (Topping E30), but the setup could be the same with a DAC HAT if you prefer. Moode offers squeezelite and Bluetooth inputs out of the box. No need for a Bluetooth dongle as the Pi has Bluetooth on board. Older versions of Moode shipped without AptX due to licencing I think but compiling from source wasn't difficult following instructions from the Moode forums. That gave me LMS as my main music system via the squeezelite endpoint but also seemless switching to Bluetooth input (APTx HD) when required (Moode audio switches when a Bluetooth device connects). I think more recent versions of Moode might ship with AptX pre-installed.

I don't know about LDAC. I remember looking at how I might compile the blueasla library (used for Bluetooth audio on Linux) with LDAC support, but never had a device to test with so not sure I bothered finishing that research!

So I guess that looks mostly like your option 2 above.

Another (cheaper) option might be a similar setup with a Pi Zero W or Zero 2W. I also have ones of these setup with a little E1DA USB DAC and it works great. I'm using DietPi as an OS on that at the moment to try out other options and have not tried Bluetooth on it, but so far squeezelite routing to the USB DAC has been great! The compact size is great for a cluttered desktop setup! This might be more of an experimental option as I'm not sure what support Moode has for these lower power Pi devices. I am interested to see if I can get a Bluetooth input working on DietPi as per Moode but having briefly looked at how Moode implements this it certainly isn't trivial!

Does PiCorePlayer handle Bluetooth in or is it just squeezelite?
Moodeaudio supports Ldac encoding but decoding requires proprietary software.
 
That's interesting. I'll try this myself on another picoreplayer. Currently installing bluetooth within picoreplayer.

Edit: It works for me as well!
Super interesting! If I can grab a spare sdcard I will fire up PiCorePlayer on my zero w and check the Bluetooth in.

Anybody know what codecs are supported?
 
Super interesting! If I can grab a spare sdcard I will fire up PiCorePlayer on my zero w and check the Bluetooth in.

Anybody know what codecs are supported?
This is what I see. Not sure if LDAC is possible for receive though, or only transmit.

Screenshot 2023-07-23 at 23.01.27.png
 
This is what I see. Not sure if LDAC is possible for receive though, or only transmit.

View attachment 301040
I can't find those bluetooth settings on my Picoreplayer web interface? Is it because I'm on an older version?

So far I can only get SBC bluetooth into the picoreplayer from my phone.
 
I can't find those bluetooth settings on my Picoreplayer web interface? Is it because I'm on an older version?

So far I can only get SBC bluetooth into the picoreplayer from my phone.
So here is what I'm on...

Screenshot 2023-07-24 at 19.34.44.png


This shows where to find the button to get to the bluetooth settings from the main page....

Screenshot 2023-07-24 at 19.35.10.png
 
This is what I see. Not sure if LDAC is possible for receive though, or only transmit.

View attachment 301040
I updated picore to the newest version (8.2.0) and now I can see the same as you.

It took some work though. I had to uninstall bluetooth before it would update the picore. Then after it was updated to 8.2.0 it wouldn't install bluetooth until I did some stuff with the time settings in beta mode. I clicked on 'beta' at bottom left of the pcp main webpage, clicked ok that it's dangerous, then in the beta functions section clicked on 'Extras', then 'bootcodes' and in 'ntpserver=' I entered 'pool.ntp.org' which is default. Then 'save' and I clicked OK to reboot. After this I was able to install Bluetooth on my Picoreplayer.

Having done this my phone can connect in APTX-HD and it appears to be playing though the pcp but there is no sound. More troubleshooting is required. It did play sound before I updated but there was only SBC.

BTW I found this handy android app 'Bluetooth Codec Changer by AmrG DEV for seeing what bluetooth codec is in use and controlling it: https://play.google.com/store/apps/details?id=com.amrg.bluetooth_codec_converter&hl=en&gl=US

bt codecs.png


I allowed everything including LDAC in the pcp settings but it looks like LDAC input isn't possible despite my phone supporting it. I'm happy with APTX-HD though if I can make it work fully.
 
I had a similar problem (assuming you can play sound via normal streaming)

I read a tip to force a disconnection of the phone from the web interface, and then to reconnect. After this, it worked.
 
I had a similar problem (assuming you can play sound via normal streaming)

I read a tip to force a disconnection of the phone from the web interface, and then to reconnect. After this, it worked.
Yes, normal squeezebox functions all work fine. I tried forcing disconnection like that, turning things off & on again. I also tried different codecs. I tried it with my chromebook. I'm wondering what to try next, maybe installing 8.1.0 as maybe that has less bugs but then again maybe that only has SBC. I'm not sure when APTX was added to picoreplayer.
 
I tried various things including a fresh install of Picoreplayer 8.2.0 and nothing worked until I tried the output setting. This setting wasn't needed in piCorePlayer7.0.0b6 so I wasn't expecting to need to set it.

BT output.JPG


This got my phone working with it and my wife's phone but the Chromebook won't make a sound though it. This has been pretty frustrating journey so far :mad: and it's not there yet as I really wanted the Chromebook to play through the speakers in the bedroom.
 
I've decided not to worry about connecting my Chromebook via BT. Maybe one day there will be an update that will make it work or maybe it will only ever bluetooth with headphones. So I've gone with option one but without needing to add a bluetooth dongle or worry about a separate DAC. Thanks to @somebodyelse for saving me some £ on a DAC! :)

Pi4B 2gb plus heatsink
Hifiberry DAC2 pro HAT
Hifiberry Metal case

I already have a spare Pi4 power supply and SD card.

£118.08 spent which seems very cheap to me for a hi-fi streamer with APTX-HD bluetooth. It's wonderful that we can build our own squeezeboxes thanks to open source software.
 
Just a quick update for anyone who stumbles onto this in the future!

I now have camillaDSP running well on my Pi Zero W and it seems stable enough for me to say the Zero W has enough grunt to work as a streamer even with DSP. I am currently using it to provide a parametric EQ for headphone correction. With a 96KHz source file i see a stable 20% CPU use, for a 48KHz source this is down at 12%. The total 5 minute load is still < 1.0 for both cases.

I think the Pi Zero W plus case was less than £25, so combine that with the USB dongle type DAC of your choice (good options at ~50-80 quid these days) and you have a very cheap, compact but still pretty powerful streamer setup. Alright, you don't get a display or physical volume control but I find for a small desktop setup it's pretty perfect.

I haven't had a chance to try bluetooth as an input yet (either on DietPI or on a spare Pi Core Player card).
 
All the bits arrived and I got it all together a couple of weeks ago. The Hifiberry metal case finishes it off quite nicely, a simple puzzle to put together and it snaps together in a satisfying way at the end. The weight is good and with the little rubber feet provided it won't get pulled off the table by the cables.

PXL_20230807_182841901.MP.jpg


Overall quite satisfied! :)
 
Back
Top Bottom