How to use i2s interface for Hi-Res audio?


The description says that the Khadas Vim has i2s interface, but in the GPIO Pinout does not has it. Where is i2s located? How to configure in Android? Are there software limitations of 16bit/ 48kHz or can it give out sound 24bit/192kHz?

I see that “PIN29-33: iomux for I2S”, but Where is MCLK, LRCK, SCLK, DATA ?

LibreELEC for Khadas VIM (SD & USB & eMMC)

Hello Davemf,

about connections, I’m identify I2S on these GPIO pins

upd: due to the different numbering of my connector, it’s like that

29 GPIOH_7 - > I2S_BCK
30 GPIOH_6 -> I2S_MCLK
31 GPIOH_9 -> I2S_DOUT
32 GPIOH_8 -> I2S_LRCK
33 GPIOAO_6 -> I2S_DIN

Can somebody double check that, please?

about Android, I cannot tell you, I’m guess this questions was already given somewhere here


Khadas has “rate_max = 48000” for i2s (and all sound output too) on source.
How to use i2s interface (USB sound and SPDIF too) with 24bit / 96kHz or more for Hi-Res audio?


You can use an external codec.But I though the sound not very well as a hifi player because the android SRC


If I use an external codec, then I lost all system sounds and the voice of the navigator.

We need Hi-res audio with the voice of the navigator.


What’s the meaning of this?


We use neutron or usb music player, this players have very hight sound quality if use direct control usb DAC to bypass the standard Android driver. But all system sounds and the voice of the navigator does not play if use “direct control”.
When using i2s or onboard spdif, you’ll have to use the standard Android driver. But the standard driver has 16 bits /48 kHz only.

Or do you have another way?