• Welcome to ASR. 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!

Hardware connection between Bluesound node and RPI 5 running Camilladsp

jocoman

Member
Joined
Nov 15, 2025
Messages
13
Likes
0
Hello folks.
Hi everyone. First post.
I just ordered a bluesound node streamer. It has an optical out.
I would like to connect it to a rpi 5 running the camilladsp software to do room correction.
Sounds like a very interesting project.
I'm just starting and the first issue I am having is how to connect the output of the bluesound node to the input of the RPI 5.
My research tells me a hifiberrydac + digi i/o could do the job. Unfortunatley up here in Canada I can't find one of those. Always out of stock
Can members please suggest how to connect the streamer to the RPI? What would i need to purchase?
Thanks in advance . Regards
 
Thank you for that suggestion. Unfortunately anything that ships from The US is horribly expensive to get thru duties , customs and shipping. I am hoping to find something I can source in Canada.
 
There are many SPDIF receivers with I2S output on aliexpress.
 
So something like this that I connect to the RPI via the gpio pins?
Yes (it's better to send only the URL part ending with .html, the very long HTTP GET params behind the question mark are just link tracking in this case).

BUT:

Receiving SPDIF is trivial. You will get a bitstream of audio samples (either via USB or I2S). But that does not tell you what samplerate that bitstream has. You have to either measure the bitrate of the bitstream in software, or let the SPDIF receiver do the measurement (if the receiver/circuit is able to do so) and read its internal register . This reading is typically via I2C bus. Then there are options:

a) when using I2S directly, you have an I2C controller in RPi and can read that - either in a driver or with userspace I2C tools.
That board has no I2C port, also the DIR9001 has no crystal to allow the chip to calculate the frequency - see DIR9001 datasheet for details.

b) when using USB - the author of firmware for the USB-device chip would have to do the reading and send the incoming rate info as value of some USB feature (similar to volume control, muting etc.)
I have yet to see a USB SPDIF receiver to pass this info to the host.

If you do not know the incoming samplerate, you have to make sure your transmitter always sends only one fixed samplerate, and the receiver software can be hard-coded to run at one Fs.

There is a second BUT:

CamillaDSP cannot detect incoming samplerate and must be run at a single capture samplerate. Therefore switching incoming samplerate is not simple - there are wrapper tools to do that, but these cannot read the incoming samplerate from SPDIF.
 
@phofman
Thank you regarding the url posting. I didn't know I could just truncate.
I did find a source where I can obtain the hifime UR23 at reasonable cost.
I'm thinking now that is my best bet.
Thank you for explaining the incoming samplerate details.

Regards
 
The USB device will have the same issue - no info about incoming samplerate.
 
Jeepers, why is this so hard? You would think coming out of a streamer and into a rpi to do room correction would be straight forward, and you would think, that many people must have already done so...but I'm feeling like I need to invent this wheel.
Maybe I need to do a LOT more reading on the topic, or call it a day :(
 
There have been quite a few threads on your intention here already. Most (basically all) users ended up running at one SPDIF samplerate.

Of course a proper way is viable, but it requires some software work. There are SPDIF receivers on Aliexpress which have the I2C access and crystal clock for the receiver to detect the incoming rate exactly. Then you can modify the python code of Henrik's https://github.com/HEnquist/camilladsp-controller to monitor the I2C register holding the incoming rate, similarly to how it monitors the rate alsa control elements of alsa loopback or USB gadget devices, and let it reconfigure CDSP with the current rate on the fly. No need for a kernel driver.
 
  • Like
Reactions: MCH
Yeah... I'm not a software guy beyond very basic stuff, so..... it looks like the HiFime UR23 might be ok for a fixed sample rate? and get me going. Not perfect but might be a good first step. I would connect the optical digital source to the hifime and then into the PI where the camilladsp will live and then out to the usb dac and into the Analogue preamp/amp.
Is this realistic without a lot of code manipulation. i.e. just config settings in Camilladsp/Pi?
 
No problem for a fixed samplerate, it's a standard SPDIF receiver like that I2S-based from AE. Of course with CDSP rate-adjust and async resampler enabled.
 
OK. I ordered the HiFime UR23. We'll see where that takes me. Thanks everyone
 
Sure, I receieved the order from germany already and no extra duties or custom charges. So next step is to load up the RPI with a hifiberry dac and camilladsp , hook it all up and see if any sound comes out. If any one has tips on all this I'm all ears!
 
next step is to load up the RPI with a hifiberry dac and camilladsp , hook it all up and see if any sound comes out. If any one has tips on all this I'm all ears!
We have a full guide just for that:
 
@staticV3
Thanks for that. I started following it and I was good until I got to the confiig section.
I'm guessing I need some kind of .yml file that has a hifiberry dac+ pro as the output.
The examples do not include my output device, so I am now kinda in over my head. I'm also unsure what I should fill in for the capture device (from the bluesound node via the optical to usb cable). So, I'll keep reading...
 
Maybe this is not the right place, but I cannot get a config file going that does not error out. Can someone have a look and see if i am on the right track?
maybe offer some suggestions my usb in is HW:2,0 and the dac out is HW:1.0
Thanks
 

Attachments

Since your soundcards have separate clocks, rate adjust must be enabled. Since your capture device cannot have rate modified by the driver, asynchronous resampler must be enabled. Please do read the section on enable_rate_adjust in https://github.com/HEnquist/camilladsp/ , it's really important.

Do not use card IDs which can change at any time. Always use card names in fixed configurations which are to survive reboots. Ask e.g. some good AI model about the details.
 
Back
Top Bottom