diff --git a/README.md b/README.md index e6a0eb2dffb..d8a08b00689 100644 --- a/README.md +++ b/README.md @@ -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) diff --git a/docs/_static/chatbot_widget.css b/docs/_static/chatbot_widget.css index c6585b0588d..2a9c1d8daf3 100644 --- a/docs/_static/chatbot_widget.css +++ b/docs/_static/chatbot_widget.css @@ -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; +} diff --git a/docs/_static/custom.css b/docs/_static/custom.css new file mode 100644 index 00000000000..e75ee37555a --- /dev/null +++ b/docs/_static/custom.css @@ -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; +} diff --git a/docs/conf_common.py b/docs/conf_common.py index 0960d7c4315..7f6e9324d29 100644 --- a/docs/conf_common.py +++ b/docs/conf_common.py @@ -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"] @@ -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 diff --git a/docs/en/boards/boards.rst b/docs/en/boards/boards.rst index 407b019a78b..5de14119d6d 100644 --- a/docs/en/boards/boards.rst +++ b/docs/en/boards/boards.rst @@ -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 @@ -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 diff --git a/docs/en/common/datasheet.inc b/docs/en/common/datasheet.inc index 7086a12d1a8..a4f580cd826 100644 --- a/docs/en/common/datasheet.inc +++ b/docs/en/common/datasheet.inc @@ -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) @@ -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 diff --git a/docs/en/getting_started.rst b/docs/en/getting_started.rst index 1b0f1bba87a..86b2fd692a1 100644 --- a/docs/en/getting_started.rst +++ b/docs/en/getting_started.rst @@ -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`_ @@ -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 `_ or the `Lib Builder documentation `_, respectively. diff --git a/docs/en/libraries.rst b/docs/en/libraries.rst index d9961d67b41..c4032c786c7 100644 --- a/docs/en/libraries.rst +++ b/docs/en/libraries.rst @@ -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 `_ 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 `_ 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. + ++----------------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+ +| 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 `_ 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 `_ 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 diff --git a/docs/requirements.txt b/docs/requirements.txt index ef2ab88cb65..09e458b5caf 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -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 diff --git a/package/package_esp32_index.template.json b/package/package_esp32_index.template.json index 96af1b6d286..716af37fddb 100644 --- a/package/package_esp32_index.template.json +++ b/package/package_esp32_index.template.json @@ -28,6 +28,9 @@ { "name": "ESP32-C3 Dev Board" }, + { + "name": "ESP32-C5 Dev Board" + }, { "name": "ESP32-C6 Dev Board" },