I’m new to Volumio and new here. First of all thank you all for great job with volumio.
Recently having more spare time because of COVID I was digging in my drawer I found OrangePi One board and WM8804 board from AliExpress. It’s called PiFi v1.0 and is a clone of many similar boards.
I wanted to make it work and found Volumio but I didn’t find any working solution for this pair (Opi+pifi). So I’ve decided to give it a try. Inspired by Alexandre Belloni talk on YouTube about ASOC architecture on Linux I wanted to make it work without special machine driver (anyway all that rasp hats with wm8804 are just PCB with WM8804, power IC, Xtal and toslink interface without any logic), (precisely speaking simple-audio-card is machine driver) and no changes to platform driver. Linux kernel tree wm8804 driver is (as per documentation)for hardware mode meanwhile all that hats set wm8004 in software mode. So it took some minor touches to wm8804 driver to make it more software mode usable with some parameters passed via DT (dts file).
It works in Master mode (WM804 is master) which is better and native audio solution. IMHO it can’t be used in slave mode with OPI One as wm8804 needs external MCLK clock in slave mode for SPDIF transmitter but Opi One doesn’t provide it to outside world. Only wm8804 driver is changed a little bit so it should work with other boards with armbian and i2s platform driver (even in slave mode as my pifi v1.0 board has MCLK pin connected to pad on PCB).
Just remember that Opi One pin header is compatible with raspberry but not in 100% and I2S pins don’t match so layer 1 (hardware layer) requires some modifications which was covered in previous posts.
As I’m new to Volumio I generated platform files with armbian toolchain and used opifam branch of Volumio github to generate image (without digging deeper in Volumio architecture). It’s based on 5.10 kernel.
It works pretty cool for me. At the moment (I hope it’ll change) I’m using Technics DX950 so I’ve tested it to 24bit@48K but it should go up to 24bits@192k. Also testes optical and electrical outputs.
Maybe someone will find this image good for testing or listening