| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432 | 
							- # 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 WELL_KNOWN
 
- 		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 WELL_KNOWN
 
- 			config MUSE
 
- 				bool "Muse"
 
- 				select JACK_LOCKED
 
- 				select BAT_LOCKED
 
- 				select I2C_LOCKED
 
- 				select AMP_LOCKED				
 
- 				select WELL_KNOWN
 
- 			config BASIC_I2C_BT
 
- 				bool "Generic I2S & Bluetooth"				
 
- 			config TWATCH2020	
 
- 				bool "T-WATCH2020 by LilyGo"				
 
- 				select I2C_LOCKED		
 
- 				select WELL_KNOWN				
 
- 		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} ]}" if MUSE
 
- 			default ""		
 
- 		config AUDIO_CONTROLS
 
- 			string
 
- 			default "[{\"gpio\":32, \"pull\":true, \"debounce\":10, \"normal\":{\"pressed\":\"ACTRLS_VOLDOWN\"}}, {\"gpio\":19, \"pull\":true, \"debounce\":40, \"normal\":{\"pressed\":\"ACTRLS_VOLUP\"}}, {\"gpio\":12, \"pull\":true, \"debounce\":40, \"longpress\":1000, \"normal\":{\"pressed\":\"ACTRLS_TOGGLE\"},\"longpress\":{\"pressed\":\"ACTRLS_POWER\"}}]" if MUSE
 
- 			default ""
 
- 		config BAT_CONFIG
 
- 			default "channel=7,scale=20.24,atten=0" if SQUEEZEAMP
 
- 			default "channel=5,scale=1,atten=3,cells=1" 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 22 if MUSE
 
- 			default -1
 
- 		config LED_RED_GPIO
 
- 			int
 
- 			default 13 if SQUEEZEAMP
 
- 			default -1
 
- 	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).
 
- 			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"
 
- 			default ""
 
- 			help
 
- 				Set parameters of shared GPIO with special values.
 
- 				<gpio_1>=Vcc|GND|amp[:0|1]|jack[: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
 
- 				'[: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 !WELL_KNOWN
 
- 		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 !WELL_KNOWN
 
- 		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 !WELL_KNOWN
 
- 		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 !WELL_KNOWN
 
- 		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
 
 
  |