Discussing about 8channel DSP using Camilla DSP + Raspberry PI -- Interface options

Makes sense, but you can expect some DTS config and general linux work ahead of you. It took me a few days to chew through radxa compilation tools to get the latest kernel, rebuild the image, learn how to modify modules in their build (you may probably not need that, but I had to change HW limits in alsa drivers for the max-samplerate checks). Getting DTS correct for the multichannel output took me many hours too, but I started with a "too clever" DTS and struggled with disabling TDM, etc...

But once you get through this you should end up with the latest kernel (for latest USB gadget and generally latest kernel development) and quite recent debian with working apt.
 
Raspberry Pi 5 about to be released. That might be worth checking out to see if it is better for your purpose.

https://thepihut.com/products/raspberry-pi-5?mc_cid=f0732edf4f

C&P from the email I had. Apologies if the formatting is horrible...
".
New processor!
Raspberry Pi 5 features a new Broadcom BCM2712 64-bit quad-core Arm Cortex-A76 processor running at 2.4GHz, offering 2-3x the CPU performance of Raspberry Pi 4!

Substantially improved graphics!
Raspberry Pi 5 delivers a substantial uplift in graphics performance from the 800MHz VideoCore VII GPU, allowing it to offer full dual 4Kp60 display output over HDMI.

Enhanced I/O including PCI-Express!
Raspberry Pi 5 offers more than double the USB bandwidth, double the microSD performance and a new PCI-Express interface for high-bandwidth peripherals.

Dual camera/display (CSI/DSI) ports
A pair of four-lane 1.5Gbps MIPI transceivers have been delivered to Raspberry Pi 5, tripling total bandwidth and enabling new dual CSI/DSI ports supporting any combination of up to two cameras or displays.

Power button (finally!)
Raspberry Pi 5 finally delivers this much-requested convenience! Turn on, turn off - it's everything we've always wanted 😀

Real-time clock (RTC)
An RTC is built into the board, allowing you to maintain time/date information even when you power off the board. A compatible lithium backup battery is available.

And more!
  • Dedicated fan header
  • UART header
  • Composite video pads
  • Memory indication markers
 
Last edited:
We will need to wait for the specs, there are also questions about USB-OTG functionality etc, it will take a few days to clear out. I am a bit disappointed by the 16nm process of the Broadcom (A76 Rockchip RK3588 uses 8nm), presuming (maybe incorrectly) larger nm consumes more power...
 
  • Like
Reactions: Addled
Makes sense, but you can expect some DTS config and general linux work ahead of you. It took me a few days to chew through radxa compilation tools to get the latest kernel, rebuild the image, learn how to modify modules in their build (you may probably not need that, but I had to change HW limits in alsa drivers for the max-samplerate checks). Getting DTS correct for the multichannel output took me many hours too, but I started with a "too clever" DTS and struggled with disabling TDM, etc...

But once you get through this you should end up with the latest kernel (for latest USB gadget and generally latest kernel development) and quite recent debian with working apt.

You said in a previous post... "there is no reason to use RPi for multi-channel DSP" ... now you know why people use it!

Perhaps I should wait a little to see if RPi5 has multi-channel I2S out of the box... it is more powerful and better supported than Rock4C+, but a similar price. I can always cut out the section where my RPi4 sits and bolt on a new piece that fits the RPi5.
 
You said in a previous post... "there is no reason to use RPi for multi-channel DSP" ... now you know why people use it!
Sure, most people use a pre-configured image like moode and if anything occurs, are stuck. But someone had to prepare the image and do the work, it did not appear out of nowhere 🙂 Compiling modules for RPi is not trivial either, DTS needs to be hacked too if you want some customization. Building whole RPi image is probably more complicated than Radxa because they released a rebuilding tool which being plain bash can be hacked.

Like the USB audio gadget code had to be finished and pushed through first. The same will be with RPi5, there will be many changes. IIUC they use DWC3 which will most likely behave differently and require polishing for RPi5, like it was with DWC2. Again - someone will have to make these and it will not be the RPi people 🙂
Perhaps I should wait a little to see if RPi5 has multi-channel I2S out of the box... it is more powerful and better supported than Rock4C+, but a similar price. I can always cut out the section where my RPi4 sits and bolt on a new piece that fits the RPi5.
There seem to be three I2S controllers https://github.com/raspberrypi/linu...19df2a687a126136f4/arch/arm/boot/dts/rp1.dtsi Most likely stereo because the patches to the dwc i2s controller (which they apparently used for RP1) talk about "stereo only". The pins allocated to the controller in that dtsi are only 4 (bclk, lrclk, dout, din). But they seem to be same for I2S0 and I2S1 - https://github.com/raspberrypi/linu...126136f4/arch/arm/boot/dts/rp1.dtsi#L609-L619 - I do not understand what would be the reasoning. Hopefully the datasheet will tell more, maybe more alternatives can be assigned, hard to tell without the datasheet...
 
It's so nice to read your story/journey and what the current thinking is.

I started my 4 way horn + tweeter journey, some 12 years ago.
No 3d printing or RPi then🙂

Really looking forward to see what you get working, the profiles of the horns you use etc.
Bass solution is always the biggest and most real estate consuming.
You are wise not to try analogue.
I did and whilst it worked, realistically it's expensive, limiting and hard to get top notch SQ, let alone the subtleties of PEQ and time alignment..

If I were doing it all today, Camilla DSP would be on my list.
Same questions you have, how to have a couple of inputs, USB / SPdif, perhaps an analogue, DSP things some, 8 channels out, remote volume control and excellent SQ..

I'm happy with my Najda DSP - sadly no more evolution of that since 2018! Wonder where it would be had creator and driving force Nick been around to carry it forward in the 2020s and beyond.

I did use a RPi + Kali Reclocker with Volumio for streaming, until going Ultrarendu earlier this year.

RPi5 with power button - amazing!

I've found time alignment to be crucial in wringing the very best out of my system / room.
You are right to place the highest requirements on this.
Most recently I align all the horn mouths physically, then time aligning the diaphragms with Holmimpulse, subtracting the horn length delay. Gives stunning realism. Quite a different presentation/cohesion to basic diaphragm alignment.
I can't quite get over how good it is!

Has anyone tried any of the 8 or 10 channel car audio DSPs?
Are they not fit for true multi horn Hifi SQ purpose?
 
There seem to be three I2S controllers https://github.com/raspberrypi/linu...19df2a687a126136f4/arch/arm/boot/dts/rp1.dtsi Most likely stereo because the patches to the dwc i2s controller (which they apparently used for RP1) talk about "stereo only". The pins allocated to the controller in that dtsi are only 4 (bclk, lrclk, dout, din). But they seem to be same for I2S0 and I2S1 - https://github.com/raspberrypi/linu...126136f4/arch/arm/boot/dts/rp1.dtsi#L609-L619 - I do not understand what would be the reasoning. Hopefully the datasheet will tell more, maybe more alternatives can be assigned, hard to tell without the datasheet...

Another clue...

https://github.com/raspberrypi/linu...arm/boot/dts/bcm2712-rpi.dtsi#L170C11-L170C11

I2S0 is a clock producer (aka master) and I2S1 is a clock consumer (aka slave). Looking at the RP1 DTS they are mapped to different memory ranges... I wonder whether those are two separate physical controllers or just one?
 
@gordoste : good catch. Those mentioned quirks must be quite heavy, because the configuration suggests TX and RX DMA channels for each controller https://github.com/raspberrypi/linu...750f95cd/arch/arm/boot/dts/rp1.dtsi#L364-L388 . Certainly stereo only, there is no TDM/PDM nor slot mentioned in https://github.com/raspberrypi/linu...c7c3e5dd33237750f95cd/sound/soc/dwc/dwc-i2s.c . Also only BCLK&LRCLK master or BCLK&LRCLK slave, no combined operation possible https://github.com/raspberrypi/linu...237750f95cd/sound/soc/dwc/dwc-i2s.c#L414-L417 - but that is probably not needed. Surprisingly no SND_SOC_DAIFMT_FORMAT_MASK is checked/processed in that driver which suggests only I2S format is supported - no left-justified, no clock inversion which gets handy when running at extra high samplerates especially in slave mode (though it's a hack, TBH).

We will see the performance at higher samplerates but this part looks pretty cut down, compared to (basically almost all) ARM SoCs with integrated peripherals. The samplerate is limited to 192kHz in the driver but that was the case for RPi4 too and only later (after success confirmations by users) raised to 384kHz (while it runs at 768kHz fine too, with some clock inversion hacks to account for signal skew).