Table of Contents

VIM3L eARC

Introduction

eARC is a feature implemented in the latest HDMI 2.1 specification, This allows you to transmit high-quality audio from your TV to your Soundbar or AV receiver and is compatible with the high bitrate formats Dolby Atmos and DTS.

This documentation will guide you how to record audio from the HDMI eARC channel.

Only for VIM3L with 5.15 kernel.

TV side setup

In order to use the eARC function, you need to make sure your TV is also eARC capable, It is denoted by the eARC label on the HDMI Input.

You can also check with the TV vendor about how to enable it.

VIM3L side setup

You also need to enable the eARC Receiver function on VIM3L, you can follow the command below to enable eARC RX.

$ amixer cset name='ARC eARC RX enable' 1

Check its status if it's enabled:

$ amixer cget name='ARC eARC RX enable'
numid=41,iface=MIXER,name='ARC eARC RX enable'
  ; type=BOOLEAN,access=rw------,values=1
  : values=on

values=on means eARC RX is enabled.

Hardware connection

You need to use a HDMI 2.1 cable to connect VIM3L HDMI port to your TV HDMI Input with eARC function.

Check eARC status

You can follow the command below to check the status of eARC.

khadas@Khadas:~$ amixer cget name='eARC_RX attended type'
numid=24,iface=MIXER,name='eARC_RX attended type'
  ; type=ENUMERATED,access=rw------,values=1,items=3
  ; Item #0 'DISCONNECT'
  ; Item #1 'ARC'
  ; Item #2 'eARC'
  : values=2
Value Status
values=2 Device work on eARC
values=1 Device work on ARC
values=0 ARC/eARC not connected

If your setup is correct, it should be values=2 which means work on eARC.

You can also try to unplug/replug HDMI cable to check.

Record audio from eARC

You can check the record sound devices with arecord -l

$ arecord -l
**** List of CAPTURE Hardware Devices ****
card 0: AMLAUGESOUND [AML-AUGESOUND], device 0: TDM-B-dummy-alsaPORT-i2s multicodec-0 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: AMLAUGESOUND [AML-AUGESOUND], device 1: TDM-A-dummy-alsaPORT-pcm multicodec-1 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: AMLAUGESOUND [AML-AUGESOUND], device 2: TDM-C-dummy dummy-2 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: AMLAUGESOUND [AML-AUGESOUND], device 3: PDM-dummy-alsaPORT-pdm dummy-3 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: AMLAUGESOUND [AML-AUGESOUND], device 4: SPDIF-dummy-alsaPORT-spdif dummy-4 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: AMLAUGESOUND [AML-AUGESOUND], device 6: EARC/ARC-dummy-alsaPORT-earc dummy-6 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: AMLAUGESOUND [AML-AUGESOUND], device 7: LOOPBACK-A-dummy-alsaPORT-loopback dummy-7 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0

The card 0, device 6 device is the eARC device. You can record audio with the command below:

arecord -D hw:0,6 -f S16_LE -c 2 -r 48000 /tmp/out.wav