Skip to content

Commit

Permalink
Merge branch 'master' into xiao_esp32s3_plus
Browse files Browse the repository at this point in the history
  • Loading branch information
P-R-O-C-H-Y authored Jan 21, 2025
2 parents c46fcc6 + 2a2b81a commit 81e3cd9
Show file tree
Hide file tree
Showing 130 changed files with 3,990 additions and 1,372 deletions.
6 changes: 3 additions & 3 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
blank_issues_enabled: false
contact_links:
- name: Arduino ESP32 Gitter Channel
url: https://gitter.im/espressif/arduino-esp32
about: Community channel for questions and help
- name: Arduino Core for Espressif Discord Server
url: https://discord.gg/8xY6e9crwv
about: Community Discord server for questions and help
- name: ESP32 Forum - Arduino
url: https://esp32.com/viewforum.php?f=19
about: Official Forum for questions
3 changes: 3 additions & 0 deletions .github/workflows/dangerjs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,5 +20,8 @@ jobs:
uses: espressif/shared-github-dangerjs@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
instructions-cla-link: "https://cla-assistant.io/espressif/arduino-esp32"
instructions-contributions-file: "docs/en/contributing.rst"
rule-max-commits: "false"
commit-messages-min-summary-length: "10"
7 changes: 5 additions & 2 deletions .github/workflows/upload-idf-component.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,10 @@ on:
workflow_dispatch:
inputs:
tag:
description: 'Tag to push to the component registry'
description: 'Version to push to the component registry'
required: true
git_ref:
description: 'Git ref with the source to push to the component registry'
required: true
workflow_run:
workflows: ["ESP32 Arduino Release"]
Expand Down Expand Up @@ -44,7 +47,7 @@ jobs:
- uses: actions/checkout@v4
with:
ref: ${{ env.RELEASE_TAG }}
ref: ${{ inputs.git_ref || env.RELEASE_TAG }}
submodules: "recursive"

- name: Upload components to the component registry
Expand Down
7 changes: 6 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -181,6 +181,7 @@ set(ARDUINO_LIBRARY_Matter_SRCS
libraries/Matter/src/MatterEndpoints/MatterPressureSensor.cpp
libraries/Matter/src/MatterEndpoints/MatterOccupancySensor.cpp
libraries/Matter/src/MatterEndpoints/MatterOnOffPlugin.cpp
libraries/Matter/src/MatterEndpoints/MatterThermostat.cpp
libraries/Matter/src/Matter.cpp)

set(ARDUINO_LIBRARY_PPP_SRCS
Expand Down Expand Up @@ -242,7 +243,11 @@ set(ARDUINO_LIBRARY_USB_SRCS
set(ARDUINO_LIBRARY_WebServer_SRCS
libraries/WebServer/src/WebServer.cpp
libraries/WebServer/src/Parsing.cpp
libraries/WebServer/src/detail/mimetable.cpp)
libraries/WebServer/src/detail/mimetable.cpp
libraries/WebServer/src/middleware/MiddlewareChain.cpp
libraries/WebServer/src/middleware/AuthenticationMiddleware.cpp
libraries/WebServer/src/middleware/CorsMiddleware.cpp
libraries/WebServer/src/middleware/LoggingMiddleware.cpp)

set(ARDUINO_LIBRARY_NetworkClientSecure_SRCS
libraries/NetworkClientSecure/src/ssl_client.cpp
Expand Down
4 changes: 3 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,9 @@
[![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)
[![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)

### 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)
### 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)

[![Discord invite](https://img.shields.io/discord/1327272229427216425?logo=discord&logoColor=white&logoSize=auto&label=Discord)](https://discord.gg/8xY6e9crwv)

## Contents

Expand Down
598 changes: 598 additions & 0 deletions boards.txt

Large diffs are not rendered by default.

9 changes: 4 additions & 5 deletions cores/esp32/Arduino.h
Original file line number Diff line number Diff line change
Expand Up @@ -33,14 +33,17 @@
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "freertos/semphr.h"
#include "esp32-hal.h"
#include "esp8266-compat.h"
#include "soc/gpio_reg.h"

#include "stdlib_noniso.h"
#include "binary.h"
#include "extra_attr.h"

#include "pins_arduino.h"
#include "io_pin_remap.h"
#include "esp32-hal.h"

#define PI 3.1415926535897932384626433832795
#define HALF_PI 1.5707963267948966192313216916398
#define TWO_PI 6.283185307179586476925286766559
Expand Down Expand Up @@ -248,8 +251,4 @@ void tone(uint8_t _pin, unsigned int frequency, unsigned long duration = 0);
void noTone(uint8_t _pin);

#endif /* __cplusplus */

#include "pins_arduino.h"
#include "io_pin_remap.h"

#endif /* _ESP32_CORE_ARDUINO_H_ */
2 changes: 0 additions & 2 deletions cores/esp32/Client.h
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,7 @@
class Client : public Stream {
public:
virtual int connect(IPAddress ip, uint16_t port) = 0;
virtual int connect(IPAddress ip, uint16_t port, int32_t timeout) = 0;
virtual int connect(const char *host, uint16_t port) = 0;
virtual int connect(const char *host, uint16_t port, int32_t timeout) = 0;
virtual size_t write(uint8_t) = 0;
virtual size_t write(const uint8_t *buf, size_t size) = 0;
virtual int available() = 0;
Expand Down
2 changes: 1 addition & 1 deletion cores/esp32/FirmwareMSC.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@
#include "esp_partition.h"
#include "esp_ota_ops.h"
#include "esp_image_format.h"
#include "esp32-hal.h"
#include "pins_arduino.h"
#include "esp32-hal.h"
#include "firmware_msc_fat.h"
#include "spi_flash_mmap.h"

Expand Down
2 changes: 1 addition & 1 deletion cores/esp32/esp32-hal-gpio.h
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,9 @@
extern "C" {
#endif

#include "pins_arduino.h"
#include "esp32-hal.h"
#include "soc/soc_caps.h"
#include "pins_arduino.h"
#include "driver/gpio.h"

#if (CONFIG_IDF_TARGET_ESP32S2 || CONFIG_IDF_TARGET_ESP32S3)
Expand Down
2 changes: 1 addition & 1 deletion cores/esp32/esp_arduino_version.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ extern "C" {
/** Minor version number (x.X.x) */
#define ESP_ARDUINO_VERSION_MINOR 1
/** Patch version number (x.x.X) */
#define ESP_ARDUINO_VERSION_PATCH 0
#define ESP_ARDUINO_VERSION_PATCH 1

/**
* Macro to convert ARDUINO version number into an integer
Expand Down
8 changes: 5 additions & 3 deletions docs/en/getting_started.rst
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,8 @@ Here are some community channels where you may find information and ask for some
- `ESP32 Forum`_: Official Espressif Forum.
- `ESP32 Forum - Arduino`_: Official Espressif Forum for Arduino related discussions.
- `ESP32 Forum - Hardware`_: Official Espressif Forum for Hardware related discussions.
- `Gitter`_
- `Espressif Developer Portal`_: Official Espressif Developer Portal with tutorials, examples, workshops, and more.
- `Arduino Core for Espressif (Discord)`_: Official Espressif Discord channel for the Arduino Core.
- `Espressif MCUs (Discord)`_
- `ESP32 on Reddit`_

Expand Down Expand Up @@ -148,12 +149,13 @@ Resources

.. _Espressif Systems: https://www.espressif.com
.. _Espressif Product Selector: https://products.espressif.com/
.. _Espressif Developer Portal: https://developer.espressif.com/
.. _Arduino.cc: https://www.arduino.cc/en/Main/Software
.. _Arduino Reference: https://www.arduino.cc/reference/en/
.. _ESP32 Forum: https://esp32.com
.. _ESP32 Forum - Arduino: https://esp32.com/viewforum.php?f=19
.. _ESP32 Forum - Hardware: https://esp32.com/viewforum.php?f=12
.. _Gitter: https://gitter.im/espressif/arduino-esp32
.. _Arduino Core for Espressif (Discord): https://discord.gg/8xY6e9crwv
.. _Adafruit (Discord): https://discord.gg/adafruit
.. _Espressif MCUs (Discord): https://discord.gg/nKxMTnkD
.. _Espressif MCUs (Discord): https://discord.com/invite/XqnZPbF
.. _ESP32 on Reddit: https://www.reddit.com/r/esp32
1 change: 1 addition & 0 deletions docs/en/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ Here you will find all the relevant information about the project.
Guides <guides/guides>
Tutorials <tutorials/tutorials>
Advanced Utilities <advanced_utils>
Third Party Tools <third_party_tools>
Migration Guides <migration_guides/migration_guides>
FAQ <faq>
Troubleshooting <troubleshooting>
Expand Down
14 changes: 14 additions & 0 deletions docs/en/third_party/pioarduino.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#######################################################
pioarduino - (p)eople (i)nitiated (o)ptimized (arduino)
#######################################################

.. warning::
This tool is **not maintained by the ESP32 Arduino Core team**, so we cannot provide support or guarantee that it will work as expected.

.. note::
This is a work in progress documentation and we will appreciate your help! We are looking for contributors!

About
-----

For more information, please refer to the `official documentation <https://github.com/pioarduino/platform-espressif32>`_.
42 changes: 42 additions & 0 deletions docs/en/third_party/wokwi.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
#####
Wokwi
#####

.. warning::
This tool is **not maintained by the ESP32 Arduino Core team**, so we cannot provide support or guarantee that it will work as expected.

.. note::
This is a work in progress documentation and we will appreciate your help! We are looking for contributors!

About
-----

Wokwi is an online Electronics simulator. You can use it to simulate Arduino, ESP32, and many other popular boards, parts and sensors.

The advantages of using Wokwi include:

- 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.
- Safe experimentation: Virtual hardware cannot be damaged, allowing users to experiment freely without the risk of destroying components. Mistakes can be easily undone.
- Easy collaboration: Sharing a link to your Wokwi project facilitates obtaining help and feedback from others.
- Code reliability: Helps in distinguishing between hardware and software issues, thereby increasing confidence in your code.
- Unlimited resources: Access to an unlimited number of parts without concerns about cost or availability.
- Supportive community: A maker-friendly environment where users can share projects, seek assistance, and find inspiration.

Unique features provided by Wokwi:

- Wi-Fi simulation - Connect your simulated project to the internet. You can use MQTT, HTTP, NTP, and many other network protocols.
- Virtual Logic Analyzer - Capture digital signals in your simulation (e.g. UART, I2C, SPI) and analyze them on your computer.
- Advanced debugging with GDB - Powerful Arduino debugger for advanced users.
- SD card simulation - Store and retrieve files and directories from your code. Paying users can also upload binary files (such as images)
- Chips API - Create your own custom chips and parts, and share them with the community.
- Visual Studio Code integration - Simulate your embedded projects directly from VS Code.

Pricing
-------

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>`_.

Learn more
----------

For more information, please refer to the `official Wokwi website <https://wokwi.com>`_ and the `Wokwi documentation <https://docs.wokwi.com>`_.
16 changes: 16 additions & 0 deletions docs/en/third_party_tools.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
#################
Third Party Tools
#################

Here you will find documentation pages for third party tools that can be used with the ESP32 Arduino Core.

.. warning::
These tools are **not maintained by the ESP32 Arduino Core team**, so we cannot provide support or guarantee that they will work as expected.
Each tool documentation should be provided and maintained by the community.

.. toctree::
:maxdepth: 1
:caption: Contents:

pioarduino <third_party/pioarduino>
Wokwi <third_party/wokwi>
1 change: 1 addition & 0 deletions docs/requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,4 @@ esp-docs>=1.4.0
sphinx-copybutton==0.5.0
sphinx-tabs==3.2.0
numpydoc==1.5.0
standard-imghdr==3.13.0
2 changes: 1 addition & 1 deletion libraries/ArduinoOTA/library.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name=ArduinoOTA
version=3.1.0
version=3.1.1
author=Ivan Grokhotkov and Hristo Gochkov
maintainer=Hristo Gochkov <[email protected]>
sentence=Enables Over The Air upgrades, via wifi and espota.py UDP request/TCP download.
Expand Down
2 changes: 1 addition & 1 deletion libraries/AsyncUDP/library.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name=ESP32 Async UDP
version=3.1.0
version=3.1.1
author=Me-No-Dev
maintainer=Me-No-Dev
sentence=Async UDP Library for ESP32
Expand Down
32 changes: 20 additions & 12 deletions libraries/AsyncUDP/src/AsyncUDP.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -601,76 +601,84 @@ static esp_err_t joinMulticastGroup(const ip_addr_t *addr, bool join, tcpip_adap
return ESP_ERR_INVALID_ARG;
}
netif = (struct netif *)nif;
UDP_MUTEX_LOCK();

#if CONFIG_LWIP_IPV6
if (addr->type == IPADDR_TYPE_V4) {
if (join) {
if (igmp_joingroup_netif(netif, (const ip4_addr *)&(addr->u_addr.ip4))) {
return ESP_ERR_INVALID_STATE;
goto igmp_fail;
}
} else {
if (igmp_leavegroup_netif(netif, (const ip4_addr *)&(addr->u_addr.ip4))) {
return ESP_ERR_INVALID_STATE;
goto igmp_fail;
}
}
} else {
if (join) {
if (mld6_joingroup_netif(netif, &(addr->u_addr.ip6))) {
return ESP_ERR_INVALID_STATE;
goto igmp_fail;
}
} else {
if (mld6_leavegroup_netif(netif, &(addr->u_addr.ip6))) {
return ESP_ERR_INVALID_STATE;
goto igmp_fail;
}
}
}
#else
if (join) {
if (igmp_joingroup_netif(netif, (const ip4_addr *)(addr))) {
return ESP_ERR_INVALID_STATE;
goto igmp_fail;
}
} else {
if (igmp_leavegroup_netif(netif, (const ip4_addr *)(addr))) {
return ESP_ERR_INVALID_STATE;
goto igmp_fail;
}
}
#endif
UDP_MUTEX_UNLOCK();
} else {
UDP_MUTEX_LOCK();
#if CONFIG_LWIP_IPV6
if (addr->type == IPADDR_TYPE_V4) {
if (join) {
if (igmp_joingroup((const ip4_addr *)IP4_ADDR_ANY, (const ip4_addr *)&(addr->u_addr.ip4))) {
return ESP_ERR_INVALID_STATE;
goto igmp_fail;
}
} else {
if (igmp_leavegroup((const ip4_addr *)IP4_ADDR_ANY, (const ip4_addr *)&(addr->u_addr.ip4))) {
return ESP_ERR_INVALID_STATE;
goto igmp_fail;
}
}
} else {
if (join) {
if (mld6_joingroup((const ip6_addr *)IP6_ADDR_ANY, &(addr->u_addr.ip6))) {
return ESP_ERR_INVALID_STATE;
goto igmp_fail;
}
} else {
if (mld6_leavegroup((const ip6_addr *)IP6_ADDR_ANY, &(addr->u_addr.ip6))) {
return ESP_ERR_INVALID_STATE;
goto igmp_fail;
}
}
}
#else
if (join) {
if (igmp_joingroup((const ip4_addr *)IP4_ADDR_ANY, (const ip4_addr *)(addr))) {
return ESP_ERR_INVALID_STATE;
goto igmp_fail;
}
} else {
if (igmp_leavegroup((const ip4_addr *)IP4_ADDR_ANY, (const ip4_addr *)(addr))) {
return ESP_ERR_INVALID_STATE;
goto igmp_fail;
}
}
#endif
UDP_MUTEX_UNLOCK();
}
return ESP_OK;

igmp_fail:
UDP_MUTEX_UNLOCK();
return ESP_ERR_INVALID_STATE;
}

bool AsyncUDP::listenMulticast(const ip_addr_t *addr, uint16_t port, uint8_t ttl, tcpip_adapter_if_t tcpip_if) {
Expand Down
2 changes: 1 addition & 1 deletion libraries/BLE/library.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name=BLE
version=3.1.0
version=3.1.1
author=Neil Kolban <[email protected]>
maintainer=Dariusz Krempa <[email protected]>
sentence=BLE functions for ESP32
Expand Down
2 changes: 1 addition & 1 deletion libraries/BluetoothSerial/library.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name=BluetoothSerial
version=3.1.0
version=3.1.1
author=Evandro Copercini
maintainer=Evandro Copercini
sentence=Simple UART to Classical Bluetooth bridge for ESP32
Expand Down
2 changes: 1 addition & 1 deletion libraries/DNSServer/library.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name=DNSServer
version=3.1.0
version=3.1.1
author=Kristijan Novoselić
maintainer=Kristijan Novoselić, <[email protected]>
sentence=A simple DNS server for ESP32.
Expand Down
2 changes: 1 addition & 1 deletion libraries/EEPROM/library.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name=EEPROM
version=3.1.0
version=3.1.1
author=Ivan Grokhotkov
maintainer=Paolo Becchi <[email protected]>
sentence=Enables reading and writing data a sequential, addressable FLASH storage
Expand Down
Loading

0 comments on commit 81e3cd9

Please sign in to comment.