Whole Home Audio using the Audio DAC SHIM?

Howdy! I’ve been struggling to find an alternative to the incredible Google Chromecast Audio since you can no longer buy the device:

I only have 5 of these, and that limits me in what I can do with whole home audio.

Goals

My goal is to get something to replace Google Chromecast Audio with another device that works with Chromecast and/or Sendspin.

My goal is to use it with Music Assistant.

Raspberry Pi Method

I’m thinking the Audio DAC SHIM (Line-Out) would work for my needs. I need 15 of these, and I already have a bunch of Raspberry Pi Zero W, Zero 2 W, 3B, 3B+, and 4B devices just lying around collecting dust.

In the case of a Raspberry Pi model B, I shouldn’t need this DAC because it already has a 3.5mm jack right?

Questions

  1. What’s the quality of this device? Can it do 24/96?
  2. With Chromecast audio in general, I can control the volume in software and not have to touch it on the speaker itself.
  3. Has anyone done a comparison of this device with Google Chromecast Audio?
  4. Is there a simple software package I can install to get this working as an appliance rather than SSHing into Raspbian?

Alternative Methods

Pico Audio Pack

The Pico Audio Pack (Line-Out and Headphone Amp) looks nice, but I don’t have any info on it:

  1. Can it connect to the network?
  2. Can it run ESPHome?
  3. Does it support Chromecast or Sendspin?

Home Assistant Voice Preview Edition

I tried using a Home Assistant Voice PE for this project, and while it “just works” with Music Assistant, the issue is its line-out sucks. It runs hot, and that causes clipping and distortion (noticeable even by my wife unpromted).

I did some more research:

  1. The Pico Audio Pack isn’t the Pi Pico, so you’d need that too, and it really doesn’t have enough RAM for buffering music.
  2. I did some more testing with the Voice PE, and it’s not only clipping, but it’s also a lower volume output than the Google Chromecast Audio. Confirmed now, this device is busted.

So those methods are outta the way now.

My current methods

I’m looking into a solution to make this make sense on my Raspberry Pis or using a pre-built ESP32 solution that I can run in ESPHome.

I honestly think a full-on Raspberry Pi is overkill for this application, but I’ve used them in the past as Bluetooth controllers and use them today as NUT servers so 🤷‍♂️…

I’m already using Sendspin, so that’s my goal. I’d like casting capabilities, but I don’t think I’ll need it with Music Assistant and Sendspin.

Raspberry Pi on Alpine Linux

I found a guy who worked on a way to get the Raspberry Pi working with audio on Alpine Linux. This is gonna be less problematic than a full Debian install.

ESP32 Media Player

The Esparagus HiFi MediaLink also solves my problem. It is an ESP32 device that’s designed for this very purpose and even works with Sendspin in ESPHome!

Pros-Cons Comparison

Feature Raspberry Pi DAC hat Esparagus HiFi
Unit cost $18-20ea: I only need to buy the DAC hats and possibly a GPIO extender to ensure it sits properly. $40ea
US Import Tariffs Requires paying US tariffs (???%) Requires paying US tariffs (25%)
Case I’d need to 3D print one, and I’d have to find one tall enough with a hole. Comes as an aluminum chassis
Fleet Management No Yes (ESPHome and Home Assistant)
DAC PCM5100A PCM5100A
Ethernet (and PoE) Compatible with Ethernet → USB adapter No
Wi-Fi Yes Yes (external antenna)
Chromecast No No
Sendspin Yes Yes

Ended up going with the Pi route. I had 17 of the Zero and Zero 2 units which is plenty.

There are other hidden costs though such as:

  1. Needing standoffs to screw in the DAC hat.
  2. GPIO headers since my Zeros don’t have GPIO pins soldered (I bought the kind you hammer in).
  3. microSD cards
  4. PoE on-the-go power adapters.
  5. 3D printing a case or buying more and drilling a hole for the 3.5mm jack.

I already owned many of these things, but not enough.

Overall, it’s more expensive, but I trust the Pi more at the moment. I can look at ESPHome in the future when it’s more refined. I think the biggest reason I went with this route is the compact size. I like how little space the Chromecast Audio takes up, and that’s ultimately why I decided against the Esperagus ESP32 HiFi model.

Alpine Linux is not for me

I couldn’t figure out Alpine Linux. I can do it fine in Docker, but on the Pi, it couldn’t see the soundcard. I didn’t wanna fumble around with it anymore, so I simply went with Raspbian. It worked, so that’s all I care about right now.

I found a post on Reddit by chance where the guy said ESP32 S3 was better than the Pi Zero 2 because the Zero 2 has sync issues:

Reddit comment by mitrokun

esp32s3 is sufficient; it is not necessary to purchase a single-board computer. Moreover, I was unable to achieve a good level of synchronization on zero 2w. Due to the greater number of abstractions, the board lacks the computing power for minimal latency (although I do not rule out the possibility of creating an optimized image specifically for this task).

Esp, on the other hand, copes without any problems; I ran 5 devices in multi-room mode without any issues. All that remains is to find a high-quality DAC, and you have a ready-made solution for creating your own speaker.

I noticed this myself but blamed it on my jank setup syncing with a Chromecast device.

If this is true, I have to cancel my orders and go back to figuring out how to make the ESP32 method work for me.