This thread was created to post links and discuss Volumio 3 images (with MyVolumio) for NanoPi Neo, NanoPi Neo2 and NanoPi Air boards. These images are based on a kernel built with Armbian tools and include support the I2S bus in slave mode.
You can set master/slave (default) mode of i2s and tune other interfaces just by edit overlays in armbianEnv.txt.
DISCLAIMER: those images are unofficial, released “as-it-is”. No official support will be provided for those devices, but help from other community members is more than welcome.
Updates will be released from time-to-time, without a regular schedule. They can be applied with OTA update or by flashing the new image on the SD-card.
And new image for NanoPi Neo3 with support SPDIF, I2S without/with external master-clock: Volumio-3.547-2023-10-03-nanopineo3-armbian
If you want try I2S with external master-clock signal, you can edit armbianEnv.txt and set user_overlays like this: user_overlays=rockchip-spdif-out-enable rockchip-i2s-external-mclk
By default, external clocks frequencies set to 11,2896M and 12,288M, but you can change it in rockchip-i2s-external-mclk.dts and recompile DTS. Pin GPIO2_A2 used for switching clocks 11,2896M/12,288M, but also may be changed by DTS. Pin I2S_MCLK is master clock input and can’t be changed to other pin.
Hi Nikkov, can this image be used with Tidal music? and if so, do you plan to also post a 3.569 version that supports FLAC?
I would like to change the master clock frequencies in .dts, could you post a little suggestion of how to recompile?
Yes, this versions for NanoPi Neo3 can work with external master-clock and SPDIF-out. You can enable/disable this features through armbianEnv.txt (SPDIF enabled by default).
After change some parameter in dts (e.g. master-clock values) you must recompile it: dtc -@ -q -I dts -O dtb -o rockchip-i2s-external-mclk.dtbo rockchip-i2s-external-mclk.dts
Hi NIKKOV, just a small question, I don’t understand how GPIO2_A2 works. Is it out or in? through tidal change from 44.1 mqa to 24/96 but its status does not change, it always remains high. Is the clock switch driven by the NEO3 or does it have to be done externally? Maybe the pin only works if the external clock is active?
thanks and sorry again.
if I remember correctly, i2s in master is enabled by default in neo3, but without MCLK output. i2s in slave enabled by include rockchip-i2s-external-mclk overlay in armbianEnv.txt
thanks for reply,
I haven’t solved the problem yet。
My DAC1794 need input MCLK, LRCK,BCLK,DATA. By default NEO3 without MCLK output.
To get MCLK, I edit armbianEnv.txt as you told
But NEO3 MCLK didn’t work or even worse,appears “Error:failed to open ALSA device,device or resource busy”
I do not know Where I got it wrong?I’m not a developer
Could you tell me in detail how to set it up? i2s in master is enabled by default in neo3, and with MCLK output. So the DAC1974 can work.