2
0

Kconfig.projbuild 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446
  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. config AMP_LOCKED
  29. bool
  30. config JACK_LOCKED
  31. bool
  32. config BAT_LOCKED
  33. bool
  34. config I2C_LOCKED
  35. bool
  36. config SPDIF_LOCKED
  37. bool
  38. config LED_LOCKED
  39. bool
  40. config SPKFAULT_LOCKED
  41. bool
  42. config MUTE_GPIO_LEVEL
  43. int
  44. default 0
  45. config TARGET_LOCKED
  46. bool
  47. default n
  48. menu "Target"
  49. choice OUTPUT_TYPE
  50. prompt "Main system"
  51. default BASIC_I2C_BT
  52. help
  53. Type of hardware platform
  54. config SQUEEZEAMP
  55. bool "SqueezeAMP"
  56. select JACK_LOCKED
  57. select BAT_LOCKED
  58. select I2C_LOCKED
  59. select LED_LOCKED
  60. select SPKFAULT_LOCKED
  61. select TARGET_LOCKED
  62. config MUSE
  63. bool "Muse"
  64. select JACK_LOCKED
  65. select BAT_LOCKED
  66. select I2C_LOCKED
  67. select AMP_LOCKED
  68. select TARGET_LOCKED
  69. config BASIC_I2C_BT
  70. bool "Generic I2S & Bluetooth"
  71. config TWATCH2020
  72. bool "T-WATCH2020 by LilyGo"
  73. select I2C_LOCKED
  74. select TARGET_LOCKED
  75. endchoice
  76. config RELEASE_API
  77. string "Software update URL"
  78. default "https://api.github.com/repos/sle118/squeezelite-esp32/releases"
  79. help
  80. Set the URL of the API that the front-end UI will use to fetch software updates
  81. config SQUEEZELITE_ESP32_RELEASE_URL
  82. string "Release URL"
  83. default "https://github.com/sle118/squeezelite-esp32/releases"
  84. help
  85. Set the URL where users can see a list of releases
  86. # you can't change default values once they are set so changing "Target" will not reset
  87. # project name if they are visible config - they have to be silent strings
  88. config PROJECT_NAME
  89. string
  90. default "SqueezeAMP" if SQUEEZEAMP
  91. default "Squeezelite-TWATCH" if TWATCH2020
  92. default "Muse" if MUSE
  93. default "Squeezelite-ESP32"
  94. config FW_PLATFORM_NAME
  95. string
  96. default "SqueezeAmp" if SQUEEZEAMP
  97. default "TWATCH" if TWATCH2020
  98. default "Muse" if MUSE
  99. default "ESP32"
  100. # AGGREGATES - begin
  101. # these parameters are "aggregates" that take precedence. They must have a default value
  102. config DAC_CONFIG
  103. string
  104. default "model=TAS57xx,bck=33,ws=25,do=32,sda=27,scl=26,mute=14:0" if SQUEEZEAMP
  105. default "model=I2S,bck=26,ws=25,do=33,i2c=53,sda=21,scl=22" if TWATCH2020
  106. default "model=I2S,bck=5,ws=25,do=26,di=35,i2c=16,sda=18,scl=23,mck" if MUSE
  107. default ""
  108. config SPDIF_CONFIG
  109. string
  110. default "bck=33,ws=25,do=15" if SQUEEZEAMP
  111. default ""
  112. config GPIO_EXP_CONFIG
  113. string
  114. default ""
  115. config SPI_CONFIG
  116. string
  117. default "dc=27,data=19,clk=18" if TWATCH2020
  118. default "mosi=15,miso=2,clk=14" if MUSE
  119. default ""
  120. config DISPLAY_CONFIG
  121. string
  122. default "SPI,driver=ST7789,width=240,height=240,cs=5,back=12,speed=16000000,HFlip,VFlip" if TWATCH2020
  123. default ""
  124. config ETH_CONFIG
  125. string
  126. default ""
  127. # AGGREGATES - end
  128. config DAC_CONTROLSET
  129. string
  130. 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
  131. 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
  132. default ""
  133. config AUDIO_CONTROLS
  134. string
  135. 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
  136. default ""
  137. config BAT_CONFIG
  138. string
  139. default "channel=7,scale=20.24,atten=0" if SQUEEZEAMP
  140. default "channel=5,scale=7.00,atten=3,cells=1" if MUSE
  141. default ""
  142. config TARGET
  143. string
  144. default "muse" if MUSE
  145. default ""
  146. config AMP_GPIO
  147. int
  148. default 21 if MUSE
  149. default -1
  150. config JACK_GPIO
  151. int
  152. default 34 if SQUEEZEAMP || MUSE
  153. default -1
  154. config SPKFAULT_GPIO
  155. int
  156. default 2 if SQUEEZEAMP
  157. default -1
  158. config BAT_CHANNEL
  159. int
  160. default 7 if SQUEEZEAMP
  161. default -1
  162. config LED_GREEN_GPIO
  163. int
  164. default 12 if SQUEEZEAMP
  165. default -1
  166. config LED_RED_GPIO
  167. int
  168. default 13 if SQUEEZEAMP
  169. default -1
  170. config SET_GPIO
  171. string
  172. default "0=ir" if SQUEEZEAMP
  173. default "" if TWATCH2020
  174. endmenu
  175. menu "Audio settings"
  176. menu "DAC settings"
  177. visible if BASIC_I2C_BT
  178. menu "I2S settings"
  179. config I2S_NUM
  180. int "I2S channel (0 or 1)"
  181. default 0
  182. help
  183. I2S dma channel to use.
  184. config I2S_BCK_IO
  185. int "I2S Bit clock GPIO number"
  186. default -1
  187. help
  188. I2S Bit Clock gpio pin to use.
  189. config I2S_WS_IO
  190. int "I2S Word Select GPIO number"
  191. default -1
  192. help
  193. I2S Word Select gpio pin to use.
  194. config I2S_DO_IO
  195. int "I2S Data Output GPIO number"
  196. default -1
  197. help
  198. I2S data output gpio pin to use.
  199. config I2S_DI_IO
  200. int "I2S Data Input GPIO number"
  201. default -1
  202. help
  203. I2S data input gpio pin to use (not used mostly, leave it to -1).
  204. config I2S_MCK_IO
  205. int "I2S Master Clock GPIO number"
  206. default -1
  207. help
  208. I2S data output gpio pin to use (not used mostly, leave it to -1).
  209. endmenu
  210. menu "I2C settings"
  211. config I2C_SDA
  212. int "I2C SDA GPIO number for DAC control"
  213. default -1
  214. help
  215. I2C data gpio pin to use with DAC (not used mostly, leave it to -1).
  216. config I2C_SCL
  217. int "I2C SCL GPIO number for DAC control"
  218. default -1
  219. help
  220. I2C clock gpio pin to use with DAC (not used mostly, leave it to -1).
  221. endmenu
  222. config MUTE_GPIO
  223. int "GPIO for muting DAC"
  224. default -1
  225. help
  226. GPIO used to mute DAC (not used mostly, leave it to -1).
  227. config MUTE_GPIO_LEVEL
  228. int "Mute GPIO active level"
  229. depends on MUTE_GPIO != -1
  230. default 1
  231. endmenu
  232. menu "SPDIF settings"
  233. visible if BASIC_I2C_BT
  234. config SDIF_NUM
  235. int "I2S channel for SDPIF (0 or 1)"
  236. default 0
  237. help
  238. I2S dma channel to use.
  239. config SPDIF_BCK_IO
  240. int "SDPIF Bit clock GPIO number"
  241. default I2S_BCK_IO
  242. help
  243. Must be set as SPDIF re-uses I2S but only needs DO (recommendation: set it to I2S Bit clock value)
  244. config SPDIF_WS_IO
  245. int "SPDIF Word Select GPIO number"
  246. default I2S_WS_IO
  247. help
  248. Must be set as SPDIF re-uses I2S but only needs DO (recommendation: set it to I2S Word select value)
  249. config SPDIF_DO_IO
  250. int "SPDIF Data I/O GPIO number"
  251. default -1
  252. help
  253. I2S data output IO use to simulate SPDIF
  254. endmenu
  255. menu "A2DP settings"
  256. config A2DP_SINK_NAME
  257. string "Name of Bluetooth A2DP device"
  258. default "SMSL BT4.2"
  259. help
  260. This is the name of the bluetooth speaker that Squeezelite will try connecting to.
  261. config A2DP_DEV_NAME
  262. string "Name of Squeezelite device to use when connecting to A2DP device"
  263. default "Squeezelite"
  264. help
  265. This is the name of the device that the Bluetooth speaker will see when it is connected to.
  266. config A2DP_CONTROL_DELAY_MS
  267. int "Control loop delay"
  268. default 500
  269. help
  270. Decreasing this will lead to a more responsive BT control, but might lead to noisy log files if debug is enabled.
  271. config A2DP_CONNECT_TIMEOUT_MS
  272. int "Time out duration when trying to connect to an A2DP audio sink"
  273. default 1000
  274. help
  275. Increasing this value will give more chance for less stable connections to be established.
  276. endmenu
  277. endmenu
  278. menu "Audio Input"
  279. config BT_SINK
  280. bool "Bluetooth receiver"
  281. default y
  282. help
  283. Enable bluetooth sink (Note that you obviously can't at the same time be a Bluetooth receiver and transmitter)
  284. config BT_NAME
  285. depends on BT_SINK
  286. string "Name of Bluetooth A2DP device"
  287. default "ESP32-BT"
  288. help
  289. This is the name of the bluetooth speaker that will be broadcasted
  290. config BT_SINK_PIN
  291. depends on BT_SINK
  292. int "Bluetooth PIN code"
  293. default 1234
  294. config AIRPLAY_SINK
  295. bool "AirPlay receiver"
  296. default y
  297. config AIRPLAY_NAME
  298. depends on AIRPLAY_SINK
  299. string "Name of AirPlay device"
  300. default "ESP32-AirPlay"
  301. help
  302. This is the name of the AirPlay speaker that will be broadcasted
  303. config AIRPLAY_PORT
  304. depends on AIRPLAY_SINK
  305. string "AirPlay listening port"
  306. default "5000"
  307. help
  308. AirPlay service listening port
  309. config CSPOT_SINK
  310. bool "Spotify (cspot) receiver"
  311. default y
  312. help
  313. Enable Spotify connect using CSpot
  314. endmenu
  315. menu "Controls"
  316. depends on !MUSE
  317. config AUDIO_CONTROLS
  318. string "Audio buttons set (JSON)"
  319. help
  320. Configuration of buttons (see README for syntax)
  321. endmenu
  322. menu "Display Screen"
  323. depends on !TWATCH2020
  324. config DISPLAY_CONFIG
  325. string "Screen configuraton"
  326. help
  327. Set parameters for display screen, leave empty for no screen
  328. I2C,driver=<model>,width=<pixels>,height=<pixels>[address=<i2c_address>][,HFlip][,VFlip][,rotate]
  329. SPI,driver=<model>,width=<pixels>,height=<pixels>,cs=<gpio>[,HFlip][,VFlip][,rotate]
  330. endmenu
  331. menu "Various I/O"
  332. visible if !TWATCH2020
  333. config I2C_CONFIG
  334. string "I2C system configuration"
  335. default ""
  336. help
  337. Set parameters of shared I2C interface
  338. sda=<gpio>,scl=<gpio>[,speed=<num>][,port=<0|1>]
  339. config SPI_CONFIG
  340. string "SPI system configuration"
  341. help
  342. Set parameters of shared SPI interface
  343. data=<gpio>,clk=<gpio>[,d/c=<num>][,host=<0|1|2>]
  344. config SET_GPIO
  345. string "Special GPIO configuration"
  346. help
  347. Set parameters of shared GPIO with special values.
  348. <gpio_1>=Vcc|GND|amp[:0|1]|jack[:0|1][ir][spkfault[:0|1][,<gpio_n>=Vcc|GND|amp[:0|1]|jack[:0|1]]
  349. 'amp' => GPIO that is set when playback starts
  350. 'jack' => GPIO used for audio jack detection
  351. 'green', 'red' => GPIO for status LED
  352. 'spkfault' => GPIO used for speaker fault detection
  353. 'ir' => GPIO used for Infrared Receiver
  354. [:0|1] means set the active value for that GPIO can be low or high
  355. config ROTARY_ENCODER
  356. string "Rotary Encoder configuration"
  357. default ""
  358. help
  359. Set GPIO for rotary encoder (quadrature phase). See README on SqueezeESP32 project's GitHub for more details
  360. A=<gpio>,B=<gpio>[,SW=gpio>[[,knobonly[=<ms>]|[,volume][,longpress]]
  361. config GPIO_EXP_CONFIG
  362. string "GPIO expander configuration"
  363. help
  364. Set parameters of GPIO extender
  365. model=<model>[,addr=<addr>][,base=<100..N>][,count=<0..32>][,intr=<gpio>][,port=dac|system]
  366. endmenu
  367. menu "LED configuration"
  368. visible if !SQUEEZEAMP && !TWATCH2020 && !MUSE
  369. config LED_GREEN_GPIO
  370. int "Green led GPIO"
  371. help
  372. Set to -1 for no LED
  373. config LED_GREEN_GPIO_LEVEL
  374. int "Green led ON level"
  375. depends on LED_GREEN_GPIO != -1
  376. config LED_RED_GPIO
  377. int "Red led GPIO"
  378. help
  379. Set to -1 for no LED
  380. config LED_RED_GPIO_LEVEL
  381. int "Red led ON level"
  382. depends on LED_RED_GPIO != -1
  383. default 0 if SQUEEZEAMP
  384. default 1
  385. endmenu
  386. menu "Audio JACK"
  387. visible if !TARGET_LOCKED
  388. config JACK_GPIO
  389. int "Jack insertion GPIO"
  390. help
  391. GPIO to detect speaker jack insertion. Set to -1 for no detection.
  392. config JACK_GPIO_LEVEL
  393. depends on JACK_GPIO != -1
  394. int "Level when inserted (0/1)"
  395. default 0
  396. endmenu
  397. menu "Amplifier"
  398. visible if !TARGET_LOCKED
  399. config AMP_GPIO
  400. int "Amplifier GPIO"
  401. help
  402. GPIO to switch on/off amplifier. Set to -1 for no amplifier.
  403. config AMP_GPIO_LEVEL
  404. depends on AMP_GPIO != -1
  405. int "Active level(0/1)"
  406. default 1
  407. endmenu
  408. menu "Speaker Fault"
  409. visible if !TARGET_LOCKED
  410. config SPKFAULT_GPIO
  411. int "Speaker fault GPIO"
  412. help
  413. GPIO to detect speaker fault condition. Set to -1 for no detection.
  414. config SPKFAULT_GPIO_LEVEL
  415. depends on SPKFAULT_GPIO != -1
  416. int "Level when fault (0/1)"
  417. default 0
  418. endmenu
  419. menu "Battery measure"
  420. visible if !TARGET_LOCKED
  421. config BAT_CONFIG
  422. string "Battery acquisition configuration"
  423. help
  424. Sets parameters for battery voltage measure
  425. channel=<0..7>,scale=<ratio_to_4096>,atten=<adc_atten>,cells=<1..3>
  426. endmenu
  427. config DEFAULT_COMMAND_LINE
  428. string "Default command line to execute"
  429. default "squeezelite -o I2S -b 500:2000 -d all=info -C 30"
  430. help
  431. This is the command to run when starting the device
  432. endmenu