Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ESP32 Arduino v3.1.x #10202

Open
wants to merge 130 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
130 commits
Select commit Hold shift + click to select a range
e1673e4
fix(build): IDF release/v5.3 466a392a and initial changes
me-no-dev Aug 19, 2024
f77ce04
fix(build): Fix many warnings
me-no-dev Aug 19, 2024
54f1c22
fix(build): Fix warning in FFat
me-no-dev Aug 19, 2024
c7e01e7
add(build): Add initial ESP32-P4 skeleton
me-no-dev Aug 20, 2024
7fe4aa6
Merge branch 'master' into release/v3.1.x
me-no-dev Aug 21, 2024
0a8888d
Merge branch 'master' into release/v3.1.x
me-no-dev Aug 22, 2024
4c4906f
fix(uart): sleep retention (#10248)
SuGlider Aug 28, 2024
fa67115
Merge branch 'master' into release/v3.1.x
me-no-dev Aug 28, 2024
75b29fd
Merge branch 'master' into release/v3.1.x
me-no-dev Aug 28, 2024
0b84244
Update core version to 3.1.0
me-no-dev Aug 28, 2024
e6dc9db
Merge branch 'master' into release/v3.1.x
me-no-dev Aug 28, 2024
57518b8
ci(pre-commit): Apply automatic fixes
pre-commit-ci-lite[bot] Aug 28, 2024
8352caf
Merge branch 'master' into release/v3.1.x
me-no-dev Aug 28, 2024
a8677a0
Merge branch 'master' into release/v3.1.x
me-no-dev Aug 28, 2024
564612d
IDF release/v5.3 0bbd7281 (#10258)
me-no-dev Aug 28, 2024
22fb402
Merge branch 'master' into release/v3.1.x
me-no-dev Aug 28, 2024
855da42
Merge branch 'master' into release/v3.1.x
me-no-dev Sep 11, 2024
e68b1cc
Merge branch 'master' into release/v3.1.x
me-no-dev Sep 18, 2024
6768208
IDF release/v5.3 (#10272)
me-no-dev Sep 18, 2024
a4c33e3
feat(esp32p4): Add initial ESP32-P4 support (#10358)
lucasssvaz Sep 24, 2024
87c0e77
change(tools): Push generated binaries to PR
github-actions[bot] Sep 24, 2024
9398d52
Update package_esp32_index.template.json
me-no-dev Sep 24, 2024
4bb287e
fix(esp32p4): Fix compilation errors (#10371)
lucasssvaz Sep 25, 2024
7a01384
Merge branch 'master' into release/v3.1.x
me-no-dev Sep 25, 2024
6935131
Merge branch 'master' into release/v3.1.x
lucasssvaz Sep 30, 2024
8422b74
Fix touch examples JSON for P4
lucasssvaz Sep 30, 2024
a76b228
Fix ethernet examples JSON for P4
lucasssvaz Sep 30, 2024
a5a5809
Merge branch 'master' into release/v3.1.x
me-no-dev Oct 1, 2024
c980fdc
Update early system init function declaration
me-no-dev Oct 1, 2024
482c0a3
fix(psram): Do not abort if PSRAM is not found
me-no-dev Oct 1, 2024
753e203
fix(psram): ESP32-S2 does not like to early debug log
me-no-dev Oct 1, 2024
0db5bef
Merge branch 'master' into release/v3.1.x
me-no-dev Oct 1, 2024
e3499bc
Merge branch 'master' into release/v3.1.x
me-no-dev Oct 2, 2024
8af91fb
Fix build of camera web server
me-no-dev Oct 1, 2024
58c0bbc
fix(usb): Add support for ESP32-P4 to esp32-hal-tinyusb
me-no-dev Oct 2, 2024
264c858
Merge branch 'master' into release/v3.1.x
me-no-dev Oct 2, 2024
b067cd6
fix(example): Skip zigbee build for P4
P-R-O-C-H-Y Oct 2, 2024
c504728
fix(example): Use requires instead of target in ci.json
P-R-O-C-H-Y Oct 2, 2024
c3aa74f
fix(spiram): Fix OPI PSRAM init
me-no-dev Oct 2, 2024
01b256c
fix(usb): Enable TinyUSB mode for ESP32-P4
me-no-dev Oct 2, 2024
6c99740
Merge branch 'master' into release/v3.1.x
me-no-dev Oct 2, 2024
157b4c8
IDF release/v5.3 (#10403)
me-no-dev Oct 2, 2024
341dc18
fix(usb): Add support for HighSpeed USB
me-no-dev Oct 3, 2024
6d6a8f8
IDF release/v5.3 707d097b (#10416)
me-no-dev Oct 3, 2024
e12e33c
Merge branch 'master' into release/v3.1.x
lucasssvaz Oct 4, 2024
7651733
Add P4 to chip info
lucasssvaz Oct 4, 2024
4d1c9bc
Fix partitions for examples
lucasssvaz Oct 7, 2024
ba9a3a1
fix(arduino): adds ESP32-P4 to the package description (#10426)
SuGlider Oct 7, 2024
af40992
IDF release/v5.3 (#10444)
me-no-dev Oct 10, 2024
774f275
Merge branch 'master' into release/v3.1.x
me-no-dev Oct 10, 2024
81d2cbc
fix(uart): Add missing HP UARTs for ESP32-P4 (#10447)
lucasssvaz Oct 10, 2024
3733c87
replace outdated wrong `SOC_I2C_NUM` and use `SOC_HP_I2C_NUM` (#10452)
Jason2866 Oct 11, 2024
3edf518
Add support for WiFi to ESP32-P4 (#10463)
me-no-dev Oct 15, 2024
c6bf1b4
Update esp-insights version (#10456)
Asc91 Oct 15, 2024
a3f2568
IDF release/v5.3 (#10465)
me-no-dev Oct 15, 2024
592c994
Merge branch 'master' into release/v3.1.x
me-no-dev Oct 15, 2024
f706c27
Update TinyUSB init method
me-no-dev Oct 15, 2024
c676ce7
fix(p4): Move ESP-HOSTED init to WiFiGeneric
me-no-dev Oct 15, 2024
9dea05b
IDF release/v5.3 707d097b (#10473)
me-no-dev Oct 16, 2024
612fc4c
fix(pins): Adjust P4 SPI pins to ones that are available
me-no-dev Oct 17, 2024
ee1bc6b
Add RMII Ethernet support for ESP32-P4 (#10479)
me-no-dev Oct 17, 2024
9e48d9f
fix(spi): Fix P4 SPI Pin definitions
me-no-dev Oct 17, 2024
8570b3d
Fix formatting in ETH and USB
lucasssvaz Oct 17, 2024
edb4ee1
IDF release/v5.3 707d097b (#10480)
me-no-dev Oct 17, 2024
59ca4e2
Merge branch 'master' into release/v3.1.x
me-no-dev Oct 18, 2024
7cfe470
feat(touch): Support NG touch driver for P4 (#10448)
P-R-O-C-H-Y Oct 21, 2024
83d3568
feat(sdmmc): Add SDMMC support for P4 + remove BUILTIN LED (#10460)
P-R-O-C-H-Y Oct 21, 2024
03bfa52
Merge branch 'master' into release/v3.1.x
lucasssvaz Oct 21, 2024
f668557
Enable tests for ESP32P4
lucasssvaz Oct 21, 2024
c40444a
feat(matter): initial commit with arduino matter lib (#10467)
SuGlider Oct 21, 2024
f1f0e4d
Update MatterOnOffLight.ino
SuGlider Oct 21, 2024
0045cfa
fix(matter): change place of wifi credentials in code
SuGlider Oct 21, 2024
7a33a9e
fix(matter): change the place of wifi credentials in the code
SuGlider Oct 21, 2024
8ac076c
fix(matter): empty line removing - style
SuGlider Oct 21, 2024
20a28b5
fix(net): Do not use netif_index_to_name
me-no-dev Oct 22, 2024
774201a
fix(build): Require main component to include all components
me-no-dev Oct 22, 2024
1631466
fix(build): Update required components and menu
me-no-dev Oct 22, 2024
aefe8a5
IDF release/v5.3 59550599 (#10498)
me-no-dev Oct 22, 2024
0eee5c4
fix(arduino): Move extra_flags to flags (#10493)
me-no-dev Oct 22, 2024
dc1a49e
IDF release/v5.3 (#10503)
me-no-dev Oct 22, 2024
6e88445
fix(i2s): Use separate variables when reading and writing (#10509)
me-no-dev Oct 23, 2024
3554927
Merge branch 'master' into release/v3.1.x
me-no-dev Oct 23, 2024
6dfd958
fix(eth): Set default clock in pin value to zero (#10513)
me-no-dev Oct 23, 2024
9fd1bf3
Merge branch 'master' into release/v3.1.x
me-no-dev Oct 24, 2024
a3ee376
Update readme
lucasssvaz Oct 24, 2024
9ac705e
IDF release/v5.3 a0f798cf (#10522)
me-no-dev Oct 25, 2024
38a4c29
feature(rtos): Add Tasks status print function (#10515)
me-no-dev Oct 25, 2024
9aeb1ba
ESP32-P4 UART Pin Definitions (#10521)
SuGlider Oct 25, 2024
a805e06
feat(esptool): Update esptool to v4.8.1 (#10524)
lucasssvaz Oct 25, 2024
804ee12
Merge branch 'master' into release/v3.1.x
me-no-dev Oct 25, 2024
87ad78d
fix(bm): Board Manager install will fail on Windows (#10533)
me-no-dev Oct 29, 2024
f1e1f5a
Merge branch 'master' into release/v3.1.x
lucasssvaz Nov 4, 2024
de93e6e
change(tools): Push generated binaries to PR
github-actions[bot] Nov 4, 2024
a80b03e
fix(IPaddress): IPv6 restore zone id (#10546)
s-hadinger Nov 5, 2024
69825a9
feat(Matter): New Matter Endpoint - Dimmable Light (#10543)
SuGlider Nov 5, 2024
501f8a9
fix(esptool): Bump esptool version to 4.9.dev1 on 3.1.x (#10570)
lucasssvaz Nov 5, 2024
3dad918
Merge branch 'master' into release/v3.1.x
me-no-dev Nov 5, 2024
adcbc2a
Merge branch 'master' into release/v3.1.x
me-no-dev Nov 6, 2024
61d5c49
Merge branch 'master' into release/v3.1.x
lucasssvaz Nov 6, 2024
c009220
fix(wifi): Fix WiFiMulti on ESP32-P4
me-no-dev Nov 6, 2024
32e2230
fix(wifi): Fix requirements and guards for hosted Wi-Fi (#10579)
lucasssvaz Nov 6, 2024
1ecbbae
fix(wifi): Guard missing sketches for hosted Wi-Fi
lucasssvaz Nov 7, 2024
d561685
Merge branch 'master' into release/v3.1.x
me-no-dev Nov 12, 2024
f8d9ffb
fix(net): Allow to compile without IPv6 enabled (#10582)
me-no-dev Nov 12, 2024
cc40718
fix(build): Allow Arduino to compile in IDF without components (#10597)
me-no-dev Nov 12, 2024
3822a68
IDF release/v5.3 (#10599)
me-no-dev Nov 13, 2024
e9b3f26
ci(pytest): Bump pytest-embedded to 1.12.0 for P4 fixes
lucasssvaz Nov 14, 2024
3a5dbf2
Merge branch 'master' into release/v3.1.x
me-no-dev Nov 19, 2024
4a8ba42
fix weird formatting, no code change (#10617)
Jason2866 Nov 19, 2024
fe0f016
Matter example patch (#10618)
SuGlider Nov 19, 2024
2b6b5c7
feat(uart): adds Serial4 as a keyword - used by ESP32-P4 (#10619)
SuGlider Nov 19, 2024
f5ce3f7
Guard ethernet parts to make it possible to use without (#10609)
Jason2866 Nov 19, 2024
d7b5bb1
Guard WPA Enterprise support (#10616)
Jason2866 Nov 20, 2024
442679d
fix(Zigbee): Add missing direction to report commands (#10623)
P-R-O-C-H-Y Nov 20, 2024
268b31c
feat(zigbee): Add setLight APIs to manually operate lights (#10626)
P-R-O-C-H-Y Nov 20, 2024
66f7c93
Merge branch 'master' into release/v3.1.x
me-no-dev Nov 20, 2024
ff613b3
ci(uart): Disable UART test for P4 until it is fixed in Wokwi
lucasssvaz Nov 20, 2024
6bc3ce6
feat(matter): New Matter Endpoint (#10628)
SuGlider Nov 20, 2024
962ab3a
Adds a Minimum Code Matter Example (#10639)
SuGlider Nov 24, 2024
6e57662
fix compile of P4 caused from missing ")" in debug macro (#10638)
Jason2866 Nov 25, 2024
9417a84
feat(uart): [IDF 5.3] fixes HardwareSerial::updateBaudRate() using a …
SuGlider Nov 25, 2024
1730e4e
fix(zigbee): Add connected(), minor fixes, example update (#10636)
P-R-O-C-H-Y Nov 25, 2024
eb1933f
Guard crypto parts in "Update" to save resources (#10630)
Jason2866 Nov 25, 2024
0bcdd2c
Merge branch 'master' into release/v3.1.x
SuGlider Nov 25, 2024
0f3191e
fix(zigbee): Increase timeout, commision again on failure + setScanDu…
P-R-O-C-H-Y Nov 25, 2024
414e4f3
feat(Matter): add new MatterColorLight endpoint (#10654)
SuGlider Nov 26, 2024
9f5f95e
Merge branch 'master' into release/v3.1.x
me-no-dev Nov 28, 2024
c2ce738
feat(matter): New example => Wifi Prov within Matter as alternative f…
SuGlider Dec 2, 2024
9d8df8b
feat(matter): Adds Matter Enhanced Color Light Endpoint (CW/WW/RGB) (…
SuGlider Dec 2, 2024
af84da6
feat(matter): Adds a new Matter Endpoint: Generic Switch (smart butto…
SuGlider Dec 3, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/scripts/on-push.sh
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,7 @@ if [ "$BUILD_PIO" -eq 0 ]; then
fi

#build sketches for different targets
build "esp32p4" "$CHUNK_INDEX" "$CHUNKS_CNT" "$BUILD_LOG" "$SKETCHES_FILE" "$SKETCHES_ESP32"
build "esp32s3" "$CHUNK_INDEX" "$CHUNKS_CNT" "$BUILD_LOG" "$SKETCHES_FILE" "$SKETCHES_ESP32"
build "esp32s2" "$CHUNK_INDEX" "$CHUNKS_CNT" "$BUILD_LOG" "$SKETCHES_FILE" "$SKETCHES_ESP32"
build "esp32c3" "$CHUNK_INDEX" "$CHUNKS_CNT" "$BUILD_LOG" "$SKETCHES_FILE" "$SKETCHES_ESP32"
Expand Down
20 changes: 3 additions & 17 deletions .github/scripts/on-release.sh
Original file line number Diff line number Diff line change
Expand Up @@ -219,12 +219,8 @@ find "$PKG_DIR" -name '*.git*' -type f -delete
##
RVTC_NAME="riscv32-esp-elf-gcc"
RVTC_NEW_NAME="esp-rv32"
X32TC_NAME="xtensa-esp32-elf-gcc"
X32TC_NAME="xtensa-esp-elf-gcc"
X32TC_NEW_NAME="esp-x32"
XS2TC_NAME="xtensa-esp32s2-elf-gcc"
XS2TC_NEW_NAME="esp-xs2"
XS3TC_NAME="xtensa-esp32s3-elf-gcc"
XS3TC_NEW_NAME="esp-xs3"

# Replace tools locations in platform.txt
echo "Generating platform.txt..."
Expand All @@ -233,9 +229,7 @@ sed "s/version=.*/version=$RELEASE_TAG/g" | \
sed 's/tools\.esp32-arduino-libs\.path\.windows=.*//g' | \
sed 's/{runtime\.platform\.path}.tools.esp32-arduino-libs/\{runtime.tools.esp32-arduino-libs.path\}/g' | \
sed 's/{runtime\.platform\.path}.tools.xtensa-esp-elf-gdb/\{runtime.tools.xtensa-esp-elf-gdb.path\}/g' | \
sed "s/{runtime\.platform\.path}.tools.xtensa-esp32-elf/\\{runtime.tools.$X32TC_NEW_NAME.path\\}/g" | \
sed "s/{runtime\.platform\.path}.tools.xtensa-esp32s2-elf/\\{runtime.tools.$XS2TC_NEW_NAME.path\\}/g" | \
sed "s/{runtime\.platform\.path}.tools.xtensa-esp32s3-elf/\\{runtime.tools.$XS3TC_NEW_NAME.path\\}/g" | \
sed "s/{runtime\.platform\.path}.tools.xtensa-esp-elf/\\{runtime.tools.$X32TC_NEW_NAME.path\\}/g" | \
sed 's/{runtime\.platform\.path}.tools.riscv32-esp-elf-gdb/\{runtime.tools.riscv32-esp-elf-gdb.path\}/g' | \
sed "s/{runtime\.platform\.path}.tools.riscv32-esp-elf/\\{runtime.tools.$RVTC_NEW_NAME.path\\}/g" | \
sed 's/{runtime\.platform\.path}.tools.esptool/\{runtime.tools.esptool_py.path\}/g' | \
Expand Down Expand Up @@ -293,15 +287,7 @@ rvtc_jq_arg="\
(.packages[0].platforms[0].toolsDependencies[] | select(.name==\"$X32TC_NAME\")).version = \"$RVTC_VERSION\" |\
(.packages[0].platforms[0].toolsDependencies[] | select(.name==\"$X32TC_NAME\")).name = \"$X32TC_NEW_NAME\" |\
(.packages[0].tools[] | select(.name==\"$X32TC_NAME\")).version = \"$RVTC_VERSION\" |\
(.packages[0].tools[] | select(.name==\"$X32TC_NAME\")).name = \"$X32TC_NEW_NAME\" |\
(.packages[0].platforms[0].toolsDependencies[] | select(.name==\"$XS2TC_NAME\")).version = \"$RVTC_VERSION\" |\
(.packages[0].platforms[0].toolsDependencies[] | select(.name==\"$XS2TC_NAME\")).name = \"$XS2TC_NEW_NAME\" |\
(.packages[0].tools[] | select(.name==\"$XS2TC_NAME\")).version = \"$RVTC_VERSION\" |\
(.packages[0].tools[] | select(.name==\"$XS2TC_NAME\")).name = \"$XS2TC_NEW_NAME\" |\
(.packages[0].platforms[0].toolsDependencies[] | select(.name==\"$XS3TC_NAME\")).version = \"$RVTC_VERSION\" |\
(.packages[0].platforms[0].toolsDependencies[] | select(.name==\"$XS3TC_NAME\")).name = \"$XS3TC_NEW_NAME\" |\
(.packages[0].tools[] | select(.name==\"$XS3TC_NAME\")).version = \"$RVTC_VERSION\" |\
(.packages[0].tools[] | select(.name==\"$XS3TC_NAME\")).name = \"$XS3TC_NEW_NAME\""
(.packages[0].tools[] | select(.name==\"$X32TC_NAME\")).name = \"$X32TC_NEW_NAME\""
cat "$PACKAGE_JSON_TEMPLATE" | jq "$rvtc_jq_arg" > "$OUTPUT_DIR/package-rvfix.json"
PACKAGE_JSON_TEMPLATE="$OUTPUT_DIR/package-rvfix.json"

Expand Down
5 changes: 5 additions & 0 deletions .github/scripts/sketch_utils.sh
Original file line number Diff line number Diff line change
Expand Up @@ -153,6 +153,7 @@ function build_sketch(){ # build_sketch <ide_path> <user_path> <path-to-ino> [ex
esp32c3_opts=$(echo "$debug_level,$fqbn_append" | sed 's/^,*//;s/,*$//;s/,\{2,\}/,/g')
esp32c6_opts=$(echo "$debug_level,$fqbn_append" | sed 's/^,*//;s/,*$//;s/,\{2,\}/,/g')
esp32h2_opts=$(echo "$debug_level,$fqbn_append" | sed 's/^,*//;s/,*$//;s/,\{2,\}/,/g')
esp32p4_opts=$(echo "PSRAM=enabled,USBMode=default,$debug_level,$fqbn_append" | sed 's/^,*//;s/,*$//;s/,\{2,\}/,/g')

# Select the common part of the FQBN based on the target. The rest will be
# appended depending on the passed options.
Expand Down Expand Up @@ -184,6 +185,10 @@ function build_sketch(){ # build_sketch <ide_path> <user_path> <path-to-ino> [ex
[ -n "${options:-$esp32h2_opts}" ] && opt=":${options:-$esp32h2_opts}"
fqbn="espressif:esp32:esp32h2$opt"
;;
"esp32p4")
[ -n "${options:-$esp32p4_opts}" ] && opt=":${options:-$esp32p4_opts}"
fqbn="espressif:esp32:esp32p4$opt"
;;
esac

# Make it look like a JSON array.
Expand Down
2 changes: 1 addition & 1 deletion .github/scripts/tests_matrix.sh
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ if [[ $IS_PR != 'true' ]] || [[ $PERFORMANCE_ENABLED == 'true' ]]; then
#qemu_types+=",'performance'"
fi

targets="'esp32','esp32s2','esp32s3','esp32c3','esp32c6','esp32h2'"
targets="'esp32','esp32s2','esp32s3','esp32c3','esp32c6','esp32h2','esp32p4'"

mkdir -p info

Expand Down
3 changes: 3 additions & 0 deletions .github/workflows/lib.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ jobs:
- esp32s3
- esp32c6
- esp32h2
- esp32p4

include:
- target: esp32
Expand All @@ -56,6 +57,8 @@ jobs:
fqbn: espressif:esp32:esp32c6
- target: esp32h2
fqbn: espressif:esp32:esp32h2
- target: esp32p4
fqbn: espressif:esp32:esp32p4


steps:
Expand Down
45 changes: 23 additions & 22 deletions .github/workflows/push.yml
Original file line number Diff line number Diff line change
Expand Up @@ -212,28 +212,29 @@ jobs:
- name: Build Sketches
run: bash ./.github/scripts/on-push.sh

# PlatformIO on Windows, Ubuntu and Mac
build-platformio:
name: PlatformIO on ${{ matrix.os }}
needs: gen-chunks
if: |
needs.gen-chunks.outputs.build_all == 'true' ||
needs.gen-chunks.outputs.build_static_sketches == 'true' ||
needs.gen-chunks.outputs.build_platformio == 'true'
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macOS-latest]
# # PlatformIO on Windows, Ubuntu and Mac
# build-platformio:
# name: PlatformIO on ${{ matrix.os }}
# needs: gen-chunks
# if: |
# needs.gen-chunks.outputs.build_all == 'true' ||
# needs.gen-chunks.outputs.build_static_sketches == 'true' ||
# needs.gen-chunks.outputs.build_platformio == 'true'
# runs-on: ${{ matrix.os }}
# strategy:
# fail-fast: false
# matrix:
# os: [ubuntu-latest, windows-latest, macOS-latest]

steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.x'
- name: Build Sketches
run: bash ./.github/scripts/on-push.sh 1 1 #equal and non-zero to trigger PIO
# steps:
# - uses: actions/checkout@v4
# - uses: actions/setup-python@v5
# with:
# python-version: '3.x'
# - name: Build Sketches
# run: bash ./.github/scripts/on-push.sh 1 1 #equal and non-zero to trigger PIO

# ESP-IDF component build
build-esp-idf-component:
name: Build with ESP-IDF ${{ matrix.idf_ver }} for ${{ matrix.idf_target }}
needs: gen-chunks
Expand All @@ -249,8 +250,8 @@ jobs:
# See https://hub.docker.com/r/espressif/idf/tags and
# https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/tools/idf-docker-image.html
# for details.
idf_ver: ["release-v5.1"]
idf_target: ["esp32", "esp32s2", "esp32s3", "esp32c2", "esp32c3", "esp32c6", "esp32h2"]
idf_ver: ["release-v5.3"]
idf_target: ["esp32", "esp32s2", "esp32s3", "esp32c2", "esp32c3", "esp32c6", "esp32h2", "esp32p4"]
container: espressif/idf:${{ matrix.idf_ver }}
steps:
- name: Check out arduino-esp32 as a component
Expand Down
39 changes: 33 additions & 6 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
# export ARDUINO_SKIP_IDF_VERSION_CHECK=1
# idf.py build

set(min_supported_idf_version "5.1.0")
set(max_supported_idf_version "5.1.99")
set(min_supported_idf_version "5.3.0")
set(max_supported_idf_version "5.3.99")
set(idf_version "${IDF_VERSION_MAJOR}.${IDF_VERSION_MINOR}.${IDF_VERSION_PATCH}")

if ("${idf_version}" AND NOT "$ENV{ARDUINO_SKIP_IDF_VERSION_CHECK}")
Expand All @@ -25,6 +25,7 @@ endif()
set(CORE_SRCS
cores/esp32/base64.cpp
cores/esp32/cbuf.cpp
cores/esp32/ColorFormat.c
cores/esp32/chip-debug-report.cpp
cores/esp32/esp32-hal-adc.c
cores/esp32/esp32-hal-bt.c
Expand All @@ -45,9 +46,11 @@ set(CORE_SRCS
cores/esp32/esp32-hal-timer.c
cores/esp32/esp32-hal-tinyusb.c
cores/esp32/esp32-hal-touch.c
cores/esp32/esp32-hal-touch-ng.c
cores/esp32/esp32-hal-uart.c
cores/esp32/esp32-hal-rmt.c
cores/esp32/Esp.cpp
cores/esp32/freertos_stats.cpp
cores/esp32/FunctionalInterrupt.cpp
cores/esp32/HardwareSerial.cpp
cores/esp32/HEXBuilder.cpp
Expand Down Expand Up @@ -93,6 +96,7 @@ set(ARDUINO_ALL_LIBRARIES
HTTPUpdate
Insights
LittleFS
Matter
NetBIOS
Network
OpenThread
Expand All @@ -116,7 +120,6 @@ set(ARDUINO_ALL_LIBRARIES
)

set(ARDUINO_LIBRARY_ArduinoOTA_SRCS libraries/ArduinoOTA/src/ArduinoOTA.cpp)
set(ARDUINO_LIBRARY_ArduinoOTA_REQUIRES esp_https_ota)

set(ARDUINO_LIBRARY_AsyncUDP_SRCS libraries/AsyncUDP/src/AsyncUDP.cpp)

Expand Down Expand Up @@ -157,14 +160,22 @@ set(ARDUINO_LIBRARY_HTTPUpdate_SRCS libraries/HTTPUpdate/src/HTTPUpdate.cpp)
set(ARDUINO_LIBRARY_Insights_SRCS libraries/Insights/src/Insights.cpp)

set(ARDUINO_LIBRARY_LittleFS_SRCS libraries/LittleFS/src/LittleFS.cpp)
set(ARDUINO_LIBRARY_LittleFS_REQUIRES joltwallet__littlefs)

set(ARDUINO_LIBRARY_NetBIOS_SRCS libraries/NetBIOS/src/NetBIOS.cpp)

set(ARDUINO_LIBRARY_OpenThread_SRCS
libraries/OpenThread/src/OThreadCLI.cpp
libraries/OpenThread/src/OThreadCLI_Util.cpp)

set(ARDUINO_LIBRARY_Matter_SRCS
libraries/Matter/src/MatterEndpoints/MatterGenericSwitch.cpp
libraries/Matter/src/MatterEndpoints/MatterOnOffLight.cpp
libraries/Matter/src/MatterEndpoints/MatterDimmableLight.cpp
libraries/Matter/src/MatterEndpoints/MatterColorTemperatureLight.cpp
libraries/Matter/src/MatterEndpoints/MatterColorLight.cpp
libraries/Matter/src/MatterEndpoints/MatterEnhancedColorLight.cpp
libraries/Matter/src/Matter.cpp)

set(ARDUINO_LIBRARY_PPP_SRCS
libraries/PPP/src/PPP.cpp
libraries/PPP/src/ppp.c)
Expand Down Expand Up @@ -317,7 +328,7 @@ endforeach()
set(includedirs variants/${CONFIG_ARDUINO_VARIANT}/ cores/esp32/ ${ARDUINO_LIBRARIES_INCLUDEDIRS})
set(srcs ${CORE_SRCS} ${ARDUINO_LIBRARIES_SRCS})
set(priv_includes cores/esp32/libb64)
set(requires spi_flash esp_partition mbedtls wpa_supplicant esp_adc esp_eth http_parser espressif__network_provisioning)
set(requires spi_flash esp_partition mbedtls wpa_supplicant esp_adc esp_eth http_parser esp_ringbuf esp_driver_gptimer esp_driver_usb_serial_jtag driver)
set(priv_requires fatfs nvs_flash app_update spiffs bootloader_support bt esp_hid usb esp_psram ${ARDUINO_LIBRARIES_REQUIRES})

if(NOT CONFIG_ARDUINO_SELECTIVE_COMPILATION OR CONFIG_ARDUINO_SELECTIVE_OpenThread)
Expand All @@ -328,6 +339,10 @@ if(NOT CONFIG_ARDUINO_SELECTIVE_COMPILATION OR CONFIG_ARDUINO_SELECTIVE_OpenThre
endif()
endif()

if(IDF_TARGET STREQUAL "esp32p4")
list(APPEND requires esp_driver_touch_sens)
endif()

idf_component_register(INCLUDE_DIRS ${includedirs} PRIV_INCLUDE_DIRS ${priv_includes} SRCS ${srcs} REQUIRES ${requires} PRIV_REQUIRES ${priv_requires})

if(NOT CONFIG_FREERTOS_HZ EQUAL 1000 AND NOT "$ENV{ARDUINO_SKIP_TICK_CHECK}")
Expand Down Expand Up @@ -367,9 +382,21 @@ function(maybe_add_component component_name)
endif()
endfunction()

if(IDF_TARGET MATCHES "esp32s2|esp32s3" AND CONFIG_TINYUSB_ENABLED)
if(IDF_TARGET MATCHES "esp32s2|esp32s3|esp32p4" AND CONFIG_TINYUSB_ENABLED)
maybe_add_component(arduino_tinyusb)
endif()
if(NOT CONFIG_ARDUINO_SELECTIVE_COMPILATION OR CONFIG_ARDUINO_SELECTIVE_ArduinoOTA)
maybe_add_component(esp_https_ota)
endif()
if(NOT CONFIG_ARDUINO_SELECTIVE_COMPILATION OR CONFIG_ARDUINO_SELECTIVE_ESP_SR)
maybe_add_component(espressif__esp_sr)
endif()
if(NOT CONFIG_ARDUINO_SELECTIVE_COMPILATION OR CONFIG_ARDUINO_SELECTIVE_Matter)
maybe_add_component(espressif__esp_matter)
endif()
if(NOT CONFIG_ARDUINO_SELECTIVE_COMPILATION OR CONFIG_ARDUINO_SELECTIVE_LittleFS)
maybe_add_component(joltwallet__littlefs)
endif()
if(NOT CONFIG_ARDUINO_SELECTIVE_COMPILATION OR CONFIG_ARDUINO_SELECTIVE_WiFiProv)
maybe_add_component(espressif__network_provisioning)
endif()
30 changes: 30 additions & 0 deletions Kconfig.projbuild
Original file line number Diff line number Diff line change
Expand Up @@ -266,6 +266,11 @@ config ARDUINO_SELECTIVE_Wire
depends on ARDUINO_SELECTIVE_COMPILATION
default y

config ARDUINO_SELECTIVE_ESP_SR
bool "Enable ESP-SR"
depends on ARDUINO_SELECTIVE_COMPILATION
default y

config ARDUINO_SELECTIVE_EEPROM
bool "Enable EEPROM"
depends on ARDUINO_SELECTIVE_COMPILATION
Expand All @@ -286,6 +291,11 @@ config ARDUINO_SELECTIVE_Update
depends on ARDUINO_SELECTIVE_COMPILATION
default y

config ARDUINO_SELECTIVE_Zigbee
bool "Enable Zigbee"
depends on ARDUINO_SELECTIVE_COMPILATION
default y

config ARDUINO_SELECTIVE_FS
bool "Enable FS"
depends on ARDUINO_SELECTIVE_COMPILATION
Expand Down Expand Up @@ -358,6 +368,11 @@ config ARDUINO_SELECTIVE_HTTPClient
select ARDUINO_SELECTIVE_NetworkClientSecure
default y

config ARDUINO_SELECTIVE_Matter
bool "Enable Matter"
depends on ARDUINO_SELECTIVE_COMPILATION && ARDUINO_SELECTIVE_Network
default y

config ARDUINO_SELECTIVE_NetBIOS
bool "Enable NetBIOS"
depends on ARDUINO_SELECTIVE_COMPILATION && ARDUINO_SELECTIVE_Network
Expand Down Expand Up @@ -399,4 +414,19 @@ config ARDUINO_SELECTIVE_SimpleBLE
depends on ARDUINO_SELECTIVE_COMPILATION
default y

config ARDUINO_SELECTIVE_RainMaker
bool "Enable RainMaker"
depends on ARDUINO_SELECTIVE_COMPILATION
default y

config ARDUINO_SELECTIVE_OpenThread
bool "Enable OpenThread"
depends on ARDUINO_SELECTIVE_COMPILATION
default y

config ARDUINO_SELECTIVE_Insights
bool "Enable Insights"
depends on ARDUINO_SELECTIVE_COMPILATION
default y

endmenu
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Arduino core for the ESP32, ESP32-S2, ESP32-S3, ESP32-C3, ESP32-C6 and ESP32-H2
# Arduino core for the ESP32, ESP32-P4, ESP32-S2, ESP32-S3, ESP32-C3, ESP32-C6 and ESP32-H2

[![Build Status](https://github.com/espressif/arduino-esp32/actions/workflows/push.yml/badge.svg?branch=master&event=push)](https://github.com/espressif/arduino-esp32/actions/workflows/push.yml) [![External Libraries Test](https://github.com/espressif/arduino-esp32/actions/workflows/lib.yml/badge.svg?branch=master&event=schedule)](https://github.com/espressif/arduino-esp32/blob/gh-pages/LIBRARIES_TEST.md) [![Hardware Tests](https://github.com/espressif/arduino-esp32/blob/gh-pages/runtime-tests-results/badge.svg)](https://github.com/espressif/arduino-esp32/actions/workflows/tests_results.yml)

Expand Down Expand Up @@ -59,6 +59,7 @@ Here are the ESP32 series supported by the Arduino-ESP32 project:
| ESP32-S3 | Yes | Yes | [ESP32-S3](https://www.espressif.com/sites/default/files/documentation/esp32-s3_datasheet_en.pdf) |
| ESP32-C6 | Yes | Yes | [ESP32-C6](https://www.espressif.com/sites/default/files/documentation/esp32-c6_datasheet_en.pdf) |
| ESP32-H2 | Yes | Yes | [ESP32-H2](https://www.espressif.com/sites/default/files/documentation/esp32-h2_datasheet_en.pdf) |
| ESP32-P4 | No | Yes | [ESP32-P4](https://www.espressif.com/sites/default/files/documentation/esp32-p4_datasheet_en.pdf) |

> [!NOTE]
> ESP32-C2 is also supported by Arduino-ESP32 but requires rebuilding the static libraries. This is not trivial and requires a good understanding of the ESP-IDF
Expand Down
Loading
Loading