Jump to content
Poko-san

How to use I2S

Recommended Posts

[Debian10 V.2.0.3]

Hello,

I want to connect to Audio DAC(Texas Instruments PCM5102A) via I2S, and want to play sound.

Normally, "aplay -l" command shows only HDMI audio device.
I edited config.txt -> intf:i2s0=on
but this didn't make any sense.

Next, I found
/boot/overlays/hifiberry-dacplus-overlay.* files, 

I added config.txt -> overlay=hifiberry-dacplus-overlay
but "aplay -l" command said "no soundcards found...".

Please tell me what to do.

Thanks!

Share this post


Link to post
Share on other sites

Seconded. The overlay seems to disable HDMI sound as well, and doesn't seem to do anything..

Share this post


Link to post
Share on other sites

The hifiberry-dacplus-overlay explicitly disables HDMI audio. This is present in /boot/overlays/hifiberry-dacplus-overlay.dts .. To answer my own question.

Also, the hifiberry-dacplus-overlay is meant for the PCM512x instead of the PCM510x . These IC's very similar, but the PCM512x series has an I2C interface, which is probed during boot.. dmesg reveals a lot of these:

[    6.163192] snd-rpi-hifiberry-dacplus sound-ext-card: ASoC: CODEC DAI pcm512x-hifi not registered

Could be this driver doesn't support the old 510x ?

Share this post


Link to post
Share on other sites
On 2/17/2022 at 3:20 PM, earx said:

The hifiberry-dacplus-overlay explicitly disables HDMI audio. This is present in /boot/overlays/hifiberry-dacplus-overlay.dts .. To answer my own question.

Also, the hifiberry-dacplus-overlay is meant for the PCM512x instead of the PCM510x . These IC's very similar, but the PCM512x series has an I2C interface, which is probed during boot.. dmesg reveals a lot of these:

[    6.163192] snd-rpi-hifiberry-dacplus sound-ext-card: ASoC: CODEC DAI pcm512x-hifi not registered

Could be this driver doesn't support the old 510x ?

Hello, have you managed to figure it out?

Want to connect pcm5102a to a tinker board 2 too. Is it possible currently ? Should I use any overlays ?

Share this post


Link to post
Share on other sites

hello @Poko-san, @earx, and @giseleznev

here's a table of compatible DACs and AMPs tested on tinker board s / r2.0 and tinker board 2s:

Brand 

Model 

Overlay

Tinker Board S / R2.0 

Tinker Board 2S 

Chip

OS

 

 

Tinker Board R2.0 Debian 10 V3.0.11 or later

Tinker Board 2 Debian 10 V2.1.6 or later

 

HiFiBerry 

HiFiBerry DAC+ STANDARD – RCA VERSION 

hifiberry-dacplus 

OPA165x

HiFiBerry AMP+ 

hifiberry-amp 

×

TAS5713

HiFiBerry Digi+ Standard 

hifiberry-digi 

WM8804

HiFiBerry DAC

hifiberry-dac 

PCM5102A

HiFiBerry DAC+

hifiberry-dacplus 

PCM5102A

HiFiBerry DAC+ Light 

hifiberry-dac 

PCM5122

HiFiBerry DAC+ PRO 

hifiberry-dacplus 

PCM5122

JustBoom 

JustBoom Amp HAT 

justboom-dac 

×

TAS5756M

JustBoom DAC HAT 

justboom-dac 

PCM5122

JustBoom DAC Zero 

justboom-dac 

PCM5121

JustBoom Digi Zero 

justboom-digi 

WM8804GEDS

JustBoom Digi HAT 

justboom-digi 

WM8804GEDS

IQAudIO 

IQaudIO Pi-Digi+ 

iqaudio-digi-wm8804-audio 

WM8804

IQaudIO Pi-DigiAMP+ 

iqaudio-dacplus 

×

TAS5756

IQaudio Pi-DAC Pro 

iqaudio-dacplus 

PCM5242

 

Share this post


Link to post
Share on other sites

@tooz

Since I am a Linux beginner, I don't understand how overlays work etc.
I would like you to tell me in detail 
how to set it to recognize the HiFiBerry DAC, for example. 

I tried various things such as editing the "/boot/config.txt" file with reference to the Raspberry Pi article, 
but "rkhdmidpsound" is displayed even if I run the "aplay -l" command.

Also, in my environment, there is only hifiberry-dacplus in /boot/overlays, and other overlays such as hifiberry-dac cannot be found. 
Does this require installation?

Share this post


Link to post
Share on other sites

hello @Poko-san

i've made a simple tutorial video: 

(in this video, i use 'justboom dac hat', but not all dac hats are compatible, please check before use)

prerequisites:

-tinker board 2s
-a dac that's compatible with tinker board 2s

steps:
1. check the supported dtb with command

$ ls /boot/overlays/


2. edit overlay with command (last line of the .txt, in this example it's overlay=justboom-dac)

$ sudo vim /boot/config.txt


3. save the modified .txt esc+shift+: wq
4. turn off tinker board 2s
5. insert the dac
6. power on tinker board 2s
7. check if the dac is recognized with command

$ aplay -l


8. use volume control to adjust volume, there's a build in media player, in this example i've downloaded and used rhythmbox ( https://debian.org/Rhythmbox )

please note:

1. check the compatibility before use

2. the 40-pin gpio header gets damaged very easily with unnecessary ic contacts, please be very careful when connecting the dac to tinker board 2s

Share this post


Link to post
Share on other sites
On 4/26/2023 at 11:13 AM, tooz said:

hello @Poko-san, @earx, and @giseleznev

here's a table of compatible DACs and AMPs tested on tinker board s / r2.0 and tinker board 2s:

Brand 

Model 

Overlay

Tinker Board S / R2.0 

Tinker Board 2S 

Chip

OS

 

 

Tinker Board R2.0 Debian 10 V3.0.11 or later

Tinker Board 2 Debian 10 V2.1.6 or later

 

HiFiBerry 

HiFiBerry DAC+ STANDARD – RCA VERSION 

hifiberry-dacplus 

OPA165x

HiFiBerry AMP+ 

hifiberry-amp 

×

TAS5713

HiFiBerry Digi+ Standard 

hifiberry-digi 

WM8804

HiFiBerry DAC

hifiberry-dac 

PCM5102A

HiFiBerry DAC+

hifiberry-dacplus 

PCM5102A

HiFiBerry DAC+ Light 

hifiberry-dac 

PCM5122

HiFiBerry DAC+ PRO 

hifiberry-dacplus 

PCM5122

JustBoom 

JustBoom Amp HAT 

justboom-dac 

×

TAS5756M

JustBoom DAC HAT 

justboom-dac 

PCM5122

JustBoom DAC Zero 

justboom-dac 

PCM5121

JustBoom Digi Zero 

justboom-digi 

WM8804GEDS

JustBoom Digi HAT 

justboom-digi 

WM8804GEDS

IQAudIO 

IQaudIO Pi-Digi+ 

iqaudio-digi-wm8804-audio 

WM8804

IQaudIO Pi-DigiAMP+ 

iqaudio-dacplus 

×

TAS5756

IQaudio Pi-DAC Pro 

iqaudio-dacplus 

PCM5242

 

hi, and what about tinker board2 support. Have you tested it ? Do tinker s snd tinker 2 have any differences regarding audio.

Share this post


Link to post
Share on other sites

Hello there,

As a Linux beginner, I find it challenging to comprehend the functioning of overlays and similar concepts. I would greatly appreciate a detailed explanation of how to configure the system to recognize specific hardware, such as the HiFiBerry DAC.

I have attempted various approaches, including editing the "/boot/config.txt" file based on the guidance provided in the Raspberry Pi article. However, when I execute the "aplay -l" command, it still displays "rkhdmidpsound" instead of the desired configuration.

Additionally, I have noticed that in my environment, only the "hifiberry-dacplus" overlay is available in the "/boot/overlays" directory, and other overlays like "hifiberry-dac" are nowhere to be found. Is it necessary to install additional components or packages to access these missing overlays?

Share this post


Link to post
Share on other sites

hello @Lucas32

this guide from toradex explains what device tree overlays are and how they work: https://developer.toradex.com/linux-bsp/os-development/build-yocto/device-tree-overlays-linux/

On 5/25/2023 at 10:08 PM, Lucas32 said:

I have attempted various approaches, including editing the "/boot/config.txt" file based on the guidance provided in the Raspberry Pi article. However, when I execute the "aplay -l" command, it still displays "rkhdmidpsound" instead of the desired configuration.

 

reboot is needed after you

sudo vim /boot/config.txt

what is the os version? the dtbo of dac hats in the qualified vendor list are already built out/ included in the os. you might want to an os that's later than v.2.1.6

Description
Tinker Board 2 Debian 10 V2.1.6
Tinker OS default username is "linaro", password is "linaro".

Release Notes:
* Changelog
1. First Kernel 4.19.x release version
2. Merged kernel security patch
3. Audio: Support JustBoom DAC HAT/Digi HAT/Amp HAT
4. Audio: Support IQaudIO Pi-DAC+/Pi-DAC Pro/Pi-Digi+
5. Audio: Support HiFiBerry DAC+ Light/Digi+
6. USB: Enable USB printer in kernel config
7. Config: Default enable GPIO PIN37 as S/PDIF, for Type-C DP audio function.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...