mirror of
https://github.com/sle118/squeezelite-esp32.git
synced 2025-12-06 19:47:02 +03:00
445 lines
13 KiB
Plaintext
445 lines
13 KiB
Plaintext
# 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 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 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
|
|
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=<model>,width=<pixels>,height=<pixels>[address=<i2c_address>][,HFlip][,VFlip][,rotate]
|
|
SPI,driver=<model>,width=<pixels>,height=<pixels>,cs=<gpio>[,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=<gpio>,scl=<gpio>[,speed=<num>][,port=<0|1>]
|
|
config SPI_CONFIG
|
|
string "SPI system configuration"
|
|
help
|
|
Set parameters of shared SPI interface
|
|
data=<gpio>,clk=<gpio>[,d/c=<num>][,host=<0|1|2>]
|
|
config SET_GPIO
|
|
string "Special GPIO configuration"
|
|
help
|
|
Set parameters of shared GPIO with special values.
|
|
<gpio_1>=Vcc|GND|amp[:0|1]|jack[:0|1][ir][spkfault[:0|1][,<gpio_n>=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=<gpio>,B=<gpio>[,SW=gpio>[[,knobonly[=<ms>]|[,volume][,longpress]]
|
|
config GPIO_EXP_CONFIG
|
|
string "GPIO expander configuration"
|
|
help
|
|
Set parameters of GPIO extender
|
|
model=<model>[,addr=<addr>][,base=<100..N>][,count=<0..32>][,intr=<gpio>][,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 "Amplifier"
|
|
visible if !TARGET_LOCKED
|
|
config AMP_GPIO
|
|
int "Amplifier GPIO"
|
|
help
|
|
GPIO to switch on/off 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 "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=<ratio_to_4096>,atten=<adc_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 |