platformio.ini 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249
  1. ; PlatformIO Project Configuration File
  2. ;
  3. ; Build options: build flags, source filter
  4. ; Upload options: custom upload port, speed and extra flags
  5. ; Library options: dependencies, extra library storages
  6. ; Advanced options: extra scripting
  7. ;
  8. ; Please visit documentation for the other options and examples
  9. ; https://docs.platformio.org/page/projectconf.html
  10. [platformio]
  11. src_dir = main
  12. default_envs = esp32cam
  13. [common:idf]
  14. build_flags =
  15. -DUSE_ESP_IDF
  16. lib_deps =
  17. [common:esp32-idf]
  18. extends = common:idf
  19. ; PlatformIO releases, see https://github.com/platformio/platform-espressif32/releases
  20. platform = platformio/espressif32 @ 6.9.0
  21. framework = espidf
  22. lib_deps =
  23. ${common:idf.lib_deps}
  24. build_flags =
  25. ${common:idf.build_flags}
  26. -Wno-nonnull-compare
  27. -DUSE_ESP32
  28. -DUSE_ESP32_FRAMEWORK_ESP_IDF
  29. [flags:runtime]
  30. build_flags =
  31. -Wno-nonnull-compare
  32. -Wno-sign-compare
  33. -Wno-unused-but-set-variable
  34. -Wno-unused-variable
  35. -fno-exceptions
  36. [flags:clangtidy]
  37. build_flags =
  38. -Wall
  39. -Wextra
  40. -Wunreachable-code
  41. ;-Wshadow-compatible-local
  42. -fno-exceptions
  43. ; The main env - default
  44. [env:esp32cam]
  45. extends = common:esp32-idf
  46. board = esp32cam
  47. framework = espidf
  48. build_flags =
  49. ; ### common imported :
  50. ${common:esp32-idf.build_flags}
  51. ${flags:runtime.build_flags}
  52. ; ### Sofware options : (can be set in defines.h)
  53. -D BOARD_ESP32CAM_AITHINKER
  54. -D ENABLE_MQTT
  55. ;-D MQTT_PROTOCOL_311
  56. -D MQTT_ENABLE_SSL
  57. ;-D MQTT_ENABLE_WS
  58. ;-D MQTT_ENABLE_WSS
  59. -D MQTT_SUPPORTED_FEATURE_SKIP_CRT_CMN_NAME_CHECK
  60. ;-D MQTT_SUPPORTED_FEATURE_CRT_CMN_NAME
  61. ;-D MQTT_SUPPORTED_FEATURE_CLIENT_KEY_PASSWORD
  62. -D ENABLE_INFLUXDB
  63. -D ENABLE_WEBHOOK
  64. -D ENABLE_SOFTAP
  65. board_build.partitions = partitions.csv
  66. monitor_speed = 115200
  67. ; The main env - default
  68. [env:esp32s3-aleksei]
  69. extends = common:esp32-idf
  70. board = seeed_xiao_esp32s3
  71. framework = espidf
  72. build_flags =
  73. ; ### common imported :
  74. ${common:esp32-idf.build_flags}
  75. ${flags:runtime.build_flags}
  76. ; ### Sofware options : (can be set in defines.h)
  77. -D BOARD_ESP32_S3_ALEKSEI
  78. -D ENABLE_MQTT
  79. ;-D MQTT_PROTOCOL_311
  80. -D MQTT_ENABLE_SSL
  81. ;-D MQTT_ENABLE_WS
  82. ;-D MQTT_ENABLE_WSS
  83. -D MQTT_SUPPORTED_FEATURE_SKIP_CRT_CMN_NAME_CHECK
  84. ;-D MQTT_SUPPORTED_FEATURE_CRT_CMN_NAME
  85. ;-D MQTT_SUPPORTED_FEATURE_CLIENT_KEY_PASSWORD
  86. -D ENABLE_INFLUXDB
  87. -D ENABLE_WEBHOOK
  88. -D ENABLE_SOFTAP
  89. board_build.partitions = partitions.csv
  90. monitor_speed = 115200
  91. ; full standalone dev mode
  92. ; As sample, the board is nod32s instead of esp32cam (do not change nothing in fact :)
  93. ; You can test newer platform_packages
  94. ; or flash mode (board_build.flash_mode = qio)
  95. [env:esp32cam-dev]
  96. extends = common:esp32-idf
  97. board = esp32cam ; node32s
  98. ;board_build.flash_mode = qio ;generate SPI_FAST_FLASH_BOOT boot loop
  99. build_flags =
  100. ; ### common imported :
  101. ${common:esp32-idf.build_flags}
  102. ${flags:clangtidy.build_flags}
  103. ; ### Sofware options : (can be set in defines.h)
  104. -D BOARD_ESP32CAM_AITHINKER
  105. -D ENABLE_MQTT
  106. -D ENABLE_INFLUXDB
  107. -D ENABLE_WEBHOOK
  108. ;-D ENABLE_SOFTAP
  109. ; ### Debug options :
  110. ;-D DEBUG_DETAIL_ON
  111. ;-D DEBUG_DISABLE_BROWNOUT_DETECTOR
  112. ;-D DEBUG_ENABLE_SYSINFO
  113. ;-D DEBUG_ENABLE_PERFMON
  114. ;-D DEBUG_HIMEM_MEMORY_CHECK
  115. ;### test options
  116. -D CONFIG_ESP_TASK_WDT
  117. ;-D CONFIG_COMPILER_OPTIMIZATION_ASSERTION_LEVEL
  118. -D CONFIG_ESP_TASK_WDT_TIMEOUT_S ; fix for CONFIG_ESP_INT_WDT_TIMEOUT_MS
  119. ;-D USE_HIMEM_IF_AVAILABLE
  120. framework = espidf
  121. lib_ldf_mode = deep+
  122. platform = platformio/espressif32 @ 5.2.0
  123. platform_packages =
  124. ;platformio/framework-espidf @ 3.40402.0 (4.4.2)
  125. ;platformio/framework-espidf@^3.50000.0
  126. ;platformio/tool-cmake @ 3.16.4
  127. ;platformio/tool-cmake@^3.21.3
  128. ;platformio/tool-esptoolpy @ 1.40201.0 (4.2.1)
  129. ;platformio/tool-esptoolpy@^1.40400.0
  130. ;platformio/tool-idf @ 1.0.1
  131. ;platformio/tool-mconf @ 1.4060000.20190628 (406.0.0)
  132. ;platformio/tool-ninja @ 1.9.0
  133. ;platformio/tool-ninja @ 1.10.2
  134. ;platformio/toolchain-esp32ulp @ 1.22851.191205 (2.28.51)
  135. ;espressif/toolchain-esp32ulp @ 2.35.0-20220830
  136. ;platformio/toolchain-xtensa-esp32 @ 8.4.0+2021r2-patch5
  137. ;platformio/toolchain-xtensa-esp32 @ 11.2.0+2022r1
  138. ; platformio/espressif32 @ 5.3.0 dependencies :
  139. ;platformio/framework-espidf @ 3.40403.0
  140. ;platformio/tool-cmake @ 3.16.4
  141. ;platformio/tool-esptoolpy@^1.40400.0
  142. ;platformio/tool-idf @ 1.0.1
  143. ;platformio/tool-mconf @ 1.4060000.20190628
  144. ;platformio/tool-ninja @ 1.9.0
  145. ;espressif/toolchain-esp32ulp @ 2.35.0-20220830
  146. ;;;;espressif/toolchain-xtensa-esp32 @ 8.4.0+2021r2-patch5
  147. board_build.partitions = partitions.csv
  148. monitor_speed = 115200
  149. ; Activate all debug mode
  150. ; Cannot be used alone, but must be added at the end of extends = env:esp32cam-dev, esp32cam-debug
  151. ;If multiple items specified in the extends field then only values from the latter one will be used in the final configuration
  152. ;https://docs.platformio.org/en/stable/projectconf/section_env_advanced.html
  153. [env:esp32cam-debug] ; activate all debug
  154. ;extends nothing, only apply sdkconfig.esp32-debug.defaults, enable debug options and clangtidy
  155. build_flags =
  156. ; ### clangtidy build flags:
  157. ${flags:clangtidy.build_flags}
  158. ; ### Debug options :
  159. -D DEBUG_DETAIL_ON
  160. ;-D DEBUG_DISABLE_BROWNOUT_DETECTOR
  161. -D DEBUG_ENABLE_SYSINFO
  162. -D DEBUG_ENABLE_PERFMON
  163. ;-D DEBUG_HIMEM_MEMORY_CHECK
  164. ;-D USE_HIMEM_IF_AVAILABLE
  165. lib_ldf_mode = deep+
  166. ; Power management enabled
  167. ;https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/system/power_management.html
  168. ;https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/kconfig.html#config-pm-enable
  169. [env:esp32cam-power-management]
  170. build_flags =
  171. -D TCONFIG_PM_ENABLE
  172. -D CONFIG_PM_DFS_INIT_AUTO
  173. -D CONFIG_FREERTOS_USE_TICKLESS_IDLE
  174. ;-D FREERTOS_IDLE_TIME_BEFORE_SLEEP=3
  175. ;**********************
  176. ; next section use modified version CMakeLists.txt of to use sdkconfig.<pioenv>.defaults + sdkconfig.defaults
  177. ; https://github.com/platformio/platform-espressif32/issues/638
  178. ; set board to rev3
  179. [env:esp32cam-board-rev3]
  180. extends = env:esp32cam-dev, esp32cam-debug
  181. ; set CPU frequency to 240 instead of 160 default
  182. [env:esp32cam-cpu-freq-240]
  183. extends = env:esp32cam-dev, esp32cam-debug
  184. ; sdkconfig.esp32cam-board-rev3.defaults override some sdkconfig.defaults
  185. ; set board to rev3 + CPU frequency to 240
  186. ; look at the extends : it takes esp32cam-dev and add env:esp32cam-board-rev3, env:esp32cam-cpu-freq-240 , esp32cam-debug parameters
  187. [env:esp32cam-board-rev3-cpu-freq-240]
  188. extends = env:esp32cam-dev, env:esp32cam-board-rev3, env:esp32cam-cpu-freq-240 , esp32cam-debug
  189. ; set board to rev3 + CPU frequency to 240 + power management
  190. [env:esp32cam-board-rev3-cpu-freq-240-pow]
  191. extends = env:esp32cam-dev, env:esp32cam-board-rev3, env:esp32cam-cpu-freq-240 , env:esp32cam-power-management, esp32cam-debug
  192. ; Enable use of 8 MB PSRAM boards
  193. ;https://github.com/espressif/esp-idf/blob/master/examples/system/himem/README.md
  194. [env:esp32cam-dev-himem]
  195. extends = env:esp32cam-dev, esp32cam-debug
  196. ; sdkconfig.esp32cam-dev-himem.defaults override some sdkconfig.defaults
  197. build_flags =
  198. -DBOARD_HAS_PSRAM
  199. ;-D DEBUG_HIMEM_MEMORY_CHECK
  200. ;-D USE_HIMEM_IF_AVAILABLE
  201. ; set options for task analysis (PR #1751)
  202. [env:esp32cam-dev-task-analysis]
  203. extends = env:esp32cam-dev, esp32cam-debug
  204. ; sdkconfig.esp32cam-dev-task-analysis.defaults override some sdkconfig.defaults
  205. build_flags =
  206. ;-D DEBUG_DETAIL_ON ; if esp32cam-debug not in extends
  207. -D TASK_ANALYSIS_ON
  208. ;please use only one HEAP tracing at time.
  209. -D HEAP_TRACING_MAIN_WIFI
  210. ;-D HEAP_TRACING_MAIN_START
  211. ;-D HEAP_TRACING_CLASS_FLOW_CNN_GENERAL_DO_ALING_AND_CUT
  212. ; Overwrite espcam build_flags to not include ENABLE_SOFTAP
  213. ; Nor the -U ENABLE_SOFTAP nor -D ENABLE_SOFTAP=0 works to unset defines actually
  214. ; Set CONFIG_ESP_WIFI_SOFTAP_SUPPORT=n in sdkconfig.esp32cam-no-softap.defaults to disable softap in the esp-idf compilation
  215. [env:esp32cam-no-softap] ;CONFIG_ESP_WIFI_SOFTAP_SUPPORT=n saves 28k of flash
  216. extends = env:esp32cam
  217. build_flags =
  218. ; ### common imported :
  219. ${common:esp32-idf.build_flags}
  220. ${flags:clangtidy.build_flags}
  221. ; ### Sofware options :
  222. -D ENABLE_MQTT
  223. -D ENABLE_INFLUXDB
  224. -D ENABLE_WEBHOOK
  225. ;-D ENABLE_SOFTAP ; disabled