The Arduino ESP32 version 3.1.0 is stable release of new major release based on the ESP-IDF v5.3.2 (release notes).
For version migration, please check Migration Guide from v2.X to 3.X
Known Issues
- I2C Slave is currently not working in ESP32-P4. Ongoing investigation.
- RainMaker sketches are crashing in the current version. Pending fixes from RainMaker team.
What's Changed
System PR
- IDF release/v5.3 by @me-no-dev in #10258
- DF release/v5.3 by @me-no-dev in #10272
- IDF release/v5.3 by @me-no-dev in #10403
- IDF release/v5.3 by @me-no-dev in #10416
- IDF release/v5.3 by @me-no-dev in #10444
- IDF release/v5.3 by @me-no-dev in #10465
- IDF release/v5.3 by @me-no-dev in #10473
- IDF release/v5.3 by @me-no-dev in #10480
- IDF release/v5.3 by @me-no-dev in #10498
- IDF release/v5.3 by @me-no-dev in #10503
- IDF release/v5.3 by @me-no-dev in #10522
- IDF release/v5.3 by @me-no-dev in #10599
- IDF release/v5.3 by @me-no-dev in #10711
- IDF release/v5.3 by @me-no-dev in #10719
Chip Support
feat(esp32p4)
: Add initial ESP32-P4 support by @lucasssvaz in #10358fix(esp32p4)
: Fix compilation errors by @lucasssvaz in #10371fix(esp32)
: ESP32-U4WDH chip detection by ESP.getChipModel() by @mstegen in #10696feat(chip)
: Add definition for BOOT_PIN for all chips by @me-no-dev in #10700
Peripherals
GPIO
I2S
fix(i2s)
: Use separate variables when reading and writing by @me-no-dev in #10509
LEDC
fix(example)
: print correct fade direction by @P-R-O-C-H-Y in #10450
PSRAM
fix(psram)
: Init PSRAM before app_main to fix mmu_map by @me-no-dev in #10390fix(psram)
: Do not abort if PSRAM is not found by @me-no-dev in #10395fix(spiram)
: Fix OPI PSRAM init by @me-no-dev in #10406test(psram)
: Add PSRAM test by @lucasssvaz in #10409
Touch
feat(touch)
: Support NG touch driver for P4 by @P-R-O-C-H-Y in #10448
UART
fix(uart)
: sleep retention by @SuGlider in #10248feat(uart)
: 3.1.x Core: fixes serialEventRun() to avoid calling available() if serialEvent() is not declared by @SuGlider in #10428fix(uart)
: Add missing HP UARTs for ESP32-P4 by @lucasssvaz in #10447- ESP32-P4 UART Pin Definitions by @SuGlider in #10521
feat(uart)
: uart break example improvement by @SuGlider in #10525feat(uart)
: adds Serial4 as a keyword - used by ESP32-P4 by @SuGlider in #10619feat(uart)
: [IDF 5.3] fixes HardwareSerial::updateBaudRate() using a baud rate higher 230400 - checks UART Clock Source by @SuGlider in #10643refactor(uart)
: Refactor UART test to work with any number of UARTs by @lucasssvaz in #10593
USB
feat(usb_hid_keyboard)
: Adds Keyboard Layout and Sends reports just for Modifier Keys by @SuGlider in #10591fix(hid)
: Fix OUTPUT report not received by @me-no-dev in #10398
Libraries
Bluetooth & BLE
fix(ble)
: Fixed typos (or copy/paste issues) in comments for AD types in BLEAdvertising by @thomasw-mitutoyo-ctl in #10512- BLECharacteristic optimization by @sylque in #10665
fix(example)
:Update comment in BLE5_periodic_advertising.ino by @ASDosjani in #10538
Ethernet
- Add RMII Ethernet support for ESP32-P4 by @me-no-dev in #10479
fix(eth)
: Set default clock in pin value to zero by @me-no-dev in #10513- Guard ethernet parts to make it possible to use without by @Jason2866 in #10609
FS
Matter
- Update Matter Light README.md by @lboue in #10357
feat(matter)
: initial commit with arduino matter lib by @SuGlider in #10467feat(Matter)
: New Matter Endpoint - Dimmable Light by @SuGlider in #10543- Matter example patch by @SuGlider in #10618
feat(matter)
: New Matter Endpoint by @SuGlider in #10628- Adds a Minimum Code Matter Example by @SuGlider in #10639
feat(Matter)
: add new MatterColorLight endpoint by @SuGlider in #10654feat(matter)
: New example => Wifi Prov within Matter as alternative for wireless network provisioning by @SuGlider in #10658feat(matter)
: Adds Matter Enhanced Color Light Endpoint (CW/WW/RGB) by @SuGlider in #10657feat(matter)
: Adds a new Matter Endpoint: Generic Switch (smart button) by @SuGlider in #10662feat(Matter)
: Creates New Matter Fan Controller Endpoint by @SuGlider in #10691feat(matter)
: adds new Temperature Sensor Matter Endpoint by @SuGlider in #10698feat(Matter)
: Adds New Matter Humidity Sensor Endpoint by @SuGlider in #10703feat(matter_examples)
: apply boot button change to all examples by @SuGlider in #10702feat(matter)
: adds a Pressure Sensor Matter Endpoint by @SuGlider in #10710feat(matter)
: creates a Matter Contact Sensor Endpoint by @SuGlider in #10712feat(matter)
: adds new Matter Occupancy Sensor endpoint by @SuGlider in #10717feat(matter)
: adds a new endpoint to Matter - On/Off Plugin (Power Relay) by @SuGlider in #10722feat(matter)
: General Review - remove while(!serial) ipv6(enable) and fixes some commentaries in the code by @SuGlider in #10732feat(matter)
: Adds Identification callback to all matter endpoints by @SuGlider in #10734
Network
fix(asyncudp)
: Fixes and implements tcpip thread locking by @HamzaHajeir in #10415fix(NetworkEvents lib)
: remove checks for duplicated event handlers by @vortigont in #10376fix(sntp)
: Lock / Unlock LWIP if CONFIG_LWIP_TCPIP_CORE_LOCKING is set by @mathieucarbou in #10529fix(net)
: Allow to compile without IPv6 enabled by @me-no-dev in #10582fix(network)
: Avoid returning zero if connection is not dropped by @lucasssvaz in #10640- Guard WPA Enterprise support by @Jason2866 in #10616
fix(sntp)
: Lock / Unlock LWIP if CONFIG_LWIP_TCPIP_CORE_LOCKING is set by @mathieucarbou in #10725- [NetworkClient] Init members of NetworkClient by @TD-er in #10737
fix(WPS)
: Example config initialization by @me-no-dev in #10399fix(IPaddress)
: IPv6 restore zone id by @s-hadinger in #10546
OTA
OpenThread
SDMMC
feat(sdmmc)
: Add SDMMC support for P4 + remove BUILTIN LED by @P-R-O-C-H-Y in #10460fix(SDMMC)
: Remove need for BOARD_HAS_SDMMC for esp32 by @P-R-O-C-H-Y in #10713
Update
- Guard crypto parts in "Update" to save resources by @Jason2866 in #10630
- Update lib - User can choose if calc MD5 from encrypted or decrypted file by @zinkett in #10510
WebServer
- Cap size of last chunk in raw read in WebServer by @socram8888 in #10724
WiFi
fix(DNSServer Lib)
- improper startup code in WiFi mode by @vortigont in #10366- Add support for WiFi to ESP32-P4 by @me-no-dev in #10463
fix(wifi)
: Fix requirements and guards for hosted Wi-Fi by @lucasssvaz in #10579fix(wifi)
: fixes WiFi.isconnected() to return true when it is connected and it has an IP Addr by @SuGlider in #10595- fix: Split provisioning into two parts for better synchronization by @kvp1703 in #10677
Wire
- Wire library: Add conditional compilation for second I2C interface based on SOC_I2C_NUM by @sivar2311 in #10408
- Replace outdated wrong SOC_I2C_NUM and use SOC_HP_I2C_NUM by @Jason2866 in #10452
Zigbee
feat(zigbee)
: Add Zigbee library by @P-R-O-C-H-Y in #10265fix(zigbee)
: Enable the internal pull-up resistor for BUTTON_PIN by @lboue in #10491feat(Zigbee)
: Support for sleepy device + Power Source and battery level + Humidity sensor cluster by @P-R-O-C-H-Y in #10551fix(Zigbee)
: Fix typo in Zigbee_Temp_Hum_Sensor_Sleepy.ino by @lboue in #10581fix(Zigbee)
: Add missing direction to report commands by @P-R-O-C-H-Y in #10623feat(zigbee)
: Add setLight APIs to manually operate lights by @P-R-O-C-H-Y in #10626fix(zigbee)
: Add connected(), minor fixes, example update by @P-R-O-C-H-Y in #10636fix(zigbee)
: Increase timeout, commision again on failure + setScanDuration by @P-R-O-C-H-Y in #10651feat(Zigbee)
: Recall bounded devices after reboot + IEEE address option for commands by @P-R-O-C-H-Y in #10676fix(zigbee)
: Fix rejoin issue for battery powered devices by @P-R-O-C-H-Y in #10704feat(zigbee)
: Add pressure, flow, ccupancy and carbon dioxide sensor by @P-R-O-C-H-Y in #10720- Zigbee: Add dimmable light endpoint class by @FaBjE in #10727
Boards Additions & Updates
- Added Sparkfun ESP32-S3 Thing Plus board by @Vigeant in #10382
fix(boards)
: Remove partition scheme overwrite from FlashSize menu by @P-R-O-C-H-Y in #10400- Added variant for Waveshare ESP32-S3-Touch-AMOLED-1.8 by @Y1hsiaochunnn in #10433
addition(3rd_party_board)
: Add Waveshare-S3-touch-lcd by @H-sw123 in #10434- Add IOXESP32-C6 and ATD3.5-S3 board by @maxpromer in #10471
- Add our new board "cezerio dev ESP32C6" by @DogushC in #10462
- Add the Waveshare ESP32-S3-Touch-LCD-1.85 board by @Sail-211010 in #10477
- Add multiple boards of the Waveshare ESP32-S3-Touch-LCD-1.46 type by @Sail-211010 in #10482
feat(boards)
: add Waveshare ESP32-S3-Touch-AMOLED boards by @wurongmin in #10549fix(M5Stack Fire)
: Fixed TF reader SS pin value. by @CelliesProjects in #10610- Feat: Feather V2 and Qt PY larger SPIFFS PartitionScheme by @mikeysklar in #10604
- Fixed incorrect Flash size for UM FeatherS3 Neo build flash size by @UnexpectedMaker in #10614
- Add our new development board "cezerio mini dev ESP32C6" by @DogushC in #10648
feat(Variants)
: Added custom boards variants GLYPH C3, GLYPHC6 & GLYPHH2 by @pcbcupid in #10671feat(board)
: Add custom boards YB-ESP32-S3-AMP-V2 & YB-ESP32-S3-AMP-V3 by @yellobyte in #10699feat(Variants)
: Add Arduino libraries for Lora 4G Module and Node Wifi o⦠by @Bharat-Pi in #10402
CI & testing
ci(json)
: Add configuration requirements to ci.json files by @lucasssvaz in #10385ci(tests)
: Add linpack FPU tests by @lucasssvaz in #10389ci(compilation)
: Use default partition and add append to FQBN option by @lucasssvaz in #10392ci(json)
: Add requires_any field and use QIO by default to match IDE by @lucasssvaz in #10472fix(ci)
: Boards test - get correct file for the diff by @P-R-O-C-H-Y in #10507fix(tests)
: Add missing files to compilation tests by @lucasssvaz in #10501fix(ci)
: Boards test set fail-fast to false by @P-R-O-C-H-Y in #10508fix(ci)
: Change approach in listing the changed boards by @P-R-O-C-H-Y in #10495fix(formatting)
: Fix formatting and disable JSON hook by @lucasssvaz in #10492fix(testing)
: Checkout proper branch for Wokwi tests and small QoL improvements by @lucasssvaz in #104ci(workflows)
: General improvements and fixes by @lucasssvaz in #10544fix(wokwi)
: Delete generated diagram to avoid issues running locally by @lucasssvaz in #10567fix(esptool)
: Bump esptool version to 4.9.dev1 on 3.1.x by @lucasssvaz in #10570ci(json)
: Improve requirement checking by @lucasssvaz in #10554fix(tests)
: Fix wrong selection of tests and add debug flag for testing by @lucasssvaz in #10583ci(pre-commit)
: Bump hooks versions and fix leftover files by @lucasssvaz in #10680ci(pre-commit)
: Add bash script formatter and linter by @lucasssvaz in #10681ci(tests)
: Remove 3rd party tools tests by @lucasssvaz in #10708
Documentation
fix(arduino)
: adds ESP32-P4 to the package description by @SuGlider in #10426docs(lib-builder)
: Improve UI and Docker image sections by @lucasssvaz in #10535fix(typo)
: Fix typo in CDC DFU flash tutorial by @jurstu in #10584- Remove 3rd party references in code and documentation by @SuGlider in #10666
FreeRTOS
feature(rtos)
: Add Tasks status print function by @me-no-dev in #10515- Update FreeRTOS Symbols in OThreadCLI by @SuGlider in #10412
Tooling
fix(build)
: Fix sdkconfig copy for board manager by @lucasssvaz in #10484fix(arduino)
: Move extra_flags to flags by @me-no-dev in #10493feat(esptool)
: Update esptool to v4.8.1 by @lucasssvaz in #10524fix(bm)
: Board Manager install will fail on Windows by @me-no-dev in #10533fix(get.py):
Check if win32 tools also exist when running on win64 by @lucasssvaz in #10565change(esptool)
: Bump esptool version and fix deprecation warning by @lucasssvaz in #10718fix(build)
: Allow Arduino to compile in IDF without components by @me-no-dev in #10597
Others
- Fix compile of P4 caused from missing ")" in debug macro by @Jason2866 in #10638
fix(clk_src)
: Fix error as APLL is not yet supported for P4 by @lucasssvaz in #10735feat(arduino)
: remove all while(not serial) in examples by @SuGlider in #10715- Use INPUT_PULLUP instead of INPUT by @leochen4891 in #10730
- Fix weird formatting, no code change by @Jason2866 in #10617
- AsyncUdp license and keyword update by @SuGlider in #10637
- Update esp-insights version by @Asc91 in #10456
- DigitalPinToInterrupt: fix double pin remapping by @pillo79 in #10373
New Contributors
- @Bharat-Pi made their first contribution in #10402
- @HamzaHajeir made their first contribution in #10415
- @H-sw123 made their first contribution in #10434
- @Sail-211010 made their first contribution in #10477
- @clashman made their first contribution in #10496
- @thomasw-mitutoyo-ctl made their first contribution in #10512
- @zinkett made their first contribution in #10510
- @ASDosjani made their first contribution in #10538
- @jurstu made their first contribution in #10584
- @mikeysklar made their first contribution in #10604
- @pcbcupid made their first contribution in #10671
- @mstegen made their first contribution in #10696
- @yellobyte made their first contribution in #10699
- @kvp1703 made their first contribution in #10677
- @socram8888 made their first contribution in #10724
- @FaBjE made their first contribution in #10727
- @leochen4891 made their first contribution in #10730
Full Changelog: 3.0.5...3.1.0