Project Description

This project is for everyone who loves music and enjoys building things themselves. With just a spare Raspberry Pi and any reasonable audio HAT or USB DAC, you can turn it into a high-quality, headless music endpoint capable of playing audio via Tidal Connect or Bluetooth streaming.

Sure, there are ready-made devices like active speakers or the WiiM Amp - but here we want to create our own open, SUSE-based alternative using SUSE Linux Micro 6.2.

MicroHiFi project icon

Goals

By the end of the project, you will have a power-on-and-forget music endpoint that:

  • Boots a minimal, immutable SUSE Linux Micro 6.2 system
  • Exposes itself as a Tidal Connect target
  • Supports Bluetooth A2DP for general audio streaming
  • Runs fully headless and reliably in everyday usage

The goal is to create something practical, reproducible, and usable for real households - not just a demo.

Required Components

Hardware

  • Raspberry Pi 3 or 4 (AArch64) – runs SUSE Linux Micro and containers
  • SD card – flashed with the SLE Micro 6.2 Raw Disk Image
  • HiFiBerry AMP2 or similar HAT / USB DAC – audio output hardware

Software

  • SUSE Linux Micro 6.2 (released November 4, 2025)
  • ALSA utilities – low-level sound card access
  • BlueZ + BlueALSA – Bluetooth A2DP stack (details to be refined during the project)
  • Podman + podman-compose – container runtime
  • Tidal Connect container – community-maintained image bundling the proprietary TC binaries
  • Some glue logic around audio routing, service startup, and user experience

Background Story

I’ve been running Raspberry Pi audio endpoints at home for years. When my kids were small and couldn’t read yet, they used Squeezelite as part of my smart-home setup, playing playlists I prepared for them.

Now they’ve grown up, have their own smartphones, and want to play the music they like - ideally directly from modern streaming services. Tidal Connect is perfect for this, and Bluetooth streaming covers everything else.

So in 2025 it’s time to modernize those old audio boxes. I want to rebuild the solution properly on SUSE Linux Micro, create a clean and reproducible setup, and hopefully make it easy for others to build their own self-hosted open audio devices.


Current activity / progress

PROJECT COMPLETED add-emoji See details on my Confluence page

On the OS side, I:

  • Flashed the official SL-Micro 6.2 Raspberry Pi raw image to SD card.
  • Tried to use a combustion USB stick to create a microhifi user and enable SSH on first boot, but never managed to get a working headless login, so I did the initial boot with screen/keyboard locally.
  • Registered the system against SCC and confirmed transactional updates and repositories are working.
  • Entered a transactional shell to install missing tools (notably alsa-utils) and to experiment with enabling Bluetooth and audio support.

On the Bluetooth side, I:

  • Attempted to install bluez-tools and bluealsa, but they were simply not available in the SL-Micro repositories.
  • Added the openSUSE Leap 16.0 OSS repository to gain extra packages, but still couldn’t get the needed Bluetooth pieces in a clean, supportable way.
  • Parked the Bluetooth A2DP part of the project for now and decided to finish a solid Tidal Connect endpoint first.

On the audio hardware side, I:

  • Tried to enable the HiFiBerry AMP2 HAT via kernel modules and Device Tree overlays.
  • Discovered that while the firmware DTOs (hifiberry-dacplus.dtbo) are present, the actual kernel driver module (snd-soc-hifiberry-dacplus.ko) is missing from the SL-Micro kernel packages.
  • Confirmed that even with kernel-default-extra installed, the HiFiBerry driver file is simply not there, so the HAT cannot be made to work on this image.
  • As a workaround, plugged in an old Creative Xmod USB sound card, which was immediately recognized as card 2 using the generic snd-usb-audio driver.
  • Reconfigured ALSA (/etc/asound.conf) in a transactional shell to route the default output to the USB DAC and added the microhifi user to the audio group so non-root tools like aplay and the container can access /dev/snd/*.

On the Tidal Connect side, I:

  • Chose the community container image edgecrush3r/tidal-connect, which bundles the proprietary Tidal Connect binary together with all required libraries.
  • Installed Docker / docker-compose on SL-Micro using transactional-update and set up a ~/tidal-connect-stream/docker-compose.yml that:
  • runs the container in host network mode,
  • passes through /dev/snd, D-Bus, and the Avahi socket,
  • targets the USB DAC via PLAYBACK_DEVICE (or alternatively the onboard headphone jack).
  • Hit SELinux issues (executable stack in libx264), and resolved them by switching SELinux from Enforcing to Permissive so the Tidal binary can start.
  • Installed and enabled Avahi (avahi + nss-mdns via transactional-update, then systemctl enable --now avahi-daemon) so the Tidal endpoint can announce itself via mDNS; without this, the device never shows up in the TIDAL app.
  • Added microhifi to the docker group so I can manage the container as a normal user.
  • Verified that the MicroHiFi-Streamer endpoint appears in the TIDAL mobile app and that playback is stable and routed directly to the USB DAC with a minimal, almost bit-perfect ALSA chain.

Current status: Bluetooth A2DP is still missing (blocked by unavailable packages), but the primary goal is achieved: on a Raspberry Pi 3B+ with SUSE Linux Micro 6.2, I now have a reliable, headless, power-on-and-forget Tidal Connect streamer running in a container, feeding a USB DAC with clean audio. It works, I can listen a music using this device! As a bonus, I found some hidden interface inside the container.

Detailed progress

Detailed progress and document containing step by step (repeatable) guide is being composed on my confluence page dedicated to this Hack Week project. This is still work in progress but on a good track to be able to finish everything by Friday.

Project successfully finished

It works! Here’s the Final Enjoyment of the SUSE MicroHiFi Endpoint

See VIDEO add-emoji SUSE MicroHiFi: This Is the Finished Endpoint in Action! add-emoji

Looking for hackers with the skills:

Nothing? Add some keywords!

This project is part of:

Hack Week 25

Activity

  • 3 days ago: sndirsch liked this project.
  • 7 days ago: epaolantonio liked this project.
  • 10 days ago: ninopaparo liked this project.
  • 10 days ago: pvlasin liked this project.
  • 10 days ago: pvlasin started this project.
  • 10 days ago: pvlasin originated this project.

  • Comments

    Be the first to comment!

    Similar Projects

    This project is one of its kind!