Skip to content

Commit 81e3cd9

Browse files
authored
Merge branch 'master' into xiao_esp32s3_plus
2 parents c46fcc6 + 2a2b81a commit 81e3cd9

File tree

130 files changed

+3990
-1372
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

130 files changed

+3990
-1372
lines changed

Diff for: .github/ISSUE_TEMPLATE/config.yml

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
blank_issues_enabled: false
22
contact_links:
3-
- name: Arduino ESP32 Gitter Channel
4-
url: https://gitter.im/espressif/arduino-esp32
5-
about: Community channel for questions and help
3+
- name: Arduino Core for Espressif Discord Server
4+
url: https://discord.gg/8xY6e9crwv
5+
about: Community Discord server for questions and help
66
- name: ESP32 Forum - Arduino
77
url: https://esp32.com/viewforum.php?f=19
88
about: Official Forum for questions

Diff for: .github/workflows/dangerjs.yml

+3
Original file line numberDiff line numberDiff line change
@@ -20,5 +20,8 @@ jobs:
2020
uses: espressif/shared-github-dangerjs@v1
2121
env:
2222
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
23+
with:
24+
instructions-cla-link: "https://cla-assistant.io/espressif/arduino-esp32"
25+
instructions-contributions-file: "docs/en/contributing.rst"
2326
rule-max-commits: "false"
2427
commit-messages-min-summary-length: "10"

Diff for: .github/workflows/upload-idf-component.yml

+5-2
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,10 @@ on:
44
workflow_dispatch:
55
inputs:
66
tag:
7-
description: 'Tag to push to the component registry'
7+
description: 'Version to push to the component registry'
8+
required: true
9+
git_ref:
10+
description: 'Git ref with the source to push to the component registry'
811
required: true
912
workflow_run:
1013
workflows: ["ESP32 Arduino Release"]
@@ -44,7 +47,7 @@ jobs:
4447
4548
- uses: actions/checkout@v4
4649
with:
47-
ref: ${{ env.RELEASE_TAG }}
50+
ref: ${{ inputs.git_ref || env.RELEASE_TAG }}
4851
submodules: "recursive"
4952

5053
- name: Upload components to the component registry

Diff for: CMakeLists.txt

+6-1
Original file line numberDiff line numberDiff line change
@@ -181,6 +181,7 @@ set(ARDUINO_LIBRARY_Matter_SRCS
181181
libraries/Matter/src/MatterEndpoints/MatterPressureSensor.cpp
182182
libraries/Matter/src/MatterEndpoints/MatterOccupancySensor.cpp
183183
libraries/Matter/src/MatterEndpoints/MatterOnOffPlugin.cpp
184+
libraries/Matter/src/MatterEndpoints/MatterThermostat.cpp
184185
libraries/Matter/src/Matter.cpp)
185186

186187
set(ARDUINO_LIBRARY_PPP_SRCS
@@ -242,7 +243,11 @@ set(ARDUINO_LIBRARY_USB_SRCS
242243
set(ARDUINO_LIBRARY_WebServer_SRCS
243244
libraries/WebServer/src/WebServer.cpp
244245
libraries/WebServer/src/Parsing.cpp
245-
libraries/WebServer/src/detail/mimetable.cpp)
246+
libraries/WebServer/src/detail/mimetable.cpp
247+
libraries/WebServer/src/middleware/MiddlewareChain.cpp
248+
libraries/WebServer/src/middleware/AuthenticationMiddleware.cpp
249+
libraries/WebServer/src/middleware/CorsMiddleware.cpp
250+
libraries/WebServer/src/middleware/LoggingMiddleware.cpp)
246251

247252
set(ARDUINO_LIBRARY_NetworkClientSecure_SRCS
248253
libraries/NetworkClientSecure/src/ssl_client.cpp

Diff for: README.md

+3-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@
55
[![External Libraries Test](https://img.shields.io/github/actions/workflow/status/espressif/arduino-esp32/lib.yml?branch=master&event=schedule&label=External%20Libraries%20Test)](https://github.com/espressif/arduino-esp32/blob/gh-pages/LIBRARIES_TEST.md)
66
[![Runtime 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)
77

8-
### Need help or have a question? Join the chat at [Gitter](https://gitter.im/espressif/arduino-esp32) or [open a new Discussion](https://github.com/espressif/arduino-esp32/discussions)
8+
### Need help or have a question? Join the chat at [Discord](https://discord.gg/8xY6e9crwv) or [open a new Discussion](https://github.com/espressif/arduino-esp32/discussions)
9+
10+
[![Discord invite](https://img.shields.io/discord/1327272229427216425?logo=discord&logoColor=white&logoSize=auto&label=Discord)](https://discord.gg/8xY6e9crwv)
911

1012
## Contents
1113

Diff for: boards.txt

+598
Large diffs are not rendered by default.

Diff for: cores/esp32/Arduino.h

+4-5
Original file line numberDiff line numberDiff line change
@@ -33,14 +33,17 @@
3333
#include "freertos/FreeRTOS.h"
3434
#include "freertos/task.h"
3535
#include "freertos/semphr.h"
36-
#include "esp32-hal.h"
3736
#include "esp8266-compat.h"
3837
#include "soc/gpio_reg.h"
3938

4039
#include "stdlib_noniso.h"
4140
#include "binary.h"
4241
#include "extra_attr.h"
4342

43+
#include "pins_arduino.h"
44+
#include "io_pin_remap.h"
45+
#include "esp32-hal.h"
46+
4447
#define PI 3.1415926535897932384626433832795
4548
#define HALF_PI 1.5707963267948966192313216916398
4649
#define TWO_PI 6.283185307179586476925286766559
@@ -248,8 +251,4 @@ void tone(uint8_t _pin, unsigned int frequency, unsigned long duration = 0);
248251
void noTone(uint8_t _pin);
249252

250253
#endif /* __cplusplus */
251-
252-
#include "pins_arduino.h"
253-
#include "io_pin_remap.h"
254-
255254
#endif /* _ESP32_CORE_ARDUINO_H_ */

Diff for: cores/esp32/Client.h

-2
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,7 @@
2626
class Client : public Stream {
2727
public:
2828
virtual int connect(IPAddress ip, uint16_t port) = 0;
29-
virtual int connect(IPAddress ip, uint16_t port, int32_t timeout) = 0;
3029
virtual int connect(const char *host, uint16_t port) = 0;
31-
virtual int connect(const char *host, uint16_t port, int32_t timeout) = 0;
3230
virtual size_t write(uint8_t) = 0;
3331
virtual size_t write(const uint8_t *buf, size_t size) = 0;
3432
virtual int available() = 0;

Diff for: cores/esp32/FirmwareMSC.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@
1919
#include "esp_partition.h"
2020
#include "esp_ota_ops.h"
2121
#include "esp_image_format.h"
22-
#include "esp32-hal.h"
2322
#include "pins_arduino.h"
23+
#include "esp32-hal.h"
2424
#include "firmware_msc_fat.h"
2525
#include "spi_flash_mmap.h"
2626

Diff for: cores/esp32/esp32-hal-gpio.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,9 @@
2424
extern "C" {
2525
#endif
2626

27+
#include "pins_arduino.h"
2728
#include "esp32-hal.h"
2829
#include "soc/soc_caps.h"
29-
#include "pins_arduino.h"
3030
#include "driver/gpio.h"
3131

3232
#if (CONFIG_IDF_TARGET_ESP32S2 || CONFIG_IDF_TARGET_ESP32S3)

Diff for: cores/esp32/esp_arduino_version.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ extern "C" {
2323
/** Minor version number (x.X.x) */
2424
#define ESP_ARDUINO_VERSION_MINOR 1
2525
/** Patch version number (x.x.X) */
26-
#define ESP_ARDUINO_VERSION_PATCH 0
26+
#define ESP_ARDUINO_VERSION_PATCH 1
2727

2828
/**
2929
* Macro to convert ARDUINO version number into an integer

Diff for: docs/en/getting_started.rst

+5-3
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,8 @@ Here are some community channels where you may find information and ask for some
102102
- `ESP32 Forum`_: Official Espressif Forum.
103103
- `ESP32 Forum - Arduino`_: Official Espressif Forum for Arduino related discussions.
104104
- `ESP32 Forum - Hardware`_: Official Espressif Forum for Hardware related discussions.
105-
- `Gitter`_
105+
- `Espressif Developer Portal`_: Official Espressif Developer Portal with tutorials, examples, workshops, and more.
106+
- `Arduino Core for Espressif (Discord)`_: Official Espressif Discord channel for the Arduino Core.
106107
- `Espressif MCUs (Discord)`_
107108
- `ESP32 on Reddit`_
108109

@@ -148,12 +149,13 @@ Resources
148149

149150
.. _Espressif Systems: https://www.espressif.com
150151
.. _Espressif Product Selector: https://products.espressif.com/
152+
.. _Espressif Developer Portal: https://developer.espressif.com/
151153
.. _Arduino.cc: https://www.arduino.cc/en/Main/Software
152154
.. _Arduino Reference: https://www.arduino.cc/reference/en/
153155
.. _ESP32 Forum: https://esp32.com
154156
.. _ESP32 Forum - Arduino: https://esp32.com/viewforum.php?f=19
155157
.. _ESP32 Forum - Hardware: https://esp32.com/viewforum.php?f=12
156-
.. _Gitter: https://gitter.im/espressif/arduino-esp32
158+
.. _Arduino Core for Espressif (Discord): https://discord.gg/8xY6e9crwv
157159
.. _Adafruit (Discord): https://discord.gg/adafruit
158-
.. _Espressif MCUs (Discord): https://discord.gg/nKxMTnkD
160+
.. _Espressif MCUs (Discord): https://discord.com/invite/XqnZPbF
159161
.. _ESP32 on Reddit: https://www.reddit.com/r/esp32

Diff for: docs/en/index.rst

+1
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ Here you will find all the relevant information about the project.
1616
Guides <guides/guides>
1717
Tutorials <tutorials/tutorials>
1818
Advanced Utilities <advanced_utils>
19+
Third Party Tools <third_party_tools>
1920
Migration Guides <migration_guides/migration_guides>
2021
FAQ <faq>
2122
Troubleshooting <troubleshooting>

Diff for: docs/en/third_party/pioarduino.rst

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
#######################################################
2+
pioarduino - (p)eople (i)nitiated (o)ptimized (arduino)
3+
#######################################################
4+
5+
.. warning::
6+
This tool is **not maintained by the ESP32 Arduino Core team**, so we cannot provide support or guarantee that it will work as expected.
7+
8+
.. note::
9+
This is a work in progress documentation and we will appreciate your help! We are looking for contributors!
10+
11+
About
12+
-----
13+
14+
For more information, please refer to the `official documentation <https://github.com/pioarduino/platform-espressif32>`_.

Diff for: docs/en/third_party/wokwi.rst

+42
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
#####
2+
Wokwi
3+
#####
4+
5+
.. warning::
6+
This tool is **not maintained by the ESP32 Arduino Core team**, so we cannot provide support or guarantee that it will work as expected.
7+
8+
.. note::
9+
This is a work in progress documentation and we will appreciate your help! We are looking for contributors!
10+
11+
About
12+
-----
13+
14+
Wokwi is an online Electronics simulator. You can use it to simulate Arduino, ESP32, and many other popular boards, parts and sensors.
15+
16+
The advantages of using Wokwi include:
17+
18+
- Immediate start: No need to wait for components or download large software. Everything required is available in your browser, enabling you to begin coding your IoT project within seconds.
19+
- Safe experimentation: Virtual hardware cannot be damaged, allowing users to experiment freely without the risk of destroying components. Mistakes can be easily undone.
20+
- Easy collaboration: Sharing a link to your Wokwi project facilitates obtaining help and feedback from others.
21+
- Code reliability: Helps in distinguishing between hardware and software issues, thereby increasing confidence in your code.
22+
- Unlimited resources: Access to an unlimited number of parts without concerns about cost or availability.
23+
- Supportive community: A maker-friendly environment where users can share projects, seek assistance, and find inspiration.
24+
25+
Unique features provided by Wokwi:
26+
27+
- Wi-Fi simulation - Connect your simulated project to the internet. You can use MQTT, HTTP, NTP, and many other network protocols.
28+
- Virtual Logic Analyzer - Capture digital signals in your simulation (e.g. UART, I2C, SPI) and analyze them on your computer.
29+
- Advanced debugging with GDB - Powerful Arduino debugger for advanced users.
30+
- SD card simulation - Store and retrieve files and directories from your code. Paying users can also upload binary files (such as images)
31+
- Chips API - Create your own custom chips and parts, and share them with the community.
32+
- Visual Studio Code integration - Simulate your embedded projects directly from VS Code.
33+
34+
Pricing
35+
-------
36+
37+
Wokwi is free for personal use. For commercial users and professionals, please check out the paid plans in the `pricing page <https://wokwi.com/pricing>`_.
38+
39+
Learn more
40+
----------
41+
42+
For more information, please refer to the `official Wokwi website <https://wokwi.com>`_ and the `Wokwi documentation <https://docs.wokwi.com>`_.

Diff for: docs/en/third_party_tools.rst

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
#################
2+
Third Party Tools
3+
#################
4+
5+
Here you will find documentation pages for third party tools that can be used with the ESP32 Arduino Core.
6+
7+
.. warning::
8+
These tools are **not maintained by the ESP32 Arduino Core team**, so we cannot provide support or guarantee that they will work as expected.
9+
Each tool documentation should be provided and maintained by the community.
10+
11+
.. toctree::
12+
:maxdepth: 1
13+
:caption: Contents:
14+
15+
pioarduino <third_party/pioarduino>
16+
Wokwi <third_party/wokwi>

Diff for: docs/requirements.txt

+1
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,4 @@ esp-docs>=1.4.0
22
sphinx-copybutton==0.5.0
33
sphinx-tabs==3.2.0
44
numpydoc==1.5.0
5+
standard-imghdr==3.13.0

Diff for: libraries/ArduinoOTA/library.properties

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name=ArduinoOTA
2-
version=3.1.0
2+
version=3.1.1
33
author=Ivan Grokhotkov and Hristo Gochkov
44
maintainer=Hristo Gochkov <[email protected]>
55
sentence=Enables Over The Air upgrades, via wifi and espota.py UDP request/TCP download.

Diff for: libraries/AsyncUDP/library.properties

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name=ESP32 Async UDP
2-
version=3.1.0
2+
version=3.1.1
33
author=Me-No-Dev
44
maintainer=Me-No-Dev
55
sentence=Async UDP Library for ESP32

Diff for: libraries/AsyncUDP/src/AsyncUDP.cpp

+20-12
Original file line numberDiff line numberDiff line change
@@ -601,76 +601,84 @@ static esp_err_t joinMulticastGroup(const ip_addr_t *addr, bool join, tcpip_adap
601601
return ESP_ERR_INVALID_ARG;
602602
}
603603
netif = (struct netif *)nif;
604+
UDP_MUTEX_LOCK();
604605

605606
#if CONFIG_LWIP_IPV6
606607
if (addr->type == IPADDR_TYPE_V4) {
607608
if (join) {
608609
if (igmp_joingroup_netif(netif, (const ip4_addr *)&(addr->u_addr.ip4))) {
609-
return ESP_ERR_INVALID_STATE;
610+
goto igmp_fail;
610611
}
611612
} else {
612613
if (igmp_leavegroup_netif(netif, (const ip4_addr *)&(addr->u_addr.ip4))) {
613-
return ESP_ERR_INVALID_STATE;
614+
goto igmp_fail;
614615
}
615616
}
616617
} else {
617618
if (join) {
618619
if (mld6_joingroup_netif(netif, &(addr->u_addr.ip6))) {
619-
return ESP_ERR_INVALID_STATE;
620+
goto igmp_fail;
620621
}
621622
} else {
622623
if (mld6_leavegroup_netif(netif, &(addr->u_addr.ip6))) {
623-
return ESP_ERR_INVALID_STATE;
624+
goto igmp_fail;
624625
}
625626
}
626627
}
627628
#else
628629
if (join) {
629630
if (igmp_joingroup_netif(netif, (const ip4_addr *)(addr))) {
630-
return ESP_ERR_INVALID_STATE;
631+
goto igmp_fail;
631632
}
632633
} else {
633634
if (igmp_leavegroup_netif(netif, (const ip4_addr *)(addr))) {
634-
return ESP_ERR_INVALID_STATE;
635+
goto igmp_fail;
635636
}
636637
}
637638
#endif
639+
UDP_MUTEX_UNLOCK();
638640
} else {
641+
UDP_MUTEX_LOCK();
639642
#if CONFIG_LWIP_IPV6
640643
if (addr->type == IPADDR_TYPE_V4) {
641644
if (join) {
642645
if (igmp_joingroup((const ip4_addr *)IP4_ADDR_ANY, (const ip4_addr *)&(addr->u_addr.ip4))) {
643-
return ESP_ERR_INVALID_STATE;
646+
goto igmp_fail;
644647
}
645648
} else {
646649
if (igmp_leavegroup((const ip4_addr *)IP4_ADDR_ANY, (const ip4_addr *)&(addr->u_addr.ip4))) {
647-
return ESP_ERR_INVALID_STATE;
650+
goto igmp_fail;
648651
}
649652
}
650653
} else {
651654
if (join) {
652655
if (mld6_joingroup((const ip6_addr *)IP6_ADDR_ANY, &(addr->u_addr.ip6))) {
653-
return ESP_ERR_INVALID_STATE;
656+
goto igmp_fail;
654657
}
655658
} else {
656659
if (mld6_leavegroup((const ip6_addr *)IP6_ADDR_ANY, &(addr->u_addr.ip6))) {
657-
return ESP_ERR_INVALID_STATE;
660+
goto igmp_fail;
658661
}
659662
}
660663
}
661664
#else
662665
if (join) {
663666
if (igmp_joingroup((const ip4_addr *)IP4_ADDR_ANY, (const ip4_addr *)(addr))) {
664-
return ESP_ERR_INVALID_STATE;
667+
goto igmp_fail;
665668
}
666669
} else {
667670
if (igmp_leavegroup((const ip4_addr *)IP4_ADDR_ANY, (const ip4_addr *)(addr))) {
668-
return ESP_ERR_INVALID_STATE;
671+
goto igmp_fail;
669672
}
670673
}
671674
#endif
675+
UDP_MUTEX_UNLOCK();
672676
}
673677
return ESP_OK;
678+
679+
igmp_fail:
680+
UDP_MUTEX_UNLOCK();
681+
return ESP_ERR_INVALID_STATE;
674682
}
675683

676684
bool AsyncUDP::listenMulticast(const ip_addr_t *addr, uint16_t port, uint8_t ttl, tcpip_adapter_if_t tcpip_if) {

Diff for: libraries/BLE/library.properties

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name=BLE
2-
version=3.1.0
2+
version=3.1.1
33
author=Neil Kolban <[email protected]>
44
maintainer=Dariusz Krempa <[email protected]>
55
sentence=BLE functions for ESP32

Diff for: libraries/BluetoothSerial/library.properties

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name=BluetoothSerial
2-
version=3.1.0
2+
version=3.1.1
33
author=Evandro Copercini
44
maintainer=Evandro Copercini
55
sentence=Simple UART to Classical Bluetooth bridge for ESP32

Diff for: libraries/DNSServer/library.properties

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name=DNSServer
2-
version=3.1.0
2+
version=3.1.1
33
author=Kristijan Novoselić
44
maintainer=Kristijan Novoselić, <[email protected]>
55
sentence=A simple DNS server for ESP32.

Diff for: libraries/EEPROM/library.properties

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name=EEPROM
2-
version=3.1.0
2+
version=3.1.1
33
author=Ivan Grokhotkov
44
maintainer=Paolo Becchi <[email protected]>
55
sentence=Enables reading and writing data a sequential, addressable FLASH storage

0 commit comments

Comments
 (0)