From 70383c8f47eb2d27a4768f2c6ae99abab1f37f5e Mon Sep 17 00:00:00 2001
From: Darrell
Date: Sat, 11 Mar 2023 02:13:34 -0500
Subject: [PATCH] Add support for esp32s3 (#834)
---
.editorconfig | 8 +-
.github/workflows/build.yml | 27 ++--
.github/workflows/check.yml | 2 +-
platformio.ini | 300 ++++++++++++++++--------------------
4 files changed, 147 insertions(+), 190 deletions(-)
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}