menu "Audio Board" config I2S_USE_MSB_FORMAT bool default n help Specifies if the I2S should use MSB format instead. Some DACs (such as PT8211) need this enabled to ensure compatibility with their LSBJ timing under their native bit-depth. This option is only adjusted by the DAC choice and is not exposed to menuconfig. See https://github.com/schreibfaul1/ESP32-audioI2S/blob/1d9b299d0197f99fc70335295adcd226dc220f88/src/Audio.cpp#L4929 choice AUDIO_BOARD prompt "Audio board" default ESP_LYRAT_V4_3_BOARD help Select an audio board to use with the ESP-ADF config AUDIO_BOARD_CUSTOM bool "Custom audio board" config ESP_LYRAT_V4_3_BOARD bool "ESP32-Lyrat V4.3" config ESP_LYRAT_V4_2_BOARD bool "ESP32-Lyrat V4.2" config ESP_LYRATD_MSC_V2_1_BOARD bool "ESP32-LyraTD-MSC V2.1" config ESP_LYRATD_MSC_V2_2_BOARD bool "ESP32-LyraTD-MSC V2.2" config ESP_LYRAT_MINI_V1_1_BOARD bool "ESP32-Lyrat-Mini V1.1" config ESP32_KORVO_DU1906_BOARD bool "ESP32_KORVO_DU1906" config ESP32_S2_KALUGA_1_V1_2_BOARD bool "ESP32-S2-Kaluga-1 v1.2" config ESP_AI_THINKER_ES8388_BOARD bool "ESP-AI-Thinker-ES8388 v2.2" #config ESP32_S3_KORVO2_V3_BOARD # bool "ESP32-S3-Korvo-2 v3" #config ESP32_S3_KORVO2L_V1_BOARD # bool "ESP32-S3-Korvo-2L v1" #config ESP32_S3_BOX_LITE_BOARD # bool "ESP32-S3-BOX-Lite" #config ESP32_S3_BOX_BOARD # bool "ESP32-S3-BOX" #config ESP32_C3_LYRA_V2_BOARD # bool "ESP32-C3-Lyra-v2.0" #config ESP32_C6_DEVKIT_BOARD # bool "ESP32-C6-DEVKIT" endchoice choice ESP32_KORVO_DU1906_DAC prompt "ESP32 KORVO DU1906 Board DAC chip" depends on ESP32_KORVO_DU1906_BOARD default ESP32_KORVO_DU1906_DAC_TAS5805M help Select DAC chip to use on ESP32_KORVO_DU1906 board config ESP32_KORVO_DU1906_DAC_TAS5805M bool "ESP32_KORVO_DU1906_DAC_TAS5805M" config ESP32_KORVO_DU1906_DAC_ES7148 bool "ESP32_KORVO_DU1906_DAC_ES7148" endchoice choice ESP32_KORVO_DU1906_ADC prompt "ESP32 KORVO DU1906 Board ADC chip" depends on ESP32_KORVO_DU1906_BOARD default ESP32_KORVO_DU1906_ADC_ES7243 help Select ADC chip to use on ESP32_KORVO_DU1906 board config ESP32_KORVO_DU1906_ADC_ES7243 bool "ESP32_KORVO_DU1906_ADC_ES7243" endchoice menu "Custom Audio Board" depends on AUDIO_BOARD_CUSTOM choice GENERIC_BOARD_DAC prompt "DAC chip" default DAC_MA120 help Select a DAC connected to the generic ESP32 board config DAC_PCM51XX bool "TI PCM51XX/TAS57XX based DAC" config DAC_PCM5102A bool "TI PCM5102A based DAC" config DAC_MA120 bool "Infineon MA120 ClassD AMP" config DAC_MA120X0 bool "Infineon MA120X0 ClassD AMP" config DAC_ADAU1961 bool "Analog Devices ADAU1961 DAC" config DAC_MAX98357 bool "Analog Devices MAX98357 DAC" config DAC_TAS5805M bool "Texas Instruments TAS5805M" config DAC_PT8211 bool "Princeton Technology PT8211" select I2S_USE_MSB_FORMAT endchoice menu "DAC I2C control interface" config DAC_I2C_SDA int "SDA pin" default 12 if DAC_ADAU1961 default 21 if DAC_MA120 || DAC_PCM51XX || DAC_MA120 || DAC_MA120X0 || DAC_MAX98357 || DAC_PCM5102A || DAC_TAS5805M default -1 if DAC_PT8211 help I2C SDA pin of the DAC control interface config DAC_I2C_SCL int "SCL pin" default 14 if DAC_ADAU1961 default 22 if DAC_MA120 || DAC_PCM51XX || DAC_MA120 || DAC_MA120X0 || DAC_MAX98357 || DAC_PCM5102A default 27 if DAC_TAS5805M default -1 if DAC_PT8211 help I2C SCL pin of the DAC control interface config DAC_I2C_ADDR hex "I2C address" default 0x70 if DAC_ADAU1961 default 0x20 if DAC_MA120 || DAC_PCM51XX || DAC_MA120 || DAC_MA120X0 || DAC_MAX98357 || DAC_PCM5102A default 0x2D if DAC_TAS5805M default 0x00 if DAC_PT8211 help I2C Address of the DAC control interface endmenu menu "I2S master interface" config MASTER_I2S_MCLK_PIN int "Master i2s mclk" default 3 if DAC_ADAU1961 default 0 help Master audio interface master clock. config MASTER_I2S_BCK_PIN int "Master i2s bck" default 15 if DAC_ADAU1961 default 23 if DAC_MAX98357 default 26 if DAC_TAS5805M default 23 help Master audio interface bit clock. config MASTER_I2S_LRCK_PIN int "Master i2s lrck" default 13 if DAC_ADAU1961 default 24 if DAC_MAX98357 default 25 if DAC_TAS5805M default 2 help Master audio interface left/right sync clock. config MASTER_I2S_DATAOUT_PIN int "Master i2s data out" default 4 if DAC_ADAU1961 default 25 if DAC_MAX98357 default 22 if DAC_TAS5805M default 14 help Master audio interface data out. endmenu menu "DAC-Operation-Mode" depends on DAC_TAS5805M choice DAC_BRIDGE_MODE prompt "Bridge-Mode selection" default DAC_BRIDGE_MODE_DISABLED config DAC_BRIDGE_MODE_DISABLED bool "Stereo (bridge mode disabled)" config DAC_BRIDGE_MODE_MONO bool "Mono mode (Left + Right / 2)" config DAC_BRIDGE_MODE_LEFT bool "Output left input channel" config DAC_BRIDGE_MODE_RIGHT bool "Output right input channel" endchoice endmenu menu "Merus MA120x0 interface Configuration" depends on DAC_MA120X0 config MA120X0_NENABLE_PIN int "Master enable/disable for ma120x0" default 16 help GPIO number to control enable/disable. config MA120X0_NMUTE_PIN int "Master mute/unmute for ma120x0" default 2 help GPIO number to controm mute/unmute. config MERUS_NERR_PIN int "NERR monitor pin" default 21 help GPIO number to monitor NERROR. config MERUS_NCLIP_PIN int "Clip indication pin" default 22 help GPIO number low if clip observed endmenu menu "Merus MA120 interface Configuration" depends on DAC_MA120 config MA120_ENABLE_PIN int "Master enable/disable for ma120x0" default 16 help GPIO number to control enable/disable. config MA120_NMUTE_PIN int "Master mute/unmute for ma120x0" default 2 help GPIO number to controm mute/unmute. config MERUS_NERR_PIN int "NERR monitor pin" default 21 help GPIO number to monitor NERROR. config MERUS_NCLIP_PIN int "Clip indication pin" default 22 help GPIO number low if clip observed endmenu menu "TI PCM5102A interface Configuration" depends on DAC_PCM5102A config PCM5102A_MUTE_PIN int "Master mute/unmute for PCM5102A" default 18 help GPIO number to control mute/unmute. This is labeled "X(S)MT" on chip/boards endmenu menu "MAX98357 interface Configuration" depends on DAC_MAX98357 config MAX98357_MUTE_PIN int "Master mute/mode for MAX98357" default 18 help GPIO number to control mute/mode. This require a special resistor to select the correct mode. You need to put a serie resistor to select the mode (GPIO --> Resistor --> SD): LEFT only : 0ohm (direct connection) RIGHT only : 220Kohm (L+R)/2 : 1Mohm Refer to Analog Devices' doc for more infos. This is labeled "SD" on chip/boards. endmenu menu "PT8211 interface Configuration" depends on DAC_PT8211 config PT8211_MUTE_PIN int "Master mute/unmute" default -1 help GPIO number to control mute/unmute. Note that PT8211 does not have a mute control pin. This output is intended to control external circuit (e.g., amplifier). config PT8211_MUTE_ACTIVE_LOW bool "Mute active LOW" default false help Output LOW instead of HIGH on mute/unmute pin when in mute state. endmenu menu "Logic-Level-Settings" config INVERT_MCLK_LEVEL bool "Invert Logic Level MCLK" default false help Invert the Logic-Level of MCLK. config INVERT_WORD_SELECT_LEVEL bool "Invert Logic Level WordSelect" default false help Some Dacs can bridge their outputs. Word-Select is used for selecting the played audio channel. This will switch L/R. config INVERT_BCLK_LEVEL bool "Invert Logic Level BCLK" default false help Invert the Logic-Level of BCLK. endmenu endmenu endmenu