Thank you! I’ll try repeat this.
Did anyone make PCM5122 working on Orange Pi Zero ? I’m not sure if this possible.
Like this board
Search this thread on some hints to get I2S working on the Zero. IIRC, depending what version of the Zero you have you might need some extra surgery to enable I2S.
The new version Volumio 2.873 (Orange Pi Lite, Orange Pi PC, Orange Pi One).
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
Nice work! If you can add your patches, we can add them into the volumio repo so all further images pick them up as well.
Look at the
platform-orangepi repo on how this could be done. Also with the corresponding dts files, let me know if you have additional questions
I put all changes in forked repo. Please, take a look.