Goal:
To use the Pisound on an Orange Pi 5 plus.
This tutorial won’t work with other models since the pins are different on each model!
You need at least SPI on the correct pins and I2S lrck sclk sdi sdo. Check the data sheet before you try this on another model!
Difficulty:
Advanced
Optimized for Headless Use:
Yes
Recommended Raspberry Pi Models:
- Orange Pi 5 plus
Required Hardware:
- Pisound
- Orange Pi 5 plus w/ power supply and micro SD card
Software installation
- Download an server Armbian image for the Orange Pi 5 plus with kernel 6.1.* and write it to the sd card.
- Download the kernel, kernel headers, the adjusted driver and device overlay from: Pisound-OPi-5-plus – Google Drive
- Place all the files in the folder pisound and enter that folder.
- Install the kernel headers and kernel image with sudo apt install ./linux*.deb
- Then type “make” to compile the driver.
- sudo mkdir /lib/modules/6.1.115-vendor-rk35xx/kernel/sound/soc/rockchip/
- sudo cp pisound.ko /lib/modules/6.1.115-vendor-rk35xx/kernel/sound/soc/rockchip/
- sudo depmod -a
- Compile and activate the overlay with:
cpp -nostdinc -I /usr/include -undef -x assembler-with-cpp pisound.dts | dtc -@ -I dts -O dtb -o pisound.dtbo -
sudo cp ./pisound.dtbo /boot/overlay-user/
echo “user_overlays=pisound” | sudo tee -a /boot/armbianEnv.txt
Then reboot and you should be able to use the Pisound.
Reroute pins for SPI4
In the overlay you can see that I also activated spi4. For this I swapped some pins so it will be at the same pins on the Pisound as otherwise SPI3 is with the Raspberry Pi 5. I’m using for this an GPIO extender cable female-male, the female side (Orange Pi) you can open the connector carefully and change the wiring order as follow:
OPi | Pisound |
---|---|
8 | 31 |
31 | 8 |
10 | 29 |
29 | 10 |
26 | 22 |
22 | 26 |
32 | 7 |
7 | 32 |
Optimize
To prevent xruns you can add “isolcpus=3-7” after extraargs in armbianEnv.txt
Then pin jack to the 4th core by adding “CPUAffinity=3” under [Service] of “/lib/systemd/system/jack.service”
Pin mod-host to core 5 until 8 by adding CPUAffinity=4-7 under [Service] of “/lib/systemd/system/mod-host.service”
Until now even with 2x NAM models without buffered turned on and multiple effects 0 xruns.