Pisound on the Orange Pi 5 plus

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.

3 Likes

Good stuff! Could you post a picture of how your setup looks like? In particular, how does the pin rerouting look like?

Btw, could the pin mappings be done in a customized Device Tree overlay instead?

Thanks, the pin mapping is only necessary if you need a second SPI for a screen, otherwise you should be able to plug it in as it is, only need to adjust the pins from the overlay, by interest I can upload that one too. The RK3588 is pretty flexible with pin mappings but unfortunately no SPI4 pins that goes to the header of the Pisound.

These are pictures from when I still had a Raspberry in it, at the moment the usb-c port doesn’t fit (easily) with the (bigger) Orange Pi 5 plus. Although with some puzzling it might fit but probably need to shield the wires then. Pictures of the wiring/inside will come tomorrow.

The software I changed a bit so it’ll also give midi feedback so that when you choose a pedalboard with some effects on by default which are mapped to a midi pedal (or enable via the screen of web interface) it will also turn the led on of the the FCB1010 (which get its power from the midi cable). And added a tuner.


1 Like

Here the pictures from the inside/cable. In the grey plastic box is an esp8266 for the buttons which communicates via serial over usb, and also a 5v>9v converter to power the fcb1010. It’s not exactly pretty, but it’s functional :grinning_face:
I think I’ll redo it sometime with the Pisound Micro and a bit smaller SBC with RK3588. Also passive cooling with a cooling block for the cpu attached to the enclosure should be good enough. This is a 12v fan running on 5v (Accidentally ordered the wrong one), but even with stressing all cores the temp won’t go over 61 degrees.


1 Like