How to connect I2S DAC

I’m trying to connect DAC via I2S next way:
DAC <> VIM
BCK <> GPIOH_7 (pin 29)
DATA <> GPIOAO_6 (pin 33)
LRCK <> GPIOH_8 (pin 32)
GND <> GND (pin 21)
GND <> GND (pin 24)
VCC <> +5 (pin 1)

But it not works :frowning: Is wiring right?
Is i2s enabled in 6.0.1 firmware or I need extra drivers for it?

2 Likes

Can you try LibreELEC on sdcard/usb? I don’t think android will support i2s dac.
Instruction of installing LibreELEC can be found in this thread:

I have a plan to use an i2s dac board too but not try it yet.

Hi, delletenebre:
I have purchased a DAC board for the testing, and will update when we got the board.

2 Likes

Hi, thank you. It doesn’t work in Libreelec. I added a line “dtparam=i2s=on” to the сonfig.txt - no changes. In System>Audio output:


both do not work.

Why is there no hdmi option? Did you try delete dtb.img in sdcard/usb?
If not then delete it and try again to see if i2s dac audio output is available.
If still not working, could you please try download overlay folder in this:


Copy into /flash/
And add “dtoverlay” of the device which has the same dac chip of your board to the config.txt. Then check again.
That’s what I will do if I have an i2s board. All is just guessing.

Have you got the board?

Yes, just got today.

@kenny please follow this.

Hi,delletenebre

The connection is incorret. You can refer to below connection

DAC <> VIM
BCK <> GPIOH_7 (pin 29)
DATA <> GPIOAO_9 (pin 31)
LRCK <> GPIOH_8 (pin 32)
GND <> GND (pin 21)
GND <> GND (pin 24)
VCC <> +5 (pin 1)

The DAC is worked after I modified the uboot source code

####Notice:This is only for Mmallow(6.0.1)

diff --git a/board/khadas/configs/kvim.h b/board/khadas/configs/kvim.h
index 2725511..4e985ab 100644
--- a/board/khadas/configs/kvim.h
+++ b/board/khadas/configs/kvim.h
@@ -72,7 +72,7 @@
 #define CONFIG_EXTRA_ENV_SETTINGS \
         "firstboot=0\0"\
         "upgrade_step=0\0"\
-        "jtag=apao\0"\
+        "jtag=disable\0"\
         "loadaddr=1080000\0"\

3 Likes

Nice.
Thanks. I try it.

does not work on old mmallow source, but it work on your new firmware.
Please update mmalow source.
How to activate i2s on Nougat source?
It has

    "upgrade_step=0\0"\
    "jtag=apao\0"\
    "loadaddr=1080000\0"\

I have already update the mmallow source.

You need to modify two files.
###1. Modify the file ‘board/khadas/configs/kvim.h’

diff --git a/board/khadas/configs/kvim.h b/board/khadas/configs/kvim.h
index a1b00f5..3e404f1 100644
--- a/board/khadas/configs/kvim.h
+++ b/board/khadas/configs/kvim.h
@@ -85,7 +85,7 @@
 #define CONFIG_EXTRA_ENV_SETTINGS \
         "firstboot=0\0"\
         "upgrade_step=0\0"\
-        "jtag=apao\0"\
+        "jtag=disable\0"\
         "loadaddr=1080000\0"\
         "outputmode=1080p60hz\0" \
         "hdmimode=1080p60hz\0" \

###2. Modify the file ‘arch/arm64/boot/dts/kvim.dts’

diff --git a/arch/arm64/boot/dts/kvim.dts b/arch/arm64/boot/dts/kvim.dts
index 7b25b8d..2894869 100644
--- a/arch/arm64/boot/dts/kvim.dts
+++ b/arch/arm64/boot/dts/kvim.dts
@@ -1089,6 +1089,7 @@
                hp_disable;
                hp_paraments = <800 300 0 5 1>;
                pinctrl-names = "aml_snd_m8";
+               pinctrl-0 = <&audio_pins>;
                cpu_list = <&cpudai0 &cpudai1 &cpudai2>;
                codec_list = <&codec0 &codec1 &codec2>;
                plat_list = <&i2s_plat &i2s_plat &pcm_plat>;

I have the same i2s DAC (PCM5102) as the delletenebre, and Android Nougat V170612. During download, a digital noise of full volume appears on the output, which disappears only after the first sound of the system. After that everything is working fine, until the next off/on, or restart.

I think it is a bug. Did you try to flash the rom Android Marshmallow V170603.
Thanks

I’ll try and let you know.

I tried Android Marshmallow V170603, but the situation has not changed. During download, a digital noise of full volume appears on the output, which disappears only after the first sound of the system.

Thanks for your feedback. We will check it.

Hello terry! Is there any progress in solving this problem?

Hi, destin:
I’m sorry to reply for you so long.
You can flash the new ROM, it fixup the bug.
Thanks

@Gouwa @numbqq @Terry
You can test this Board with i2s in Linux (Ubuntu) ? With the current kernel in Ubuntu (DualOS v171028) already has support for i2s or need to perform additional operations (which are described in this topic) ?

Yep, ROMs after 170922 already support I2S.

1 Like