Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
705 commits
Select commit Hold shift + click to select a range
7296aab
fix(mqtt): Unite supported components tags under common structure
AndriiFilippov Aug 10, 2023
b885df7
docs (Bluetooth): add bluetooth overview document
simple12360 Jul 27, 2023
b0b728d
docs(esp32p4): added building docs for ESP32-P4
ESP-Marius Jul 25, 2023
3ad3d93
Merge branch 'docs/add_bluetooth_overview_page' into 'master'
simple12360 Aug 16, 2023
7c6ede6
refactor(freertos): Remove option for Task Snapshot
Dazza0 Aug 28, 2023
2aeb2f1
feat(doc): update wifi sections for H2
xuxiao111 Aug 31, 2023
531cd8d
refactor(intr): add namespace for intr_cpu_id_t
suda-morris Jul 13, 2023
9855fe9
Merge branch 'refactor/add_namespace_intr_cpu_id' into 'master'
suda-morris Sep 6, 2023
026f67e
Merge branch 'docs/organize_header_files_bluetooth_controller' into '…
Lindazhxy Sep 8, 2023
49737a3
feat(ble_mesh): Support Bluetooth Mesh Protocol v1.1 (Preview)
Aug 28, 2023
448c7f4
change(wifi): Add supplicant's public API header files to doc
kapilkedawat Sep 12, 2023
b8cb539
docs(pcnt,mcpwm): document new features for esp32p4
suda-morris Sep 13, 2023
9e7527b
docs: update format issues left in EN docs
caixinying-git Sep 13, 2023
c809cf3
Merge branch 'refactor/mcpwm_rcc_atomic' into 'master'
suda-morris Sep 15, 2023
fb9deb3
Merge branch 'feature/rename_wpa2_ent_to_eap_client' into 'master'
kapilkedawat Sep 18, 2023
10d4ee4
feat(examples): add local components via idf_component.yml
igrr Aug 4, 2023
4cd9b2a
feat(ana_cmpr): supported etm in analog comparator example
L-KAYA Jul 31, 2023
71fad22
feat(cache): added cache msync doc
Icarus113 Sep 27, 2023
9797372
docs(build): add header include path and component require to api ref…
ESP-Marius Sep 8, 2023
6a0a109
refactor(freertos/task_snapshot): Make task snapshot private
Dazza0 Sep 21, 2023
26b0c42
Merge branch 'docs/show_include_path' into 'master'
ESP-Marius Oct 11, 2023
9e840cb
feat(mqtt/example): Adds custom outbox example
euripedesrocha May 4, 2023
ee4d6b4
feat(gpio): add a dump API to dump IO configurations
songruo Sep 22, 2023
7c06408
feat(sdmmc): supported sd2.0 on esp32p4
Icarus113 Aug 29, 2023
4d41b2a
change(freertos/idf): Update FreeRTOS documentation build
Dazza0 Oct 8, 2023
2917907
refactor(pcnt): make pcnt driver as component
suda-morris Oct 16, 2023
3ff3a41
docs(ulp): add info about lp-uart to lp-core docs
ESP-Marius Oct 11, 2023
c16ae99
Merge branch 'docs/ulp_lp_uart' into 'master'
ESP-Marius Oct 24, 2023
f5467a0
Merge branch 'refactor/esp_driver_pcnt' into 'master'
suda-morris Oct 27, 2023
4766ab5
feat(example): Use PPP config in one MQTT example
david-cermak Oct 12, 2023
a6f7324
docs(esp_wifi): Fix inconsistency in NAN documentation
ShyamalKhachane Nov 1, 2023
4e2d9a3
refactor(gpio): make gpio driver as component, and fix astyle
songruo Oct 17, 2023
b6b1a58
refactor(gptimer): refactor gptimer driver into a component
suda-morris Oct 27, 2023
06f0894
fix(wifi): add esp_wifi and esp_coexist header files to Doxyfile
Jun 15, 2023
4138119
update(esp_coexist): update esp coexist header file
Aug 1, 2023
a93079e
change(wifi): update esp_coexist_internal.h and esp_modem_wrapper.h
Aug 9, 2023
4b8dc91
docs(i2c): Add new programming guide for new I2C driver
mythbuster5 Nov 7, 2023
a28f8b5
change(esp_lcd): split panel vendor driver into seperate header file
suda-morris Nov 6, 2023
0ddb497
refactor(lcd): reuse the color types in the hal/color_types.h
suda-morris Oct 31, 2023
657cc99
Merge branch 'bugfix/fix_esp_wifi_esp_phy_esp_coex_license_and_header…
jack0c Nov 8, 2023
c6d03cb
Merge branch 'contrib/github_pr_12450' into 'master'
suda-morris Nov 9, 2023
f78a5ac
refactor(spi): make spi driver as component
Icarus113 Oct 19, 2023
b001c76
feat(mcpwm): refactor mcpwm driver into a component
suda-morris Oct 30, 2023
762252c
docs: add ECDSA peripheral chapter for H2/P4
mahavirj Nov 7, 2023
ccf44d3
refactor(sdmmc): place sdmmc driver into a new component
Icarus113 Nov 10, 2023
a11e6b0
refactor(ana_cmpr): make analog comparator driver as component
L-KAYA Nov 9, 2023
0fc44ca
Merge branch 'bugfix/esp32h2_ecdsa_hardware_k' into 'master'
mahavirj Nov 17, 2023
925a18e
Merge branch 'refactor/esp_driver_ana_cmpr' into 'master'
L-KAYA Nov 17, 2023
45eb952
refactor(i2s): make i2s driver as component
L-KAYA Nov 7, 2023
52ee8a3
refactor(sdspi): place sdspi driver into a new component
Icarus113 Nov 16, 2023
02f283c
refactor(esp_srp): Expose esp_srp.h and add API docs
vikramdattu Sep 25, 2023
80c3830
refactor(sdio): place sdio slave driver into a new component
Icarus113 Nov 14, 2023
ddd2c01
Merge branch 'support/add_srp_salt_ver_gen_api' into 'master'
mahavirj Nov 22, 2023
d90b642
refactor(dac): make dac driver as component
L-KAYA Nov 20, 2023
cd3428a
feat(rmt): move the driver to a new component
suda-morris Nov 22, 2023
aacdf26
Merge branch 'feat/introduce_esp_driver_rmt' into 'master'
suda-morris Nov 27, 2023
5c361fb
refactor(temperature_sensor): Make temperature sensor driver as a sep…
mythbuster5 Nov 27, 2023
285adc6
feat(ulp/lp_core): Added basic support for building and running a LP-…
ESP-Marius Nov 2, 2023
fd731d2
Merge branch 'feature/p4_lp_core' into 'master'
ESP-Marius Nov 30, 2023
c793f0b
change(sdm): move driver to a new component: esp_driver_sdm
suda-morris Nov 30, 2023
bed0409
feat(tools): add 'idf.py qemu' extension
igrr Sep 18, 2023
6141d17
docs: remove WiFi related documentation for ESP32-H2
Lindazhxy Nov 9, 2023
8802300
Merge branch 'docs/remove_wifi_related_documentation_for_esp32h2' int…
Lindazhxy Dec 5, 2023
8442e2f
docs(programming_guide): turned off smartquotes
ESP-Marius Dec 5, 2023
df968c8
Merge branch 'feature/idf_qemu_ext' into 'master'
igrr Dec 5, 2023
99ca294
Merge branch 'docs/fix_dash_encoding' into 'master'
ESP-Marius Dec 5, 2023
32a2a72
docs(esp32p4): update misc docs for esp32p4
ESP-Marius Dec 5, 2023
d10b3bf
refactor(i2c): Make i2c driver as a seperate component
mythbuster5 Dec 12, 2023
dfa4b72
refactor(uart): make uart driver as component, and fix astyle
songruo Nov 22, 2023
8911725
refactor(uart_vfs): Move uart implementation of vfs to esp_driver_uart
songruo Nov 24, 2023
c46ef96
refactor: migrate atecc608a_ecdsa example to crypto authlib repository
mahavirj Dec 4, 2023
7cb12e6
docs: Update CN translation for esp_tls.rst, mqtt.rst, and peripheral…
Charlotudy Dec 20, 2023
31c853c
docs(parlio_rx): add programming guide
L-KAYA Aug 9, 2023
31ba6ea
feat(ledc): make esp_driver_ledc as component
wanckl Dec 28, 2023
d205da5
Merge branch 'feature/esp_driver_ledc' into 'master'
wanckl Dec 29, 2023
fc1a1d8
refactor(parlio): make parlio driver as component
L-KAYA Dec 31, 2023
36270f3
fix(dw_gdma): write back the link list items after creation
suda-morris Jan 11, 2024
287158c
change(esp_lcd): rearrange the esp_lcd folder by types
suda-morris Jan 11, 2024
5d01363
feat(esp_eth): Added support of internal EMAC for ESP32P4
kostaond Aug 22, 2023
0456da4
Merge branch 'feature/p4_emac' into 'master'
kostaond Jan 17, 2024
c074800
docs(ieee802154): add migration note for the receive done handler fea…
chshu Jan 24, 2024
d6b76f2
docs(build): add cannonical stable url to all docs
ESP-Marius Jan 29, 2024
53bd8a5
feat(esp32p4): Add USB-OTG support for ESP32-P4
tore-espressif Jan 19, 2024
5e7b8e1
Merge branch 'ci/add_p4_usb_host_to_ci' into 'master'
tore-espressif Jan 31, 2024
034fef6
docs(esp32c5): add support for building C5 docs
ESP-Marius Jan 23, 2024
54de613
docs(jpeg): Add basic programming guide for jpeg decoder
mythbuster5 Feb 28, 2024
542ea9f
change(doxyfile): move soc files to target specific doxygen
L-KAYA Feb 20, 2024
8b94057
refactor(esp32c5): change beta3 path in esp_system and bootloader
L-KAYA Feb 27, 2024
8ea27ea
docs(temperature_sensor): Add new documents for temperature sensor ET…
mythbuster5 Feb 29, 2024
38c7551
feat(ulp): add basic support for running lp core on C5
ESP-Marius Mar 8, 2024
c3ef235
feat(esp32c5mp): support to run hello world on esp32c5 mp
L-KAYA Mar 13, 2024
9154fdb
docs(lcd): add api reference for mipi dsi lcd
suda-morris Mar 20, 2024
c4f43bf
Merge branch 'bugfix/mipi_dsi_write_back_size_check' into 'master'
suda-morris Mar 22, 2024
b809093
feat(sd): added power control driver and implementation layer with ldo
Icarus113 Jan 21, 2024
4ffb3df
docs(ldo): add api reference for ldo regulator driver
suda-morris Mar 18, 2024
eec2a5a
doc(camera): added camera controller driver programming guide
Icarus113 Mar 22, 2024
cf9480b
fix(jpeg): fixed lack of the jpeg_types.h include in Doxyfile_esp32p4…
Icarus113 Mar 22, 2024
6938982
feat(examples): add support for ESP32-P4 in ssl_ds example
mahavirj Mar 27, 2024
ff761e4
docs(misc): fixed typos found with codespell
ESP-Marius Mar 28, 2024
385f2fb
doc(isp): added isp programming guide
Icarus113 Mar 21, 2024
1d8ff45
change(codespell): fix some wrong spell
Icarus113 Mar 29, 2024
819ff80
docs: disable build phy.rst for esp32p4
MaxwellAlan Mar 29, 2024
7ce6398
docs(jpeg_encoder): Add the documents support for jpeg encoder
mythbuster5 Apr 1, 2024
30cac99
feat(esp_wifi): Add support for advanced roaming as a wifi app
Mar 29, 2024
21ffd9f
Merge branch 'feature/advanced_roaming_support' into 'master'
jack0c Apr 1, 2024
e5ee03b
feat(mqtt): Enable build test in mqtt examples for esp32p4
bogdankolendovskyy Mar 21, 2024
bb14071
ci(doc): enable doc build for esp32c5
L-KAYA Apr 18, 2024
e00b31d
docs(usb): Add USBH maintainer notes
Dazza0 Apr 16, 2024
e6c06de
feat(log): Refactoring buffer log APIs
KonstantinKondrashov Mar 11, 2024
2963164
feat(ulp): support interrupts for C6/P4 LP core
ESP-Marius Apr 19, 2024
00e24eb
Merge branch 'feature/lp_core_interrupts' into 'master'
ESP-Marius Apr 29, 2024
634f113
Merge branch 'feature/log_buffer' into 'master'
KonstantinKondrashov Apr 30, 2024
36ea672
feat(esp_eth): a new folder structure of the driver and other improve…
kostaond Apr 26, 2024
b6957c5
refactor(mqtt): removed unused includes from tcp example
0xjakob May 16, 2024
e2674ee
feat(log): Refactoring timestamp APIs (move only)
KonstantinKondrashov May 2, 2024
005406d
feat(log): Refactoring color macros
KonstantinKondrashov May 2, 2024
368366f
feat(ppa): add PPA driver support for ESP32P4
songruo Apr 25, 2024
e788b84
feat(storage/vfs): add documentation for nullfs
haberturdeur May 9, 2024
88e050f
fix(examples): Add wifi_remote option to common connect example
david-cermak Sep 26, 2023
04e6692
change(esp_lcd): split header files by different IO interface
suda-morris May 29, 2024
370590f
docs(c61): add docs build for C61
ESP-Marius May 30, 2024
9da3cd7
docs(enum): Added description for Enumeration process (Enum Driver)
roma-jam May 23, 2024
445be92
Merge branch 'docs/c61_support' into 'master'
ESP-Marius Jun 4, 2024
56d3ff1
feat(isp_ccm): support isp color correction matrix
L-KAYA May 31, 2024
77122cb
change(dma): remove esp_dma_x usage in programming guide
Icarus113 Jun 11, 2024
b800f1d
Merge branch 'change/rm_esp_dma_x_usage_in_doc' into 'master'
Icarus113 Jun 11, 2024
ec4ff0d
doc(isp): isp bf programming guide
Icarus113 Jun 12, 2024
d2dd22d
docs(touch): add doc for cap touch sens driver
L-KAYA Jun 7, 2024
043d87a
Merge branch 'feature/touch_driver_ng_on_p4' into 'master'
L-KAYA Jun 12, 2024
5044188
remove(c5beta3): remove c5 beta3 doxy files
L-KAYA Jun 11, 2024
c15daf0
remove(c5beta3): remove c5 beta3 doxy files
L-KAYA Jun 11, 2024
181e55a
feat(lp-core): bringup lp-core for C5 MP
ESP-Marius Jun 14, 2024
a49a38d
docs(ext_hub): Added description for External Hub Driver
roma-jam May 23, 2024
48de096
feat(lp-spi): Added support for LP SPI driver to the LP Core on esp32p4
sudeep-mohanty Jun 19, 2024
f63dbca
feat(lp-core): added support for using ETM events as wake-up source
ESP-Marius Jul 1, 2024
a0dfca3
docs: Provide translationfor low power
May 8, 2024
376c0c1
docs(ble): Fixed the esp32c5 doc build error
weiyuhannnn Jul 23, 2024
27c3f9b
fix(wifi): fix code comments
xuxiao111 Jul 18, 2024
5e988c5
docs(ble): Reorganized the bluetooth API guide structure
weiyuhannnn Jul 15, 2024
a0fb7c8
docs(ble): Created an independent BLE folder
weiyuhannnn Jul 16, 2024
a37c0db
docs(ble): Moved ble-mesh and blufi to ble section
weiyuhannnn Jul 21, 2024
32a80ee
docs(ble): Moved blufi to ble folder
weiyuhannnn Jul 23, 2024
cdcf5fb
docs(ble): created an independent entry for classic bt
weiyuhannnn Jul 24, 2024
c158cd6
docs: Provide CN translation for camera_driver.rst
Shen7436 Jul 26, 2024
44f29c7
Merge branch 'docs/translate_camera_driver' into 'master'
Shen7436 Aug 1, 2024
d0aaa1d
docs(pm): update power management related docs for esp32p4
esp-wzh Jun 5, 2024
7b68bbb
Merge branch 'doc/update_esp32p4_pm_programming_guide_docs' into 'mas…
esp-wzh Aug 1, 2024
a094570
docs(ble): Added BLE feature support status
weiyuhannnn Aug 9, 2024
d1a9db6
Revert "docs(ble): Added BLE feature support status"
ESP-Marius Aug 13, 2024
bd502f3
feat(esp_eth): removed disable of C5 and P4 from examples .build-test…
kostaond Jun 7, 2024
290aa1b
docs(ble): Added BLE feature support status
weiyuhannnn Aug 16, 2024
420fd12
docs: Optimize translation for api-reference/system/inc files
April-Yjj Jul 8, 2024
6c604c0
feat(isp): add gamma correction driver to ISP
songruo Jul 22, 2024
5016183
doc(isp): isp sharpen programming guide
Icarus113 Aug 19, 2024
cf15d8e
[BT-3811] Added BLE Get Started
Aug 27, 2024
7eaf992
Merge branch 'docs/add_ble_get_started_docs' into 'master'
weiyuhannnn Aug 27, 2024
d81f341
feat(isp_hist): change coeff and weight of HIST to integer/decimal st…
Bruce297 Aug 22, 2024
8932c4b
Merge branch 'feature/support_isp_hisp_p4' into 'master'
Bruce297 Aug 28, 2024
b5a1c42
feat(isp): added demosaic programming guide
Icarus113 Aug 27, 2024
4279576
feat(wifi): add wifi support for esp32c61
xuxiao111 Aug 20, 2024
0d65bf4
fix(examples): esp_hosted as default for Wi-Fi connect on P4
david-cermak Aug 30, 2024
35c7622
feat(isp_color): support ISP color on P4
Bruce297 Sep 2, 2024
d99ada8
Merge branch 'feature/support_isp_color' into 'master'
Bruce297 Sep 3, 2024
234c35c
feat(ble): added ble support on esp32c61
ShenWeilong Sep 3, 2024
2ef87f0
ci(esp_eth): enabled build and test for c61 in eth/proto examples
kostaond Sep 17, 2024
39d4d26
docs: enable qemu doc guide for ESP32-S3
mahavirj Sep 26, 2024
fdf5264
Merge branch 'feat/wifi_remote_with_hosted' into 'master'
david-cermak Sep 30, 2024
085de95
ci(mqtt): Set partition to large for c6 on custom outbox example
euripedesrocha Oct 10, 2024
eaac70e
docs: update application examples for modbus.rst, mqtt.rst and lwip.rst
Lindazhxy Sep 20, 2024
2062c4a
feat(storage/vfs): add documentation for minified_vfs
haberturdeur Sep 9, 2024
d16e377
feat(storage/vfs): change names related to minified vfs
haberturdeur Oct 3, 2024
bec4580
feat(lcd): support rgb lcd driver for esp32p4
suda-morris Oct 16, 2024
c8a495e
Merge branch 'feat/rgb_lcd_esp32p4' into 'master'
suda-morris Oct 23, 2024
815b9ea
fix(wifi): add esp_wifi_types_native.h and esp_wifi_types_generic.h t…
zhangyanjiaoesp Jun 4, 2024
add6303
feat(touch): update doc and example for touch version 2
L-KAYA Oct 17, 2024
60c1a27
docs(ext_port): Added maintainers notes for External Port Driver
roma-jam May 23, 2024
e6f383a
feat(ble_mesh): Support BLE 5.0 for BLE Mesh
forx157 May 30, 2024
adf5ebe
Merge branch 'docs/usb_host_ext_port_driver' into 'master'
roma-jam Nov 11, 2024
466acda
feat(nvs_flash): Implemented basic nvs_flash support for bootloader
rrtandler Jun 26, 2024
0eb8c44
Merge branch 'feature/storage_nvs_bootloader' into 'master'
rrtandler Nov 14, 2024
a4bf0fa
doc(isp): isp lsc programming guide
Icarus113 Nov 11, 2024
66dba02
Merge branch 'doc/isp_lsc_doc' into 'master'
Icarus113 Nov 18, 2024
6d30d80
change(examples): explicitly specify component dependencies for examples
fhrbata Sep 24, 2024
a9e95f6
change(examples): switch examples to use a minimal build
fhrbata Sep 25, 2024
9182860
doc(lp_i2s): lp i2s programming guide
Icarus113 Nov 8, 2024
00d645b
doc(lp_vad): lp vad programming guide
Icarus113 Nov 8, 2024
b881d65
feat(log): Move esp_log_write APIs out of esp_log.h
KonstantinKondrashov May 17, 2024
90b2dc8
feat(lcd): support parlio lcd interface
Kainarx Nov 13, 2024
cb49b23
feat(dfu): Enable DFU on ESP32-P4
tore-espressif Dec 10, 2024
dd958e9
docs(ble): Added BLE Qualification Information to API Guides
weiyuhannnn Dec 17, 2024
03dc8b4
Merge branch 'docs/add_ble_qualification_table' into 'master'
Isl2017 Dec 17, 2024
5344e46
feat(twai): c5 twaifd low level support and deprecate old types header
wanckl Aug 15, 2024
d3424d2
Merge branch 'feat/dfu_p4' into 'master'
tore-espressif Dec 18, 2024
d353265
Merge branch 'feat/c5_twaifd_lowlevel_support' into 'master'
wanckl Dec 19, 2024
dcfbcf4
feat(docs): Replace PDF download link with HTML zip download link
ESP-Marius Dec 11, 2024
a7ebda7
Merge branch 'docs/add_html_download_link' into 'master'
ESP-Marius Dec 19, 2024
6fb955a
feat(tools): Enforce utf-8 encoding with open() function
Jul 23, 2024
1531295
feat(driver): BitScrambler support
Spritetm Dec 6, 2023
2edc097
docs(doxygen): removed coex header from doxyfile
ESP-Marius Jan 8, 2025
20465df
Merge branch 'docs/remove_coex_doxy' into 'master'
ESP-Marius Jan 8, 2025
ee8bd76
docs(esp_tee): Added documentation for the ESP-TEE framework
laukik-hase Dec 4, 2024
e525f34
docs(touch): update touch sensor docs for the new driver
L-KAYA Jan 8, 2025
f5221e8
fix(mqtt): MQTT5 API header added to documentation
euripedesrocha Dec 10, 2024
d0c2b0e
feat(bitscrambler): add driver support on esp32c5
suda-morris Jan 10, 2025
b045d99
docs(build): add support for building H21 docs
ESP-Marius Jan 26, 2025
1925e33
feat: supports lp uart wakeup
Jul 8, 2024
ba2a099
Merge branch 'feat/lp-uart-wakeup-mode3' into 'master'
Feb 6, 2025
40922c5
Merge branch 'feature/build_docs_h21' into 'master'
ESP-Marius Feb 6, 2025
007beca
docs: update document to remove dependency of esp32 on secure element…
nileshkale123 Feb 14, 2025
23b372b
test: format all test scripts
Feb 24, 2025
87499e0
docs: Update CN translation in protocols
0cici Feb 26, 2025
156f706
feat(bt): added definitions for bluetooth hci vendor commands and events
ShenWeilong Mar 9, 2025
c061331
change: fix issues reported by ruff
peterdragun Mar 26, 2025
c8bf3a0
feat(esp32h4): enable ESP32H4 ci build
Kainarx Mar 20, 2025
0377cab
feat(esp32h4): disable unsupported build
Kainarx Mar 21, 2025
f3fa761
docs(parlio_tx): add programming guide
Kainarx Jan 10, 2025
a43be51
feat(all): deployed chatbot widget
Lindazhxy Apr 10, 2025
b8bdc35
docs: Migrate ESP32 Bluetooth Architecture PDF content to ESP-IDF
weikelu Mar 17, 2025
b69f82f
docs(touch): build the touch element doc for esp32s3
suda-morris Apr 11, 2025
9ba86ed
Merge branch 'docs/migrate_esp32_bluetooth_architecture_to_idf' into …
weikelu Apr 11, 2025
e906c5d
Merge branch 'doc/touch_element_support_esp32s3' into 'master'
suda-morris Apr 14, 2025
223741a
ci: disabled RF soc caps for c5 eco2
L-KAYA Apr 10, 2025
3a63674
feat(docs): Adds ULP main documentation page
KonstantinKondrashov Apr 17, 2025
d876d47
feat(wifi): chip esp32c5 eco2 support wifi
QingzhaoYin Apr 17, 2025
772e485
change(ble): supported ble for esp32c5-eco2
Apr 29, 2025
01e6228
docs(heap): Document heap task tracking
SoucheSouche Apr 4, 2025
8f225e7
change(docs): Enable Documentation Chatbot only for the master branch
krzychb Apr 29, 2025
8fcb9cd
feat(sdio): supported sdio on esp32c5
Icarus113 Apr 23, 2025
00f713c
Merge branch 'docs/document-task-tracking' into 'master'
SoucheSouche Apr 30, 2025
2d4f393
Merge branch 'feat/c5_sdio' into 'master'
Icarus113 May 1, 2025
422d7e1
Merge branch 'feature/disabe_chatbot_for_release_branches' into 'master'
krzychb May 5, 2025
28449a7
change(examples): temp. disable examples which need esp_wifi_remote
igrr May 6, 2025
b83af08
Merge branch 'version/v6.0.0' into 'master'
igrr May 12, 2025
bcca921
docs(esp32h4): support building esp32h4 docs
ESP-Marius Apr 22, 2025
6fe1a5a
feat(sd): sd host driver layer driver NG
Icarus113 May 13, 2025
0620d12
docs(uhci): implementation for uart-dma (uhci) docs
mythbuster5 Apr 23, 2025
ec46425
Merge branch 'docs/uhci_programming_guide' into 'master'
mythbuster5 May 16, 2025
1118b71
ci(esp32c61): disable soc_caps, docs, test for eco3 update
wanckl May 20, 2025
82f0adb
feat(driver_twai): new driver add programming guide
wanckl May 9, 2025
70bdd64
Merge branch 'feat/twai_driver_add_programming_guide' into 'master'
wanckl May 30, 2025
8f19932
change(examples): Re-enable examples which need esp_wifi_remote
david-cermak May 13, 2025
0a74aa1
fix(examples): Update wifi-remote dependency to include IDF-v6
david-cermak May 13, 2025
1c87891
change(ble): resupport ble for ESP32C61ECO3
May 28, 2025
ada0c8b
Resupport C61 documentation build
weiyuhannnn Jun 13, 2025
e9ee109
fix: fix build failure when project name is not mqtt_ssl
Hossein-M98 Nov 12, 2024
c5b85e6
fix(mqtt): Make example binary data consistent
euripedesrocha Jun 18, 2025
adc70a2
fix(build): add __attribute__((nonstring)) to nonsting variables
Lapshin Jun 8, 2025
32983c9
Merge branch 'docs'
euripedesrocha Jun 30, 2025
5f81008
Merge remote-tracking branch 'docs_source/mqtt_examples' into mqtt_co…
euripedesrocha Jul 1, 2025
98dd379
Placeholder commit
euripedesrocha Jul 1, 2025
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
493 changes: 493 additions & 0 deletions docs/conf_common.py

Large diffs are not rendered by default.

82 changes: 82 additions & 0 deletions docs/doxygen/Doxyfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
# This is Doxygen configuration file
#
# Doxygen provides over 260 configuration statements
# To make this file easier to follow,
# it contains only statements that are non-default
#
# NOTE:
# It is recommended not to change defaults unless specifically required
# Test any changes how they affect generated documentation
# Make sure that correct warnings are generated to flag issues with documented code
#
# For the complete list of configuration statements see:
# http://doxygen.nl/manual/config.html


PROJECT_NAME = "IDF Programming Guide"

## The 'INPUT' statement below is used as input by script 'gen-df-input.py'
## to automatically generate API reference list files heder_file.inc
## These files are placed in '_inc' directory
## and used to include in API reference documentation

INPUT = \
$(PROJECT_PATH)/include/mqtt_client.h \
$(PROJECT_PATH)/include/mqtt5_client.h \
$(PROJECT_PATH)/include/mqtt_supported_features.h \

## Get warnings for functions that have no documentation for their parameters or return value
##
WARN_NO_PARAMDOC = YES

## Enable preprocessing and remove __attribute__(...) expressions from the INPUT files
##
ENABLE_PREPROCESSING = YES
MACRO_EXPANSION = YES
EXPAND_ONLY_PREDEF = YES
PREDEFINED = \
$(ENV_DOXYGEN_DEFINES) \
__DOXYGEN__=1 \
__attribute__(x)= \
_Static_assert()= \
ESP_STATIC_ASSERT()= \
IDF_DEPRECATED(X)= \
IRAM_ATTR= \
FORCE_INLINE_ATTR= \
NONSTRING_ATTR= \
configSUPPORT_DYNAMIC_ALLOCATION=1 \
configSUPPORT_STATIC_ALLOCATION=1 \
configQUEUE_REGISTRY_SIZE=1 \
configUSE_MUTEXES=1 \
configUSE_RECURSIVE_MUTEXES=1 \
configTHREAD_LOCAL_STORAGE_DELETE_CALLBACKS=1 \
configNUM_THREAD_LOCAL_STORAGE_POINTERS=1 \
configUSE_APPLICATION_TASK_TAG=1 \
configTASKLIST_INCLUDE_COREID=1 \
configUSE_SB_COMPLETED_CALLBACK=1 \
PRIVILEGED_FUNCTION= \
"ESP_EVENT_DECLARE_BASE(x)=extern esp_event_base_t x"

## Do not complain about not having dot
##
HAVE_DOT = NO

## Generate XML that is required for Breathe
##
GENERATE_XML = YES
XML_OUTPUT = xml

GENERATE_HTML = NO
HAVE_DOT = NO
GENERATE_LATEX = NO
GENERATE_MAN = YES
GENERATE_RTF = NO

## Skip distracting progress messages
##
QUIET = YES

## Enable Section Tags for conditional documentation
##
ENABLED_SECTIONS += DOC_EXCLUDE_HEADER_SECTION ## To conditionally remove doc sections from IDF source files without affecting documentation in upstream files.
ENABLED_SECTIONS += DOC_SINGLE_GROUP ## To conditionally remove groups from the documentation and create a 'flat' document without affecting documentation in upstream files.
27 changes: 27 additions & 0 deletions docs/doxygen/Doxyfile_esp32s3
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
INPUT += \
$(PROJECT_PATH)/components/esp_driver_touch_sens/include/driver/touch_sens.h \
$(PROJECT_PATH)/components/esp_driver_touch_sens/include/driver/touch_sens_types.h \
$(PROJECT_PATH)/components/esp_driver_touch_sens/hw_ver2/include/driver/touch_version_types.h \
$(PROJECT_PATH)/components/esp_lcd/rgb/include/esp_lcd_panel_rgb.h \
$(PROJECT_PATH)/components/ulp/ulp_fsm/include/$(IDF_TARGET)/ulp.h \
$(PROJECT_PATH)/components/touch_element/include/touch_element/touch_button.h \
$(PROJECT_PATH)/components/touch_element/include/touch_element/touch_element.h \
$(PROJECT_PATH)/components/touch_element/include/touch_element/touch_matrix.h \
$(PROJECT_PATH)/components/touch_element/include/touch_element/touch_slider.h \
$(PROJECT_PATH)/components/usb/include/usb/usb_helpers.h \
$(PROJECT_PATH)/components/usb/include/usb/usb_host.h \
$(PROJECT_PATH)/components/usb/include/usb/usb_types_ch9.h \
$(PROJECT_PATH)/components/usb/include/usb/usb_types_stack.h \
$(PROJECT_PATH)/components/bt/include/esp32c3/include/esp_bt.h \
$(PROJECT_PATH)/components/bt/include/esp32c3/include/esp_bt_vs.h \
$(PROJECT_PATH)/components/perfmon/include/xtensa_perfmon_access.h \
$(PROJECT_PATH)/components/perfmon/include/xtensa_perfmon_apis.h \
$(PROJECT_PATH)/components/perfmon/include/xtensa_perfmon_masks.h \
$(PROJECT_PATH)/components/esp_phy/include/esp_phy_init.h \
$(PROJECT_PATH)/components/esp_phy/include/esp_phy_cert_test.h \
$(PROJECT_PATH)/components/ulp/ulp_riscv/include/ulp_riscv_lock.h \
$(PROJECT_PATH)/components/ulp/ulp_riscv/include/ulp_riscv.h \
$(PROJECT_PATH)/components/ulp/ulp_riscv/include/ulp_riscv_i2c.h \
$(PROJECT_PATH)/components/ulp/ulp_riscv/shared/include/ulp_riscv_lock_shared.h \
$(PROJECT_PATH)/components/ulp/ulp_fsm/include/ulp_fsm_common.h \
$(PROJECT_PATH)/components/ulp/ulp_common/include/ulp_common.h \
35 changes: 35 additions & 0 deletions docs/en/conf.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# type: ignore
# -*- coding: utf-8 -*-
#
# English Language RTD & Sphinx config file
#
# Uses ../conf_common.py for most non-language-specific settings.
# Importing conf_common adds all the non-language-specific
# parts to this conf module
try:
from conf_common import * # noqa: F403,F401
except ImportError:
import os
import sys

sys.path.insert(0, os.path.abspath('../'))
from conf_common import * # noqa: F403,F401

import datetime

current_year = datetime.datetime.now().year

# General information about the project.
project = 'ESP-IDF Programming Guide'
copyright = '2016 - {}, Espressif Systems (Shanghai) Co., Ltd'.format(current_year) # noqa: A001

# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
language = 'en'

html_zip = f'esp-idf-{language}-{release}' # noqa: F405

# # The chatbot is able to answer only about the latest documentation.
# # Enable Documentation Chatbot widget only for the master branch.
# if release == 'latest': # noqa: F405
# html_js_files = ['js/chatbot_widget_en.js']
208 changes: 208 additions & 0 deletions docs/en/index.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,208 @@
ESP-MQTT
========

:link_to_translation:`zh_CN:[中文]`

Overview
--------

ESP-MQTT is an implementation of `MQTT <https://mqtt.org/>`__ protocol client, which is a lightweight publish/subscribe messaging protocol. Now ESP-MQTT supports `MQTT v5.0 <https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html>`__.


Features
--------

* Support MQTT over TCP, SSL with Mbed TLS, MQTT over WebSocket, and MQTT over WebSocket Secure
* Easy to setup with URI
* Multiple instances (multiple clients in one application)
* Support subscribing, publishing, authentication, last will messages, keep alive pings, and all 3 Quality of Service (QoS) levels (it should be a fully functional client)


Application Examples
--------------------

- :example:`protocols/mqtt/tcp` demonstrates how to implement MQTT communication over TCP (default port 1883).

- :example:`protocols/mqtt/ssl` demonstrates how to use SSL transport to implement MQTT communication over TLS (default port 8883).

- :example:`protocols/mqtt/ssl_ds` demonstrates how to use digital signature peripheral for authentication to implement MQTT communication over TLS (default port 8883).

- :example:`protocols/mqtt/ssl_mutual_auth` demonstrates how to use certificates for authentication to implement MQTT communication (default port 8883).

- :example:`protocols/mqtt/ssl_psk` demonstrates how to use pre-shared keys for authentication to implement MQTT communication over TLS (default port 8883).

- :example:`protocols/mqtt/ws` demonstrates how to implement MQTT communication over WebSocket (default port 80).

- :example:`protocols/mqtt/wss` demonstrates how to implement MQTT communication over WebSocket Secure (default port 443).

- :example:`protocols/mqtt5` demonstrates how to use ESP-MQTT library to connect to broker with MQTT v5.0.

- :example:`protocols/mqtt/custom_outbox` demonstrates how to customize the outbox in the ESP-MQTT library.

MQTT Message Retransmission
---------------------------

A new MQTT message can be created by calling :cpp:func:`esp_mqtt_client_publish <esp_mqtt_client_publish()>` or its non-blocking counterpart :cpp:func:`esp_mqtt_client_enqueue <esp_mqtt_client_enqueue()>`.

Messages with QoS 0 are sent only once. QoS 1 and 2 behave differently since the protocol requires additional steps to complete the process.

The ESP-MQTT library opts to always retransmit unacknowledged QoS 1 and 2 publish messages to prevent data loss in faulty connections, even though the MQTT specification requires the re-transmission only on reconnect with Clean Session flag been set to 0 (set :cpp:member:`disable_clean_session <esp_mqtt_client_config_t::session_t::disable_clean_session>` to true for this behavior).

QoS 1 and 2 messages that may need retransmission are always enqueued, but first transmission try occurs immediately if :cpp:func:`esp_mqtt_client_publish <esp_mqtt_client_publish>` is used. A transmission retry for unacknowledged messages will occur after :cpp:member:`message_retransmit_timeout <esp_mqtt_client_config_t::session_t::message_retransmit_timeout>`. After :ref:`CONFIG_MQTT_OUTBOX_EXPIRED_TIMEOUT_MS` messages will expire and be deleted. If :ref:`CONFIG_MQTT_REPORT_DELETED_MESSAGES` is set, an event will be sent to notify the user.

Configuration
-------------

The configuration is made by setting fields in :cpp:class:`esp_mqtt_client_config_t` struct. The configuration struct has the following sub structs to configure different aspects of the client operation.

* :cpp:class:`esp_mqtt_client_config_t::broker_t` - Allow to set address and security verification.
* :cpp:class:`esp_mqtt_client_config_t::credentials_t` - Client credentials for authentication.
* :cpp:class:`esp_mqtt_client_config_t::session_t` - Configuration for MQTT session aspects.
* :cpp:class:`esp_mqtt_client_config_t::network_t` - Networking related configuration.
* :cpp:class:`esp_mqtt_client_config_t::task_t` - Allow to configure FreeRTOS task.
* :cpp:class:`esp_mqtt_client_config_t::buffer_t` - Buffer size for input and output.

In the following sections, the most common aspects are detailed.

Broker
^^^^^^^^^^^

===========
Address
===========

Broker address can be set by usage of :cpp:class:`address <esp_mqtt_client_config_t::broker_t::address_t>` struct. The configuration can be made by usage of :cpp:member:`uri <esp_mqtt_client_config_t::broker_t::address_t::uri>` field or the combination of :cpp:member:`hostname <esp_mqtt_client_config_t::broker_t::address_t::hostname>`, :cpp:member:`transport <esp_mqtt_client_config_t::broker_t::address_t::transport>` and :cpp:member:`port <esp_mqtt_client_config_t::broker_t::address_t::port>`. Optionally, :cpp:member:`path <esp_mqtt_client_config_t::broker_t::address_t::path>` could be set, this field is useful in WebSocket connections.

The :cpp:member:`uri <esp_mqtt_client_config_t::broker_t::address_t::uri>` field is used in the format ``scheme://hostname:port/path``.

- Currently support ``mqtt``, ``mqtts``, ``ws``, ``wss`` schemes
- MQTT over TCP samples:

- ``mqtt://mqtt.eclipseprojects.io``: MQTT over TCP, default port 1883
- ``mqtt://mqtt.eclipseprojects.io:1884``: MQTT over TCP, port 1884
- ``mqtt://username:[email protected]:1884``: MQTT over TCP,
port 1884, with username and password

- MQTT over SSL samples:

- ``mqtts://mqtt.eclipseprojects.io``: MQTT over SSL, port 8883
- ``mqtts://mqtt.eclipseprojects.io:8884``: MQTT over SSL, port 8884

- MQTT over WebSocket samples:

- ``ws://mqtt.eclipseprojects.io:80/mqtt``

- MQTT over WebSocket Secure samples:

- ``wss://mqtt.eclipseprojects.io:443/mqtt``

- Minimal configurations:

.. code-block:: c

const esp_mqtt_client_config_t mqtt_cfg = {
.broker.address.uri = "mqtt://mqtt.eclipseprojects.io",
};
esp_mqtt_client_handle_t client = esp_mqtt_client_init(&mqtt_cfg);
esp_mqtt_client_register_event(client, ESP_EVENT_ANY_ID, mqtt_event_handler, client);
esp_mqtt_client_start(client);

.. note::

By default MQTT client uses event loop library to post related MQTT events (connected, subscribed, published, etc.).

============
Verification
============

For secure connections with TLS used, and to guarantee Broker's identity, the :cpp:class:`verification <esp_mqtt_client_config_t::broker_t::verification_t>` struct must be set.
The broker certificate may be set in PEM or DER format. To select DER, the equivalent :cpp:member:`certificate_len <esp_mqtt_client_config_t::broker_t::verification_t::certificate_len>` field must be set. Otherwise, a null-terminated string in PEM format should be provided to :cpp:member:`certificate <esp_mqtt_client_config_t::broker_t::verification_t::certificate>` field.

- Get certificate from server, example: ``mqtt.eclipseprojects.io``
.. code::

openssl s_client -showcerts -connect mqtt.eclipseprojects.io:8883 < /dev/null \
2> /dev/null | openssl x509 -outform PEM > mqtt_eclipse_org.pem

- Check the sample application: :example:`protocols/mqtt/ssl`
- Configuration:

.. code:: c

const esp_mqtt_client_config_t mqtt_cfg = {
.broker = {
.address.uri = "mqtts://mqtt.eclipseprojects.io:8883",
.verification.certificate = (const char *)mqtt_eclipse_org_pem_start,
},
};

For details about other fields, please check the `API Reference`_ and :ref:`esp_tls_server_verification`.

Client Credentials
^^^^^^^^^^^^^^^^^^

All client related credentials are under the :cpp:class:`credentials <esp_mqtt_client_config_t::credentials_t>` field.

* :cpp:member:`username <esp_mqtt_client_config_t::credentials_t::username>`: pointer to the username used for connecting to the broker, can also be set by URI
* :cpp:member:`client_id <esp_mqtt_client_config_t::credentials_t::client_id>`: pointer to the client ID, defaults to ``ESP32_%CHIPID%`` where ``%CHIPID%`` are the last 3 bytes of MAC address in hex format

==============
Authentication
==============

It is possible to set authentication parameters through the :cpp:class:`authentication <esp_mqtt_client_config_t::credentials_t::authentication_t>` field. The client supports the following authentication methods:

* :cpp:member:`password <esp_mqtt_client_config_t::credentials_t::authentication_t::password>`: use a password by setting
* :cpp:member:`certificate <esp_mqtt_client_config_t::credentials_t::authentication_t::certificate>` and :cpp:member:`key <esp_mqtt_client_config_t::credentials_t::authentication_t::key>`: mutual authentication with TLS, and both can be provided in PEM or DER format
* :cpp:member:`use_secure_element <esp_mqtt_client_config_t::credentials_t::authentication_t::use_secure_element>`: use secure element (ATECC608A) interfaced to ESP32 series
* :cpp:member:`ds_data <esp_mqtt_client_config_t::credentials_t::authentication_t::ds_data>`: use Digital Signature Peripheral available in some Espressif devices

Session
^^^^^^^^^^^

For MQTT session-related configurations, :cpp:class:`session <esp_mqtt_client_config_t::session_t>` fields should be used.

=======================
Last Will and Testament
=======================

MQTT allows for a last will and testament (LWT) message to notify other clients when a client ungracefully disconnects. This is configured by the following fields in the :cpp:class:`last_will <esp_mqtt_client_config_t::session_t::last_will_t>` struct.

* :cpp:member:`topic <esp_mqtt_client_config_t::session_t::last_will_t::topic>`: pointer to the LWT message topic
* :cpp:member:`msg <esp_mqtt_client_config_t::session_t::last_will_t::msg>`: pointer to the LWT message
* :cpp:member:`msg_len <esp_mqtt_client_config_t::session_t::last_will_t::msg_len>`: length of the LWT message, required if :cpp:member:`msg <esp_mqtt_client_config_t::session_t::last_will_t::msg>` is not null-terminated
* :cpp:member:`qos <esp_mqtt_client_config_t::session_t::last_will_t::qos>`: quality of service for the LWT message
* :cpp:member:`retain <esp_mqtt_client_config_t::session_t::last_will_t::retain>`: specifies the retain flag of the LWT message

Change Settings in Project Configuration Menu
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

The settings for MQTT can be found using :code:`idf.py menuconfig`, under ``Component config`` > ``ESP-MQTT Configuration``.

The following settings are available:

- :ref:`CONFIG_MQTT_PROTOCOL_311`: enable 3.1.1 version of MQTT protocol

- :ref:`CONFIG_MQTT_TRANSPORT_SSL` and :ref:`CONFIG_MQTT_TRANSPORT_WEBSOCKET`: enable specific MQTT transport layer, such as SSL, WEBSOCKET, and WEBSOCKET_SECURE

- :ref:`CONFIG_MQTT_CUSTOM_OUTBOX`: disable default implementation of mqtt_outbox, so a specific implementation can be supplied


Events
------
The following events may be posted by the MQTT client:

* ``MQTT_EVENT_BEFORE_CONNECT``: The client is initialized and about to start connecting to the broker.
* ``MQTT_EVENT_CONNECTED``: The client has successfully established a connection to the broker. The client is now ready to send and receive data.
* ``MQTT_EVENT_DISCONNECTED``: The client has aborted the connection due to being unable to read or write data, e.g., because the server is unavailable.
* ``MQTT_EVENT_SUBSCRIBED``: The broker has acknowledged the client's subscribe request. The event data contains the message ID of the subscribe message.
* ``MQTT_EVENT_UNSUBSCRIBED``: The broker has acknowledged the client's unsubscribe request. The event data contains the message ID of the unsubscribe message.
* ``MQTT_EVENT_PUBLISHED``: The broker has acknowledged the client's publish message. This is only posted for QoS level 1 and 2, as level 0 does not use acknowledgements. The event data contains the message ID of the publish message.
* ``MQTT_EVENT_DATA``: The client has received a publish message. The event data contains: message ID, name of the topic it was published to, received data and its length. For data that exceeds the internal buffer, multiple ``MQTT_EVENT_DATA`` events are posted and :cpp:member:`current_data_offset <esp_mqtt_event_t::current_data_offset>` and :cpp:member:`total_data_len <esp_mqtt_event_t::total_data_len>` from event data updated to keep track of the fragmented message.
* ``MQTT_EVENT_ERROR``: The client has encountered an error. The field :cpp:type:`error_handle <esp_mqtt_error_codes_t>` in the event data contains :cpp:type:`error_type <esp_mqtt_error_type_t>` that can be used to identify the error. The type of error determines which parts of the :cpp:type:`error_handle <esp_mqtt_error_codes_t>` struct is filled.

API Reference
-------------

.. include-build-file:: inc/mqtt_client.inc
.. include-build-file:: inc/mqtt5_client.inc
2 changes: 2 additions & 0 deletions docs/requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
esp-docs
sphinx
Loading
Loading