This new project introduces you to a small SBC called the Orangepi Zero 2W
which serves as the basis for an ultra-compact sound server.
You can connect an external hard drive and a keyboard via its expansion card
to the USB port
a wired connection to the Ethernet port
a headset via the headphone jack
on the main board. It has a Wi-Fi and Bluetooth chip, a Wi-Fi antenna, and a 40-pin connector to which I added a PCB to install a PCM5102A DAC controlled via i2S and a fan to cool the main board.
And a daughter PCB to output to two RCA jacks to attack an amp
You can also connect a screen via HDMI, but software control with Dietpi and a web page accessible from any browser is more than sufficient
The OS is Dietpi, with Lyrion Media Server as the server and Squeezlite as the player.
With it, you can listen to all your digital music, internet radio, and Tidal (Qobuz, Spotify) natively.
Hi Totof, how are you? I’m fighting with my OPi. My project is an electronic piano, and i’m using a PCM5102A. I was reading a lot of forums, but my best version was working with only left channel (I know that you know about this topic in other forums).
Can you tell me how can I make work PCM5102A in my OPi Zero 2W in stereo? Which pins do you use? I’m using 12, 35 and 40. The IA tells that is incorrect.
The PCM5102A works in stereo with pin as follow
PI0 → I2S SCK–>pin29
PI1 → I2S BCK–>pin12
PI2 → I2S LCK–>pin35
PI3 → I2S DATA–>pin40
5V → to VIN power of DAC board–>pin2
GND → to GND power of DAC board-->pin6
The chip work only as master with I2S and don’t accept clock from an I2S device, the most important numb of application have a slave mode for reception and work perfectly
I can not help you
Try to have a look at the source code of the last kernel Version in Dietpi
It’s possible to make modification
But it’s a little complicated
If you have a look to the patch sun50i-I2S-slave.patch, the difference between
slave and master is the part “clock-source = “external”;” and "pinctrl-0 = <&i2s0_pins &i2sclk_pins>;
the two line “soundcard-mach,pll-fs = <4>;” and “soundcard-mach,mclk-fs = <0>;”
perhaps try to implement the external clock like this syntaxe in kernel 6.12.30
in your script i assume need else changes like soundcard-mach,bitclock-master = <&i2s> ? or it is miscorrect?
And else - in which file i can see full list of terms like ahub0_plat, ahub0_cpu and other ?