Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: asund/arduino-esp32
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: master
Choose a base ref
...
head repository: espressif/arduino-esp32
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: master
Choose a head ref

Commits on Jun 4, 2025

  1. feat(codeowners): Initial CODEOWNERS setup (espressif#11397)

    * feat(codeowners): Initial CODEOWNERS setup
    
    * fix(comment): Improve comment
    
    * fix(codeowners): Add teams
    
    * fix(codeowners): Apply suggestions
    
    * fix(codeowners): Add missing libraries
    lucasssvaz authored Jun 4, 2025
    Copy the full SHA
    6f56df2 View commit details
  2. Support HTTP 204 (espressif#11408)

    HTTP 204 is a successful return code which indicates No Content. While it's appropriate to return a 304 if the server has content for a device but it hasn't change, it is more accurate for a server to return a 204 if it simply doesn't have any firmware files for a particular device.
    
    Co-authored-by: Me No Dev <me-no-dev@users.noreply.github.com>
    sidwarkd and me-no-dev authored Jun 4, 2025
    Copy the full SHA
    b5c5655 View commit details
  3. feat(ap): Add support for DHCP Captive Portal (opt 114) (espressif#11412

    )
    
    * feat(ap): Add support for DHCP Captive Portal (opt 114)
    
    * feat(ap): No need to guard the function
    
    * ci(pre-commit): Apply automatic fixes
    
    ---------
    
    Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
    me-no-dev and pre-commit-ci-lite[bot] authored Jun 4, 2025
    Copy the full SHA
    a2880a4 View commit details
  4. make BT core code execution conditional from include esp_bt.h (espres…

    …sif#11413)
    
    * make code execution conditional from include esp_bt.h.h
    
    * only one if
    
    * Update esp32-hal-bt.c
    Jason2866 authored Jun 4, 2025
    Copy the full SHA
    460b892 View commit details
  5. Copy the full SHA
    375f2c0 View commit details
  6. feat(zigbee): Add endpoint identification in read handlers + command …

    …structures fix (espressif#11425)
    
    * feat(zigbee): Add endpoint identification in read handlers
    
    * fix(zigbee): initialize Zigbee command structures with zeros
    
    * fix(zigbee): Spelling correction
    
    * ci(pre-commit): Apply automatic fixes
    
    ---------
    
    Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
    P-R-O-C-H-Y and pre-commit-ci-lite[bot] authored Jun 4, 2025
    Copy the full SHA
    cae66e6 View commit details
  7. feat(zigbee): Add method to set/get/report analog output (espressif#1…

    …1431)
    
    * feat(zigbee): Add methot to set,get,report analog output
    
    * fix(ci): Update json file for example
    
    * fix(zigbee): Add missing keywords
    
    * ci(pre-commit): Apply automatic fixes
    
    ---------
    
    Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
    P-R-O-C-H-Y and pre-commit-ci-lite[bot] authored Jun 4, 2025
    Copy the full SHA
    e3018b6 View commit details
  8. fix: change geekble nano board setting (espressif#11432)

    add PSRAM Setting
    syong0921 authored Jun 4, 2025
    Copy the full SHA
    31d22e6 View commit details

Commits on Jun 10, 2025

  1. fix: Updated the tools options for Geekble Mini (espressif#11437)

    fix: Updated the tools options for Geekble Mini
    syong0921 authored Jun 10, 2025
    Copy the full SHA
    1bac8de View commit details
  2. Copy the full SHA
    610d951 View commit details
  3. feat(boards): update wifiduinov2&wifiduino32s3 boards setting (espres…

    …sif#11440)
    
    * update wifiduinov2&wifiduino32s3 boards setting
    
    * fix wifiduinov2&wifiduino32s3 build board error.
    
    * fix wifiduinov2(esp32c3) board setting
    
    * fix wifiduinov2(esp32c3) cdc on boot default setting.
    
    * fix wifiduino32s3 spi pin set
    
    * change wifiduino32s3 spi pin to spi1
    
    * remove 32Mb flash size
    
    * ci(pre-commit): Apply automatic fixes
    
    ---------
    
    Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
    i3water and pre-commit-ci-lite[bot] authored Jun 10, 2025
    Copy the full SHA
    ee347ba View commit details
  4. Copy the full SHA
    af47bd3 View commit details
  5. feat(p4): Add 32MB Flash Partitions to ESP32-P4 (espressif#11453)

    * feat(p4): Add 32MB Flash Partitions to ESP32-P4
    
    * feat(p4): Add 32MB flash size option
    
    ---------
    
    Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com>
    me-no-dev and P-R-O-C-H-Y authored Jun 10, 2025
    Copy the full SHA
    0007815 View commit details
  6. feat(zigbee): Support min/max setting for Analog EP (espressif#11451)

    * feat(zigbee): Support min max for Analog EP
    
    * feat(zigbee): Use cfloat FLT_MAX
    
    * ci(pre-commit): Apply automatic fixes
    
    ---------
    
    Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
    P-R-O-C-H-Y and pre-commit-ci-lite[bot] authored Jun 10, 2025
    Copy the full SHA
    0aada09 View commit details
  7. fix(libraries/asyncudp): IPv4 ONLY listenMulticast() (espressif#11444)

    AsyncUDP::listenMulticast() properly receives packets sent to IPv4
    multicast addresses like 239.1.2.3, but it is not receiving packets sent
    to IPv6 multicast addresses like ff12::6ood:cafe.
    
    The root cause is a bit hidden: listen(NULL, port) would match
    AsyncUDP::listen(const ip_addr_t *addr, uint16_t port), which calls
    _udp_bind(_pcb, addr, port), which uses the lwIP API to call
    udp_bind(struct udp_pcb *pcb, const ip_addr_t *ipaddr, u16_t port) at
    the end. If lwIP has LWIP_IPV4 enabled, it checks if ipaddr == NULL and
    sets it to IP4_ADDR_ANY. So an IPv6 address is never bound.
    
    This fix checks the IP address passed to AsyncUDP::listenMulticast(). If
    it is an IPv6 address, it constructs and passes the IPv6 any address
    (::); otherwise (IPv4), it constructs and passes the IPv4 any address
    (0.0.0.0).
    nikiwaibel authored Jun 10, 2025
    Copy the full SHA
    d6a76da View commit details
  8. feat(ledc): Improve timer management with frequency/resolution matchi…

    …ng (espressif#11452)
    
    * feat(ledc): Improve timer management with frequency/resolution matching
    
    * fix(ci): Fix uninitialized timer variable warning
    
    * Update cores/esp32/esp32-hal-ledc.c
    
    Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>
    
    * ci(pre-commit): Apply automatic fixes
    
    ---------
    
    Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>
    Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
    3 people authored Jun 10, 2025
    Copy the full SHA
    cbdaee6 View commit details
  9. fix(release): Replace all assets with chinese mirrors (espressif#11323)

    * fix(release): Replace all assets with chinese mirrors
    
    * feat(release): Add script to append "-cn" to versions
    
    * docs(install): Add instructions for users in China
    lucasssvaz authored Jun 10, 2025
    Copy the full SHA
    c21ef70 View commit details
  10. Fix(I2S example): make fix to the ESP32 I2S simple tone example (espr…

    …essif#10954)
    
    * made some fix to the ESP32 I2S simple tone example
    
    * edit the I2S - simple tone example
    
    * edit the I2S - simple tone example
    
    * some edit
    
    * edit comment
    
    * edit
    
    * edit
    
    * ci(pre-commit): Apply automatic fixes
    
    ---------
    
    Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
    greenyleaf and pre-commit-ci-lite[bot] authored Jun 10, 2025
    Copy the full SHA
    d71135e View commit details
  11. fix(msc): remove weak function declaration of tud_msc_is_writable_cb (e…

    …spressif#11353)
    
    Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>
    PaulaScharf and lucasssvaz authored Jun 10, 2025
    Copy the full SHA
    422e526 View commit details

Commits on Jun 16, 2025

  1. fix: Update Pin compatability (espressif#11473)

    fix: Update Pin compatability
    SooDragon authored Jun 16, 2025
    Copy the full SHA
    2283937 View commit details
  2. feat(openthread): adds native api (espressif#11474)

    * feat(openthread): adds native api
    
    * feat(openthread): adds source code to CMakeLists.txt
    
    * ci(pre-commit): Apply automatic fixes
    
    ---------
    
    Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
    SuGlider and pre-commit-ci-lite[bot] authored Jun 16, 2025
    Copy the full SHA
    ef995b6 View commit details
  3. feat(LEDC): Add Gamma Fade support and enhance auto channel/timer sel…

    …ection for multi-group (espressif#11464)
    
    * feat(ledc): Enhance LEDC auto channel/timer selection for multi-group support
    
    * feat(ledc): Add Gamma Fade support
    
    * fix(example): Update comments
    
    * ci(pre-commit): Apply automatic fixes
    
    ---------
    
    Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
    P-R-O-C-H-Y and pre-commit-ci-lite[bot] authored Jun 16, 2025
    Copy the full SHA
    7462b09 View commit details

Commits on Jun 17, 2025

  1. Copy the full SHA
    4bc5ffc View commit details
  2. Copy the full SHA
    6d4886c View commit details

Commits on Jun 18, 2025

  1. feat(openthread): Add RLOC16 in otPrintNetworkInformation() (espressi…

    …f#11480)
    
    * feat(openthread): Add RLOC16 in otPrintNetworkInformation()
    lboue authored Jun 18, 2025
    Copy the full SHA
    f788911 View commit details

Commits on Jun 20, 2025

  1. fix(docs): correct code block indentation in core_compatibility.rst (e…

    …spressif#11471)
    
    * fix(docs): correct code block indentation in core compatibility guide
    
    * fix(docs): remove extra colon causing rendering error in core_compatibility.rst
    eMUQI authored Jun 20, 2025
    Copy the full SHA
    51f1367 View commit details
  2. Copy the full SHA
    02be6e8 View commit details
  3. Copy the full SHA
    016077e View commit details
  4. Proper EDNS handling and cleaner NOERROR response in DNSSERVER (espre…

    …ssif#11411)
    
    * Proper EDNS handling and cleaner NOERROR response
    
    * fix:  library.properties
    
    reverting version number update - as it is done automatically
    
    * ci(pre-commit): Apply automatic fixes
    
    * Spelling Corrected  and minor clarification in comments
    
    * Removing commented out code fragments
    
    * ci(pre-commit): Apply automatic fixes
    
    * fix(pr): Fix typo
    
    ---------
    
    Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
    Co-authored-by: Me No Dev <me-no-dev@users.noreply.github.com>
    3 people authored Jun 20, 2025
    Copy the full SHA
    23c6abc View commit details
  5. feat(matter): Adds Matter Events callback plus example (espressif#11465)

    * feat(matter): Adds Matter Events callback and related example
    SuGlider authored Jun 20, 2025
    Copy the full SHA
    ccda9c5 View commit details

Commits on Jun 21, 2025

  1. feat(uart): fixes loopback function after IDF changes (espressif#11492)

    * feat(uart): fixes loopback function after IDF changes
    
    IDF 5.4.1 has added a new function called uart_release_pin() that is called whenever new pins are set or when uart driver is deleted.
    
    This has a side effect that causes RX pin to never work again with the loopback function. Other changes also have removed some GPIO setup that was necessary for the GPIO loopback mode work.
    
    The PR forces a full RX Pin setup in order to make it work in GPIO Matrix with Loopback TX Signal
    
    * feat(uart): adds missing include file
    
    * feat(uart): removes not necessary part of the code
    
    * fix(uart): commentaries style fix
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    * ci(pre-commit): Apply automatic fixes
    
    ---------
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
    3 people authored Jun 21, 2025
    Copy the full SHA
    01e4d5d View commit details

Commits on Jun 22, 2025

  1. feat(uart): fixes pin attach for any IDF 5.x (espressif#11499)

    * feat(uart): fixes pin attach for any IDF 5.x
    
    * fix(uart): commentary typo error
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    * fix(uart): commentary typo error
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    * fix(uart): commentary typo error
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    
    * fix(uart): commentary style fix
    
    * ci(pre-commit): Apply automatic fixes
    
    ---------
    
    Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
    Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
    3 people authored Jun 22, 2025
    Copy the full SHA
    9d84c78 View commit details

Commits on Jun 23, 2025

  1. fix(esp_now): Fix broadcast example and use nullptr (espressif#11490)

    * fix(esp_now): Fix example and use nullptr
    
    * ci(pre-commit): Apply automatic fixes
    
    ---------
    
    Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
    lucasssvaz and pre-commit-ci-lite[bot] authored Jun 23, 2025
    Copy the full SHA
    dc82467 View commit details
  2. feat(test): Enhance NVS test (espressif#11481)

    * feat(test): Enhance NVS test
    
    * fix(nvs): Remove unused Unity header and improve Serial wait loop
    
    * refactor(nvs): Extract string increment logic into a separate function
    
    * refactor(test): Format long strings in expect_exact calls for better readability
    JakubAndrysek authored Jun 23, 2025
    Copy the full SHA
    95ae8cf View commit details

Commits on Jun 24, 2025

  1. Copy the full SHA
    bad975d View commit details
  2. Copy the full SHA
    882ef25 View commit details
  3. Copy the full SHA
    b7e5169 View commit details
  4. fix(docs): Fix links and versions (espressif#11505)

    * fix(docs): Fix links and versions
    
    * fix(docs): Apply suggestions and leftover substitutions
    lucasssvaz authored Jun 24, 2025
    Copy the full SHA
    30fb3cb View commit details
  5. Copy the full SHA
    e9b0930 View commit details
  6. Copy the full SHA
    0213200 View commit details
  7. IDF release/v5.4 (espressif#11512)

    * IDF release/v5.4 f0f2980d
    
    * fix(p4): Allow custom pins on P4 for ESP-Hosted
    me-no-dev authored Jun 24, 2025
    Copy the full SHA
    9e61fa7 View commit details

Commits on Jun 26, 2025

  1. Copy the full SHA
    21640ac View commit details

Commits on Jun 30, 2025

  1. Copy the full SHA
    875b923 View commit details
  2. feat(SDFS): Add destructor for SD card to clean up resources (espress…

    …if#11521)
    
    * feat(test): Enhance NVS test
    
    * fix(nvs): Remove unused Unity header and improve Serial wait loop
    
    * refactor(nvs): Extract string increment logic into a separate function
    
    * refactor(test): Format long strings in expect_exact calls for better readability
    
    * feat(SDFS): Add destructor to clean up resources
    JakubAndrysek authored Jun 30, 2025
    Copy the full SHA
    9a35d94 View commit details
  3. feat(esp_now): Add support for ESP NOW V2 (espressif#11524)

    * feat(esp_now): Add support for ESP NOW V2
    
    * fix(esp_now): Return -1 on error
    lucasssvaz authored Jun 30, 2025
    Copy the full SHA
    6754b19 View commit details
  4. fix(esp32): Fix appending to Strings longer than 64k (espressif#11523)

    If oldLen is truncated to uint16_t, appending to a String
    that is longer than 65535 bytes will create a broken string.
    MattiasTF authored Jun 30, 2025
    Copy the full SHA
    6476260 View commit details
  5. feat(variant): add kode dot ESP32-S3 board with QSPI LCD, SD and GPIO…

    … … (espressif#11371)
    
    * feat(variant): add KodeDot ESP32-S3 board with QSPI LCD, SD and GPIO header
    
    * fix(kodedot): Reorder board definitions and translate comments to English
    
    * fix(kodedot): Clean up OTA override and remove unused partition menu for kode dot
    
    * fix(kodedot): Build board changed from ESP32S3_DEV to KODE_DOT on kode dot board
    
    * ci(pre-commit): Fix whitespace, EOLs and codespell 'Analog'
    
    * ci(pre-commit): Add bash script formatter
    
    * fix(merge): New name and description for custom merge tool and change partitions table to variants folder
    LusimiCollado authored Jun 30, 2025
    Copy the full SHA
    6e60f2f View commit details
  6. feat(p4): Add method to set the pins for SDIO to WiFi chip (espressif…

    …#11513)
    
    * feat(p4): Add method to set the pins for SDIO to WiFi chip
    
    * ci(pre-commit): Apply automatic fixes
    
    ---------
    
    Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
    me-no-dev and pre-commit-ci-lite[bot] authored Jun 30, 2025
    Copy the full SHA
    2592a7b View commit details

Commits on Jul 2, 2025

  1. Copy the full SHA
    8cf0818 View commit details
  2. fix(csrf): Fix SCRF vulnerability in OTA examples and libraries (espr…

    …essif#11530)
    
    * fix(csrf): Fix SCRF vulnerability in WebUpdate.ino
    
    * fix(csrf): Prevent CSRF on other OTA examples
    
    * fix(csrf): Require auth user and pass to be changed
    
    * ci(pre-commit): Apply automatic fixes
    
    ---------
    
    Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
    me-no-dev and pre-commit-ci-lite[bot] authored Jul 2, 2025
    Copy the full SHA
    f4fdecc View commit details
Showing with 5,138 additions and 936 deletions.
  1. +79 −0 .github/CODEOWNERS
  2. +1 −0 .github/ISSUE_TEMPLATE/Issue-report.yml
  3. +6 −4 .github/scripts/on-release.sh
  4. +129 −0 .github/scripts/package_esptool.sh
  5. +56 −0 .github/scripts/release_append_cn.py
  6. +2 −1 .github/workflows/lib.json
  7. +11 −10 .github/workflows/publishsizes.yml
  8. +1 −0 CMakeLists.txt
  9. +668 −67 boards.txt
  10. +3 −3 cores/esp32/WString.cpp
  11. +1 −1 cores/esp32/esp32-hal-bt.c
  12. +339 −35 cores/esp32/esp32-hal-ledc.c
  13. +81 −0 cores/esp32/esp32-hal-ledc.h
  14. +1 −1 cores/esp32/esp32-hal-misc.c
  15. +38 −23 cores/esp32/esp32-hal-spi.c
  16. +3 −9 cores/esp32/esp32-hal-spi.h
  17. +0 −3 cores/esp32/esp32-hal-tinyusb.c
  18. +140 −40 cores/esp32/esp32-hal-uart.c
  19. +1 −1 cores/esp32/esp_arduino_version.h
  20. +7 −0 docs/conf_common.py
  21. +2 −2 docs/en/contributing.rst
  22. +6 −4 docs/en/esp-idf_component.rst
  23. +14 −14 docs/en/guides/core_compatibility.rst
  24. +5 −8 docs/en/guides/docs_contributing.rst
  25. +1 −0 docs/en/index.rst
  26. +2 −0 docs/en/installing.rst
  27. +10 −6 docs/en/lib_builder.rst
  28. +2 −0 docs/requirements.txt
  29. +4 −2 idf_component.yml
  30. +1 −1 libraries/ArduinoOTA/library.properties
  31. +1 −1 libraries/AsyncUDP/library.properties
  32. +14 −1 libraries/AsyncUDP/src/AsyncUDP.cpp
  33. +1 −1 libraries/BLE/library.properties
  34. +1 −1 libraries/BluetoothSerial/library.properties
  35. +3 −2 libraries/DNSServer/examples/CaptivePortal/CaptivePortal.ino
  36. +1 −1 libraries/DNSServer/library.properties
  37. +82 −4 libraries/DNSServer/src/DNSServer.cpp
  38. +22 −0 libraries/DNSServer/src/DNSServer.h
  39. +1 −1 libraries/EEPROM/library.properties
  40. +111 −0 libraries/ESP32/examples/AnalogOut/LEDCGammaFade/LEDCGammaFade.ino
  41. +5 −0 libraries/ESP32/examples/AnalogOut/LEDCGammaFade/ci.json
  42. +6 −33 libraries/ESP32/examples/Camera/CameraWebServer/CameraWebServer.ino
  43. +13 −17 libraries/ESP32/examples/Camera/CameraWebServer/app_httpd.cpp
  44. +34 −0 libraries/ESP32/examples/Camera/CameraWebServer/board_config.h
  45. +1 −1 libraries/ESP32/library.properties
  46. +18 −4 libraries/ESP_I2S/examples/Simple_tone/Simple_tone.ino
  47. +1 −1 libraries/ESP_I2S/library.properties
  48. +3 −1 libraries/ESP_NOW/examples/ESP_NOW_Broadcast_Master/ESP_NOW_Broadcast_Master.ino
  49. +23 −7 libraries/ESP_NOW/examples/ESP_NOW_Broadcast_Slave/ESP_NOW_Broadcast_Slave.ino
  50. +16 −6 libraries/ESP_NOW/examples/ESP_NOW_Network/ESP_NOW_Network.ino
  51. +1 −0 libraries/ESP_NOW/examples/ESP_NOW_Serial/ESP_NOW_Serial.ino
  52. +1 −1 libraries/ESP_NOW/library.properties
  53. +78 −29 libraries/ESP_NOW/src/ESP32_NOW.cpp
  54. +10 −4 libraries/ESP_NOW/src/ESP32_NOW.h
  55. +45 −29 libraries/ESP_NOW/src/ESP32_NOW_Serial.cpp
  56. +3 −1 libraries/ESP_NOW/src/ESP32_NOW_Serial.h
  57. +1 −1 libraries/ESP_SR/library.properties
  58. +1 −1 libraries/ESPmDNS/library.properties
  59. +1 −1 libraries/Ethernet/library.properties
  60. +1 −1 libraries/FFat/library.properties
  61. +1 −1 libraries/FS/library.properties
  62. +1 −1 libraries/HTTPClient/library.properties
  63. +1 −1 libraries/HTTPUpdate/library.properties
  64. +1 −0 libraries/HTTPUpdate/src/HTTPUpdate.cpp
  65. +1 −1 libraries/HTTPUpdateServer/library.properties
  66. +19 −0 libraries/HTTPUpdateServer/src/HTTPUpdateServer.h
  67. +1 −1 libraries/Insights/library.properties
  68. +1 −1 libraries/LittleFS/library.properties
  69. +168 −0 libraries/Matter/examples/MatterEvents/MatterEvents.ino
  70. +7 −0 libraries/Matter/examples/MatterEvents/ci.json
  71. +37 −2 libraries/Matter/keywords.txt
  72. +1 −1 libraries/Matter/library.properties
  73. +21 −16 libraries/Matter/src/Matter.cpp
  74. +126 −0 libraries/Matter/src/Matter.h
  75. +10 −10 libraries/Matter/src/MatterEndPoint.h
  76. +1 −1 libraries/NetBIOS/library.properties
  77. +1 −1 libraries/Network/library.properties
  78. +1 −1 libraries/NetworkClientSecure/library.properties
  79. +195 −6 libraries/OpenThread/README.md
  80. 0 libraries/OpenThread/examples/{ → CLI}/COAP/coap_lamp/ci.json
  81. +5 −4 libraries/OpenThread/examples/{ → CLI}/COAP/coap_lamp/coap_lamp.ino
  82. 0 libraries/OpenThread/examples/{ → CLI}/COAP/coap_switch/ci.json
  83. +5 −4 libraries/OpenThread/examples/{ → CLI}/COAP/coap_switch/coap_switch.ino
  84. +3 −2 libraries/OpenThread/examples/{ → CLI}/SimpleCLI/SimpleCLI.ino
  85. 0 libraries/OpenThread/examples/{ → CLI}/SimpleCLI/ci.json
  86. +5 −4 libraries/OpenThread/examples/{ → CLI}/SimpleNode/SimpleNode.ino
  87. 0 libraries/OpenThread/examples/{ → CLI}/SimpleNode/ci.json
  88. +5 −4 libraries/OpenThread/examples/{ → CLI}/SimpleThreadNetwork/ExtendedRouterNode/ExtendedRouterNode.ino
  89. 0 libraries/OpenThread/examples/{ → CLI}/SimpleThreadNetwork/ExtendedRouterNode/ci.json
  90. +5 −4 libraries/OpenThread/examples/{ → CLI}/SimpleThreadNetwork/LeaderNode/LeaderNode.ino
  91. 0 libraries/OpenThread/examples/{ → CLI}/SimpleThreadNetwork/LeaderNode/ci.json
  92. +5 −4 libraries/OpenThread/examples/{ → CLI}/SimpleThreadNetwork/RouterNode/RouterNode.ino
  93. 0 libraries/OpenThread/examples/{ → CLI}/SimpleThreadNetwork/RouterNode/ci.json
  94. +4 −3 libraries/OpenThread/examples/{ → CLI}/ThreadScan/ThreadScan.ino
  95. 0 libraries/OpenThread/examples/{ → CLI}/ThreadScan/ci.json
  96. 0 libraries/OpenThread/examples/{ → CLI}/onReceive/ci.json
  97. +2 −1 libraries/OpenThread/examples/{ → CLI}/onReceive/onReceive.ino
  98. +34 −0 libraries/OpenThread/examples/Native/SimpleThreadNetwork/LeaderNode/LeaderNode.ino
  99. +6 −0 libraries/OpenThread/examples/Native/SimpleThreadNetwork/LeaderNode/ci.json
  100. +29 −0 libraries/OpenThread/examples/Native/SimpleThreadNetwork/RouterNode/RouterNode.ino
  101. +6 −0 libraries/OpenThread/examples/Native/SimpleThreadNetwork/RouterNode/ci.json
  102. +26 −0 libraries/OpenThread/keywords.txt
  103. +1 −1 libraries/OpenThread/library.properties
  104. +366 −0 libraries/OpenThread/src/OThread.cpp
  105. +107 −0 libraries/OpenThread/src/OThread.h
  106. +22 −134 libraries/OpenThread/src/OThreadCLI.cpp
  107. +3 −3 libraries/OpenThread/src/OThreadCLI.h
  108. +1 −21 libraries/OpenThread/src/OThreadCLI_Util.cpp
  109. +0 −11 libraries/OpenThread/src/OThreadCLI_Util.h
  110. +1 −1 libraries/PPP/library.properties
  111. +1 −1 libraries/Preferences/library.properties
  112. +1 −1 libraries/RainMaker/library.properties
  113. +1 −1 libraries/SD/library.properties
  114. +7 −1 libraries/SD/src/SD.cpp
  115. +1 −0 libraries/SD/src/SD.h
  116. +1 −1 libraries/SD_MMC/library.properties
  117. +1 −1 libraries/SPI/library.properties
  118. +6 −4 libraries/SPI/src/SPI.cpp
  119. +1 −1 libraries/SPI/src/SPI.h
  120. +1 −1 libraries/SPIFFS/library.properties
  121. +1 −1 libraries/SimpleBLE/library.properties
  122. +1 −1 libraries/TFLiteMicro/library.properties
  123. +1 −1 libraries/Ticker/library.properties
  124. +1 −1 libraries/USB/library.properties
  125. +33 −2 libraries/Update/examples/OTAWebUpdater/OTAWebUpdater.ino
  126. +1 −1 libraries/Update/library.properties
  127. +38 −5 libraries/WebServer/examples/WebUpdate/WebUpdate.ino
  128. +1 −1 libraries/WebServer/library.properties
  129. +10 −0 libraries/WebServer/src/WebServer.cpp
  130. +1 −1 libraries/WiFi/library.properties
  131. +39 −0 libraries/WiFi/src/AP.cpp
  132. +1 −0 libraries/WiFi/src/WiFiAP.h
  133. +62 −14 libraries/WiFi/src/WiFiGeneric.cpp
  134. +5 −0 libraries/WiFi/src/WiFiGeneric.h
  135. +1 −1 libraries/WiFiProv/library.properties
  136. +1 −1 libraries/Wire/library.properties
  137. +11 −4 libraries/Zigbee/examples/Zigbee_Analog_Input_Output/Zigbee_Analog_Input_Output.ino
  138. +1 −2 libraries/Zigbee/examples/Zigbee_Analog_Input_Output/ci.json
  139. +45 −11 libraries/Zigbee/examples/Zigbee_Thermostat/Zigbee_Thermostat.ino
  140. +11 −3 libraries/Zigbee/keywords.txt
  141. +1 −1 libraries/Zigbee/library.properties
  142. +10 −10 libraries/Zigbee/src/ZigbeeEP.cpp
  143. +2 −2 libraries/Zigbee/src/ZigbeeEP.h
  144. +6 −2 libraries/Zigbee/src/ZigbeeHandlers.cpp
  145. +129 −4 libraries/Zigbee/src/ep/ZigbeeAnalog.cpp
  146. +15 −3 libraries/Zigbee/src/ep/ZigbeeAnalog.h
  147. +4 −2 libraries/Zigbee/src/ep/ZigbeeColorDimmableLight.cpp
  148. +24 −24 libraries/Zigbee/src/ep/ZigbeeColorDimmerSwitch.cpp
  149. +16 −16 libraries/Zigbee/src/ep/ZigbeeSwitch.cpp
  150. +263 −16 libraries/Zigbee/src/ep/ZigbeeThermostat.cpp
  151. +22 −7 libraries/Zigbee/src/ep/ZigbeeThermostat.h
  152. +1 −1 package.json
  153. +69 −69 package/package_esp32_index.template.json
  154. +23 −7 platform.txt
  155. +118 −14 tests/validation/nvs/nvs.ino
  156. +18 −6 tests/validation/nvs/test_nvs.py
  157. +12 −6 tools/pioarduino-build.py
  158. +7 −0 variants/Geekble_ESP32C3/pins_arduino.h
  159. +1 −1 variants/XIAO_ESP32S3_Plus/pins_arduino.h
  160. +123 −0 variants/deneyapkartv2/pins_arduino.h
  161. +79 −0 variants/fed4/pins_arduino.h
  162. +14 −0 variants/kodedot/custom_ota_override.cpp
  163. +7 −0 variants/kodedot/kodedot_partitions.csv
  164. +107 −0 variants/kodedot/pins_arduino.h
  165. +63 −0 variants/rakwireless_rak3112/pins_arduino.h
  166. BIN variants/sensebox_mcu_esp32s2/APOTA.bin
  167. +283 −0 variants/sensebox_mcu_esp32s2/APOTA.ino
  168. +47 −27 variants/sensebox_mcu_esp32s2/variant.cpp
  169. +40 −26 variants/wifiduino32s3/pins_arduino.h
79 changes: 79 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
# CODEOWNERS for ESP32 Arduino Core

# This file is used to specify the code owners for the ESP32 Arduino Core.
# Read more about CODEOWNERS:
# https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners
# Note that order matters. The last matching pattern will be used.

# The default owners are the active developers of the ESP32 Arduino Core.
# Refrain from using @espressif/arduino-esp32 to avoid spamming non-developers with review requests.
* @espressif/arduino-devs

# CI
/.github/ @lucasssvaz @me-no-dev @P-R-O-C-H-Y
/tests/ @lucasssvaz @P-R-O-C-H-Y

# Tools
/tools/ @me-no-dev
/tools/pre-commit/ @lucasssvaz
/tools/add_lib.sh @P-R-O-C-H-Y

# Pre-commit
/.* @lucasssvaz # Files in root directory that start with a dot.

# Git Files
/.gitignore @espressif/arduino-devs
/.gitmodules @espressif/arduino-devs

# Documentation
/docs/ @pedrominatel
/.github/ISSUE_TEMPLATE/ @pedrominatel
/.github/PULL_REQUEST_TEMPLATE.md @pedrominatel
/.readthedocs.yaml @pedrominatel
/*.md @pedrominatel

# Boards
/variants/ @P-R-O-C-H-Y
/boards.txt @P-R-O-C-H-Y

# Arduino as Component
/idf_component_examples/ @SuGlider
/idf_component.yml @SuGlider @me-no-dev
/CMakeLists.txt @SuGlider @me-no-dev
/Kconfig.projbuild @SuGlider @me-no-dev

# Build System
/package.json @me-no-dev
/platform.txt @me-no-dev
/programmers.txt @me-no-dev
/package/ @me-no-dev

# Libraries
/libraries/ArduinoOTA/ @me-no-dev
/libraries/AsyncUDP/ @me-no-dev
/libraries/BLE/ @lucasssvaz @SuGlider
/libraries/ESP_I2S/ @me-no-dev
/libraries/ESP_NOW/ @P-R-O-C-H-Y @lucasssvaz
/libraries/ESP_SR/ @me-no-dev
/libraries/ESPmDNS/ @me-no-dev
/libraries/Ethernet/ @me-no-dev
/libraries/Matter/ @SuGlider
/libraries/NetBIOS/ @me-no-dev
/libraries/Network/ @me-no-dev
/libraries/OpenThread/ @SuGlider
/libraries/PPP/ @me-no-dev
/libraries/SPI/ @me-no-dev
/libraries/Update/ @me-no-dev
/libraries/USB/ @SuGlider @me-no-dev
/libraries/WiFi/ @me-no-dev
/libraries/WiFiProv/ @me-no-dev
/libraries/Wire/ @me-no-dev
/libraries/Zigbee/ @P-R-O-C-H-Y

# CI JSON
# Keep this after other libraries and tests to avoid being overridden.
**/ci.json @lucasssvaz

# The CODEOWNERS file should be owned by the developers of the ESP32 Arduino Core.
# Leave this entry as the last one to avoid being overridden.
/.github/CODEOWNERS @espressif/arduino-devs
1 change: 1 addition & 0 deletions .github/ISSUE_TEMPLATE/Issue-report.yml
Original file line number Diff line number Diff line change
@@ -43,6 +43,7 @@ body:
- latest stable Release (if not listed below)
- latest development Release Candidate (RC-X)
- latest master (checkout manually)
- v3.2.1
- v3.2.0
- v3.1.3
- v3.1.2
10 changes: 6 additions & 4 deletions .github/scripts/on-release.sh
Original file line number Diff line number Diff line change
@@ -342,12 +342,14 @@ jq_arg=".packages[0].platforms[0].version = \"$RELEASE_TAG\" | \
echo "Generating $PACKAGE_JSON_DEV ..."
cat "$PACKAGE_JSON_TEMPLATE" | jq "$jq_arg" > "$OUTPUT_DIR/$PACKAGE_JSON_DEV"
# On MacOS the sed command won't skip the first match. Use gsed instead.
sed '0,/github\.com\/espressif\//!s|github\.com/espressif/|dl.espressif.cn/github_assets/espressif/|g' "$OUTPUT_DIR/$PACKAGE_JSON_DEV" > "$OUTPUT_DIR/$PACKAGE_JSON_DEV_CN"
sed '0,/github\.com\//!s|github\.com/|dl.espressif.cn/github_assets/|g' "$OUTPUT_DIR/$PACKAGE_JSON_DEV" > "$OUTPUT_DIR/$PACKAGE_JSON_DEV_CN"
python "$SCRIPTS_DIR/release_append_cn.py" "$OUTPUT_DIR/$PACKAGE_JSON_DEV_CN"
if [ "$RELEASE_PRE" == "false" ]; then
echo "Generating $PACKAGE_JSON_REL ..."
cat "$PACKAGE_JSON_TEMPLATE" | jq "$jq_arg" > "$OUTPUT_DIR/$PACKAGE_JSON_REL"
# On MacOS the sed command won't skip the first match. Use gsed instead.
sed '0,/github\.com\/espressif\//!s|github\.com/espressif/|dl.espressif.cn/github_assets/espressif/|g' "$OUTPUT_DIR/$PACKAGE_JSON_REL" > "$OUTPUT_DIR/$PACKAGE_JSON_REL_CN"
sed '0,/github\.com\//!s|github\.com/|dl.espressif.cn/github_assets/|g' "$OUTPUT_DIR/$PACKAGE_JSON_REL" > "$OUTPUT_DIR/$PACKAGE_JSON_REL_CN"
python "$SCRIPTS_DIR/release_append_cn.py" "$OUTPUT_DIR/$PACKAGE_JSON_REL_CN"
fi

# Figure out the last release or pre-release
@@ -456,14 +458,14 @@ echo "Uploading $PACKAGE_JSON_DEV ..."
echo "Download URL: $(git_safe_upload_asset "$OUTPUT_DIR/$PACKAGE_JSON_DEV")"
echo "Pages URL: $(git_safe_upload_to_pages "$PACKAGE_JSON_DEV" "$OUTPUT_DIR/$PACKAGE_JSON_DEV")"
echo "Download CN URL: $(git_safe_upload_asset "$OUTPUT_DIR/$PACKAGE_JSON_DEV_CN")"
echo "Pages CN URL: $(git_safe_upload_to_pages "$PACKAGE_JSON_DEV" "$OUTPUT_DIR/$PACKAGE_JSON_DEV_CN")"
echo "Pages CN URL: $(git_safe_upload_to_pages "$PACKAGE_JSON_DEV_CN" "$OUTPUT_DIR/$PACKAGE_JSON_DEV_CN")"
echo
if [ "$RELEASE_PRE" == "false" ]; then
echo "Uploading $PACKAGE_JSON_REL ..."
echo "Download URL: $(git_safe_upload_asset "$OUTPUT_DIR/$PACKAGE_JSON_REL")"
echo "Pages URL: $(git_safe_upload_to_pages "$PACKAGE_JSON_REL" "$OUTPUT_DIR/$PACKAGE_JSON_REL")"
echo "Download CN URL: $(git_safe_upload_asset "$OUTPUT_DIR/$PACKAGE_JSON_REL_CN")"
echo "Pages CN URL: $(git_safe_upload_to_pages "$PACKAGE_JSON_REL" "$OUTPUT_DIR/$PACKAGE_JSON_REL_CN")"
echo "Pages CN URL: $(git_safe_upload_to_pages "$PACKAGE_JSON_REL_CN" "$OUTPUT_DIR/$PACKAGE_JSON_REL_CN")"
echo
fi

129 changes: 129 additions & 0 deletions .github/scripts/package_esptool.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,129 @@
#!/bin/bash

set -euo pipefail

# Check version argument
if [[ $# -ne 3 ]]; then
echo "Usage: $0 <version> <base_folder> <json_path>"
echo "Example: $0 5.0.dev1 /tmp/esptool /tmp/esptool-5.0.dev1.json"
exit 1
fi

VERSION=$1
BASE_FOLDER=$2
JSON_PATH=$3

export COPYFILE_DISABLE=1

shopt -s nullglob # So for loop doesn't run if no matches

# Function to update JSON for a given host
function update_json_for_host {
local host=$1
local archive=$2

# Extract the old url from the JSON for this host, then replace only the filename
old_url=$(jq -r --arg host "$host" '
.packages[].tools[] | select(.name == "esptool_py") | .systems[] | select(.host == $host) | .url // empty
' "$tmp_json")
if [[ -n "$old_url" ]]; then
base_url="${old_url%/*}"
url="$base_url/$archive"
else
echo "No old url found for $host"
exit 1
fi

archiveFileName="$archive"
checksum="SHA-256:$(shasum -a 256 "$archive" | awk '{print $1}')"
size=$(stat -f%z "$archive")

# Use jq to update the JSON
jq --arg host "$host" \
--arg url "$url" \
--arg archiveFileName "$archiveFileName" \
--arg checksum "$checksum" \
--arg size "$size" \
'
.packages[].tools[]
|= if .name == "esptool_py" then
.systems = (
((.systems // []) | map(select(.host != $host))) + [{
host: $host,
url: $url,
archiveFileName: $archiveFileName,
checksum: $checksum,
size: $size
}]
)
else
.
end
' "$tmp_json" > "$tmp_json.new" && mv "$tmp_json.new" "$tmp_json"
}

cd "$BASE_FOLDER"

# Delete all archives before starting
rm -f esptool-*.tar.gz esptool-*.zip

for dir in esptool-*; do
# Check if directory exists and is a directory
if [[ ! -d "$dir" ]]; then
continue
fi

base="${dir#esptool-}"

# Add 'linux-' prefix if base doesn't contain linux/macos/win64
if [[ "$base" != *linux* && "$base" != *macos* && "$base" != *win64* ]]; then
base="linux-${base}"
fi

if [[ "$dir" == esptool-win* ]]; then
# Windows zip archive
zipfile="esptool-v${VERSION}-${base}.zip"
echo "Creating $zipfile from $dir ..."
zip -r "$zipfile" "$dir"
else
# Non-Windows: set permissions and tar.gz archive
tarfile="esptool-v${VERSION}-${base}.tar.gz"
echo "Setting permissions and creating $tarfile from $dir ..."
chmod -R u=rwx,g=rx,o=rx "$dir"
tar -cvzf "$tarfile" "$dir"
fi
done

# After the for loop, update the JSON for each archive
# Create a temporary JSON file to accumulate changes
tmp_json="${JSON_PATH}.tmp"
cp "$JSON_PATH" "$tmp_json"

for archive in esptool-v"${VERSION}"-*.tar.gz esptool-v"${VERSION}"-*.zip; do
[ -f "$archive" ] || continue

echo "Updating JSON for $archive"

# Determine host from archive name
case "$archive" in
*linux-amd64*) host="x86_64-pc-linux-gnu" ;;
*linux-armv7*) host="arm-linux-gnueabihf" ;;
*linux-aarch64*) host="aarch64-linux-gnu" ;;
*macos-amd64*) host="x86_64-apple-darwin" ;;
*macos-arm64*) host="arm64-apple-darwin" ;;
*win64*) hosts=("x86_64-mingw32" "i686-mingw32") ;;
*) echo "Unknown host for $archive"; continue ;;
esac

# For win64, loop over both hosts; otherwise, use a single host
if [[ "$archive" == *win64* ]]; then
for host in "${hosts[@]}"; do
update_json_for_host "$host" "$archive"
done
else
update_json_for_host "$host" "$archive"
fi
done

# After all archives are processed, move the temporary JSON to the final file
mv "$tmp_json" "$JSON_PATH"
56 changes: 56 additions & 0 deletions .github/scripts/release_append_cn.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@

#!/usr/bin/env python3

# Arduino IDE provides by default a package file for the ESP32. This causes version conflicts
# when the user tries to use the JSON file with the Chinese mirrors.
#
# The downside is that the Arduino IDE will always warn the user that updates are available as it
# will consider the version from the Chinese mirrors as a pre-release version.
#
# This script is used to append "-cn" to all versions in the package_esp32_index_cn.json file so that
# the user can select the Chinese mirrors without conflicts.
#
# If Arduino ever stops providing the package_esp32_index.json file by default,
# this script can be removed and the tags reverted.

import json

def append_cn_to_versions(obj):
if isinstance(obj, dict):
# dfu-util comes from arduino.cc and not from the Chinese mirrors, so we skip it
if obj.get("name") == "dfu-util":
return

for key, value in obj.items():
if key == "version" and isinstance(value, str):
if not value.endswith("-cn"):
obj[key] = value + "-cn"
else:
append_cn_to_versions(value)

elif isinstance(obj, list):
for item in obj:
append_cn_to_versions(item)

def process_json_file(input_path, output_path=None):
with open(input_path, "r", encoding="utf-8") as f:
data = json.load(f)

append_cn_to_versions(data)

if output_path is None:
output_path = input_path

with open(output_path, "w", encoding="utf-8") as f:
json.dump(data, f, indent=2)

print(f"Updated JSON written to {output_path}")

if __name__ == "__main__":
import sys
if len(sys.argv) < 2:
print("Usage: python release_append_cn.py input.json [output.json]")
else:
input_file = sys.argv[1]
output_file = sys.argv[2] if len(sys.argv) > 2 else None
process_json_file(input_file, output_file)
3 changes: 2 additions & 1 deletion .github/workflows/lib.json
Original file line number Diff line number Diff line change
@@ -9,7 +9,8 @@
{
"name": "ArduinoBLE",
"exclude_targets": [
"esp32s2"
"esp32s2",
"esp32p4"
],
"sketch_path": [
"~/Arduino/libraries/ArduinoBLE/examples/Central/Scan/Scan.ino"
21 changes: 11 additions & 10 deletions .github/workflows/publishsizes.yml
Original file line number Diff line number Diff line change
@@ -44,16 +44,17 @@ jobs:
gh api "$artifacts_url" -q '.artifacts[] | [.name, .archive_download_url] | @tsv' | while read artifact
do
IFS=$'\t' read name url <<< "$artifact"
gh api $url > "$name.zip"
unzip -j "$name.zip" -d "temp_$name"
if [[ "$name" == "pr_number" ]]; then
mv "temp_$name"/* sizes-report
elif [[ "$name" == "pr_cli"* ]]; then
mv "temp_$name"/* sizes-report/pr
else
mv "temp_$name"/* sizes-report
# Only process pr_number and pr_cli_compile artifacts
if [[ "$name" == "pr_number" || "$name" =~ ^pr_cli_compile_[0-9]+$ ]]; then
gh api $url > "$name.zip"
unzip -o -j "$name.zip" -d "temp_$name"
if [[ "$name" == "pr_number" ]]; then
mv "temp_$name"/* sizes-report
elif [[ "$name" =~ ^pr_cli_compile_[0-9]+$ ]]; then
mv "temp_$name"/* sizes-report/pr
fi
rm -r "temp_$name"
fi
rm -r "temp_$name"
done
echo "Contents of parent directory:"
ls -R ..
@@ -65,7 +66,7 @@ jobs:
path: ./artifacts/sizes-report/pr_num.txt

- name: Report results
uses: P-R-O-C-H-Y/report-size-deltas@2043188c68f483a7b50527c4eacf609d05bb67a5 # sizes_v2
uses: P-R-O-C-H-Y/report-size-deltas@bea91d2c99ca80c88a883b39b1c4012f00ec3d09 # sizes_v2
with:
sketches-reports-source: ${{ env.SKETCHES_REPORTS_PATH }}
github-token: ${{ env.GITHUB_TOKEN }}
1 change: 1 addition & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -165,6 +165,7 @@ set(ARDUINO_LIBRARY_LittleFS_SRCS libraries/LittleFS/src/LittleFS.cpp)
set(ARDUINO_LIBRARY_NetBIOS_SRCS libraries/NetBIOS/src/NetBIOS.cpp)

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

Loading