====== 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.
```shell
$ amixer cset name='ARC eARC RX enable' 1
```
Check its status if it's enabled:
```shell
$ 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.
```shell
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''
```shell
$ 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:
```shell
arecord -D hw:0,6 -f S16_LE -c 2 -r 48000 /tmp/out.wav
```