Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Arduino core for the ESP32, ESP32-C3, ESP32-C5, ESP32-C6, ESP32-H2, ESP32-P4, ESP32-S2 and ESP32-S3.
# Arduino core for the ESP32 family of SoCs

[![Build Status](https://img.shields.io/github/actions/workflow/status/espressif/arduino-esp32/push.yml?branch=master&event=push&label=Compilation%20Tests)](https://github.com/espressif/arduino-esp32/actions/workflows/push.yml?query=branch%3Amaster+event%3Apush)
[![Verbose Build Status](https://img.shields.io/github/actions/workflow/status/espressif/arduino-esp32/push.yml?branch=master&event=schedule&label=Compilation%20Tests%20(Verbose))](https://github.com/espressif/arduino-esp32/actions/workflows/push.yml?query=branch%3Amaster+event%3Aschedule)
Expand Down
14 changes: 7 additions & 7 deletions docs/_static/chatbot_widget.css
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
#kapa-widget-container {
z-index: 10000 !important;
position: absolute !important;
}
z-index: 10000 !important;
position: absolute !important;
}

.mantine-Modal-root {
z-index: 10000;
position: absolute;
}
.mantine-Modal-root {
z-index: 10000;
position: absolute;
}
24 changes: 24 additions & 0 deletions docs/_static/custom.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
/* Custom styles for Arduino ESP32 documentation */

/* Wide table support - make content container wider */
/*
.document {
max-width: 1100px !important;
}

.wy-nav-content {
max-width: 1100px !important;
}
*/

/* Make tables scrollable when they exceed page width */
.table-wrap {
overflow-x: auto;
max-width: 100%;
}

.table-wrap table {
font-size: 0.9em;
width: auto !important;
display: table;
}
8 changes: 7 additions & 1 deletion docs/conf_common.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@
rst_prolog = """
.. |version| replace:: 3.3.4
.. |idf_version| replace:: 5.5
.. |no| replace:: ❌
.. |yes| replace:: ✅
.. |n/a| replace:: ➖
"""

languages = ["en"]
Expand All @@ -29,7 +32,10 @@
html_static_path = ["../_static"]

html_js_files = ["../_static/chatbot_widget_en.js"]
html_css_files = ["../_static/chatbot_widget.css"]
html_css_files = [
"../_static/chatbot_widget.css",
"../_static/custom.css",
]

# Conditional content

Expand Down
10 changes: 9 additions & 1 deletion docs/en/boards/boards.rst
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,16 @@ The ESP32 is divided by family:

* ESP32
* Wi-Fi, BT and BLE 4
* ESP32-C2 [#rebuild-required]_
* Wi-Fi and BLE 5
* ESP32-C3
* Wi-Fi and BLE 5
* ESP32-C5
* Dual-band Wi-Fi 6, BLE 5 and IEEE 802.15.4
* ESP32-C6
* Wi-Fi, BLE 5 and IEEE 802.15.4
* Wi-Fi 6, BLE 5 and IEEE 802.15.4
* ESP32-C61 [#rebuild-required]_
* Wi-Fi 6, BLE 5
* ESP32-H2
* BLE 5 and IEEE 802.15.4
* ESP32-P4
Expand All @@ -31,6 +37,8 @@ The ESP32 is divided by family:
* ESP32-S3
* Wi-Fi and BLE 5

.. [#rebuild-required] This SoC is only supported using Arduino as an ESP-IDF component or by rebuilding the static libraries.

For each family, we have SoC variants with some differentiation. The differences are more about the embedded flash and its size and the number of the cores (dual or single).

The modules use the SoC internally, including the external flash, PSRAM (in some models) and other essential electronic components. Essentially, all
Expand Down
4 changes: 4 additions & 0 deletions docs/en/common/datasheet.inc
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,9 @@ Datasheet
* `ESP32`_ (Datasheet)
* `ESP32-C2`_ (Datasheet)
* `ESP32-C3`_ (Datasheet)
* `ESP32-C5`_ (Datasheet)
* `ESP32-C6`_ (Datasheet)
* `ESP32-C61`_ (Datasheet)
* `ESP32-H2`_ (Datasheet)
* `ESP32-P4`_ (Datasheet)
* `ESP32-S2`_ (Datasheet)
Expand All @@ -14,7 +16,9 @@ Datasheet
.. _ESP32: https://www.espressif.com/sites/default/files/documentation/esp32_datasheet_en.pdf
.. _ESP32-C2: https://www.espressif.com/sites/default/files/documentation/esp8684_datasheet_en.pdf
.. _ESP32-C3: https://www.espressif.com/sites/default/files/documentation/esp32-c3_datasheet_en.pdf
.. _ESP32-C5: https://www.espressif.com/sites/default/files/documentation/esp32-c5_datasheet_en.pdf
.. _ESP32-C6: https://www.espressif.com/sites/default/files/documentation/esp32-c6_datasheet_en.pdf
.. _ESP32-C61: https://www.espressif.com/sites/default/files/documentation/esp32-c61_datasheet_en.pdf
.. _ESP32-H2: https://www.espressif.com/sites/default/files/documentation/esp32-h2_datasheet_en.pdf
.. _ESP32-P4: https://www.espressif.com/sites/default/files/documentation/esp32-p4_datasheet_en.pdf
.. _ESP32-S2: https://www.espressif.com/sites/default/files/documentation/esp32-s2_datasheet_en.pdf
Expand Down
3 changes: 2 additions & 1 deletion docs/en/getting_started.rst
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ SoC Stable Development Datasheet
========== ====== =========== =================================
ESP32 Yes Yes `ESP32`_
ESP32-C3 Yes Yes `ESP32-C3`_
ESP32-C5 Yes Yes `ESP32-C5`_
ESP32-C6 Yes Yes `ESP32-C6`_
ESP32-H2 Yes Yes `ESP32-H2`_
ESP32-P4 Yes Yes `ESP32-P4`_
Expand All @@ -47,7 +48,7 @@ ESP32-S3 Yes Yes `ESP32-S3`_
========== ====== =========== =================================

.. note::
ESP32-C2 is also supported by Arduino-ESP32 but requires using Arduino as an ESP-IDF component or rebuilding the static libraries.
ESP32-C2 and ESP32-C61 are also supported by Arduino-ESP32 but require using Arduino as an ESP-IDF component or rebuilding the static libraries.
For more information, see the `Arduino as an ESP-IDF component documentation <esp-idf_component.html>`_ or the
`Lib Builder documentation <lib_builder.html>`_, respectively.

Expand Down
179 changes: 108 additions & 71 deletions docs/en/libraries.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,77 +2,114 @@
Libraries
#########

Here is where the Libraries API's descriptions are located:

Supported Peripherals
---------------------

Currently, the Arduino ESP32 supports the following peripherals with Arduino APIs.

+---------------+-------+-------+-------+-------+-------+-------+-------+-------+
| Peripheral | ESP32 | C3 | C6 | H2 | P4 | S2 | S3 | Notes |
+===============+=======+=======+=======+=======+=======+=======+=======+=======+
| ADC | Yes | Yes | Yes | Yes | Yes | Yes | Yes | (1) |
+---------------+-------+-------+-------+-------+-------+-------+-------+-------+
| BT Classic | Yes | N/A | N/A | N/A | N/A | N/A | N/A | |
+---------------+-------+-------+-------+-------+-------+-------+-------+-------+
| BLE | Yes | Yes | Yes | Yes | No | N/A | Yes | |
+---------------+-------+-------+-------+-------+-------+-------+-------+-------+
| DAC | Yes | N/A | N/A | N/A | Yes | Yes | N/A | |
+---------------+-------+-------+-------+-------+-------+-------+-------+-------+
| Ethernet | Yes | N/A | N/A | N/A | Yes | N/A | N/A | (2) |
+---------------+-------+-------+-------+-------+-------+-------+-------+-------+
| GPIO | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |
+---------------+-------+-------+-------+-------+-------+-------+-------+-------+
| Hall Sensor | N/A | N/A | N/A | N/A | N/A | N/A | N/A | |
+---------------+-------+-------+-------+-------+-------+-------+-------+-------+
| I2C | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |
+---------------+-------+-------+-------+-------+-------+-------+-------+-------+
| I2S | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |
+---------------+-------+-------+-------+-------+-------+-------+-------+-------+
| LEDC | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |
+---------------+-------+-------+-------+-------+-------+-------+-------+-------+
| MIPI | N/A | N/A | N/A | N/A | No | N/A | N/A | |
+---------------+-------+-------+-------+-------+-------+-------+-------+-------+
| Motor PWM | No | N/A | N/A | N/A | N/A | N/A | N/A | |
+---------------+-------+-------+-------+-------+-------+-------+-------+-------+
| MSPI | N/A | N/A | N/A | N/A | No | N/A | N/A | |
+---------------+-------+-------+-------+-------+-------+-------+-------+-------+
| Pulse Counter | No | No | No | No | No | No | No | |
+---------------+-------+-------+-------+-------+-------+-------+-------+-------+
| RMT | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |
+---------------+-------+-------+-------+-------+-------+-------+-------+-------+
| SDIO | No | No | No | No | No | No | No | |
+---------------+-------+-------+-------+-------+-------+-------+-------+-------+
| SDMMC | Yes | N/A | N/A | N/A | N/A | N/A | Yes | |
+---------------+-------+-------+-------+-------+-------+-------+-------+-------+
| Timer | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |
+---------------+-------+-------+-------+-------+-------+-------+-------+-------+
| Temp. Sensor | N/A | Yes | Yes | Yes | Yes | Yes | Yes | |
+---------------+-------+-------+-------+-------+-------+-------+-------+-------+
| Touch | Yes | N/A | N/A | N/A | Yes | Yes | Yes | |
+---------------+-------+-------+-------+-------+-------+-------+-------+-------+
| TWAI | No | No | No | No | No | No | No | |
+---------------+-------+-------+-------+-------+-------+-------+-------+-------+
| UART | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |
+---------------+-------+-------+-------+-------+-------+-------+-------+-------+
| USB | N/A | Yes | Yes | Yes | Yes | Yes | Yes | (3) |
+---------------+-------+-------+-------+-------+-------+-------+-------+-------+
| Wi-Fi | Yes | Yes | Yes | N/A | Yes | Yes | Yes | (4) |
+---------------+-------+-------+-------+-------+-------+-------+-------+-------+

Notes
^^^^^

(1) ESP32-P4 calibration schemes not supported yet in IDF and ADC Continuous also lacks IDF support.

(2) SPI Ethernet is supported by all ESP32 families and RMII only for ESP32 and ESP32-P4.

(3) ESP32-C3, C6, H2 only support USB CDC/JTAG

(4) ESP32-P4 only supports Wi-Fi through another SoC by using ``esp_hosted``.

.. note:: Some peripherals are not available for all ESP32 families. To see more details about it, see the corresponding SoC at `Product Selector <https://products.espressif.com>`_ page.
Arduino libraries help you use the features of the ESP32 family of chips with the familiar Arduino API.

Supported Features and Peripherals
----------------------------------

Currently, the Arduino ESP32 supports almost everything available on the ESP32 family with an Arduino-like API.

Not all features are available on all SoCs. Please check the `Product Selector <https://products.espressif.com>`_ page
for more details.

Here is a matrix of the library support status for the main features and peripherals per SoC:

- |yes| Supported through the Arduino Core
- |no| Not supported through the Arduino Core. It can still be used through the ESP-IDF API, but might require rebuilding the static libraries.
- |n/a| Not available on the SoC

.. rst-class:: table-wrap

.. Using substitutions rather than emojis directly because in macOS vscode the emojis don't take a fixed space in the text
and the table looks weird and hard to edit. This is a workaround to make the table easier to edit. Just write
|yes|, |no|, |n/a| instead of emojis.

+----------------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

At some point, we will need to figure out another approach for this table.

| Feature | ESP32 | C2 | C3 | C5 | C6 | C61 | H2 | P4 | S2 | S3 |
+======================+=======+=======+=======+=======+=======+=======+=======+=======+=======+=======+
| ADC [1]_ | |yes| | |yes| | |yes| | |yes| | |yes| | |yes| | |yes| | |yes| | |yes| | |yes| |
+----------------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+
| BT Classic | |yes| | |n/a| | |n/a| | |n/a| | |n/a| | |n/a| | |n/a| | |n/a| | |n/a| | |n/a| |
+----------------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+
| BLE [2]_ | |yes| | |yes| | |yes| | |yes| | |yes| | |yes| | |yes| | |yes| | |n/a| | |yes| |
+----------------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+
| DAC | |yes| | |n/a| | |n/a| | |n/a| | |n/a| | |n/a| | |n/a| | |n/a| | |yes| | |n/a| |
+----------------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+
| ESP-NOW [3]_ | |yes| | |yes| | |yes| | |yes| | |yes| | |yes| | |n/a| | |n/a| | |yes| | |yes| |
+----------------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+
| Ethernet [4]_ | |yes| | |n/a| | |n/a| | |n/a| | |n/a| | |n/a| | |n/a| | |yes| | |n/a| | |n/a| |
+----------------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+
| GPIO | |yes| | |yes| | |yes| | |yes| | |yes| | |yes| | |yes| | |yes| | |yes| | |yes| |
+----------------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+
| Hall Sensor | |n/a| | |n/a| | |n/a| | |n/a| | |n/a| | |n/a| | |n/a| | |n/a| | |n/a| | |n/a| |
+----------------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+
| I2C | |yes| | |yes| | |yes| | |yes| | |yes| | |yes| | |yes| | |yes| | |yes| | |yes| |
+----------------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+
| I2S | |yes| | |yes| | |yes| | |yes| | |yes| | |yes| | |yes| | |yes| | |yes| | |yes| |
+----------------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+
| I3C | |n/a| | |n/a| | |n/a| | |n/a| | |n/a| | |n/a| | |n/a| | |no| | |n/a| | |n/a| |
+----------------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+
| LEDC | |yes| | |yes| | |yes| | |yes| | |yes| | |yes| | |yes| | |yes| | |yes| | |yes| |
+----------------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+
| Matter (Thread) [6]_ | |n/a| | |n/a| | |n/a| | |yes| | |yes| | |n/a| | |yes| | |n/a| | |n/a| | |n/a| |
+----------------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+
| Matter (Wi-Fi) | |yes| | |no| | |yes| | |yes| | |yes| | |no| | |n/a| | |n/a| | |yes| | |yes| |
+----------------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+
| MIPI CSI | |n/a| | |n/a| | |n/a| | |n/a| | |n/a| | |n/a| | |n/a| | |no| | |n/a| | |n/a| |
+----------------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+
| MIPI DSI | |n/a| | |n/a| | |n/a| | |n/a| | |n/a| | |n/a| | |n/a| | |no| | |n/a| | |n/a| |
+----------------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+
| Motor PWM | |no| | |n/a| | |n/a| | |no| | |no| | |n/a| | |no| | |no| | |n/a| | |no| |
+----------------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+
| MSPI | |n/a| | |n/a| | |n/a| | |n/a| | |n/a| | |n/a| | |n/a| | |no| | |n/a| | |n/a| |
+----------------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+
| Pulse Counter | |no| | |no| | |no| | |no| | |no| | |no| | |no| | |no| | |no| | |no| |
+----------------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+
| RMT | |yes| | |yes| | |yes| | |yes| | |yes| | |n/a| | |yes| | |yes| | |yes| | |yes| |
+----------------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+
| SDIO | |no| | |n/a| | |n/a| | |no| | |no| | |no| | |n/a| | |no| | |n/a| | |no| |
+----------------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+
| SDMMC | |yes| | |n/a| | |n/a| | |n/a| | |n/a| | |n/a| | |n/a| | |n/a| | |n/a| | |yes| |
+----------------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+
| PSRAM | |yes| | |n/a| | |n/a| | |yes| | |n/a| | |yes| | |n/a| | |yes| | |yes| | |yes| |
+----------------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+
| Temp. Sensor | |n/a| | |yes| | |yes| | |yes| | |yes| | |yes| | |yes| | |yes| | |yes| | |yes| |
+----------------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+
| Thread | |n/a| | |n/a| | |n/a| | |yes| | |yes| | |n/a| | |yes| | |n/a| | |n/a| | |n/a| |
+----------------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+
| Timer | |yes| | |yes| | |yes| | |yes| | |yes| | |yes| | |yes| | |yes| | |yes| | |yes| |
+----------------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+
| Touch | |yes| | |n/a| | |n/a| | |n/a| | |n/a| | |n/a| | |n/a| | |yes| | |yes| | |yes| |
+----------------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+
| TWAI/CAN-FD | |no| | |n/a| | |no| | |no| | |no| | |n/a| | |no| | |no| | |no| | |no| |
+----------------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+
| UART | |yes| | |yes| | |yes| | |yes| | |yes| | |yes| | |yes| | |yes| | |yes| | |yes| |
+----------------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+
| USB OTG | |n/a| | |n/a| | |n/a| | |n/a| | |n/a| | |n/a| | |n/a| | |yes| | |yes| | |yes| |
+----------------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+
| USB Serial | |n/a| | |n/a| | |yes| | |yes| | |yes| | |yes| | |yes| | |yes| | |n/a| | |yes| |
+----------------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+
| Wi-Fi [2]_ | |yes| | |yes| | |yes| | |yes| | |yes| | |yes| | |n/a| | |yes| | |yes| | |yes| |
+----------------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+
| Zigbee [5]_ | |n/a| | |n/a| | |n/a| | |yes| | |yes| | |n/a| | |yes| | |n/a| | |n/a| | |n/a| |
+----------------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+

.. [1] ESP32-P4 calibration schemes not supported yet in IDF and ADC Continuous also lacks IDF support.

.. [2] ESP32-P4 only supports Wi-Fi and BLE through another SoC by using ``ESP-Hosted``.

.. [3] ESP-NOW is not supported through ``ESP-Hosted``.

.. [4] SPI Ethernet is supported by all ESP32 families and RMII only for ESP32 and ESP32-P4.

.. [5] Non-native Zigbee SoCs can also run Zigbee, but must use another SoC (with Zigbee radio) as a RCP connected by UART/SPI.
Check the `Gateway example <https://github.com/espressif/arduino-esp32/tree/master/libraries/Zigbee/examples/Zigbee_Gateway>`_ for more details.

.. [6] Matter over Thread is supported by our library but is not included in the pre-compiled libraries for ESP32-C6 and ESP32-C5.
In order to use Matter over Thread, you need to use Arduino as an ESP-IDF component or rebuild the static libraries.
Check the `Arduino_ESP_Matter_over_OpenThread example <https://github.com/espressif/arduino-esp32/tree/master/idf_component_examples/Arduino_ESP_Matter_over_OpenThread>`_ for more details.

.. note:: The ESP32-C2 and ESP32-C61 are only supported using Arduino as an ESP-IDF component or by rebuilding the static libraries.

.. include:: common/datasheet.inc

Expand Down
8 changes: 4 additions & 4 deletions docs/requirements.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
sphinx==4.5.0
esp-docs>=1.4.0
sphinx==7.1.2
esp-docs==2.1.1
sphinx-copybutton==0.5.0
sphinx-tabs==3.2.0
numpydoc==1.5.0
sphinx-tabs==3.4.7
numpydoc==1.10.0
standard-imghdr==3.13.0
Sphinx-Substitution-Extensions==2022.2.16
3 changes: 3 additions & 0 deletions package/package_esp32_index.template.json
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,9 @@
{
"name": "ESP32-C3 Dev Board"
},
{
"name": "ESP32-C5 Dev Board"
},
{
"name": "ESP32-C6 Dev Board"
},
Expand Down
Loading