Edit on GitHub

Audio interfaces

If you want to upgrade the sound quality of your balenaSound devices, or if your board has no onboard soundcard, you'll probably want to add an external soundcard. Generally these come in two flavors: USB soundcards or DAC boards. Both alternatives are widely supported in balenaSound.

Checkout the customization section to learn how to select which audio interface to use. For a detailed and up to date list of what interfaces are supported on each device check out the audio block documentation section.

As a general rule of thumb, onboard and USB soundcards should work out of the box without any configuration, and DACs usually require setting a dtoverlay. Read on to learn more about the alternatives. If for any reason you can't get your soundcard to work, feel free to contact us and we'll gladly help out.

Onboard

While most boards have built-in soundcards it's well known that the quality you can get from them is not the greatest. For the Raspberry Pi family for example, the Pi Foundation does an excellent job at keeping the cost of their boards down, but that comes with some compromises with audio being one of them. The audio circuitry does an OK job, but it's nothing stellar. Onboard audiocards don't require any configuration.

USB Soundcards

USB soundcards are also supported without any special configuration needed. Just make sure you power cycle your device after plugging in the soundcard and you should be good to go.

DAC boards

Overview

balenaSound supports a wide variety of DACs, but in an ever-growing market, chances are your particular DAC might not work with the project just yet. Broadly speaking, it's a two step process in order for a DAC to be officially supported:

  1. the required kernel driver must be available in balenaOS
  2. adequate testing must be performed with balenaSound

Latest versions of balenaOS already ship with drivers for most, if not all, of the DACs available. The testing story, however, is different. It's not possible for us to test all of them individually as it would take an incredible amount of resources. For this reason, we rely on community contributions to help catalogue existing DACs into three categories:

  • Supported DACs: battle-tested, known to work with balenaSound.
  • Untested DACs: DACs whose drivers are included in balenaOS but haven't been tested with balenaSound (most likely because no balena team member has one).
  • Unsupported DACs: DACs that probably need additional drivers that aren't currently available in balenaOS.

A curated list for all three categories can be found in the sections below. If you don't find your DAC anywhere, please add a comment to this GitHub issue and we'll take a look for you.

Configuration

To get a DAC board to work with balenaSound you will need to enable its corresponding Device Tree Overlay. Thankfully balenaCloud makes this very easy to do.

In the balenaCloud dashboard:

  • Click on the specific device within the application and select Device configuration in the left-side menu.
  • Add an additional custom configuration variable called BALENA_HOST_CONFIG_dtoverlay. The value of this will depend on your DAC board (see tables below in each DAC category subsection).
  • Cycle the power by unplugging your pi.

DAC Configuration

If you're using multiple devices with multiple DACs for multi-room audio, you'll want to do this process per unique device that is using a DAC. Do not set this variable fleet-wide as it will affect every device within your application.

Supported DACs

These are the DACs that are known to work with balenaSound. If you have trouble setting one up, please reach us at our forums where we'll gladly help you troubleshoot the issue. Please do not create new GitHub issues for supported DACs unless you've been instructed to do so by our forums support agents.

DAC NameBALENA_HOST_CONFIG_dtoverlay
Suptronics X400iqaudio-dacplus
Pimoroni Pirate Audiohifiberry-dac
Pimoroni pHAT DAChifiberry-dac
Justboom DAC HAT/Zerojustboom-dac
Justboom Amp HAT/Zerojustboom-dac
Justboom Digi HAT/Zerojustboom-digi
Pisoundpisound
InnoMaker HiFi DAC HATallo-boss-dac-pcm512x-audio
InnoMaker HiFi Amp HAThifiberry-amp
Boss DAC v1.2allo-boss-dac-pcm512x-audio
miniBoss DACallo-boss-dac-pcm512x-audio
PiFi Digi+hifiberry-digi
IQaudIO Pi-DAC+iqaudio-dacplus
IQaudIO Pi-DAC Proiqaudio-dacplus
IQaudIO Pi-DACZeroiqaudio-dacplus
IQaudIO Pi-Digi+iqaudio-digi-wm8804-audio
IQaudIO Pi-DigiAMP+iqaudio-dacplus,unmute_amp
Hifiberry Amp2hifiberry-dacplus
Hifiberry DAC+hifiberry-dacplus
Hifiberry DAC+ Lighthifiberry-dac
Hifiberry DAC+ Standardhifiberry-dacplus
Hifiberry DAC+ Prohifiberry-dacplus
Hifiberry DAC Zerohifiberry-dac
Hifiberry Amp+hifiberry-amp
Hifiberry Digihifiberry-digi
Hifiberry Digi+hifiberry-digi
Hifiberry Beocreatehifiberry-dac
Hifiberry DAC+ DSPhifiberry-dac
Hifiberry MiniAmphifiberry-dac
Hifiberry DAC2 HDhifiberry-dacplushd
Adafruit I2S Audio Bonnet"hifiberry-dac","i2s-mmap"
Adafruit MAX98357 I2S Class-D Mono Amp"hifiberry-dac”,"i2s-mmap"
RasPiAudio Audio+ DAChifiberry-dac
AUDIOPHONICS I-Sabre DAC ES9023hifiberry-dac

Untested DACs

An up to date list of untested DACs can be found in this GitHub issue. If you have one of these DACs and want to help us test it, please post on our forums and we'll get back to you with instructions. Hopefully, with your assistance, new DACs can be graduated into the supported category!

Note: Please do not create new GitHub issues for untested DACs unless you've been instructed to do so by our forums support agents.

Unsupported DACs

An up to date list of unsupported DACs can be found in this GitHub issue. Unsupported DACs can be made to work with balenaSound but often will require further investigation and patching balenaOS, so they are best avoided. Please do create a new GitHub issue if you are working on adding support or testing an unsupported DAC as that will facilitate discussion with balenaSound developers.