# This is a hack but it overrides some LWIP Kconfig # parameters because we are first config LWIP_MAX_SOCKETS range 1 32 menu "Squeezelite-ESP32" menu "Logging" config LOGGING_SLIMPROTO string "logging level for slimproto" default "info" help Set logging level info|debug|sdebug config LOGGING_STREAM string "logging level for stream" default "info" help Set logging level info|debug|sdebug config LOGGING_DECODE string "logging level for decode" default "info" help Set logging level info|debug|sdebug config LOGGING_OUTPUT string "logging level for output" default "info" help Set logging level info|debug|sdebug endmenu config AMP_LOCKED bool config JACK_LOCKED bool config BAT_LOCKED bool config I2C_LOCKED bool config SPDIF_LOCKED bool config LED_LOCKED bool config SPKFAULT_LOCKED bool config MUTE_GPIO_LEVEL int default 0 config TARGET_LOCKED bool default n menu "Target" choice OUTPUT_TYPE prompt "Main system" default BASIC_I2C_BT help Type of hardware platform config SQUEEZEAMP bool "SqueezeAMP" select JACK_LOCKED select BAT_LOCKED select I2C_LOCKED select LED_LOCKED select SPKFAULT_LOCKED select TARGET_LOCKED config MUSE bool "Muse" select JACK_LOCKED select BAT_LOCKED select I2C_LOCKED select AMP_LOCKED select TARGET_LOCKED config BASIC_I2C_BT bool "Generic I2S & Bluetooth" config TWATCH2020 bool "T-WATCH2020 by LilyGo" select I2C_LOCKED select TARGET_LOCKED endchoice config WITH_CONFIG_UI bool "Enable config UI" default n help Enable configuring system options with the UI config WITH_METRICS bool "Enable Metrics" default n help Enable capturing and reporting anonymous metrics config RELEASE_API string "Software update URL" default "https://api.github.com/repos/sle118/squeezelite-esp32/releases" help Set the URL of the API that the front-end UI will use to fetch software updates config SQUEEZELITE_ESP32_RELEASE_URL string "Release URL" default "https://github.com/sle118/squeezelite-esp32/releases" help Set the URL where users can see a list of releases # you can't change default values once they are set so changing "Target" will not reset # project name if they are visible config - they have to be silent strings config PROJECT_NAME string default "SqueezeAMP" if SQUEEZEAMP default "Squeezelite-TWATCH" if TWATCH2020 default "Muse" if MUSE default "Squeezelite-ESP32" config FW_PLATFORM_NAME string default "SqueezeAmp" if SQUEEZEAMP default "TWATCH" if TWATCH2020 default "Muse" if MUSE default "ESP32" # AGGREGATES - begin # these parameters are "aggregates" that take precedence. They must have a default value config DAC_CONFIG string default "model=TAS57xx,bck=33,ws=25,do=32,sda=27,scl=26,mute=14:0" if SQUEEZEAMP default "model=I2S,bck=26,ws=25,do=33,i2c=53,sda=21,scl=22" if TWATCH2020 default "model=I2S,bck=5,ws=25,do=26,di=35,i2c=16,sda=18,scl=23,mck" if MUSE default "" config SPDIF_CONFIG string default "bck=33,ws=25,do=15" if SQUEEZEAMP default "" config GPIO_EXP_CONFIG string default "" config SPI_CONFIG string default "dc=27,data=19,clk=18" if TWATCH2020 default "mosi=15,miso=2,clk=14" if MUSE default "" config DISPLAY_CONFIG string default "SPI,driver=ST7789,width=240,height=240,cs=5,back=12,speed=16000000,HFlip,VFlip" if TWATCH2020 default "" config ETH_CONFIG string default "" # AGGREGATES - end config DAC_CONTROLSET string default "{ \"init\": [ {\"reg\":41, \"val\":128}, {\"reg\":18, \"val\":255} ], \"poweron\": [ {\"reg\":18, \"val\":64, \"mode\":\"or\"} ], \"poweroff\": [ {\"reg\":18, \"val\":191, \"mode\":\"and\"} ] }" if TWATCH2020 default "{\"init\":[ {\"reg\":0,\"val\":128}, {\"reg\":0,\"val\":0}, {\"reg\":25,\"val\":4}, {\"reg\":1,\"val\":80}, {\"reg\":2,\"val\":0}, {\"reg\":8,\"val\":0}, {\"reg\":4,\"val\":192}, {\"reg\":0,\"val\":18}, {\"reg\":1,\"val\":0}, {\"reg\":23,\"val\":24}, {\"reg\":24,\"val\":2}, {\"reg\":38,\"val\":9}, {\"reg\":39,\"val\":144}, {\"reg\":42,\"val\":144}, {\"reg\":43,\"val\":128}, {\"reg\":45,\"val\":128}, {\"reg\":27,\"val\":0}, {\"reg\":26,\"val\":0}, {\"reg\":2,\"val\":240}, {\"reg\":2,\"val\":0}, {\"reg\":29,\"val\":28}, {\"reg\":4,\"val\":48}, {\"reg\":25,\"val\":0}, {\"reg\":46,\"val\":33}, {\"reg\":47,\"val\":33} ]}" if MUSE default "" config AUDIO_CONTROLS string default "[{\"gpio\":32, \"pull\":true, \"long_press\":1000, \"normal\":{\"pressed\":\"ACTRLS_VOLDOWN\"}, \"longpress\":{\"pressed\":\"ACTRLS_PREV\"}}, {\"gpio\":19, \"pull\":true, \"long_press\":1000, \"normal\":{\"pressed\":\"ACTRLS_VOLUP\"}, \"longpress\":{\"pressed\":\"ACTRLS_NEXT\"}}, {\"gpio\":12, \"pull\":true, \"long_press\":1000, \"normal\":{\"pressed\":\"ACTRLS_TOGGLE\"},\"longpress\":{\"pressed\":\"ACTRLS_POWER\"}}]" if MUSE default "" config BAT_CONFIG string default "channel=7,scale=20.24,atten=0" if SQUEEZEAMP default "channel=5,scale=7.00,atten=3,cells=1" if MUSE default "" config TARGET string default "muse" if MUSE default "" config AMP_GPIO int default 21 if MUSE default -1 config POWER_GPIO int default -1 config JACK_GPIO int default 34 if SQUEEZEAMP || MUSE default -1 config SPKFAULT_GPIO int default 2 if SQUEEZEAMP default -1 config BAT_CHANNEL int default 7 if SQUEEZEAMP default -1 config LED_GREEN_GPIO int default 12 if SQUEEZEAMP default -1 config LED_RED_GPIO int default 13 if SQUEEZEAMP default -1 config SET_GPIO string default "0=ir" if SQUEEZEAMP default "" if TWATCH2020 endmenu menu "Audio settings" menu "DAC settings" visible if BASIC_I2C_BT menu "I2S settings" config I2S_NUM int "I2S channel (0 or 1)" default 0 help I2S dma channel to use. config I2S_BCK_IO int "I2S Bit clock GPIO number" default -1 help I2S Bit Clock gpio pin to use. config I2S_WS_IO int "I2S Word Select GPIO number" default -1 help I2S Word Select gpio pin to use. config I2S_DO_IO int "I2S Data Output GPIO number" default -1 help I2S data output gpio pin to use. config I2S_DI_IO int "I2S Data Input GPIO number" default -1 help I2S data input gpio pin to use (not used mostly, leave it to -1). config I2S_MCK_IO int "I2S Master Clock GPIO number" default -1 help I2S data output gpio pin to use (not used mostly, leave it to -1). endmenu menu "I2C settings" config I2C_SDA int "I2C SDA GPIO number for DAC control" default -1 help I2C data gpio pin to use with DAC (not used mostly, leave it to -1). config I2C_SCL int "I2C SCL GPIO number for DAC control" default -1 help I2C clock gpio pin to use with DAC (not used mostly, leave it to -1). endmenu config MUTE_GPIO int "GPIO for muting DAC" default -1 help GPIO used to mute DAC (not used mostly, leave it to -1). config MUTE_GPIO_LEVEL int "Mute GPIO active level" depends on MUTE_GPIO != -1 default 1 endmenu menu "SPDIF settings" visible if BASIC_I2C_BT config SDIF_NUM int "I2S channel for SDPIF (0 or 1)" default 0 help I2S dma channel to use. config SPDIF_BCK_IO int "SDPIF Bit clock GPIO number" default I2S_BCK_IO help Must be set as SPDIF re-uses I2S but only needs DO (recommendation: set it to I2S Bit clock value) config SPDIF_WS_IO int "SPDIF Word Select GPIO number" default I2S_WS_IO help Must be set as SPDIF re-uses I2S but only needs DO (recommendation: set it to I2S Word select value) config SPDIF_DO_IO int "SPDIF Data I/O GPIO number" default -1 help I2S data output IO use to simulate SPDIF endmenu menu "A2DP settings" config A2DP_SINK_NAME string "Name of Bluetooth A2DP device" default "SMSL BT4.2" help This is the name of the bluetooth speaker that Squeezelite will try connecting to. config A2DP_DEV_NAME string "Name of Squeezelite device to use when connecting to A2DP device" default "Squeezelite" help This is the name of the device that the Bluetooth speaker will see when it is connected to. config A2DP_CONTROL_DELAY_MS int "Control loop delay" default 500 help Decreasing this will lead to a more responsive BT control, but might lead to noisy log files if debug is enabled. config A2DP_CONNECT_TIMEOUT_MS int "Time out duration when trying to connect to an A2DP audio sink" default 1000 help Increasing this value will give more chance for less stable connections to be established. endmenu endmenu menu "Audio Input" config BT_SINK bool "Bluetooth receiver" default y help Enable bluetooth sink (Note that you obviously can't at the same time be a Bluetooth receiver and transmitter) config BT_NAME depends on BT_SINK string "Name of Bluetooth A2DP device" default "ESP32-BT" help This is the name of the bluetooth speaker that will be broadcasted config BT_SINK_PIN depends on BT_SINK int "Bluetooth PIN code" default 1234 config AIRPLAY_SINK bool "AirPlay receiver" default y config AIRPLAY_NAME depends on AIRPLAY_SINK string "Name of AirPlay device" default "ESP32-AirPlay" help This is the name of the AirPlay speaker that will be broadcasted config AIRPLAY_PORT depends on AIRPLAY_SINK string "AirPlay listening port" default "5000" help AirPlay service listening port config CSPOT_SINK bool "Spotify (cspot) receiver" default y help Enable Spotify connect using CSpot endmenu menu "Controls" depends on !MUSE config AUDIO_CONTROLS string "Audio buttons set (JSON)" help Configuration of buttons (see README for syntax) endmenu menu "Display Screen" depends on !TWATCH2020 config DISPLAY_CONFIG string "Screen configuraton" help Set parameters for display screen, leave empty for no screen I2C,driver=,width=,height=[address=][,HFlip][,VFlip][,rotate] SPI,driver=,width=,height=,cs=[,HFlip][,VFlip][,rotate] endmenu menu "Various I/O" visible if !TWATCH2020 config I2C_CONFIG string "I2C system configuration" default "" help Set parameters of shared I2C interface sda=,scl=[,speed=][,port=<0|1>] config SPI_CONFIG string "SPI system configuration" help Set parameters of shared SPI interface data=,clk=[,d/c=][,host=<0|1|2>] config SET_GPIO string "Special GPIO configuration" help Set parameters of shared GPIO with special values. =Vcc|GND|amp[:0|1]|jack[:0|1][ir][spkfault[:0|1][,=Vcc|GND|amp[:0|1]|jack[:0|1]] 'amp' => GPIO that is set when playback starts 'jack' => GPIO used for audio jack detection 'green', 'red' => GPIO for status LED 'spkfault' => GPIO used for speaker fault detection 'ir' => GPIO used for Infrared Receiver [:0|1] means set the active value for that GPIO can be low or high config ROTARY_ENCODER string "Rotary Encoder configuration" default "" help Set GPIO for rotary encoder (quadrature phase). See README on SqueezeESP32 project's GitHub for more details A=,B=[,SW=gpio>[[,knobonly[=]|[,volume][,longpress]] config GPIO_EXP_CONFIG string "GPIO expander configuration" help Set parameters of GPIO extender model=[,addr=][,base=<100..N>][,count=<0..32>][,intr=][,port=dac|system] endmenu menu "LED configuration" visible if !SQUEEZEAMP && !TWATCH2020 && !MUSE config LED_GREEN_GPIO int "Green led GPIO" help Set to -1 for no LED config LED_GREEN_GPIO_LEVEL int "Green led ON level" depends on LED_GREEN_GPIO != -1 config LED_RED_GPIO int "Red led GPIO" help Set to -1 for no LED config LED_RED_GPIO_LEVEL int "Red led ON level" depends on LED_RED_GPIO != -1 default 0 if SQUEEZEAMP default 1 endmenu menu "Audio JACK" visible if !TARGET_LOCKED config JACK_GPIO int "Jack insertion GPIO" help GPIO to detect speaker jack insertion. Set to -1 for no detection. config JACK_GPIO_LEVEL depends on JACK_GPIO != -1 int "Level when inserted (0/1)" default 0 endmenu menu "External amplifier control" visible if !AMP_LOCKED config AMP_GPIO int "Amplifier GPIO" help GPIO to switch on/off external amplifier. Set to -1 for no amplifier. config AMP_GPIO_LEVEL depends on AMP_GPIO != -1 int "Active level(0/1)" default 1 endmenu menu "Power on/off status" config POWER_GPIO int "Power on/off GPIO" help GPIO that is switched when LMS turns player one. Set to -1 to disable config POWER_GPIO_LEVEL depends on POWER_GPIO != -1 int "Active level(0/1)" default 1 endmenu menu "Speaker Fault" visible if !TARGET_LOCKED config SPKFAULT_GPIO int "Speaker fault GPIO" help GPIO to detect speaker fault condition. Set to -1 for no detection. config SPKFAULT_GPIO_LEVEL depends on SPKFAULT_GPIO != -1 int "Level when fault (0/1)" default 0 endmenu menu "Battery measure" visible if !TARGET_LOCKED config BAT_CONFIG string "Battery acquisition configuration" help Sets parameters for battery voltage measure channel=<0..7>,scale=,atten=,cells=<1..3> endmenu config DEFAULT_COMMAND_LINE string "Default command line to execute" default "squeezelite -o I2S -b 500:2000 -d all=info -C 30" help This is the command to run when starting the device endmenu