Jump to content

Recommended Posts

Posted

Hi,

I’m working on enabling I²S audio output using a PCM5102 DAC on an Orange Pi Zero 2W (SoC: Allwinner H618) running Armbian_community_25.11.0-trunk.334_trixie_current_6.12.47_minimal.

Despite several tests and rebuild attempts, I haven’t been able to obtain any sound output from the I²S interface.
Below is a summary of what has been done so far.

 

Hardware setup

Board: Orange Pi Zero 2W

SoC: Allwinner H618

DAC: PCM5102 (I²S input, analog stereo output)

Connections:

I2S0 → used for DAC (pins LRCK, BCLK, DIN, GND, 3.3V)

Confirmed pin mappings according to H618 documentation and available DTS files.

OS Image:
Armbian_community_25.11.0-trunk.334_Orangepizero2w_trixie_current_6.12.47_minimal

What has been done

1. Kernel confirmed to be mainline-based (6.12.47-current-sunxi64).

Linux orangepizero2w 6.12.47-current-sunxi64 #1 SMP aarch64 GNU/Linux

2. Checked kernel symbols to verify presence of sunxi audio modules:
Shows sound/soc/sunxi/sun8i-codec.c among others.
Created a custom overlay at /boot/overlay-user/sun50i-h618-i2s0-pcm5102.dtso, based on examples from sun8i boards, with simple-audio-card referencing the i2s0 controller.

Enabled overlay in /boot/armbianEnv.txt :
user_overlays=sun50i-h618-i2s0-pcm5102

Rebooted and verified device tree loading → No audio device or sound card is registered.

Also tried with predefined overlay sun50i-h618-i2s2-pcm5102 included in the Armbian tree → no sound card detected (aplay -l returns “no soundcards found”).

Findings

It seems that the H618 SoC has no upstream audio codec driver (unlike H616 which includes sun8i-codec).

The I²S controller node exists in the mainline kernel sources, but may not be fully supported or linked to a DAI (Digital Audio Interface) for external DACs.

simple-audio-card bindings appear to compile correctly in the overlay, but the device never registers in ALSA.

Questions

Is there any working DTS overlay or patch enabling I²S output (no internal codec) for the H618 platform?

If not, what would be the correct approach — patching the DTS at kernel source level or adding a compatible binding manually?

Has anyone successfully used a PCM5102 (or similar DAC) with the H618-based boards under Armbian?

My goal

To have a functional stereo I²S audio output through PCM5102 (or any compatible DAC), recognized as an ALSA sound card in Linux.

Any help, hints, or working overlay examples would be greatly appreciated.

Thanks in advance for your time and expertise!

Jose Cardoso

 

Posted

Hello everyone,

As I said, previous post, I’ve been trying to enable I²S audio output on my Orange Pi Zero 2W (Allwinner H618) using an external PCM5102 DAC, but so far the kernel does not recognize any sound device.

I read that the driver sound/soc/sunxi/sun4i-i2s.c supports the H6, and “going” (posted March 4) suggested trying:

compatible = "allwinner,sun50i-h6-i2s"

to trigger that driver, since the H618 I²S block might be similar.

Overlay compiles successfully using armbian-add-overlay and loads on boot.

However, after reboot:

dmesg | grep -i i2s

dmesg | grep -i pcm

aplay -l

→ aplay: no soundcards found...

Could anyone confirm whether this driver can handle the H618 I²S, or if kernel patching is required to make it work?

Any advice or example DTS overlay for H618 + I²S would be very helpful.

Thanks in advance for your time and for the excellent work on Armbian

Jose Cardoso

Posted

Just today I ran into an error "aplay: no soundcards found"

I decided to follow the sequence of actions below, log in to root:

### **Symptoms**

* `aplay -l` → **no soundcards found**
* in `/proc/asound/cards' — empty
* there is no "analog-codec" item in `armbian-config`
* The sound through the mini jack does not work
* the DT output ('dtc -I fs') indicates that the codec is present but not active

The reason is always the same: **the kernel/DT does not include AHUB + codec machine-driver**, so ALSA does not create maps.

---

> I also created the default alsa config

```
nano /etc/asound.conf
```

Inserted there so far:
``
pcm.!default {
type hw
    card 0
    device 0
}

ctl.!default {
    type hw
    card 0
}
```


# **Solution**

## **1. Set the desired audio overlay: `sun50i-h616-audiogpu`**

### 1.1 Cloning the repository

```bash
cd /root
git clone https://github.com/hviana/orangepizero2w-audio.git
cd orangepizero2w-audio
```

### 1.2 There is already a ready-made file in the repository:

```
sun50i-h616-audiogpu.dtbo
```

You don't need to compile anything.

### 1.3 Copying the overlay to the desired location

```bash
mkdir -p /boot/dtb/allwinner/overlay
cp sun50i-h616-audiogpu.dtbo /boot/dtb/allwinner/overlay/
```

---

## **2. Configure `/boot/armbianEnv.txt `**

Open:

```bash
nano /boot/armbianEnv.txt
```

And set **two required lines**:

```ini
overlay_prefix=sun50i-h616
overlays=audiogpu
```

Delete old attempts like `analog-codec`, `sun8i-h3-codec`, etc.

Save → Exit.

---

## **3. Reboot**

```bash
reboot
```

---

## **4. Check the sound after downloading**

```bash
aplay -l
```

It should appear:

```
card 0: audiocodec [...]
card 1: ahubi2s0 [...]
card 2: HDMI [...]
```

If there are cards, the sound is restored.


 

important!  WORKING WITH SOUND (for example, playback) SHOULD BE DONE NOT FROM UNDER THE root USER, BUT FROM UNDER THE REGULAR USER!  If PulseAudio, for example, is running from the system from root, then the devices may not be available.
 

Also, if you use Home Assistant Supervised, then docker will have a self-healing hassio_audio container that will run Pulse Audio from root on the host machine and thereby block all devices. You won't be able to control the sound in this case.
There's an addon that's supposed to kill this container every time it starts, but it doesn't work properly for me. 
Literally now, I've run out of nerves, and I've taken down my system.
I will try installing Proxmox or in Docker 

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines