diff --git a/.editorconfig b/.editorconfig index 3fe72fc..0fad279 100644 --- a/.editorconfig +++ b/.editorconfig @@ -2,8 +2,10 @@ end_of_line = lf insert_final_newline = true max_line_length = 999 - -# 4 spaces indentation -[*.ino] indent_style = space indent_size = 4 +trim_trailing_whitespace = true + +[*.ini] +indent_style = space +indent_size = 2 diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b8cedea..bc227aa 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -27,12 +27,12 @@ jobs: key: ${{ runner.os }}-${{ hashFiles('**/lockfiles') }} - name: Set up Python uses: actions/setup-python@v4 - - name: Install PlatformIO + with: + python-version: '3.x' + - name: Install dependencies run: | - python -m pip install --upgrade pip - pip install --upgrade platformio - pio platform update - pio run -t clean + pip install wheel + pip install -U platformio - name: Setup github_head_sha run: echo "GITHUB_HEAD_SHA=${{ github.event.pull_request.head.sha }}" >> $GITHUB_ENV if: ${{ github.event_name == 'pull_request' }} @@ -43,28 +43,19 @@ jobs: run: echo "PLATFORMIO_BUILD_FLAGS=-DVERSION='\"${GITHUB_REF#refs/*/}\"'" >> $GITHUB_ENV if: startsWith(github.ref, 'refs/tags/v') - name: Run PlatformIO - run: pio run -e esp32 -e esp32c3 -e esp32-verbose -e m5stickc -e m5stickc-plus -e m5atom -e macchina-a0 + run: pio run -e esp32 -e esp32c3 -e esp32s3 -e esp32-verbose -e esp32c3-verbose -e esp32s3-verbose -e m5stickc -e m5stickc-plus -e m5atom -e macchina-a0 - name: Rename firmware run: | cp .pio/build/esp32/firmware.bin esp32.bin cp .pio/build/esp32c3/firmware.bin esp32c3.bin + cp .pio/build/esp32s3/firmware.bin esp32s3.bin cp .pio/build/esp32-verbose/firmware.bin esp32-verbose.bin + cp .pio/build/esp32c3-verbose/firmware.bin esp32c3-verbose.bin + cp .pio/build/esp32s3-verbose/firmware.bin esp32s3-verbose.bin cp .pio/build/m5stickc/firmware.bin m5stickc.bin cp .pio/build/m5stickc-plus/firmware.bin m5stickc-plus.bin cp .pio/build/m5atom/firmware.bin m5atom.bin cp .pio/build/macchina-a0/firmware.bin macchina-a0.bin - - #Deprecated - cp .pio/build/m5atom/firmware.bin m5atom-matrix.bin - cp .pio/build/m5atom/firmware.bin m5atom-matrix-sensors.bin - cp .pio/build/esp32/firmware.bin adafruit-huzzah32.bin - cp .pio/build/esp32/firmware.bin adafruit-huzzah32-sensors.bin - - #Deprecated Sensors - cp .pio/build/esp32/firmware.bin esp32-sensors.bin - cp .pio/build/esp32-verbose/firmware.bin esp32-verbose-sensors.bin - cp .pio/build/m5stickc/firmware.bin m5stickc-sensors.bin - cp .pio/build/m5stickc-plus/firmware.bin m5stickc-plus-sensors.bin - name: Release uses: softprops/action-gh-release@v1 if: startsWith(github.ref, 'refs/tags/v') diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml index 50cc083..53e2ae5 100644 --- a/.github/workflows/check.yml +++ b/.github/workflows/check.yml @@ -34,4 +34,4 @@ jobs: pio platform update pio run -t clean - name: Run PlatformIO - run: pio check -e esp32 -e esp32c3 -e esp32-verbose -e m5stickc -e m5stickc-plus -e m5atom -e macchina-a0 + run: pio run -e esp32 -e esp32c3 -e esp32s3 -e m5stickc -e m5stickc-plus -e m5atom -e macchina-a0 diff --git a/platformio.ini b/platformio.ini index 2072bdd..92ec2dd 100644 --- a/platformio.ini +++ b/platformio.ini @@ -1,10 +1,3 @@ -; 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 @@ -22,19 +15,22 @@ check_flags = check_skip_packages = yes [common] +extends = env +platform = https://github.com/tasmota/platform-espressif32/releases/download/2023.02.00/platform-espressif32.zip +platform_packages = debug_build_flags = -O0 -ggdb3 -g3 -DDEBUG_TLS_MEM build_flags = - -Wall - -Wextra - -Wformat=2 - -Wformat-truncation - -D CONFIG_BT_NIMBLE_TASK_STACK_SIZE=4096 - -D SCAN_TASK_STACK_SIZE=2096 - -D ARDUINO_LOOP_STACK_SIZE=6144 - -D MQTT_MIN_FREE_MEMORY=12192 - -D CONFIG_ASYNC_TCP_USE_WDT=0 - -D CONFIG_BT_NIMBLE_MSYS1_BLOCK_COUNT=20 - -D BLE_GATTC_UNRESPONSIVE_TIMEOUT_MS=2000 + -Wall + -Wextra + -Wformat=2 + -Wformat-truncation + -D CONFIG_BT_NIMBLE_TASK_STACK_SIZE=4096 + -D SCAN_TASK_STACK_SIZE=2096 + -D ARDUINO_LOOP_STACK_SIZE=6144 + -D MQTT_MIN_FREE_MEMORY=12192 + -D CONFIG_ASYNC_TCP_USE_WDT=0 + -D CONFIG_BT_NIMBLE_MSYS1_BLOCK_COUNT=20 + -D BLE_GATTC_UNRESPONSIVE_TIMEOUT_MS=2000 ; -D CORE_DEBUG_LEVEL=2 ; -D CONFIG_BT_NIMBLE_DEBUG=1 ; -D CONFIG_NIMBLE_CPP_LOG_LEVEL=4 @@ -44,35 +40,33 @@ build_flags = build_unflags = framework = arduino lib_deps = - AsyncTCP = https://github.com/pbolduc/AsyncTCP.git@^1.2.0 - https://github.com/ESPresense/ESPAsyncWebServer.git - https://github.com/ESPresense/AsyncWiFiSettings.git#1.0.6 - https://github.com/ESPresense/SoftFilters.git - https://github.com/ESPresense/NimBLE-Arduino.git - marvinroger/AsyncMqttClient@^0.9.0 - bblanchon/ArduinoJson@^6.19.3 - kitesurfer1404/WS2812FX@^1.4.1 + AsyncTCP = https://github.com/pbolduc/AsyncTCP.git@^1.2.0 + https://github.com/ESPresense/ESPAsyncWebServer.git + https://github.com/ESPresense/AsyncWiFiSettings.git#1.0.6 + https://github.com/ESPresense/SoftFilters.git + https://github.com/ESPresense/NimBLE-Arduino.git + marvinroger/AsyncMqttClient@^0.9.0 + bblanchon/ArduinoJson@^6.19.3 + kitesurfer1404/WS2812FX@^1.4.1 +board_build.partitions = partitions_singleapp.csv +monitor_speed = 115200 +monitor_filters = esp32_exception_decoder, time +upload_speed = 1500000 [esp32] -platform = https://github.com/tasmota/platform-espressif32/releases/download/2023.02.00/platform-espressif32.zip -platform_packages = +extends = common +board = esp32dev debug_tool = esp-prog -framework = ${common.framework} -build_unflags = ${common.build_unflags} build_flags = -g -D ARDUINO_ARCH_ESP32 -D CONFIG_BT_NIMBLE_PINNED_TO_CORE=1 -D REPORT_PINNED_TO_CORE=1 -D CONFIG_USE_ETHERNET - ${common.build_flags} -lib_deps = ${common.lib_deps} [esp32c3] -platform = https://github.com/tasmota/platform-espressif32/releases/download/v2.0.4/platform-espressif32-2.0.4.zip -platform_packages = -framework = ${common.framework} -build_unflags = ${common.build_unflags} +extends = common +board = esp32-c3-devkitm-1 build_flags = -g -D ARDUINO_ARCH_ESP32 -D ARDUINO_ARCH_ESP32C3 @@ -80,182 +74,152 @@ build_flags = -g -D CO -D CONFIG_BT_NIMBLE_PINNED_TO_CORE=0 -D REPORT_PINNED_TO_CORE=0 + -D ESP32C3 + ${common.build_flags} + +[esp32s3] +extends = common +board = esp32-s3-devkitc-1 +build_flags = -g + -D ARDUINO_ARCH_ESP32 + -D ARDUINO_ARCH_ESP32S3 + -D CONFIG_IDF_TARGET_ESP32S3 + -D CO + -D CONFIG_BT_NIMBLE_PINNED_TO_CORE=1 + -D REPORT_PINNED_TO_CORE=1 + -D ESP32S3 ${common.build_flags} -lib_deps = ${common.lib_deps} [sensors] lib_deps = - adafruit/Adafruit Unified Sensor@^1.1.4 - adafruit/Adafruit AHTX0@^2.0.3 - adafruit/Adafruit BME280 Library@^2.2.2 - adafruit/Adafruit BMP085 Library@^1.2.1 - adafruit/Adafruit BMP280 Library@^2.6.3 - adafruit/Adafruit TSL2561@^1.1.0 - starmbi/hp_BH1750@^1.0.0 - beegee-tokyo/DHT sensor library for ESPx@^1.18 - sparkfun/SparkFun SGP30 Arduino Library@^1.0.5 - sensirion/arduino-sht@^1.2.2 + adafruit/Adafruit Unified Sensor@^1.1.4 + adafruit/Adafruit AHTX0@^2.0.3 + adafruit/Adafruit BME280 Library@^2.2.2 + adafruit/Adafruit BMP085 Library@^1.2.1 + adafruit/Adafruit BMP280 Library@^2.6.3 + adafruit/Adafruit TSL2561@^1.1.0 + starmbi/hp_BH1750@^1.0.0 + beegee-tokyo/DHT sensor library for ESPx@^1.18 + sparkfun/SparkFun SGP30 Arduino Library@^1.0.5 + sensirion/arduino-sht@^1.2.2 [env:esp32] extends = esp32 -platform = ${esp32.platform} -platform_packages = ${esp32.platform_packages} -framework = ${esp32.framework} -board = esp32dev lib_deps = - ${esp32.lib_deps} - ${sensors.lib_deps} -board_build.partitions = partitions_singleapp.csv -monitor_speed = 115200 -upload_speed = 1500000 -monitor_filters = esp32_exception_decoder, time -build_unflags = ${esp32.build_unflags} + ${esp32.lib_deps} + ${sensors.lib_deps} build_flags = - -D FIRMWARE='"esp32"' - -D SENSORS - ${esp32.build_flags} + -D FIRMWARE='"esp32"' + -D SENSORS + ${esp32.build_flags} [env:esp32c3] extends = esp32c3 -platform = ${esp32c3.platform} -platform_packages = ${esp32c3.platform_packages} -framework = ${esp32c3.framework} -board = esp32-c3-devkitm-1 -board_build.partitions = partitions_singleapp.csv -monitor_speed = 115200 -upload_speed = 1500000 -monitor_filters = esp32_exception_decoder, time lib_deps = - ${esp32c3.lib_deps} - ${sensors.lib_deps} -build_unflags = ${esp32c3.build_unflags} + ${esp32c3.lib_deps} + ${sensors.lib_deps} build_flags = - -D FIRMWARE='"esp32c3"' - -D SENSORS - -D ESP32C3 - ${esp32c3.build_flags} + -D FIRMWARE='"esp32c3"' + -D SENSORS + ${esp32c3.build_flags} + +[env:esp32s3] +extends = esp32s3 +lib_deps = + ${esp32s3.lib_deps} + ${sensors.lib_deps} +build_flags = + -D FIRMWARE='"esp32s3"' + -D SENSORS + ${esp32s3.build_flags} [env:esp32-verbose] extends = esp32 -platform = ${esp32.platform} -platform_packages = ${esp32.platform_packages} -framework = ${esp32.framework} -board = esp32dev lib_deps = - ${esp32.lib_deps} - ${sensors.lib_deps} -board_build.partitions = partitions_singleapp.csv -monitor_speed = 115200 -upload_speed = 1500000 -monitor_filters = esp32_exception_decoder, time -build_unflags = ${esp32.build_unflags} + ${esp32.lib_deps} + ${sensors.lib_deps} build_flags = - -D CORE_DEBUG_LEVEL=2 - -D FIRMWARE='"esp32-verbose"' - -D VERBOSE - -D SENSORS - ${esp32.build_flags} + -D CORE_DEBUG_LEVEL=2 + -D FIRMWARE='"esp32-verbose"' + -D VERBOSE + -D SENSORS + ${esp32.build_flags} [env:esp32c3-verbose] extends = esp32c3 -platform = ${esp32c3.platform} -platform_packages = ${esp32c3.platform_packages} -framework = ${esp32c3.framework} -board = esp32-c3-devkitm-1 lib_deps = - ${esp32.lib_deps} - ${sensors.lib_deps} -board_build.partitions = partitions_singleapp.csv -monitor_speed = 115200 -upload_speed = 1500000 -monitor_filters = esp32_exception_decoder, time -build_unflags = ${esp32c3.build_unflags} + ${esp32.lib_deps} + ${sensors.lib_deps} build_flags = - -D CORE_DEBUG_LEVEL=2 - -D FIRMWARE='"esp32c3-verbose"' - -D VERBOSE - -D SENSORS - ${esp32c3.build_flags} + -D CORE_DEBUG_LEVEL=2 + -D FIRMWARE='"esp32c3-verbose"' + -D VERBOSE + -D SENSORS + ${esp32c3.build_flags} + +[env:esp32s3-verbose] +extends = esp32s3 +lib_deps = + ${esp32s3.lib_deps} + ${sensors.lib_deps} +build_flags = + -D CORE_DEBUG_LEVEL=2 + -D FIRMWARE='"esp32s3-verbose"' + -D VERBOSE + -D SENSORS + ${esp32s3.build_flags} [env:m5stickc] extends = esp32 -platform = ${esp32.platform} -platform_packages = ${esp32.platform_packages} -framework = ${esp32.framework} board = m5stick-c lib_deps = - https://github.com/ESPresense/TFT_eSPI.git - https://github.com/ESPresense/TB_Display.git - ${esp32.lib_deps} - ${sensors.lib_deps} -board_build.partitions = partitions_singleapp.csv -monitor_speed = 115200 -monitor_filters = esp32_exception_decoder, time -build_unflags = ${esp32.build_unflags} + https://github.com/ESPresense/TFT_eSPI.git + https://github.com/ESPresense/TB_Display.git + ${esp32.lib_deps} + ${sensors.lib_deps} build_flags = - -D TFT_FONT=1 - -D M5STICK - -D FIRMWARE='"m5stickc"' - -D SENSORS - ${esp32.build_flags} + -D TFT_FONT=1 + -D M5STICK + -D FIRMWARE='"m5stickc"' + -D SENSORS + ${esp32.build_flags} [env:m5stickc-plus] extends = esp32 -platform = ${esp32.platform} -platform_packages = ${esp32.platform_packages} -framework = ${esp32.framework} board = m5stick-c lib_deps = - https://github.com/ESPresense/TFT_eSPI.git - https://github.com/ESPresense/TB_Display.git - ${esp32.lib_deps} - ${sensors.lib_deps} -board_build.partitions = partitions_singleapp.csv -monitor_speed = 115200 -monitor_filters = esp32_exception_decoder, time -build_unflags = ${esp32.build_unflags} + https://github.com/ESPresense/TFT_eSPI.git + https://github.com/ESPresense/TB_Display.git + ${esp32.lib_deps} + ${sensors.lib_deps} build_flags = - -D TFT_FONT=2 - -D M5STICK - -D PLUS - -D FIRMWARE='"m5stickc-plus"' - -D SENSORS - ${esp32.build_flags} + -D TFT_FONT=2 + -D M5STICK + -D PLUS + -D FIRMWARE='"m5stickc-plus"' + -D SENSORS + ${esp32.build_flags} [env:m5atom] extends = esp32 -platform = ${esp32.platform} -platform_packages = ${esp32.platform_packages} -framework = ${esp32.framework} board = m5stack-atom lib_deps = - ${esp32.lib_deps} - ${sensors.lib_deps} -board_build.partitions = partitions_singleapp.csv -monitor_speed = 115200 -monitor_filters = esp32_exception_decoder, time -build_unflags = ${esp32.build_unflags} + ${esp32.lib_deps} + ${sensors.lib_deps} build_flags = - -D M5ATOM - -D MATRIX - -D FIRMWARE='"m5atom"' - -D SENSORS - ${esp32.build_flags} + -D M5ATOM + -D MATRIX + -D FIRMWARE='"m5atom"' + -D SENSORS + ${esp32.build_flags} [env:macchina-a0] extends = esp32 -platform = ${esp32.platform} -platform_packages = ${esp32.platform_packages} -framework = ${esp32.framework} -board = esp32dev lib_deps = - ${esp32.lib_deps} - ${sensors.lib_deps} -board_build.partitions = partitions_singleapp.csv -monitor_speed = 115200 -build_unflags = ${esp32.build_unflags} + ${esp32.lib_deps} + ${sensors.lib_deps} build_flags = - -D MACCHINA_A0 - -D FIRMWARE='"macchina-a0"' - -D SENSORS - ${esp32.build_flags} + -D MACCHINA_A0 + -D FIRMWARE='"macchina-a0"' + -D SENSORS + ${esp32.build_flags}