Espressif published Arduino-ESP32 4.0.0-RC1 on GitHub on September 23, 2026. The release is titled "Arduino Release 4.0.0-RC1 based on ESP-IDF v6.1" and is marked as a pre-release. It is a release candidate, not a stable version. The Arduino core is open source and free to use.

RC1 is the first release candidate of the 4.x line. Its main change is the underlying framework. The core now builds on ESP-IDF v6.1, while the current stable 3.x core uses ESP-IDF v5.5.5. The other headline items are a move to Espressif's Zigbee SDK v2.0, a Bluetooth stack refactor, an updated Matter integration and new USB audio features.

What changed in RC1

The release notes compare RC1 against 3.3.12 and list these changes:

  • Zigbee: migrated to esp-zigbee-sdk v2.0 (#12651), with the validation suite updated for SDK v2 startup (#12936) and a weak uart_set_pin added for the IDF 6.1 Zigbee prebuilts (#12933).
  • Bluetooth: a refactor of both Bluetooth Classic and BLE (#12564).
  • Matter: Arduino Matter updated to ESP Matter 1.6 and IDF 6.1 (#12913).
  • USB audio: multi-sample-rate support for UAC1/UAC2 (#12863).
  • USB storage: a fix to use the correct parameter for FAT registration on IDF 6 and later (#12926).
  • ESP32-P4: the P4 EV board defaults move from v1.4 to v1.6 (#12619).
  • New board: Soldered NULA CAN ESP32S3 (#12927).
  • ESP32-S31: a fix to the UAC Multi Rate example for the S31 (#12934).
  • Build tooling: a fix to pioarduino-build.py for SCons 4.11.1 (#12922).

The Matter entry matters for anyone who tried the earlier 4.x preview. According to the arduino-esp32 releases list, 4.0.0-alpha1 shipped on May 27 using precompiled libraries from the ESP-IDF v6.0 branch. Its notes said that "Due to incompatibilities with ESP-IDF6, some of the components are not yet available": Matter, RainMaker, ESP_SR, Insights and Cbor, plus anything that depends on them. RC1's notes include the Matter update. They do not say whether RainMaker, ESP_SR, Insights or Cbor have returned.

Where it sits in the release line

Arduino-ESP32 3.3.12 shipped on September 18, five days before the release candidate, and is built on ESP-IDF v5.5.5. That release added web server security hardening, IPv6 support for OTA updates, optional SHA-256 checksum verification for incoming firmware (with SHA-512 support), and a USB Host library covering HID, MSC and Serial.

The base framework is ESP-IDF v6.1, which Espressif released on August 27 and describes as "a minor update for ESP-IDF v6.0." It adds preview support for the ESP32-S31. It also introduces CONFIG_SPIRAM_ENC_EXEMPT, which sets aside an unencrypted PSRAM region accessed through MALLOC_CAP_SPIRAM_NO_ENC. On the Wi-Fi side, it adds OWE-only mode for SoftAP, DPP multi-configuration for stations, privacy extensions for STA, and experimental Wi-Fi Aware pairing and security for iOS compatibility.

Breaking changes come from ESP-IDF, not the Arduino notes

The RC1 release notes do not label any change as breaking. The list below comes from the ESP-IDF v6.1 release notes. It applies to the framework under the Arduino core, and it is most relevant to sketches and libraries that call ESP-IDF APIs directly:

  • esp-mqtt has moved to the component manager. Projects that need it add espressif/mqtt to their dependencies.
  • gpio_deep_sleep_wakeup_enable/disable is renamed to gpio_wakeup_enable/disable_on_hp_periph_powerdown_sleep, and the MAX_PAD_GPIO_NUM, MAX_GPIO_NUM and DIG_IO_HOLD_BIT_SHIFT macros have been removed.
  • In the LCD driver, bits_per_pixel is replaced with FourCC-based color format configuration.
  • SPI master and slave no longer accept ESP_INTR_FLAG_SHARED as an interrupt flag during initialization.
  • soc/uart_channel.h has been removed in favor of soc/uart_pins.h.
  • PSA persistent opaque keys stored by earlier ESP-IDF versions must be re-imported.
  • With the upgrade to mbedTLS 4.1.0, support for the 192-bit curve is removed from Secure Boot.
  • ECDSA Secure Boot V2 is disabled for the ESP32-H2, ESP32-C5 and ESP32-P4 chips that are in Mass Production stage.
  • ESP32-P4 now defaults to chip revision v3.0. Apps for earlier revisions need CONFIG_ESP32P4_SELECTS_REV_LESS_V3=y in their sdkconfig.

The P4 change in ESP-IDF sets the default chip revision. The RC1 change (#12619) sets the default EV board version. They are separate settings.

ESP-IDF v6.1 also lists two known issues: Wi-Fi Aware pairing may fail with iPhone 17 series phones, and the ESP32-C5 is incompatible with CONFIG_COMPILER_ENABLE_RISCV_ZCMP=y.

What It Means for Makers

RC1 is meant for testing. Library maintainers and anyone whose project depends on Zigbee, Matter or Bluetooth can use it to find problems before 4.0 goes stable. Projects that need a stable core can stay on 3.3.12, which the releases page still marks as the latest release.

Sketches that only use Arduino APIs are less exposed to the framework changes than code that calls ESP-IDF directly. Anything that touches MQTT, GPIO wakeup, LCD color formats, SPI interrupt flags, UART headers or Secure Boot should be checked against the ESP-IDF v6.1 migration notes before moving to RC1. ESP32-P4 builds should confirm both the chip revision and the EV board version they target. ESP32-S31 support in ESP-IDF v6.1 is still a preview.

RC1 and its full changelog are on the arduino-esp32 GitHub releases page under the 4.0.0-RC1 tag.

Sources