Skip to content

Commit 6c2aa59

Browse files
authored
Arduino 3.2.x based on IDF 5.4.x
1 parent d975a1d commit 6c2aa59

File tree

8 files changed

+22
-62
lines changed

8 files changed

+22
-62
lines changed

.github/workflows/examples.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ jobs:
1212
strategy:
1313
fail-fast: false
1414
matrix:
15-
os: [ubuntu-22.04, windows-2022, macos-14]
15+
os: [ubuntu-latest, windows-2022, macos-14]
1616
example:
1717
- "examples/arduino-blink"
1818
- "examples/arduino-rmt-blink"
@@ -39,7 +39,7 @@ jobs:
3939
- name: Set up Python
4040
uses: actions/setup-python@v5
4141
with:
42-
python-version: "3.11"
42+
python-version: "3.13"
4343
- name: Install dependencies
4444
run: |
4545
python -m pip install --upgrade pip

README.md

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
# Tasmota Espressif 32: development platform for [PlatformIO](http://platformio.org)
55

6-
[![Examples](https://github.com/Jason2866/platform-espressif32/actions/workflows/examples.yml/badge.svg)](https://github.com/Jason2866/platform-espressif32/actions/workflows/examples.yml)[![GitHub Releases](https://img.shields.io/github/downloads/tasmota/platform-espressif32/total?label=downloads)](https://github.com/tasmota/platform-espressif32/releases/latest)
6+
[![Examples](https://github.com/tasmota/platform-espressif32/actions/workflows/examples.yml/badge.svg)](https://github.com/tasmota/platform-espressif32/actions/workflows/examples.yml)[![GitHub Releases](https://img.shields.io/github/downloads/tasmota/platform-espressif32/total?label=downloads)](https://github.com/tasmota/platform-espressif32/releases/latest)
77

88
Espressif Systems is a privately held fabless semiconductor company. They provide wireless communications and Wi-Fi chips which are widely used in mobile devices and the Internet of Things applications.
99

@@ -15,13 +15,12 @@ Espressif Systems is a privately held fabless semiconductor company. They provid
1515
1. [Install PlatformIO](http://platformio.org)
1616
2. Create PlatformIO project and configure a platform option in [platformio.ini](http://docs.platformio.org/page/projectconf.html) file:
1717

18-
# Usage
18+
### Development build Arduino 3.2.0+ and IDF 5.4.0+ (build from development branches)
19+
Support for the ESP32/ESP32solo1, ESP32C2, ESP32C3, ESP32C6, ESP32S2, ESP32S3 and ESP32-H2
1920

20-
## Tasmota release Arduino 3.1.3.250302 and IDF 5.3.2.250228
21-
Support for the ESP32/ESP32solo1, ESP32C2, ESP32C3, ESP32C6, ESP32S2, ESP32S3, ESP32-H2 and ESP32-P4
2221
```
2322
[platformio]
24-
platform = https://github.com/tasmota/platform-espressif32/releases/download/2025.03.30/platform-espressif32.zip
23+
platform = https://github.com/tasmota/platform-espressif32.git#Arduino/IDF54
2524
framework = arduino
2625
```
2726
## Hybrid compile: Build customized Arduino IDF libraries

builder/frameworks/arduino.py

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -56,23 +56,14 @@
5656
flag_custom_sdkconfig = True
5757

5858
extra_flags = (''.join([element for element in board.get("build.extra_flags", "")])).replace("-D", " ")
59-
build_flags = ''.join([element.replace("-D", " ") for element in env.GetProjectOption("build_flags")])
6059
framework_reinstall = False
6160
flag_any_custom_sdkconfig = False
6261

63-
if ("CORE32SOLO1" in extra_flags or "FRAMEWORK_ARDUINO_SOLO1" in build_flags) and ("arduino" in env.subst("$PIOFRAMEWORK")) and flag_custom_sdkconfig == False:
64-
FRAMEWORK_DIR = platform.get_package_dir("framework-arduino-solo1")
65-
elif ("CORE32ITEAD" in extra_flags or "FRAMEWORK_ARDUINO_ITEAD" in build_flags) and ("arduino" in env.subst("$PIOFRAMEWORK")) and flag_custom_sdkconfig == False:
66-
FRAMEWORK_DIR = platform.get_package_dir("framework-arduino-ITEAD")
67-
elif "arduino" in env.subst("$PIOFRAMEWORK") and "CORE32SOLO1" not in extra_flags and "FRAMEWORK_ARDUINO_SOLO1" not in build_flags and "CORE32ITEAD" not in extra_flags and "FRAMEWORK_ARDUINO_ITEAD" not in build_flags:
68-
FRAMEWORK_DIR = platform.get_package_dir("framework-arduinoespressif32")
69-
elif "arduino" in env.subst("$PIOFRAMEWORK") and flag_custom_sdkconfig == True:
70-
FRAMEWORK_DIR = platform.get_package_dir("framework-arduinoespressif32")
62+
FRAMEWORK_DIR = platform.get_package_dir("framework-arduinoespressif32")
7163

7264
SConscript("_embed_files.py", exports="env")
7365

74-
if "framework-arduinoespressif32" in FRAMEWORK_DIR:
75-
flag_any_custom_sdkconfig = os.path.exists(join(platform.get_package_dir("framework-arduinoespressif32"),"tools","esp32-arduino-libs","sdkconfig"))
66+
flag_any_custom_sdkconfig = os.path.exists(join(platform.get_package_dir("framework-arduinoespressif32"),"tools","esp32-arduino-libs","sdkconfig"))
7667

7768
# Esp32-solo1 libs needs adopted settings
7869
if flag_custom_sdkconfig == True and ("CORE32SOLO1" in extra_flags or "CONFIG_FREERTOS_UNICORE=y" in entry_custom_sdkconfig or "CONFIG_FREERTOS_UNICORE=y" in board_sdkconfig):
@@ -261,8 +252,9 @@ def shorthen_includes(env, node):
261252
if "arduino" in env.subst("$PIOFRAMEWORK") and "espidf" not in env.subst("$PIOFRAMEWORK") and env.subst("$ARDUINO_LIB_COMPILE_FLAG") in ("Inactive", "True"):
262253
if IS_WINDOWS:
263254
env.AddBuildMiddleware(shorthen_includes)
264-
if os.path.exists(join(FRAMEWORK_DIR, "tools", "platformio-build.py")):
255+
if os.path.exists(join(platform.get_package_dir(
256+
"framework-arduinoespressif32"), "tools", "platformio-build.py")):
265257
PIO_BUILD = "platformio-build.py"
266258
else:
267259
PIO_BUILD = "pioarduino-build.py"
268-
SConscript(join(FRAMEWORK_DIR, "tools", PIO_BUILD))
260+
SConscript(join(platform.get_package_dir("framework-arduinoespressif32"), "tools", PIO_BUILD))

builder/frameworks/ulp.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,7 @@ def _generate_ulp_configuration_action(env, target, source):
9999

100100
cmd = (
101101
os.path.join(platform.get_package_dir("tool-cmake"), "bin", "cmake"),
102+
"-DCMAKE_EXPORT_COMPILE_COMMANDS=ON",
102103
"-DCMAKE_GENERATOR=Ninja",
103104
"-DCMAKE_TOOLCHAIN_FILE="
104105
+ os.path.join(
@@ -117,6 +118,7 @@ def _generate_ulp_configuration_action(env, target, source):
117118
"-DSDKCONFIG_HEADER=" + os.path.join(BUILD_DIR, "config", "sdkconfig.h"),
118119
"-DPYTHON=" + env.subst("$PYTHONEXE"),
119120
"-DSDKCONFIG_CMAKE=" + os.path.join(BUILD_DIR, "config", "sdkconfig.cmake"),
121+
"-DCMAKE_MODULE_PATH=" + fs.to_unix_path(os.path.join(FRAMEWORK_DIR, "components", "ulp", "cmake")),
120122
"-GNinja",
121123
"-B",
122124
ULP_BUILD_DIR,

builder/main.py

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -25,23 +25,12 @@
2525
env = DefaultEnvironment()
2626
platform = env.PioPlatform()
2727
config = env.GetProjectConfig()
28-
extra_flags = ''.join([element.replace("-D", " ") for element in env.BoardConfig().get("build.extra_flags", "")])
29-
build_flags = ''.join([element.replace("-D", " ") for element in env.GetProjectOption("build_flags")])
30-
flag_custom_sdkonfig = False
31-
if config.has_option("env:"+env["PIOENV"], "custom_sdkconfig"):
32-
flag_custom_sdkonfig = True
3328

3429
#
3530
# Helpers
3631
#
3732

38-
if "CORE32SOLO1" in extra_flags or "FRAMEWORK_ARDUINO_SOLO1" in build_flags and flag_custom_sdkonfig is False:
39-
FRAMEWORK_DIR = platform.get_package_dir("framework-arduino-solo1")
40-
elif "CORE32ITEAD" in extra_flags or "FRAMEWORK_ARDUINO_ITEAD" in build_flags and flag_custom_sdkonfig is False:
41-
FRAMEWORK_DIR = platform.get_package_dir("framework-arduino-ITEAD")
42-
else:
43-
FRAMEWORK_DIR = platform.get_package_dir("framework-arduinoespressif32")
44-
33+
FRAMEWORK_DIR = platform.get_package_dir("framework-arduinoespressif32")
4534

4635
def BeforeUpload(target, source, env):
4736
upload_options = {}

examples/tasmota_platformio_override.ini

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
[platformio]
22
default_envs =
3-
tasmota32-webcam
4-
tasmota32solo1
5-
tasmota32-nspanel
3+
tasmota32
64
tasmota32c2
75

86
[env:tasmota32_base]

platform.json

Lines changed: 6 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
"type": "git",
1919
"url": "https://github.com/tasmota/platform-espressif32.git"
2020
},
21-
"version": "2025.03.30",
21+
"version": "2025.02.40",
2222
"frameworks": {
2323
"arduino": {
2424
"script": "builder/frameworks/arduino.py"
@@ -33,37 +33,25 @@
3333
"type": "framework",
3434
"optional": true,
3535
"owner": "tasmota",
36-
"version": "https://github.com/tasmota/arduino-esp32/releases/download/v3.1.3.250302/framework-arduinoespressif32.zip"
37-
},
38-
"framework-arduino-solo1": {
39-
"type": "framework",
40-
"optional": true,
41-
"owner": "tasmota",
42-
"version": "https://github.com/tasmota/arduino-esp32/releases/download/v3.1.3.250302/framework-arduinoespressif32-solo1.zip"
43-
},
44-
"framework-arduino-ITEAD": {
45-
"type": "framework",
46-
"optional": true,
47-
"owner": "tasmota",
48-
"version": "https://github.com/tasmota/arduino-esp32/releases/download/v3.1.3.250302/framework-arduinoespressif32-ITEAD.zip"
36+
"version": "https://github.com/Jason2866/esp32-arduino-lib-builder/releases/download/3421/framework-arduinoespressif32-all-release_v5.4-7a7b05ac.zip"
4937
},
5038
"framework-espidf": {
5139
"type": "framework",
5240
"optional": true,
5341
"owner": "Jason2866",
54-
"version": "https://github.com/tasmota/esp-idf/releases/download/v5.3.2.250228/esp-idf-v5.3.2.zip"
42+
"version": "https://github.com/tasmota/esp-idf/releases/download/v5.4.0.250221/esp-idf-v5.4.0.zip"
5543
},
5644
"toolchain-xtensa-esp-elf": {
5745
"type": "toolchain",
5846
"optional": true,
5947
"owner": "platformio",
60-
"version": "13.2.0+20240530"
48+
"version": "14.2.0+20241119"
6149
},
6250
"toolchain-riscv32-esp": {
6351
"type": "toolchain",
6452
"optional": true,
6553
"owner": "platformio",
66-
"version": "13.2.0+20240530"
54+
"version": "14.2.0+20241119"
6755
},
6856
"toolchain-esp32ulp": {
6957
"type": "toolchain",
@@ -86,7 +74,7 @@
8674
"tool-esptoolpy": {
8775
"type": "uploader",
8876
"owner": "tasmota",
89-
"version": "https://github.com/tasmota/esptool/releases/download/v4.8.8/esptool.zip"
77+
"version": "https://github.com/Jason2866/esptool/releases/download/v4.9.0-rc1/esptool.zip"
9078
},
9179
"tool-dfuutil-arduino": {
9280
"type": "uploader",

platform.py

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -38,18 +38,10 @@ def configure_default_packages(self, variables, targets):
3838
board_config = self.board_config(variables.get("board"))
3939
mcu = variables.get("board_build.mcu", board_config.get("build.mcu", "esp32"))
4040
board_sdkconfig = variables.get("board_espidf.custom_sdkconfig", board_config.get("espidf.custom_sdkconfig", ""))
41-
core_variant_board = ''.join(variables.get("board_build.extra_flags", board_config.get("build.extra_flags", "")))
42-
core_variant_board = core_variant_board.replace("-D", " ")
43-
core_variant_build = (''.join(variables.get("build_flags", []))).replace("-D", " ")
4441
frameworks = variables.get("pioframework", [])
4542

4643
if "arduino" in frameworks and variables.get("custom_sdkconfig") is None and len(str(board_sdkconfig)) < 3:
47-
if "CORE32SOLO1" in core_variant_board or "FRAMEWORK_ARDUINO_SOLO1" in core_variant_build:
48-
self.packages["framework-arduino-solo1"]["optional"] = False
49-
elif "CORE32ITEAD" in core_variant_board or "FRAMEWORK_ARDUINO_ITEAD" in core_variant_build:
50-
self.packages["framework-arduino-ITEAD"]["optional"] = False
51-
else:
52-
self.packages["framework-arduinoespressif32"]["optional"] = False
44+
self.packages["framework-arduinoespressif32"]["optional"] = False
5345

5446
if variables.get("custom_sdkconfig") is not None or len(str(board_sdkconfig)) > 3:
5547
frameworks.append("espidf")

0 commit comments

Comments
 (0)