Files
AI-on-the-edge-device/code/platformio.ini
CaCO3 c2a55e7c86 v15.2.0 (#2345)
* Testcase for #2145 and debug-log (#2151)

* new models ana-cont-11.0.5, ana-class100-1.5.7, dig-class100-1.6.0

* Testcase for #2145
Added debug log, if allowNegativeRates is handeled

* Fix timezone config parser (#2169)

* make sure to parse the whole config line

* fix crash on empty timezone parameter

---------

Co-authored-by: CaCO3 <caco@ruinelli.ch>

* Enhance ROI pages (#2161)

* Check if the ROIs are equidistant. Only if not, untick the checkbox

* renaming

* Check if the ROIs have same y, dy and dx. If so, tick the sync checkbox

* only allow editing space when box is checked

* fix sync check

* show inner frame on all ROIs

* cleanup

* Check if the ROIs have same dy and dx. If so, tick the sync checkbox

* checkbox position

* renaming

* renaming

* show inner frame and cross hairs on all ROIs

* update ROIs on ticking checkboxes

* show timezone hint

* fix deleting last ROI

* cleanup

---------

Co-authored-by: CaCO3 <caco@ruinelli.ch>

* restart timeout on progress, catch error (#2170)

* restart timeout on progress, catch error

* .

---------

Co-authored-by: CaCO3 <caco@ruinelli.ch>

* BugFix #2167

* Release 15.1 preparations (#2171)

* Update Changelog.md

* Update Changelog.md

* Update Changelog.md

* Update changelog

* Fix links to PR

* Formating

* Update Changelog.md

* Update Changelog.md

* Update Changelog.md

* Update Changelog.md

* Update Changelog.md

* Update Changelog.md

* Update Changelog.md

* Update Changelog.md

* Update Changelog.md

* Update Changelog.md

* Update Changelog.md

* Update Changelog.md

---------

Co-authored-by: Slider0007 <jobbelle@gmx.net>
Co-authored-by: Slider0007 <115730895+Slider0007@users.noreply.github.com>

* fix typo

* Replace relative documentation links with absolute ones pointing to the external documentation (#2180)

Co-authored-by: CaCO3 <caco@ruinelli.ch>

* Sort model files in configuration combobox (#2189)

* new models ana-cont-11.0.5, ana-class100-1.5.7, dig-class100-1.6.0

* Testcase for #2145
Added debug log, if allowNegativeRates is handeled

* Sort model files in combobox

* reboot task - increase stack size (#2201)

Avoid stack overflow

* Update interface_influxdb.cpp

* Update Changelog.md

* Show PSRAM usage (#2206)

* centralize PSRAM usage (application code only)

* update logging

* update logging

* fix use after free

* initialize buffer

* free rgb_image before ussing it for new allocation

* use wrapper function

* switch log level to debug

* .

* undo adding free() calls

* .

* add names to all CImage instances

* .

* .

* .

* revert changes of stbi_image_free() with free_psram_heap() on the places where is is not in PSRAM

* .

* typos

* typo

* Added MQTT Outbox explanation/warning

* added CONFIG_SPIRAM_USE_MEMMAP explanation

---------

Co-authored-by: CaCO3 <caco@ruinelli.ch>

* Disable custom MQTT Outbox. This also moves the MQTT Publishing memory usage back to the internal RAM!

* log MQTT connection refused reasons (#2216)

* Revert PSRAM usage as it lead to memory fragmentation.
See https://github.com/jomjol/AI-on-the-edge-device/issues/2200 for details

* fix missing value data

* Revert PSRAM usage as it lead to memory fragmentation. (#2224)

See https://github.com/jomjol/AI-on-the-edge-device/issues/2200 for details

Co-authored-by: CaCO3 <caco@ruinelli.ch>

* Fix missing value data in graph (#2230)

* fix missing value data

---------

Co-authored-by: CaCO3 <caco@ruinelli.ch>

* Update Changelog.md (#2231)

* Update interface_influxdb.cpp (#2233)

* update copyright year

* Cleanup

* Set prevalue using MQTT + set prevalue to RAW value (REST+MQTT) (#2252)

* Use double instead of float

* Error handling + set to RAW if newvalue < 0

* REST SetPrevalue: Set to RAW if newvalue < 0

* set prevalue with MQTT

* removed the stb_image files and re-add them as a submodule. (#2223)

- stb_image.h: Version update 2.25 -> 2.28
- stb_resize.h: Version update 0.96 -> 0.97
- stb_write.h: Version update 1.14 -> 1.16

Co-authored-by: CaCO3 <caco@ruinelli.ch>

* Remove obsolete ClassFlowWriteList (#2264)

* Renaming & cleanup of some modules / functions in source code (#2265)

* Rename module tag name

* Rename server_tflite.cpp -> MainFlowControl.cpp

* Remove redundandant MQTTMainTopic function

* Update

* Remove obsolete GetMQTTMainTopic

* Fix last element missing in digit model drop down (#2282)

* Debug influxdb (#2283)

* Fix time offset issues in InfluxDB component. (#2278)

Closes #2273
Closes #2150

* Update interface_influxdb.cpp

* Update interface_influxdb.cpp

* Improve Logging

* Implement TimeSync at beginning

* Update time_sntp.cpp

* Update time_sntp.cpp

* Set Time After WLAN Init

---------

Co-authored-by: Antonin Delpeuch <antonin@delpeuch.eu>

* Implement a camera livestream handler (#2286)

* fix leading NaN (#2310)

* analogROI: Activate save button after ROI creation (#2326)

* Migration of PlatformIO 5.2.0 to 6.1.0 (resp. ESP IDF from 4.4.2 to 5.0.1) (#2305)

* Migration to PlatformIO 6.1.0

* Disable RMTMEM usage as it is no longer allowed -> Smart LEDs not functional!

* moved miniz into subfolder of jomjol_fileserver_ota, else it does not build anymore.

* cleanup

* fix leading NaN (#2310)

* Migration to PlatformIO 6.1.0

* Disable RMTMEM usage as it is no longer allowed -> Smart LEDs not functional!

* moved miniz into subfolder of jomjol_fileserver_ota, else it does not build anymore.

* cleanup

* Task watchdog has new config name

* Fix return value check. It must be something else than ESP_FAIL, but it does not need to be ESP_OK!

* add missing strucures to work around new RMTMEM restriction (untested)

---------

Co-authored-by: CaCO3 <caco@ruinelli.ch>

* Keep MainFlowTask alive to handle reboot (#2325)

* Shared PSRAM memory (#2285)

* enable PSRAM logging

* add extra functions for psram shared memroy handling

* CImageBasis objects still should used dynamic memory (eg. rawImage), haw ever tmpImage must be placed inside the shared memory

* Place all STBI allocs inside the shared memory

* The models are placed in the shared PSRAM reagion and must be allocated through the dedicated functions

* .

* renaming

* fix cast warning

* add flag to switch STBI PSRAM usage

* improve PSRAM shared handling

* reserve shared PSRAM as early as possible

* init logging eralier so we can use it in PSRAM shared alloc

* move Wifi_LWIP, BSS_SEG and MQTT Outbox into PSRAM to ffree internal memory

* Check if model fits into reserved shared memory

* Update code/components/jomjol_tfliteclass/CTfLiteClass.cpp

* Update code/components/jomjol_helper/psram.cpp

* Update code/components/jomjol_helper/psram.cpp

* Update code/components/jomjol_flowcontroll/ClassFlowControll.cpp

* Update code/components/jomjol_helper/psram.cpp

* Update code/components/jomjol_helper/psram.cpp

* Update code/components/jomjol_helper/psram.cpp

* Update code/components/jomjol_image_proc/CImageBasis.cpp

* Update code/components/jomjol_helper/psram.cpp

* Update code/components/jomjol_helper/psram.cpp

* Update code/components/jomjol_helper/psram.cpp

* Update code/components/jomjol_helper/psram.cpp

* Update code/components/jomjol_helper/psram.cpp

* Update code/components/jomjol_helper/psram.cpp

* Update code/components/jomjol_helper/psram.cpp

* .

* .

* .

* .

* Korrektur Merge Conflict in main.cpp

---------

Co-authored-by: CaCO3 <caco@ruinelli.ch>
Co-authored-by: jomjol <30766535+jomjol@users.noreply.github.com>

* fix PSRAM init return value check

* Extend InfluxDBv1 with individual topic names (#2319)

* Implement individual influx topic

* Update interface_influxdb.cpp

* Update interface_influxdb.cpp

* Update FieldName

* analogROI: Activate save button after ROI creation (#2326)

* Migration of PlatformIO 5.2.0 to 6.1.0 (resp. ESP IDF from 4.4.2 to 5.0.1) (#2305)

* Migration to PlatformIO 6.1.0

* Disable RMTMEM usage as it is no longer allowed -> Smart LEDs not functional!

* moved miniz into subfolder of jomjol_fileserver_ota, else it does not build anymore.

* cleanup

* fix leading NaN (#2310)

* Migration to PlatformIO 6.1.0

* Disable RMTMEM usage as it is no longer allowed -> Smart LEDs not functional!

* moved miniz into subfolder of jomjol_fileserver_ota, else it does not build anymore.

* cleanup

* Task watchdog has new config name

* Fix return value check. It must be something else than ESP_FAIL, but it does not need to be ESP_OK!

* add missing strucures to work around new RMTMEM restriction (untested)

---------

Co-authored-by: CaCO3 <caco@ruinelli.ch>

* Keep MainFlowTask alive to handle reboot (#2325)

* Shared PSRAM memory (#2285)

* enable PSRAM logging

* add extra functions for psram shared memroy handling

* CImageBasis objects still should used dynamic memory (eg. rawImage), haw ever tmpImage must be placed inside the shared memory

* Place all STBI allocs inside the shared memory

* The models are placed in the shared PSRAM reagion and must be allocated through the dedicated functions

* .

* renaming

* fix cast warning

* add flag to switch STBI PSRAM usage

* improve PSRAM shared handling

* reserve shared PSRAM as early as possible

* init logging eralier so we can use it in PSRAM shared alloc

* move Wifi_LWIP, BSS_SEG and MQTT Outbox into PSRAM to ffree internal memory

* Check if model fits into reserved shared memory

* Update code/components/jomjol_tfliteclass/CTfLiteClass.cpp

* Update code/components/jomjol_helper/psram.cpp

* Update code/components/jomjol_helper/psram.cpp

* Update code/components/jomjol_flowcontroll/ClassFlowControll.cpp

* Update code/components/jomjol_helper/psram.cpp

* Update code/components/jomjol_helper/psram.cpp

* Update code/components/jomjol_helper/psram.cpp

* Update code/components/jomjol_image_proc/CImageBasis.cpp

* Update code/components/jomjol_helper/psram.cpp

* Update code/components/jomjol_helper/psram.cpp

* Update code/components/jomjol_helper/psram.cpp

* Update code/components/jomjol_helper/psram.cpp

* Update code/components/jomjol_helper/psram.cpp

* Update code/components/jomjol_helper/psram.cpp

* Update code/components/jomjol_helper/psram.cpp

* .

* .

* .

* .

* Korrektur Merge Conflict in main.cpp

---------

Co-authored-by: CaCO3 <caco@ruinelli.ch>
Co-authored-by: jomjol <30766535+jomjol@users.noreply.github.com>

* fix PSRAM init return value check

* Extend incl. indiv. Measurement

* Implement UX

* Update ClassFlowInfluxDBv2.cpp

* Implement individual influx topic

* Update interface_influxdb.cpp

* Update interface_influxdb.cpp

* Update FieldName

* Extend incl. indiv. Measurement

* Implement UX

* Update ClassFlowInfluxDBv2.cpp

* Update main.cpp

---------

Co-authored-by: Slider0007 <115730895+Slider0007@users.noreply.github.com>
Co-authored-by: CaCO3 <caco3@ruinelli.ch>
Co-authored-by: CaCO3 <caco@ruinelli.ch>

* Update Changelog.md (#2344)

* Update Changelog.md

* Update Changelog.md

* merge conflicts

* merge conflicts

* update changelog

---------

Co-authored-by: Frank Haverland <fspapaping@googlemail.com>
Co-authored-by: CaCO3 <caco@ruinelli.ch>
Co-authored-by: jomjol <30766535+jomjol@users.noreply.github.com>
Co-authored-by: Slider0007 <jobbelle@gmx.net>
Co-authored-by: Slider0007 <115730895+Slider0007@users.noreply.github.com>
Co-authored-by: Antonin Delpeuch <antonin@delpeuch.eu>
2023-04-23 17:13:18 +02:00

215 lines
7.3 KiB
INI

; PlatformIO Project Configuration File
;
; Build options: build flags, source filter
; Upload options: custom upload port, speed and extra flags
; Library options: dependencies, extra library storages
; Advanced options: extra scripting
;
; Please visit documentation for the other options and examples
; https://docs.platformio.org/page/projectconf.html
[platformio]
src_dir = main
default_envs = esp32cam
[common:idf]
build_flags =
-DUSE_ESP_IDF
lib_deps =
[common:esp32-idf]
extends = common:idf
platform = platformio/espressif32 @ 6.1.0
framework = espidf
lib_deps =
${common:idf.lib_deps}
build_flags =
${common:idf.build_flags}
-Wno-nonnull-compare
-DUSE_ESP32
-DUSE_ESP32_FRAMEWORK_ESP_IDF
[flags:runtime]
build_flags =
-Wno-nonnull-compare
-Wno-sign-compare
-Wno-unused-but-set-variable
-Wno-unused-variable
-fno-exceptions
[flags:clangtidy]
build_flags =
-Wall
-Wextra
-Wunreachable-code
;-Wshadow-compatible-local
-fno-exceptions
; The main env - default
[env:esp32cam]
extends = common:esp32-idf
board = esp32cam
framework = espidf
build_flags =
; ### common imported :
${common:esp32-idf.build_flags}
${flags:runtime.build_flags}
; ### Sofware options : (can be set in defines.h)
-D ENABLE_MQTT
-D ENABLE_INFLUXDB
-D ENABLE_SOFTAP
board_build.partitions = partitions.csv
monitor_speed = 115200
monitor_rts = 0
monitor_dtr = 0
; full standalone dev mode
; As sample, the board is nod32s instead of esp32cam (do not change nothing in fact :)
; You can test newer platform_packages
; or flash mode (board_build.flash_mode = qio)
[env:esp32cam-dev]
extends = common:esp32-idf
board = esp32cam ; node32s
;board_build.flash_mode = qio ;generate SPI_FAST_FLASH_BOOT boot loop
build_flags =
; ### common imported :
${common:esp32-idf.build_flags}
${flags:clangtidy.build_flags}
; ### Sofware options : (can be set in defines.h)
-D ENABLE_MQTT
-D ENABLE_INFLUXDB
;-D ENABLE_SOFTAP
; ### Debug options :
;-D DEBUG_DETAIL_ON
;-D DEBUG_DISABLE_BROWNOUT_DETECTOR
;-D DEBUG_ENABLE_SYSINFO
;-D DEBUG_ENABLE_PERFMON
;-D DEBUG_HIMEM_MEMORY_CHECK
;### test options
-D CONFIG_ESP_TASK_WDT
;-D CONFIG_COMPILER_OPTIMIZATION_ASSERTION_LEVEL
-D CONFIG_ESP_TASK_WDT_TIMEOUT_S ; fix for CONFIG_ESP_INT_WDT_TIMEOUT_MS
;-D USE_HIMEM_IF_AVAILABLE
framework = espidf
lib_ldf_mode = deep+
platform = platformio/espressif32 @ 5.2.0
platform_packages =
;platformio/framework-espidf @ 3.40402.0 (4.4.2)
;platformio/framework-espidf@^3.50000.0
;platformio/tool-cmake @ 3.16.4
;platformio/tool-cmake@^3.21.3
;platformio/tool-esptoolpy @ 1.40201.0 (4.2.1)
;platformio/tool-esptoolpy@^1.40400.0
;platformio/tool-idf @ 1.0.1
;platformio/tool-mconf @ 1.4060000.20190628 (406.0.0)
;platformio/tool-ninja @ 1.9.0
;platformio/tool-ninja @ 1.10.2
;platformio/toolchain-esp32ulp @ 1.22851.191205 (2.28.51)
;espressif/toolchain-esp32ulp @ 2.35.0-20220830
;platformio/toolchain-xtensa-esp32 @ 8.4.0+2021r2-patch5
;platformio/toolchain-xtensa-esp32 @ 11.2.0+2022r1
; platformio/espressif32 @ 5.3.0 dependencies :
;platformio/framework-espidf @ 3.40403.0
;platformio/tool-cmake @ 3.16.4
;platformio/tool-esptoolpy@^1.40400.0
;platformio/tool-idf @ 1.0.1
;platformio/tool-mconf @ 1.4060000.20190628
;platformio/tool-ninja @ 1.9.0
;espressif/toolchain-esp32ulp @ 2.35.0-20220830
;;;;espressif/toolchain-xtensa-esp32 @ 8.4.0+2021r2-patch5
board_build.partitions = partitions.csv
monitor_speed = 115200
monitor_rts = 0
monitor_dtr = 0
; Activate all debug mode
; Cannot be used alone, but must be added at the end of extends = env:esp32cam-dev, esp32cam-debug
;If multiple items specified in the extends field then only values from the latter one will be used in the final configuration
;https://docs.platformio.org/en/stable/projectconf/section_env_advanced.html
[env:esp32cam-debug] ; activate all debug
;extends nothing, only apply sdkconfig.esp32-debug.defaults, enable debug options and clangtidy
build_flags =
; ### clangtidy build flags:
${flags:clangtidy.build_flags}
; ### Debug options :
-D DEBUG_DETAIL_ON
;-D DEBUG_DISABLE_BROWNOUT_DETECTOR
-D DEBUG_ENABLE_SYSINFO
-D DEBUG_ENABLE_PERFMON
;-D DEBUG_HIMEM_MEMORY_CHECK
;-D USE_HIMEM_IF_AVAILABLE
lib_ldf_mode = deep+
; Power management enabled
;https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/system/power_management.html
;https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/kconfig.html#config-pm-enable
[env:esp32cam-power-management]
build_flags =
-D TCONFIG_PM_ENABLE
-D CONFIG_PM_DFS_INIT_AUTO
-D CONFIG_FREERTOS_USE_TICKLESS_IDLE
;-D FREERTOS_IDLE_TIME_BEFORE_SLEEP=3
;**********************
; next section use modified version CMakeLists.txt of to use sdkconfig.<pioenv>.defaults + sdkconfig.defaults
; https://github.com/platformio/platform-espressif32/issues/638
; set board to rev3
[env:esp32cam-board-rev3]
extends = env:esp32cam-dev, esp32cam-debug
; set CPU frequency to 240 instead of 160 default
[env:esp32cam-cpu-freq-240]
extends = env:esp32cam-dev, esp32cam-debug
; sdkconfig.esp32cam-board-rev3.defaults override some sdkconfig.defaults
; set board to rev3 + CPU frequency to 240
; look at the extends : it takes esp32cam-dev and add env:esp32cam-board-rev3, env:esp32cam-cpu-freq-240 , esp32cam-debug parameters
[env:esp32cam-board-rev3-cpu-freq-240]
extends = env:esp32cam-dev, env:esp32cam-board-rev3, env:esp32cam-cpu-freq-240 , esp32cam-debug
; set board to rev3 + CPU frequency to 240 + power management
[env:esp32cam-board-rev3-cpu-freq-240-pow]
extends = env:esp32cam-dev, env:esp32cam-board-rev3, env:esp32cam-cpu-freq-240 , env:esp32cam-power-management, esp32cam-debug
; Enable use of 8 MB PSRAM boards
;https://github.com/espressif/esp-idf/blob/master/examples/system/himem/README.md
[env:esp32cam-dev-himem]
extends = env:esp32cam-dev, esp32cam-debug
; sdkconfig.esp32cam-dev-himem.defaults override some sdkconfig.defaults
build_flags =
-DBOARD_HAS_PSRAM
;-D DEBUG_HIMEM_MEMORY_CHECK
;-D USE_HIMEM_IF_AVAILABLE
; set options for task analysis (PR #1751)
[env:esp32cam-dev-task-analysis]
extends = env:esp32cam-dev, esp32cam-debug
; sdkconfig.esp32cam-dev-task-analysis.defaults override some sdkconfig.defaults
build_flags =
;-D DEBUG_DETAIL_ON ; if esp32cam-debug not in extends
-D TASK_ANALYSIS_ON
;please use only one HEAP tracing at time.
-D HEAP_TRACING_MAIN_WIFI
;-D HEAP_TRACING_MAIN_START
;-D HEAP_TRACING_CLASS_FLOW_CNN_GENERAL_DO_ALING_AND_CUT
; Overwrite espcam build_flags to not include ENABLE_SOFTAP
; Nor the -U ENABLE_SOFTAP nor -D ENABLE_SOFTAP=0 works to unset defines actually
; Set CONFIG_ESP_WIFI_SOFTAP_SUPPORT=n in sdkconfig.esp32cam-no-softap.defaults to disable softap in the esp-idf compilation
[env:esp32cam-no-softap] ;CONFIG_ESP_WIFI_SOFTAP_SUPPORT=n saves 28k of flash
extends = env:esp32cam
build_flags =
; ### common imported :
${common:esp32-idf.build_flags}
${flags:clangtidy.build_flags}
; ### Sofware options :
-D ENABLE_MQTT
-D ENABLE_INFLUXDB
;-D ENABLE_SOFTAP ; disabled