Kconfig.projbuild 12 KB

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