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 flavours: 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

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 table below).
  • 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.

dtoverlay values

These are the DACs that are known to work with balenaSound. If your DAC is not on the list let us know, it's usually very simple to add support for new DACs:

DAC NameBALENA_HOST_CONFIG_dtoverlayWorking
Suptronics X400iqaudio-dacplusWith issues
Pimoroni Pirate Audiohifiberry-dacYes
Pimoroni pHAT DAChifiberry-dacYes
Justboom DAC HATjustboom-dacYes
Justboom Digi HATjustboom-digiYes
PisoundpisoundYes
InnoMakerallo-boss-dac-pcm512x-audioYes
Boss DAC v1.2allo-boss-dac-pcm512x-audioYes
miniBoss DACallo-boss-dac-pcm512x-audioYes
PiFi Digi+hifiberry-digiYes
IQaudIO Pi-DAC+iqaudio-dacplusYes
Hifiberry Amp2hifiberry-dacplusYes
Hifiberry DAC+hifiberry-dacplusYes
Hifiberry DAC+ Lighthifiberry-dacYes
Hifiberry DAC+ Standardhifiberry-dacplusYes
Hifiberry DAC+ Prohifiberry-dacplusYes
Hifiberry DAC Zerohifiberry-dacYes
Hifiberry Amp+hifiberry-ampYes
Hifiberry Digihifiberry-digiYes
Hifiberry Digi+hifiberry-digiYes
Hifiberry Beocreatehifiberry-dacYes
Hifiberry DAC+ DSPhifiberry-dacYes
Hifiberry MiniAmphifiberry-dacYes
Hifiberry DAC2 HDhifiberry-dacplushdYes
Adafruit I2S Audio Bonnet"hifiberry-dac”, “i2s-mmap”Yes
Adafruit MAX98357 I2S Class-D Mono Amp"hifiberry-dac”, “i2s-mmap”Yes