play on lyraTboard - no volume fast hack prove of concept

This commit is contained in:
jorgenkraghjakobsen
2020-06-11 00:32:21 +02:00
Unverified
parent b063b3d7fd
commit 01ecba26e6
7 changed files with 432 additions and 121 deletions

View File

@@ -2,6 +2,6 @@
# CMakeLists in this exact order for cmake to work correctly
cmake_minimum_required(VERSION 3.5)
include($ENV{ADF_PATH}/CMakeLists.txt)
include($ENV{IDF_PATH}/tools/cmake/project.cmake)
project(snapclient)

View File

@@ -15,7 +15,9 @@ I have continued the work from @badaix and @bridadan towards a ESP32 Snapcast cl
Please check out the task list and feel free to fill in.
I have used the Infineon MA12070P Multi level Class D combined coded/amp due to its superior power effecienty on a high supply rail. It allow me to battery power system with good play back time at normal listen level and stil have the power to start the party.
I have used the Infineon MA12070P Multi level Class D combined coded/amp due to its superior power effecienty on a high supply rail. It allows battery power system with good playback time at normal listen level and stil have the power to start the party.
### Codebase
The codebase is split into components and build on vanilla ESP-IDF. I stil have some refactoring on the todo list as the concept has started to settle and allow for new features can be added in a stuctured manner. In the code you will find parts that are only partly related features and still not on the task list.
Components
@@ -27,6 +29,21 @@ Components
- esp-dsp : Port of ESP-DSP library - stripped version - submodule considered
- dsp_processor : Audio Processor and I2S low level interface including sync buffer
### Hardware
- ESP pinout MA12070P
------------------------------------------------------
-> I2S_BCK Audio Clock 3.072 MHz
-> I2S_WS Frame Word Select or L/R
-> GND Ground
-> I2S_DI Audio data 24bits LSB first
-> MCLK Master clk connect to I2S_BCK
-> I2C_SCL I2C clock
-> I2C_SDA I2C Data
-> GND Ground
-> NENABLE Amplifier Enable active low
-> NMUTE Amplifier Mute active low
## Build
Clone this repo:

View File

@@ -7,6 +7,12 @@ menu "ESP32 audio buffer and I2S pin config"
help
Need wrover class modules with large SPRAM to have required buffers for Snapcast network delay
config BITS_PER_SAMPLE
int "bits per sample output to i2s driver"
default 32
help
Select number of bits per sample for codec configed and connected to esp32 i2s dma hw
config MASTER_I2S_BCK_PIN
int "Master i2s bck"
default 23

View File

@@ -10,16 +10,19 @@
#include "dsps_biquad_gen.h"
#include "dsps_biquad.h"
//#include "websocket_if.h"
#include "dsp_processor.h"
uint32_t bits_per_sample = CONFIG_BITS_PER_SAMPLE;
static xTaskHandle s_dsp_i2s_task_handle = NULL;
static RingbufHandle_t s_ringbuf_i2s = NULL;
extern xQueueHandle i2s_queue;
extern uint32_t buffer_ms;
extern uint8_t muteCH[4];
uint dspFlow = dspfStereo;
ptype_t bq[6];
@@ -29,7 +32,7 @@ void setup_dsp_i2s(uint32_t sample_rate, bool slave_i2s)
i2s_config_t i2s_config0 = {
.mode = I2S_MODE_MASTER | I2S_MODE_TX, // Only TX
.sample_rate = sample_rate,
.bits_per_sample = 32,
.bits_per_sample = bits_per_sample,
.channel_format = I2S_CHANNEL_FMT_RIGHT_LEFT, // 2-channels
.communication_format = I2S_COMM_FORMAT_I2S | I2S_COMM_FORMAT_I2S_MSB,
.dma_buf_count = 8,
@@ -46,7 +49,7 @@ void setup_dsp_i2s(uint32_t sample_rate, bool slave_i2s)
.data_out_num = CONFIG_MASTER_I2S_DATAOUT_PIN,
.data_in_num = -1 //Not used
};
i2s_driver_install(0, &i2s_config0, 7, &i2s_queue);
i2s_zero_dma_buffer(0);
i2s_set_pin(0, &pin_config0);
@@ -54,7 +57,7 @@ void setup_dsp_i2s(uint32_t sample_rate, bool slave_i2s)
i2s_config_t i2s_config1 = {
.mode = I2S_MODE_SLAVE | I2S_MODE_TX, // Only TX - Slave channel
.sample_rate = sample_rate,
.bits_per_sample = 32,
.bits_per_sample = bits_per_sample,
.channel_format = I2S_CHANNEL_FMT_RIGHT_LEFT, // 2-channels
.communication_format = I2S_COMM_FORMAT_I2S_MSB,
.dma_buf_count = 8,
@@ -169,7 +172,11 @@ static void dsp_i2s_task_handler(void *arg)
audio[i*4+2] = (muteCH[1] == 1)? 0 : audio[i*4+2];
audio[i*4+3] = (muteCH[1] == 1)? 0 : audio[i*4+3];
}
i2s_write_expand(0, (char*)audio, chunk_size,16,32, &bytes_written, portMAX_DELAY);
if (bits_per_sample == 16) {
i2s_write(0,(char*)audio, chunk_size, &bytes_written, portMAX_DELAY);
} else
{ i2s_write_expand(0, (char*)audio, chunk_size,16,32, &bytes_written, portMAX_DELAY);
}
}
break;
case dspfBiamp :

View File

@@ -15,6 +15,11 @@
#include "esp_log.h"
#include "nvs_flash.h"
//ESP-IDF stuff
#include "board.h"
//#include "audio_element.h"
#include "es8388.h"
#include "lwip/err.h"
#include "lwip/sockets.h"
@@ -354,7 +359,6 @@ static void http_get_task(void *pvParameters)
result = base_message_deserialize(&base_message, buff, size);
if (result) {
ESP_LOGI(TAG, "Failed to read base message: %d\r\n", result);
// TODO there should be a big circular buffer or something for this
return;
}
diff = (int32_t)(base_message.sent.usec-now.tv_usec)/1000 ;
@@ -395,16 +399,21 @@ static void http_get_task(void *pvParameters)
}
ESP_LOGI(TAG, "Received codec header message\r\n");
size = codec_header_message.size;
start = codec_header_message.payload;
ESP_LOGI(TAG, "Codec : %s , Size: %d \n",codec_header_message.codec,size);
if (strcmp(codec_header_message.codec,"opus") == 0) {
ESP_LOGI(TAG, "Codec : %s , Size: %d \n",codec_header_message.codec,size);
} else
{
ESP_LOGI(TAG, "Codec : %s not supported\n",codec_header_message.codec);
ESP_LOGI(TAG, "Change encoder codec to opus in /etc/snapserver.conf on server\n");
return;
}
uint32_t rate;
memcpy(&rate, start+4,sizeof(rate));
uint16_t bits;
memcpy(&bits, start+8,sizeof(bits));
//uint16_t channels;
memcpy(&channels, start+10,sizeof(channels));
ESP_LOGI(TAG, "Opus sampleformat: %d:%d:%d\n",rate,bits,channels);
int error = 0;
@@ -628,7 +637,12 @@ void app_main(void)
//setup_ma120();
//ma120_setup_audio(0x20);
setup_ma120x0();
ESP_LOGI(TAG, "[ 2 ] Start codec chip");
audio_board_handle_t board_handle = audio_board_init();
audio_hal_ctrl_codec(board_handle->audio_hal, AUDIO_HAL_CODEC_MODE_BOTH, AUDIO_HAL_CTRL_START);
es8388_read_all();
i2s_mclk_gpio_select(0,0);
//setup_ma120x0();
//setup_rtp_i2s();

242
sdkconfig
View File

@@ -2,6 +2,7 @@
# Automatically generated file. DO NOT EDIT.
# Espressif IoT Development Framework (ESP-IDF) Project Configuration
#
CONFIG_IDF_CMAKE=y
CONFIG_IDF_TARGET="esp32"
CONFIG_IDF_TARGET_ESP32=y
CONFIG_IDF_FIRMWARE_CHIP_ID=0x0000
@@ -10,8 +11,6 @@ CONFIG_IDF_FIRMWARE_CHIP_ID=0x0000
# SDK tool configuration
#
CONFIG_SDK_TOOLPREFIX="xtensa-esp32-elf-"
CONFIG_SDK_PYTHON="python"
CONFIG_SDK_MAKE_WARN_UNDEFINED_VARIABLES=y
# CONFIG_SDK_TOOLCHAIN_SUPPORTS_TIME_WIDE_64_BITS is not set
# end of SDK tool configuration
@@ -25,19 +24,6 @@ CONFIG_APP_BUILD_BOOTLOADER=y
CONFIG_APP_BUILD_USE_FLASH_SECTIONS=y
# end of Build type
#
# Merus MA120x0 interface Configuration
#
CONFIG_MA120X0_NENABLE_PIN=13
CONFIG_MA120X0_NMUTE_PIN=12
CONFIG_MA120X0_ENABLE_PIN=5
CONFIG_MA120X0_NERR_PIN=34
CONFIG_MA120X0_NCLIP_PIN=35
CONFIG_MA120X0_SCL_PIN=32
CONFIG_MA120X0_SDA_PIN=33
CONFIG_MA120X0_I2C_ADDR=0x20
# end of Merus MA120x0 interface Configuration
#
# Application manager
#
@@ -81,30 +67,10 @@ CONFIG_BOOTLOADER_RESERVE_RTC_SIZE=0
# CONFIG_SECURE_FLASH_ENC_ENABLED is not set
# end of Security features
#
# ESP32 audio buffer and I2S pin config
#
CONFIG_USE_PSRAM=y
CONFIG_MASTER_I2S_BCK_PIN=25
CONFIG_MASTER_I2S_LRCK_PIN=26
CONFIG_MASTER_I2S_DATAOUT_PIN=27
CONFIG_SLAVE_I2S_BCK_PIN=26
CONFIG_SLAVE_I2S_LRCK_PIN=12
CONFIG_SLAVE_I2S_DATAOUT_PIN=5
# end of ESP32 audio buffer and I2S pin config
#
# Serial flasher config
#
CONFIG_ESPTOOLPY_PORT="/dev/ttyUSB0"
CONFIG_ESPTOOLPY_BAUD_115200B=y
# CONFIG_ESPTOOLPY_BAUD_230400B is not set
# CONFIG_ESPTOOLPY_BAUD_921600B is not set
# CONFIG_ESPTOOLPY_BAUD_2MB is not set
# CONFIG_ESPTOOLPY_BAUD_OTHER is not set
CONFIG_ESPTOOLPY_BAUD_OTHER_VAL=115200
CONFIG_ESPTOOLPY_BAUD=115200
CONFIG_ESPTOOLPY_COMPRESSED=y
# CONFIG_ESPTOOLPY_FLASHMODE_QIO is not set
# CONFIG_ESPTOOLPY_FLASHMODE_QOUT is not set
CONFIG_ESPTOOLPY_FLASHMODE_DIO=y
@@ -151,6 +117,180 @@ CONFIG_PARTITION_TABLE_OFFSET=0x8000
# CONFIG_PARTITION_TABLE_MD5 is not set
# end of Partition Table
#
# Merus MA120x0 interface Configuration
#
CONFIG_MA120X0_NENABLE_PIN=13
CONFIG_MA120X0_NMUTE_PIN=12
CONFIG_MA120X0_ENABLE_PIN=5
CONFIG_MA120X0_NERR_PIN=34
CONFIG_MA120X0_NCLIP_PIN=35
CONFIG_MA120X0_SCL_PIN=32
CONFIG_MA120X0_SDA_PIN=33
CONFIG_MA120X0_I2C_ADDR=0x20
# end of Merus MA120x0 interface Configuration
#
# ESP32 audio buffer and I2S pin config
#
CONFIG_USE_PSRAM=y
CONFIG_BITS_PER_SAMPLE=16
CONFIG_MASTER_I2S_BCK_PIN=5
CONFIG_MASTER_I2S_LRCK_PIN=25
CONFIG_MASTER_I2S_DATAOUT_PIN=26
CONFIG_SLAVE_I2S_BCK_PIN=26
CONFIG_SLAVE_I2S_LRCK_PIN=12
CONFIG_SLAVE_I2S_DATAOUT_PIN=5
# end of ESP32 audio buffer and I2S pin config
#
# Audio HAL
#
# CONFIG_AUDIO_BOARD_CUSTOM is not set
CONFIG_ESP_LYRAT_V4_3_BOARD=y
# CONFIG_ESP_LYRAT_V4_2_BOARD is not set
# CONFIG_ESP_LYRATD_MSC_V2_1_BOARD is not set
# CONFIG_ESP_LYRATD_MSC_V2_2_BOARD is not set
# CONFIG_ESP_LYRAT_MINI_V1_1_BOARD is not set
# CONFIG_ESP32_KORVO_DU1906_BOARD is not set
# CONFIG_ESP32_S2_KALUGA_1_V1_2_BOARD is not set
# end of Audio HAL
#
# Recorder Engine Configuration
#
# CONFIG_REC_ENG_ENABLE_VAD_ONLY is not set
# CONFIG_REC_ENG_ENABLE_VAD_WWE is not set
CONFIG_REC_ENG_ENABLE_VAD_WWE_AMR=y
# end of Recorder Engine Configuration
#
# ESP Speech Recognition
#
# CONFIG_SR_MODEL_WN3_QUANT is not set
# CONFIG_SR_MODEL_WN4_QUANT is not set
CONFIG_SR_MODEL_WN5_QUANT=y
# CONFIG_SR_MODEL_WN6_QUANT is not set
CONFIG_SR_WN5_HILEXIN=y
# CONFIG_SR_WN5X2_HILEXIN is not set
# CONFIG_SR_WN5X3_HILEXIN is not set
# CONFIG_SR_WN5_NIHAOXIAOZHI is not set
# CONFIG_SR_WN5X2_NIHAOXIAOZHI is not set
# CONFIG_SR_WN5X3_NIHAOXIAOZHI is not set
# CONFIG_SR_WN5X3_HIJESON is not set
# CONFIG_SR_WN5X3_NIHAOXIAOXIN is not set
# CONFIG_SR_WN5_CUSTOMIZED_WORD is not set
CONFIG_SR_MN1_MODEL_QUANT=y
CONFIG_SR_MN1_CHINESE=y
# CONFIG_SR_MN1_ENGLISH is not set
CONFIG_SPEECH_COMMANDS_NUM=20
#
# Add speech commands
#
CONFIG_CN_SPEECH_COMMAND_ID0="da kai kong tiao"
CONFIG_CN_SPEECH_COMMAND_ID1="guan bi kong tiao"
CONFIG_CN_SPEECH_COMMAND_ID2="zeng da feng su"
CONFIG_CN_SPEECH_COMMAND_ID3="jian xiao feng su"
CONFIG_CN_SPEECH_COMMAND_ID4="sheng gao yi du"
CONFIG_CN_SPEECH_COMMAND_ID5="jiang di yi du"
CONFIG_CN_SPEECH_COMMAND_ID6="zhi re mo shi"
CONFIG_CN_SPEECH_COMMAND_ID7="zhi leng mo shi"
CONFIG_CN_SPEECH_COMMAND_ID8="song feng mo shi"
CONFIG_CN_SPEECH_COMMAND_ID9="jie neng mo shi"
CONFIG_CN_SPEECH_COMMAND_ID10="guan bi jie neng mo shi"
CONFIG_CN_SPEECH_COMMAND_ID11="chu shi mo shi"
CONFIG_CN_SPEECH_COMMAND_ID12="guan bi chu shi mo shi"
CONFIG_CN_SPEECH_COMMAND_ID13="da kai lan ya"
CONFIG_CN_SPEECH_COMMAND_ID14="guan bi lan ya"
CONFIG_CN_SPEECH_COMMAND_ID15="bo fang ge qu"
CONFIG_CN_SPEECH_COMMAND_ID16="zan ting bo fang"
CONFIG_CN_SPEECH_COMMAND_ID17="ding shi yi xiao shi"
CONFIG_CN_SPEECH_COMMAND_ID18="da kai dian deng"
CONFIG_CN_SPEECH_COMMAND_ID19="guan bi dian deng"
CONFIG_CN_SPEECH_COMMAND_ID20=""
CONFIG_CN_SPEECH_COMMAND_ID21=""
CONFIG_CN_SPEECH_COMMAND_ID22=""
CONFIG_CN_SPEECH_COMMAND_ID23=""
CONFIG_CN_SPEECH_COMMAND_ID24=""
CONFIG_CN_SPEECH_COMMAND_ID25=""
CONFIG_CN_SPEECH_COMMAND_ID26=""
CONFIG_CN_SPEECH_COMMAND_ID27=""
CONFIG_CN_SPEECH_COMMAND_ID28=""
CONFIG_CN_SPEECH_COMMAND_ID29=""
CONFIG_CN_SPEECH_COMMAND_ID30=""
CONFIG_CN_SPEECH_COMMAND_ID31=""
CONFIG_CN_SPEECH_COMMAND_ID32=""
CONFIG_CN_SPEECH_COMMAND_ID33=""
CONFIG_CN_SPEECH_COMMAND_ID34=""
CONFIG_CN_SPEECH_COMMAND_ID35=""
CONFIG_CN_SPEECH_COMMAND_ID36=""
CONFIG_CN_SPEECH_COMMAND_ID37=""
CONFIG_CN_SPEECH_COMMAND_ID38=""
CONFIG_CN_SPEECH_COMMAND_ID39=""
CONFIG_CN_SPEECH_COMMAND_ID40=""
CONFIG_CN_SPEECH_COMMAND_ID41=""
CONFIG_CN_SPEECH_COMMAND_ID42=""
CONFIG_CN_SPEECH_COMMAND_ID43=""
CONFIG_CN_SPEECH_COMMAND_ID44=""
CONFIG_CN_SPEECH_COMMAND_ID45=""
CONFIG_CN_SPEECH_COMMAND_ID46=""
CONFIG_CN_SPEECH_COMMAND_ID47=""
CONFIG_CN_SPEECH_COMMAND_ID48=""
CONFIG_CN_SPEECH_COMMAND_ID49=""
CONFIG_CN_SPEECH_COMMAND_ID50=""
CONFIG_CN_SPEECH_COMMAND_ID51=""
CONFIG_CN_SPEECH_COMMAND_ID52=""
CONFIG_CN_SPEECH_COMMAND_ID53=""
CONFIG_CN_SPEECH_COMMAND_ID54=""
CONFIG_CN_SPEECH_COMMAND_ID55=""
CONFIG_CN_SPEECH_COMMAND_ID56=""
CONFIG_CN_SPEECH_COMMAND_ID57=""
CONFIG_CN_SPEECH_COMMAND_ID58=""
CONFIG_CN_SPEECH_COMMAND_ID59=""
CONFIG_CN_SPEECH_COMMAND_ID60=""
CONFIG_CN_SPEECH_COMMAND_ID61=""
CONFIG_CN_SPEECH_COMMAND_ID62=""
CONFIG_CN_SPEECH_COMMAND_ID63=""
CONFIG_CN_SPEECH_COMMAND_ID64=""
CONFIG_CN_SPEECH_COMMAND_ID65=""
CONFIG_CN_SPEECH_COMMAND_ID66=""
CONFIG_CN_SPEECH_COMMAND_ID67=""
CONFIG_CN_SPEECH_COMMAND_ID68=""
CONFIG_CN_SPEECH_COMMAND_ID69=""
CONFIG_CN_SPEECH_COMMAND_ID70=""
CONFIG_CN_SPEECH_COMMAND_ID71=""
CONFIG_CN_SPEECH_COMMAND_ID72=""
CONFIG_CN_SPEECH_COMMAND_ID73=""
CONFIG_CN_SPEECH_COMMAND_ID74=""
CONFIG_CN_SPEECH_COMMAND_ID75=""
CONFIG_CN_SPEECH_COMMAND_ID76=""
CONFIG_CN_SPEECH_COMMAND_ID77=""
CONFIG_CN_SPEECH_COMMAND_ID78=""
CONFIG_CN_SPEECH_COMMAND_ID79=""
CONFIG_CN_SPEECH_COMMAND_ID80=""
CONFIG_CN_SPEECH_COMMAND_ID81=""
CONFIG_CN_SPEECH_COMMAND_ID82=""
CONFIG_CN_SPEECH_COMMAND_ID83=""
CONFIG_CN_SPEECH_COMMAND_ID84=""
CONFIG_CN_SPEECH_COMMAND_ID85=""
CONFIG_CN_SPEECH_COMMAND_ID86=""
CONFIG_CN_SPEECH_COMMAND_ID87=""
CONFIG_CN_SPEECH_COMMAND_ID88=""
CONFIG_CN_SPEECH_COMMAND_ID89=""
CONFIG_CN_SPEECH_COMMAND_ID90=""
CONFIG_CN_SPEECH_COMMAND_ID91=""
CONFIG_CN_SPEECH_COMMAND_ID92=""
CONFIG_CN_SPEECH_COMMAND_ID93=""
CONFIG_CN_SPEECH_COMMAND_ID94=""
CONFIG_CN_SPEECH_COMMAND_ID95=""
CONFIG_CN_SPEECH_COMMAND_ID96=""
CONFIG_CN_SPEECH_COMMAND_ID97=""
CONFIG_CN_SPEECH_COMMAND_ID98=""
CONFIG_CN_SPEECH_COMMAND_ID99=""
# end of Add speech commands
# end of ESP Speech Recognition
#
# Compiler options
#
@@ -373,23 +513,6 @@ CONFIG_ESP32_DPORT_DIS_INTERRUPT_LVL=5
# CONFIG_PM_ENABLE is not set
# end of Power Management
#
# Memory protection
#
CONFIG_ESP32S2_MEMPROT_FEATURE=y
CONFIG_ESP32S2_MEMPROT_FEATURE_LOCK=y
# end of Memory protection
#
# Cache config
#
# end of Cache config
CONFIG_ESP32S2_TRACEMEM_RESERVE_DRAM=0x0
CONFIG_ESP32S2_ULP_COPROC_RESERVE_MEM=0
CONFIG_ESP32S2_DEBUG_OCDAWARE=y
CONFIG_ESP32S2_BROWNOUT_DET=y
#
# ADC-Calibration
#
@@ -1033,6 +1156,18 @@ CONFIG_SPIFFS_USE_MTIME=y
# end of Debug Configuration
# end of SPIFFS Configuration
#
# TinyUSB
#
#
# Descriptor configuration
#
CONFIG_USB_DESC_CUSTOM_VID=0x1234
CONFIG_USB_DESC_CUSTOM_PID=0x5678
# end of Descriptor configuration
# end of TinyUSB
#
# Unity unit testing library
#
@@ -1095,8 +1230,6 @@ CONFIG_WPA_MBEDTLS_CRYPTO=y
# Deprecated options for backward compatibility
CONFIG_TOOLPREFIX="xtensa-esp32-elf-"
CONFIG_PYTHON="python"
CONFIG_MAKE_WARN_UNDEFINED_VARIABLES=y
# CONFIG_LOG_BOOTLOADER_LEVEL_NONE is not set
# CONFIG_LOG_BOOTLOADER_LEVEL_ERROR is not set
# CONFIG_LOG_BOOTLOADER_LEVEL_WARN is not set
@@ -1165,7 +1298,6 @@ CONFIG_ESP32_RTC_CLOCK_SOURCE_INTERNAL_RC=y
# CONFIG_DISABLE_BASIC_ROM_CONSOLE is not set
# CONFIG_NO_BLOBS is not set
# CONFIG_COMPATIBLE_PRE_V2_1_BOOTLOADERS is not set
# CONFIG_WIFI_LWIP_ALLOCATION_FROM_SPIRAM_FIRST is not set
CONFIG_SYSTEM_EVENT_QUEUE_SIZE=32
CONFIG_SYSTEM_EVENT_TASK_STACK_SIZE=2304
CONFIG_MAIN_TASK_STACK_SIZE=3584

View File

@@ -2,6 +2,7 @@
# Automatically generated file. DO NOT EDIT.
# Espressif IoT Development Framework (ESP-IDF) Project Configuration
#
CONFIG_IDF_CMAKE=y
CONFIG_IDF_TARGET="esp32"
CONFIG_IDF_TARGET_ESP32=y
CONFIG_IDF_FIRMWARE_CHIP_ID=0x0000
@@ -10,8 +11,6 @@ CONFIG_IDF_FIRMWARE_CHIP_ID=0x0000
# SDK tool configuration
#
CONFIG_SDK_TOOLPREFIX="xtensa-esp32-elf-"
CONFIG_SDK_PYTHON="python"
CONFIG_SDK_MAKE_WARN_UNDEFINED_VARIABLES=y
# CONFIG_SDK_TOOLCHAIN_SUPPORTS_TIME_WIDE_64_BITS is not set
# end of SDK tool configuration
@@ -25,19 +24,6 @@ CONFIG_APP_BUILD_BOOTLOADER=y
CONFIG_APP_BUILD_USE_FLASH_SECTIONS=y
# end of Build type
#
# Merus MA120x0 interface Configuration
#
CONFIG_MA120X0_NENABLE_PIN=13
CONFIG_MA120X0_NMUTE_PIN=12
CONFIG_MA120X0_ENABLE_PIN=5
CONFIG_MA120X0_NERR_PIN=34
CONFIG_MA120X0_NCLIP_PIN=35
CONFIG_MA120X0_SCL_PIN=32
CONFIG_MA120X0_SDA_PIN=33
CONFIG_MA120X0_I2C_ADDR=0x20
# end of Merus MA120x0 interface Configuration
#
# Application manager
#
@@ -81,30 +67,10 @@ CONFIG_BOOTLOADER_RESERVE_RTC_SIZE=0
# CONFIG_SECURE_FLASH_ENC_ENABLED is not set
# end of Security features
#
# ESP32 audio I2S config
#
# CONFIG_USE_PSRAM is not set
CONFIG_MASTER_I2S_BCK_PIN=25
CONFIG_MASTER_I2S_LRCK_PIN=26
CONFIG_MASTER_I2S_DATAOUT_PIN=27
CONFIG_SLAVE_I2S_BCK_PIN=26
CONFIG_SLAVE_I2S_LRCK_PIN=12
CONFIG_SLAVE_I2S_DATAOUT_PIN=5
# end of ESP32 audio I2S config
#
# Serial flasher config
#
CONFIG_ESPTOOLPY_PORT="/dev/ttyUSB0"
CONFIG_ESPTOOLPY_BAUD_115200B=y
# CONFIG_ESPTOOLPY_BAUD_230400B is not set
# CONFIG_ESPTOOLPY_BAUD_921600B is not set
# CONFIG_ESPTOOLPY_BAUD_2MB is not set
# CONFIG_ESPTOOLPY_BAUD_OTHER is not set
CONFIG_ESPTOOLPY_BAUD_OTHER_VAL=115200
CONFIG_ESPTOOLPY_BAUD=115200
CONFIG_ESPTOOLPY_COMPRESSED=y
# CONFIG_ESPTOOLPY_FLASHMODE_QIO is not set
# CONFIG_ESPTOOLPY_FLASHMODE_QOUT is not set
CONFIG_ESPTOOLPY_FLASHMODE_DIO=y
@@ -151,6 +117,180 @@ CONFIG_PARTITION_TABLE_OFFSET=0x8000
# CONFIG_PARTITION_TABLE_MD5 is not set
# end of Partition Table
#
# Merus MA120x0 interface Configuration
#
CONFIG_MA120X0_NENABLE_PIN=13
CONFIG_MA120X0_NMUTE_PIN=12
CONFIG_MA120X0_ENABLE_PIN=5
CONFIG_MA120X0_NERR_PIN=34
CONFIG_MA120X0_NCLIP_PIN=35
CONFIG_MA120X0_SCL_PIN=32
CONFIG_MA120X0_SDA_PIN=33
CONFIG_MA120X0_I2C_ADDR=0x20
# end of Merus MA120x0 interface Configuration
#
# ESP32 audio buffer and I2S pin config
#
CONFIG_USE_PSRAM=y
CONFIG_BITS_PER_SAMPLE=32
CONFIG_MASTER_I2S_BCK_PIN=25
CONFIG_MASTER_I2S_LRCK_PIN=26
CONFIG_MASTER_I2S_DATAOUT_PIN=27
CONFIG_SLAVE_I2S_BCK_PIN=26
CONFIG_SLAVE_I2S_LRCK_PIN=12
CONFIG_SLAVE_I2S_DATAOUT_PIN=5
# end of ESP32 audio buffer and I2S pin config
#
# Audio HAL
#
# CONFIG_AUDIO_BOARD_CUSTOM is not set
CONFIG_ESP_LYRAT_V4_3_BOARD=y
# CONFIG_ESP_LYRAT_V4_2_BOARD is not set
# CONFIG_ESP_LYRATD_MSC_V2_1_BOARD is not set
# CONFIG_ESP_LYRATD_MSC_V2_2_BOARD is not set
# CONFIG_ESP_LYRAT_MINI_V1_1_BOARD is not set
# CONFIG_ESP32_KORVO_DU1906_BOARD is not set
# CONFIG_ESP32_S2_KALUGA_1_V1_2_BOARD is not set
# end of Audio HAL
#
# Recorder Engine Configuration
#
# CONFIG_REC_ENG_ENABLE_VAD_ONLY is not set
# CONFIG_REC_ENG_ENABLE_VAD_WWE is not set
CONFIG_REC_ENG_ENABLE_VAD_WWE_AMR=y
# end of Recorder Engine Configuration
#
# ESP Speech Recognition
#
# CONFIG_SR_MODEL_WN3_QUANT is not set
# CONFIG_SR_MODEL_WN4_QUANT is not set
CONFIG_SR_MODEL_WN5_QUANT=y
# CONFIG_SR_MODEL_WN6_QUANT is not set
CONFIG_SR_WN5_HILEXIN=y
# CONFIG_SR_WN5X2_HILEXIN is not set
# CONFIG_SR_WN5X3_HILEXIN is not set
# CONFIG_SR_WN5_NIHAOXIAOZHI is not set
# CONFIG_SR_WN5X2_NIHAOXIAOZHI is not set
# CONFIG_SR_WN5X3_NIHAOXIAOZHI is not set
# CONFIG_SR_WN5X3_HIJESON is not set
# CONFIG_SR_WN5X3_NIHAOXIAOXIN is not set
# CONFIG_SR_WN5_CUSTOMIZED_WORD is not set
CONFIG_SR_MN1_MODEL_QUANT=y
CONFIG_SR_MN1_CHINESE=y
# CONFIG_SR_MN1_ENGLISH is not set
CONFIG_SPEECH_COMMANDS_NUM=20
#
# Add speech commands
#
CONFIG_CN_SPEECH_COMMAND_ID0="da kai kong tiao"
CONFIG_CN_SPEECH_COMMAND_ID1="guan bi kong tiao"
CONFIG_CN_SPEECH_COMMAND_ID2="zeng da feng su"
CONFIG_CN_SPEECH_COMMAND_ID3="jian xiao feng su"
CONFIG_CN_SPEECH_COMMAND_ID4="sheng gao yi du"
CONFIG_CN_SPEECH_COMMAND_ID5="jiang di yi du"
CONFIG_CN_SPEECH_COMMAND_ID6="zhi re mo shi"
CONFIG_CN_SPEECH_COMMAND_ID7="zhi leng mo shi"
CONFIG_CN_SPEECH_COMMAND_ID8="song feng mo shi"
CONFIG_CN_SPEECH_COMMAND_ID9="jie neng mo shi"
CONFIG_CN_SPEECH_COMMAND_ID10="guan bi jie neng mo shi"
CONFIG_CN_SPEECH_COMMAND_ID11="chu shi mo shi"
CONFIG_CN_SPEECH_COMMAND_ID12="guan bi chu shi mo shi"
CONFIG_CN_SPEECH_COMMAND_ID13="da kai lan ya"
CONFIG_CN_SPEECH_COMMAND_ID14="guan bi lan ya"
CONFIG_CN_SPEECH_COMMAND_ID15="bo fang ge qu"
CONFIG_CN_SPEECH_COMMAND_ID16="zan ting bo fang"
CONFIG_CN_SPEECH_COMMAND_ID17="ding shi yi xiao shi"
CONFIG_CN_SPEECH_COMMAND_ID18="da kai dian deng"
CONFIG_CN_SPEECH_COMMAND_ID19="guan bi dian deng"
CONFIG_CN_SPEECH_COMMAND_ID20=""
CONFIG_CN_SPEECH_COMMAND_ID21=""
CONFIG_CN_SPEECH_COMMAND_ID22=""
CONFIG_CN_SPEECH_COMMAND_ID23=""
CONFIG_CN_SPEECH_COMMAND_ID24=""
CONFIG_CN_SPEECH_COMMAND_ID25=""
CONFIG_CN_SPEECH_COMMAND_ID26=""
CONFIG_CN_SPEECH_COMMAND_ID27=""
CONFIG_CN_SPEECH_COMMAND_ID28=""
CONFIG_CN_SPEECH_COMMAND_ID29=""
CONFIG_CN_SPEECH_COMMAND_ID30=""
CONFIG_CN_SPEECH_COMMAND_ID31=""
CONFIG_CN_SPEECH_COMMAND_ID32=""
CONFIG_CN_SPEECH_COMMAND_ID33=""
CONFIG_CN_SPEECH_COMMAND_ID34=""
CONFIG_CN_SPEECH_COMMAND_ID35=""
CONFIG_CN_SPEECH_COMMAND_ID36=""
CONFIG_CN_SPEECH_COMMAND_ID37=""
CONFIG_CN_SPEECH_COMMAND_ID38=""
CONFIG_CN_SPEECH_COMMAND_ID39=""
CONFIG_CN_SPEECH_COMMAND_ID40=""
CONFIG_CN_SPEECH_COMMAND_ID41=""
CONFIG_CN_SPEECH_COMMAND_ID42=""
CONFIG_CN_SPEECH_COMMAND_ID43=""
CONFIG_CN_SPEECH_COMMAND_ID44=""
CONFIG_CN_SPEECH_COMMAND_ID45=""
CONFIG_CN_SPEECH_COMMAND_ID46=""
CONFIG_CN_SPEECH_COMMAND_ID47=""
CONFIG_CN_SPEECH_COMMAND_ID48=""
CONFIG_CN_SPEECH_COMMAND_ID49=""
CONFIG_CN_SPEECH_COMMAND_ID50=""
CONFIG_CN_SPEECH_COMMAND_ID51=""
CONFIG_CN_SPEECH_COMMAND_ID52=""
CONFIG_CN_SPEECH_COMMAND_ID53=""
CONFIG_CN_SPEECH_COMMAND_ID54=""
CONFIG_CN_SPEECH_COMMAND_ID55=""
CONFIG_CN_SPEECH_COMMAND_ID56=""
CONFIG_CN_SPEECH_COMMAND_ID57=""
CONFIG_CN_SPEECH_COMMAND_ID58=""
CONFIG_CN_SPEECH_COMMAND_ID59=""
CONFIG_CN_SPEECH_COMMAND_ID60=""
CONFIG_CN_SPEECH_COMMAND_ID61=""
CONFIG_CN_SPEECH_COMMAND_ID62=""
CONFIG_CN_SPEECH_COMMAND_ID63=""
CONFIG_CN_SPEECH_COMMAND_ID64=""
CONFIG_CN_SPEECH_COMMAND_ID65=""
CONFIG_CN_SPEECH_COMMAND_ID66=""
CONFIG_CN_SPEECH_COMMAND_ID67=""
CONFIG_CN_SPEECH_COMMAND_ID68=""
CONFIG_CN_SPEECH_COMMAND_ID69=""
CONFIG_CN_SPEECH_COMMAND_ID70=""
CONFIG_CN_SPEECH_COMMAND_ID71=""
CONFIG_CN_SPEECH_COMMAND_ID72=""
CONFIG_CN_SPEECH_COMMAND_ID73=""
CONFIG_CN_SPEECH_COMMAND_ID74=""
CONFIG_CN_SPEECH_COMMAND_ID75=""
CONFIG_CN_SPEECH_COMMAND_ID76=""
CONFIG_CN_SPEECH_COMMAND_ID77=""
CONFIG_CN_SPEECH_COMMAND_ID78=""
CONFIG_CN_SPEECH_COMMAND_ID79=""
CONFIG_CN_SPEECH_COMMAND_ID80=""
CONFIG_CN_SPEECH_COMMAND_ID81=""
CONFIG_CN_SPEECH_COMMAND_ID82=""
CONFIG_CN_SPEECH_COMMAND_ID83=""
CONFIG_CN_SPEECH_COMMAND_ID84=""
CONFIG_CN_SPEECH_COMMAND_ID85=""
CONFIG_CN_SPEECH_COMMAND_ID86=""
CONFIG_CN_SPEECH_COMMAND_ID87=""
CONFIG_CN_SPEECH_COMMAND_ID88=""
CONFIG_CN_SPEECH_COMMAND_ID89=""
CONFIG_CN_SPEECH_COMMAND_ID90=""
CONFIG_CN_SPEECH_COMMAND_ID91=""
CONFIG_CN_SPEECH_COMMAND_ID92=""
CONFIG_CN_SPEECH_COMMAND_ID93=""
CONFIG_CN_SPEECH_COMMAND_ID94=""
CONFIG_CN_SPEECH_COMMAND_ID95=""
CONFIG_CN_SPEECH_COMMAND_ID96=""
CONFIG_CN_SPEECH_COMMAND_ID97=""
CONFIG_CN_SPEECH_COMMAND_ID98=""
CONFIG_CN_SPEECH_COMMAND_ID99=""
# end of Add speech commands
# end of ESP Speech Recognition
#
# Compiler options
#
@@ -373,23 +513,6 @@ CONFIG_ESP32_DPORT_DIS_INTERRUPT_LVL=5
# CONFIG_PM_ENABLE is not set
# end of Power Management
#
# Memory protection
#
CONFIG_ESP32S2_MEMPROT_FEATURE=y
CONFIG_ESP32S2_MEMPROT_FEATURE_LOCK=y
# end of Memory protection
#
# Cache config
#
# end of Cache config
CONFIG_ESP32S2_TRACEMEM_RESERVE_DRAM=0x0
CONFIG_ESP32S2_ULP_COPROC_RESERVE_MEM=0
CONFIG_ESP32S2_DEBUG_OCDAWARE=y
CONFIG_ESP32S2_BROWNOUT_DET=y
#
# ADC-Calibration
#
@@ -1033,6 +1156,18 @@ CONFIG_SPIFFS_USE_MTIME=y
# end of Debug Configuration
# end of SPIFFS Configuration
#
# TinyUSB
#
#
# Descriptor configuration
#
CONFIG_USB_DESC_CUSTOM_VID=0x1234
CONFIG_USB_DESC_CUSTOM_PID=0x5678
# end of Descriptor configuration
# end of TinyUSB
#
# Unity unit testing library
#