Skip to content

ES9038Q2M Katana

The es9038q2m_katana platform allows ESPHome devices to control DAC boards that expose an ES9038Q2M through an Allo Katana-compatible control interface.

This platform integrates with the Audio DAC core and is intended for boards where the I²C bus does not access the DAC’s native register map directly. Instead, ESPHome talks to the board control interface at address 0x30, which then applies the corresponding configuration to the DAC.

The I²C Bus is required in your configuration. This platform is typically used together with an I²S Audio Speaker or another audio output component that supports Audio DAC.

The implementation is based on the Linux ASoC driver for the Allo Katana codec in the Raspberry Pi Linux kernel tree at sound/soc/bcm/allo-katana-codec.c.

NOTE

This platform has been tested with the InnoMaker RPI HIFI DAC PRO. Other boards exposing the same Allo Katana-compatible control interface at address 0x30 may also work.

# Example configuration entry
audio_dac:
- platform: es9038q2m_katana
  • filter_shape (Optional, enum): Selects the DAC digital filter. One of linear_phase_fast, linear_phase_slow, minimum_phase_fast, minimum_phase_slow, apodizing, hybrid, or brick_wall. Defaults to apodizing.
  • bits_per_sample (Optional, enum): The audio sample bit depth written to the format register during startup. One of 16bit, 24bit, or 32bit. Defaults to 16bit.
  • sample_rate (Optional, positive integer): The sample rate written to the format register during startup. One of 44100, 48000, 88200, 96000, 176400, 192000, 352800, or 384000. Defaults to 48000.
  • deemphasis (Optional, enum): Selects the de-emphasis curve. One of bypass, 32khz, 44_1khz, or 48khz. Defaults to bypass.
  • dop (Optional, boolean): Enables DoP mode on the control interface. Defaults to false.
  • dump_registers (Optional, boolean): Dumps the live register values to the log during configuration output. Intended for bring-up and debugging. Defaults to false.
  • address (Optional, int): The I²C address of the control interface. Defaults to 0x30.
  • i2c_id (Optional, ID): The ID of the I²C bus the device is connected to.
  • All other options from Audio DAC.

NOTE

bits_per_sample and sample_rate configure the control interface during startup. They should match the format used by the attached audio path.

NOTE

This platform configures stereo playback only and does not expose the raw ES9038Q2M register map.

NOTE

Enabling dop does not convert PCM audio into DoP. The upstream source must already send valid DoP frames.

All Audio DAC automations are supported by this platform.