Kconfig.projbuild 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339
  1. # This is a hack but it overrides some LWIP Kconfig
  2. # parameters because we are first
  3. config LWIP_MAX_SOCKETS
  4. range 1 32
  5. menu "Squeezelite-ESP32"
  6. menu "Logging"
  7. config LOGGING_SLIMPROTO
  8. string "logging level for slimproto"
  9. default "info"
  10. help
  11. Set logging level info|debug|sdebug
  12. config LOGGING_STREAM
  13. string "logging level for stream"
  14. default "info"
  15. help
  16. Set logging level info|debug|sdebug
  17. config LOGGING_DECODE
  18. string "logging level for decode"
  19. default "info"
  20. help
  21. Set logging level info|debug|sdebug
  22. config LOGGING_OUTPUT
  23. string "logging level for output"
  24. default "info"
  25. help
  26. Set logging level info|debug|sdebug
  27. endmenu
  28. menu "Target"
  29. choice OUTPUT_TYPE
  30. prompt "Main system"
  31. default BASIC_I2C_BT
  32. help
  33. Type of hardware platform
  34. config SQUEEZEAMP
  35. bool "SqueezeAMP"
  36. config MUSE
  37. bool "Muse"
  38. config SQUEEZEIO
  39. bool "SqueezeIO"
  40. config BASIC_I2C_BT
  41. bool "Generic I2S & Bluetooth"
  42. config TWATCH2020
  43. bool "T-WATCH2020 by LilyGo"
  44. endchoice
  45. config WITH_CONFIG_UI
  46. bool "Enable config UI"
  47. default n
  48. help
  49. Enable configuring system options with the UI
  50. config WITH_METRICS
  51. bool "Enable Metrics"
  52. default n
  53. help
  54. Enable capturing and reporting anonymous metrics
  55. config RELEASE_API
  56. string "Software update URL"
  57. default "https://api.github.com/repos/sle118/squeezelite-esp32/releases"
  58. help
  59. Set the URL of the API that the front-end UI will use to fetch software updates
  60. config SQUEEZELITE_ESP32_RELEASE_URL
  61. string "Release URL"
  62. default "https://github.com/sle118/squeezelite-esp32/releases"
  63. help
  64. Set the URL where users can see a list of releases
  65. # you can't change default values once they are set so changing "Target" will not reset
  66. # project name if they are visible config - they have to be silent strings
  67. config PROJECT_NAME
  68. string
  69. default "SqueezeAMP" if SQUEEZEAMP
  70. default "Squeezelite-TWATCH" if TWATCH2020
  71. default "Muse" if MUSE
  72. default "SqueezeIO" if SQUEEZEIO
  73. default "Squeezelite-ESP32"
  74. config FW_PLATFORM_NAME
  75. string
  76. default "SqueezeAmp" if SQUEEZEAMP
  77. default "TWATCH" if TWATCH2020
  78. default "Muse" if MUSE
  79. default "SqueezeIO" if SQUEEZEIO
  80. default "ESP32"
  81. endmenu
  82. menu "Audio settings"
  83. menu "DAC settings"
  84. visible if BASIC_I2C_BT
  85. menu "I2S settings"
  86. config I2S_NUM
  87. int "I2S channel (0 or 1)"
  88. default 0
  89. help
  90. I2S dma channel to use.
  91. config I2S_BCK_IO
  92. int "I2S Bit clock GPIO number"
  93. default -1
  94. help
  95. I2S Bit Clock gpio pin to use.
  96. config I2S_WS_IO
  97. int "I2S Word Select GPIO number"
  98. default -1
  99. help
  100. I2S Word Select gpio pin to use.
  101. config I2S_DO_IO
  102. int "I2S Data Output GPIO number"
  103. default -1
  104. help
  105. I2S data output gpio pin to use.
  106. config I2S_DI_IO
  107. int "I2S Data Input GPIO number"
  108. default -1
  109. help
  110. I2S data input gpio pin to use (not used mostly, leave it to -1).
  111. config I2S_MCK_IO
  112. int "I2S Master Clock GPIO number"
  113. default -1
  114. help
  115. I2S data output gpio pin to use (not used mostly, leave it to -1).
  116. endmenu
  117. menu "I2C settings"
  118. config I2C_SDA
  119. int "I2C SDA GPIO number for DAC control"
  120. default -1
  121. help
  122. I2C data gpio pin to use with DAC (not used mostly, leave it to -1).
  123. config I2C_SCL
  124. int "I2C SCL GPIO number for DAC control"
  125. default -1
  126. help
  127. I2C clock gpio pin to use with DAC (not used mostly, leave it to -1).
  128. endmenu
  129. config MUTE_GPIO
  130. int "GPIO for muting DAC"
  131. default -1
  132. help
  133. GPIO used to mute DAC (not used mostly, leave it to -1).
  134. endmenu
  135. menu "SPDIF settings"
  136. visible if BASIC_I2C_BT
  137. config SDIF_NUM
  138. int "I2S channel for SDPIF (0 or 1)"
  139. default 0
  140. help
  141. I2S dma channel to use.
  142. config SPDIF_BCK_IO
  143. int "SDPIF Bit clock GPIO number"
  144. default I2S_BCK_IO
  145. help
  146. Must be set as SPDIF re-uses I2S but only needs DO (recommendation: set it to I2S Bit clock value)
  147. config SPDIF_WS_IO
  148. int "SPDIF Word Select GPIO number"
  149. default I2S_WS_IO
  150. help
  151. Must be set as SPDIF re-uses I2S but only needs DO (recommendation: set it to I2S Word select value)
  152. config SPDIF_DO_IO
  153. int "SPDIF Data I/O GPIO number"
  154. default -1
  155. help
  156. I2S data output IO use to simulate SPDIF
  157. endmenu
  158. menu "A2DP settings"
  159. config A2DP_SINK_NAME
  160. string "Name of Bluetooth A2DP device"
  161. default "SMSL BT4.2"
  162. help
  163. This is the name of the bluetooth speaker that Squeezelite will try connecting to.
  164. config A2DP_DEV_NAME
  165. string "Name of Squeezelite device to use when connecting to A2DP device"
  166. default "Squeezelite"
  167. help
  168. This is the name of the device that the Bluetooth speaker will see when it is connected to.
  169. config A2DP_CONTROL_DELAY_MS
  170. int "Control loop delay"
  171. default 500
  172. help
  173. Decreasing this will lead to a more responsive BT control, but might lead to noisy log files if debug is enabled.
  174. config A2DP_CONNECT_TIMEOUT_MS
  175. int "Time out duration when trying to connect to an A2DP audio sink"
  176. default 1000
  177. help
  178. Increasing this value will give more chance for less stable connections to be established.
  179. endmenu
  180. endmenu
  181. menu "Audio Input"
  182. config BT_SINK
  183. bool "Bluetooth receiver"
  184. default y
  185. help
  186. Enable bluetooth sink (Note that you obviously can't at the same time be a Bluetooth receiver and transmitter)
  187. config BT_NAME
  188. depends on BT_SINK
  189. string "Name of Bluetooth A2DP device"
  190. default "ESP32-BT"
  191. help
  192. This is the name of the bluetooth speaker that will be broadcasted
  193. config BT_SINK_PIN
  194. depends on BT_SINK
  195. int "Bluetooth PIN code"
  196. default 1234
  197. config AIRPLAY_SINK
  198. bool "AirPlay receiver"
  199. default y
  200. config AIRPLAY_NAME
  201. depends on AIRPLAY_SINK
  202. string "Name of AirPlay device"
  203. default "ESP32-AirPlay"
  204. help
  205. This is the name of the AirPlay speaker that will be broadcasted
  206. config AIRPLAY_PORT
  207. depends on AIRPLAY_SINK
  208. string "AirPlay listening port"
  209. default "5000"
  210. help
  211. AirPlay service listening port
  212. config CSPOT_SINK
  213. bool "Spotify (cspot) receiver"
  214. default y
  215. help
  216. Enable Spotify connect using CSpot
  217. endmenu
  218. menu "Controls"
  219. depends on !MUSE
  220. config AUDIO_CONTROLS
  221. string "Audio buttons set (JSON)"
  222. help
  223. Configuration of buttons (see README for syntax)
  224. endmenu
  225. menu "Display Screen"
  226. depends on !TWATCH2020
  227. config DISPLAY_CONFIG
  228. string "Screen configuraton"
  229. help
  230. Set parameters for display screen, leave empty for no screen
  231. I2C,driver=<model>,width=<pixels>,height=<pixels>[address=<i2c_address>][,HFlip][,VFlip][,rotate]
  232. SPI,driver=<model>,width=<pixels>,height=<pixels>,cs=<gpio>[,HFlip][,VFlip][,rotate]
  233. endmenu
  234. menu "Various I/O"
  235. visible if !TWATCH2020
  236. config I2C_CONFIG
  237. string "I2C system configuration"
  238. default ""
  239. help
  240. Set parameters of shared I2C interface
  241. sda=<gpio>,scl=<gpio>[,speed=<num>][,port=<0|1>]
  242. config SPI_CONFIG
  243. string "SPI system configuration"
  244. help
  245. Set parameters of shared SPI interface
  246. data=<gpio>,clk=<gpio>[,d/c=<num>][,host=<0|1|2>]
  247. config SET_GPIO
  248. string "Special GPIO configuration"
  249. help
  250. Set parameters of shared GPIO with special values.
  251. <gpio_1>=Vcc|GND|amp[:0|1]|jack[:0|1][ir][spkfault[:0|1][,<gpio_n>=Vcc|GND|amp[:0|1]|jack[:0|1]]
  252. 'amp' => GPIO that is set when playback starts
  253. 'jack' => GPIO used for audio jack detection
  254. 'green', 'red' => GPIO for status LED
  255. 'spkfault' => GPIO used for speaker fault detection
  256. 'ir' => GPIO used for Infrared Receiver
  257. [:0|1] means set the active value for that GPIO can be low or high
  258. config ROTARY_ENCODER
  259. string "Rotary Encoder configuration"
  260. default ""
  261. help
  262. Set GPIO for rotary encoder (quadrature phase). See README on SqueezeESP32 project's GitHub for more details
  263. A=<gpio>,B=<gpio>[,SW=gpio>[[,knobonly[=<ms>]|[,volume][,longpress]]
  264. config GPIO_EXP_CONFIG
  265. string "GPIO expander configuration"
  266. help
  267. Set parameters of GPIO extender
  268. model=<model>[,addr=<addr>][,base=<100..N>][,count=<0..32>][,intr=<gpio>][,port=dac|system]
  269. endmenu
  270. menu "LED configuration"
  271. visible if !SQUEEZEAMP && !TWATCH2020 && !MUSE
  272. config LED_GREEN_GPIO
  273. int "Green led GPIO"
  274. help
  275. Set to -1 for no LED
  276. config LED_GREEN_GPIO_LEVEL
  277. int "Green led ON level"
  278. depends on LED_GREEN_GPIO != -1
  279. config LED_RED_GPIO
  280. int "Red led GPIO"
  281. help
  282. Set to -1 for no LED
  283. config LED_RED_GPIO_LEVEL
  284. int "Red led ON level"
  285. depends on LED_RED_GPIO != -1
  286. default 0 if SQUEEZEAMP
  287. default 1
  288. endmenu
  289. menu "Audio JACK"
  290. config JACK_GPIO
  291. int "Jack insertion GPIO"
  292. help
  293. GPIO to detect speaker jack insertion. Set to -1 for no detection.
  294. config JACK_GPIO_LEVEL
  295. depends on JACK_GPIO != -1
  296. int "Level when inserted (0/1)"
  297. default 0
  298. endmenu
  299. menu "External amplifier control"
  300. config AMP_GPIO
  301. int "Amplifier GPIO"
  302. help
  303. GPIO to switch on/off external amplifier. Set to -1 for no amplifier.
  304. config AMP_GPIO_LEVEL
  305. depends on AMP_GPIO != -1
  306. int "Active level(0/1)"
  307. default 1
  308. endmenu
  309. menu "Battery measure"
  310. config BAT_CONFIG
  311. string "Battery acquisition configuration"
  312. help
  313. Sets parameters for battery voltage measure
  314. channel=<0..7>,scale=<ratio_to_4096>,atten=<adc_atten>,cells=<1..3>
  315. endmenu
  316. config DEFAULT_COMMAND_LINE
  317. string "Default command line to execute"
  318. default "squeezelite -o I2S -b 500:2000 -d all=info -C 30"
  319. help
  320. This is the command to run when starting the device
  321. endmenu