Commit graph

1467 commits

Author SHA1 Message Date
Sylvain Quendez
6ce43695d2
BLECharacteristic optimization (#10665)
* BLECharacteristic::notify() optimization

GeneralUtils::hexDump() doesn't output anything if the log level is not "VERBOSE". Additionally, it is very CPU intensive, even when it doesn't output anything. So it is much better to *not* call it at all if not needed. 

In a simple program which calls BLECharacteristic::notify() every 50 ms, the performance gain of this little optimization is 37% in release mode (-O3) and 57% in debug mode. 

Of course, the "#if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_VERBOSE" guard could also be put inside the GeneralUtils::hexDump() function itself. But it's better to put it here also, as it is clearer (indicating a verbose log thing) and it allows to remove the "m_value.getValue().c_str()" call, which is in itself quite CPU intensive.

* BLECharacteristic optimization

Calls to BLEUtils::buildHexData() don't output anything when the log level is not "VERBOSE" or "DEBUG". As this function is quite CPU intensive, it is better to not call it when not needed.
2024-12-03 11:10:51 -03:00
Rodrigo Garcia
af84da6f6a
feat(matter): Adds a new Matter Endpoint: Generic Switch (smart button) (#10662)
* feat(matter): adds new matter generic switch endpoint

* fix(matter): no need of arduino preferences here

* ci(pre-commit): Apply automatic fixes

---------

Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2024-12-03 08:08:51 +02:00
Rodrigo Garcia
9d8df8b315
feat(matter): Adds Matter Enhanced Color Light Endpoint (CW/WW/RGB) (#10657)
* feat(matter): created enhanced color light new matter endpoint and example
2024-12-02 19:26:13 -03:00
Rodrigo Garcia
c2ce738cae
feat(matter): New example => Wifi Prov within Matter as alternative for wireless network provisioning (#10658)
* feat(matter): Arduino WiFi Prov example for Matter
2024-12-02 19:13:17 -03:00
Rodrigo Garcia
414e4f3233
feat(Matter): add new MatterColorLight endpoint (#10654)
* feat(matter): adds Matter Color Light endpoint
2024-11-26 17:14:38 -03:00
Jan Procházka
0f3191e34f
fix(zigbee): Increase timeout, commision again on failure + setScanDuration (#10651)
* fix(zigbee): Increase timeout, commision again on failure
* fix(zigbee): Update library keywords
2024-11-25 17:39:59 -03:00
Rodrigo Garcia
0bcdd2c65f
Merge branch 'master' into release/v3.1.x 2024-11-25 12:18:11 -03:00
Rodrigo Garcia
4fc8abfafe
AsyncUdp license and keyword update (#10637)
* feat(asyncudp): add all current keywords to the list

* feat(asyncudp): add license information to the source code

* feat(asyncudp): add license information to the source code

* feat(asyncudp): add license information to the source code

* feat(asyncudp): add license information to the source code

* feat(asyncudp): add license information to the source code

* feat(asyncudp): revert license information to the source code

* feat(asyncudp): revert license information to the source code

* feat(asyncudp): revert license information to the source code

* feat(asyncudp): revert license information to the source code

* feat(asyncudp): revert license information to the source code

* ci(pre-commit): Apply automatic fixes

---------

Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2024-11-25 14:04:20 +02:00
Jason2866
eb1933fde9
Guard crypto parts in "Update" to save resources (#10630)
* guard crypt update

* guard update crypt

* Update Updater.cpp

* revert logic to disable

* change disable logic

* formatting

* formatting

* remove trailing space
2024-11-25 13:15:51 +02:00
Jan Procházka
1730e4e57e
fix(zigbee): Add connected(), minor fixes, example update (#10636)
* fix(zigbee): Add connected and minor fixes, example update

* fix(example): Use correct API call for connected

* fix(zigbee): Increase timeout and add semaphore to begin

* feat(zigbee): Add option to select debug libs for zigbee

* fix(example): fix warning by double percentage symbol

* fix(example): Fix serial prints for Windows os

Co-authored-by: Rodrigo Garcia <rodrigo.garcia@espressif.com>

* ci(pre-commit): Apply automatic fixes

* fix(example): Fix precommit spelling

---------

Co-authored-by: Rodrigo Garcia <rodrigo.garcia@espressif.com>
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2024-11-25 13:13:28 +02:00
Lucas Saavedra Vaz
1712fb5eee
fix(network): Avoid returning zero if connection is not dropped (#10640)
Co-authored-by: NPaolini <75562717+NPaolini@users.noreply.github.com>
2024-11-25 12:17:38 +02:00
Rodrigo Garcia
962ab3acea
Adds a Minimum Code Matter Example (#10639)
* feat(matter): add a new example for a minimum matter device
---------
2024-11-24 19:09:46 -03:00
Rodrigo Garcia
3dd4b0d112
feat(openthread): add license declaration to all soure code and examples (#10631) 2024-11-22 11:57:08 -03:00
Rodrigo Garcia
6bc3ce68fe
feat(matter): New Matter Endpoint (#10628)
* feat(matter): add new endpoint - color temperature light

---------

Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2024-11-20 17:02:34 -03:00
Me No Dev
66f7c93db4
Merge branch 'master' into release/v3.1.x 2024-11-20 10:52:06 +02:00
Jan Procházka
268b31c3f6
feat(zigbee): Add setLight APIs to manually operate lights (#10626)
* feat(zigbee): Add setLight APIs to manually operate lights

* ci(pre-commit): Apply automatic fixes

---------

Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2024-11-20 10:51:47 +02:00
Rodrigo Garcia
f0ded24b3f
OTA Library adjust (#10627)
* feat(ota): library revision

* feat(ota): license

* feat(ota): license addtion

* feat(ota): license addition into example
2024-11-20 10:47:46 +02:00
Jan Procházka
442679d225
fix(Zigbee): Add missing direction to report commands (#10623)
* fix(Zigbee): Add missing direction to report commands

* ci(pre-commit): Apply automatic fixes

---------

Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2024-11-20 10:47:27 +02:00
Jason2866
d7b5bb111e
Guard WPA Enterprise support (#10616)
* Guard WPA Enterprise support

* guard `WIFI_ENTERPRISE_SUPPORT`

* wrong part guarded

* fix guard start and end

* add guard enterprise
2024-11-20 10:42:43 +02:00
Jason2866
f5ce3f7675
Guard ethernet parts to make it possible to use without (#10609)
* Update ETH.cpp

* Update ETH.h

* Update WiFiGeneric.h

* Update NetworkEvents.h

* remove unnecessary include "sdkconfig.h"

* ci(pre-commit): Apply automatic fixes

---------

Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2024-11-19 12:19:02 +02:00
Rodrigo Garcia
2b6b5c74ce
feat(uart): adds Serial4 as a keyword - used by ESP32-P4 (#10619)
* feat(uart): adds Serial4 as a keyword - used by ESP32-P4

* fix(keywords): added 2 new lines to keep consistancy
2024-11-19 12:18:43 +02:00
Rodrigo Garcia
fe0f016b4f
Matter example patch (#10618)
* feat(matter): adjust preferences labels in matter examples

* feat(matter): adjust preferences labels in matter examples

* fix(matter_example): extra blank space in code added by mistake

* feat(matter_example): use const char * instead of #define

* feat(matter_example): use const char * instead of #define

* feat(matter_example): change Preferences names

* fix(matter_example): missing semicolon in code
2024-11-19 12:18:23 +02:00
Me No Dev
3822a68820
IDF release/v5.3 (#10599)
* fix(zigbee): Bump zigbee version and use 1.6.0 (#10563)

Co-authored-by: Me No Dev <me-no-dev@users.noreply.github.com>

* fix(zigbee): Add require public for zigbee libs

* fix(zigbee): Guard the Zigbee library

* fix(zigbee): Fix removed cluster_role attribute (#10576)

* fix(hosted): Update hosted configuration

* fix(hosted): Fix Hosted deinit and protect reinit for now

* IDF release/v5.3 a0f798cf

* IDF release/v5.3 a0f798cf

---------

Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com>
2024-11-13 12:33:02 +02:00
Me No Dev
cc407185a3
fix(build): Allow Arduino to compile in IDF without components (#10597)
* fix(build): Allow Arduino to compile in IDF without components

This adds guards for the rest of the extra components

* ci(pre-commit): Apply automatic fixes

---------

Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2024-11-12 17:23:51 +02:00
Me No Dev
f8d9ffb74a
fix(net): Allow to compile without IPv6 enabled (#10582)
* fix(net): Allow to compile without IPv6 enabled

cc: @Jason2866

* ci(pre-commit): Apply automatic fixes

---------

Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2024-11-12 11:29:52 +02:00
Me No Dev
d561685258
Merge branch 'master' into release/v3.1.x 2024-11-12 10:24:28 +02:00
Rodrigo Garcia
e99f1fdc6d
fix(wifi): fixes isconnected() to return true when it has ip addr (#10595) 2024-11-12 01:00:26 +02:00
Rodrigo Garcia
54a7a3ee9a
feat(usb_hid_keyboard): Adds Keyboard Layout and Sends reports just for Modifier Keys (#10591)
* feat(usb_kb): add keyboard layouts. new pt_br layout

* feat(usb_kb): add kb layout and fixes modifier key press

* feat(usb_kb): update cmakelists.txt to add new kb layout code

* ci(pre-commit): Apply automatic fixes

---------

Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2024-11-12 00:56:06 +02:00
Ludovic BOUÉ
f66ba37d1f
fix(Zigbee): Fix typo in Zigbee_Temp_Hum_Sensor_Sleepy.ino (#10581) 2024-11-08 11:10:54 +02:00
Lucas Saavedra Vaz
1ecbbae7d3
fix(wifi): Guard missing sketches for hosted Wi-Fi 2024-11-06 21:25:38 -03:00
Lucas Saavedra Vaz
32e2230de2
fix(wifi): Fix requirements and guards for hosted Wi-Fi (#10579)
* fix(wifi): Fix requirements and guards for hosted Wi-Fi

* ci(pre-commit): Apply automatic fixes

---------

Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
Co-authored-by: Me No Dev <me-no-dev@users.noreply.github.com>
2024-11-07 00:31:29 +02:00
me-no-dev
c0092206a6 fix(wifi): Fix WiFiMulti on ESP32-P4 2024-11-06 18:29:57 +02:00
Lucas Saavedra Vaz
61d5c49445
Merge branch 'master' into release/v3.1.x 2024-11-06 13:11:23 -03:00
Lucas Saavedra Vaz
9f3010f214
ci(json): Improve requirement checking (#10554)
* ci(json): Change requirements for sketches that use WiFi

* ci(checks): Optimize requirement checking

* fix(tests): Additional checks before running tests

---------

Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com>
2024-11-06 18:08:16 +02:00
Me No Dev
adcbc2ab59
Merge branch 'master' into release/v3.1.x 2024-11-06 11:41:17 +02:00
Jan Procházka
d1df696cd0
feat(Zigbee): Support for sleepy device + Power Source and battery level + Humidity sensor cluster (#10551)
* feat(zigbee): Add power source and battery level

* fix(zigbee): Make sure Indentify callback in not null

* fix(zigbee): Remove leftovers and use workaround for mac capabilities

* feat(zigbee) Add humidity optional cluster + fixes

* feat(zigbee): Add common Zigbee.h header file

* fix(zigbee): remove leftover code

* ci(pre-commit): Apply automatic fixes

* fix(zigbee): Fix codespell issues

---------

Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2024-11-06 11:40:31 +02:00
Rodrigo Garcia
69825a99f9
feat(Matter): New Matter Endpoint - Dimmable Light (#10543)
* feat(matter): source code folder organization

* feat(matter): new matter endpoint dimmable light

* feat(matter): dimmable friend class and adjusts log levels

* feat(matter): adds new folder and source code to cmakelists.txt

* fix(matter): identation in cmakelists.txt

* feat(matter): adds license disclaimer to all source code

* feat(matter): example code simplification

* feat(matter): make it work with rgb and analog led

* feat(matter): single user callback based on lambda function

* feat(matter): commentaries and code improvement. update() and callbacks added.

* feat(matter): adde new keywords to arduino settings

* feat(matter): example code adjustment to use improved api

* fix(matter): it shuold work even when no callback is set

* feat(matter): matter.h includes all possible endpoint header files

* feat(matter): adjusts all examples to only include matter.h

* fix(matter): double declaration of ret - var scope issue

* ci(pre-commit): Apply automatic fixes

---------

Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2024-11-06 00:59:27 +02:00
Lucas Saavedra Vaz
f1e1f5ab95
Merge branch 'master' into release/v3.1.x 2024-11-04 19:43:44 -03:00
ASDosjani
870468bb25
Update BLE5_periodic_advertising.ino (#10538) 2024-11-04 23:43:07 +02:00
Me No Dev
804ee12741
Merge branch 'master' into release/v3.1.x 2024-10-25 20:49:26 +03:00
Rodrigo Garcia
74e4a744ce
feat(uart): uart break example improvement (#10525)
prints the HEXA and CHAR in order to allow the user to see why there is 1 extra char (0x00) when BREAK is received.
2024-10-25 20:48:35 +03:00
Me No Dev
9fd1bf362f
Merge branch 'master' into release/v3.1.x 2024-10-24 15:16:58 +03:00
vortigont
07c510e3ad
fix (NetworkEvents lib) remove checks for duplicated event handlers (#10376)
* lib Network: add cpp syntax to structs

* [Network] deprecate NetworkEvents::removeEvent() for std::function callbacks

removing event callback via std::function pointer does not work as expected for lambdas (issue #10365)
here mark NetworkEvents::removeEvent(NetworkEventFuncCb cbEvent, arduino_event_id_t event = ARDUINO_EVENT_MAX)
as deprecated in favor of removing by callback's id

for NetworkEvents::onEvent remove checking for dublicate event handler, this does not work for lambdas too

remove NetworkEvents::find methods as unnecessary

move cbEventList container inside the class

declare NetworkEventCbList_t as a cpp struct with constructor, allows using std::vector.emplace() when adding new items to container

optimize NetworkEvents::remove() calls to use erase-remove idiom for std::vector

* [Network] hide event task under private member of NetworkEvents class

prevent checkForEvent loop to be callable from outside the task's thread

* refactor(NetworkEvents) code polishing and comments

- rename NetworkEvents::cbEventList as private member NetworkEvents_cbEventList
- NetworkEvents::getStatusBits() add const qualifier
- turn statics into constexpr
- add indexes to enum::arduino_event_id_t to make events indexing consistent for SOCs with/without WiFi
  also leave some index gaps to minimize renumbering on adding new events
- add doxygen help to NetworkEvents:: methods
- declare NetworkEvents::eventName() as static, that could be used without creating class scope
- potential mem leak in postEvent

* refactor(NetworkEvents) add (optional) mutex lock for container operations

provide thread safety for dual core SoCs
since std::mutex brings additional componetns of libstdc++ lib it impacts resulting image size significantly (around 50k)
Might be enabled on-demand if thread-safety is required

* ci(pre-commit): Apply automatic fixes

* fix(spelling): Fix spelling mistakes

---------

Co-authored-by: Rodrigo Garcia <rodrigo.garcia@espressif.com>
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>
2024-10-24 15:15:13 +03:00
zinkett
330beb40a5
Update lib - User can choose if calc MD5 from encrypted or decrypted file (#10510)
* User can choose if calc MD5 from decrypted file

At the present moment, if user want use OTA, the function calculate MD5 of the decrypted file, but if file is encrypted from source, could be more useful to know the MD5 of the encrypted file.

* md5

* Update Updater.cpp

* Update libraries/Update/src/Update.h

Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>

* Update libraries/Update/src/Update.h

Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>

* Update libraries/Update/src/Updater.cpp

Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>

* Update libraries/Update/src/Updater.cpp

Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>

* ci(pre-commit): Apply automatic fixes

---------

Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2024-10-24 14:31:54 +03:00
Me No Dev
6dfd958983
fix(eth): Set default clock in pin value to zero (#10513)
When Arduino is used as component, `CONFIG_ETH_RMII_CLK_IN_GPIO` might not be defined, so we set it to const `0` to clear the issue.
2024-10-24 00:46:01 +03:00
Thomas Weller
cb83cda06a
Fix comments for AD types in advertising (#10512) 2024-10-23 20:39:12 +03:00
Me No Dev
35549272b3
Merge branch 'master' into release/v3.1.x 2024-10-23 15:31:08 +03:00
Me No Dev
6e88445ba9
fix(i2s): Use separate variables when reading and writing (#10509) 2024-10-23 15:30:30 +03:00
Ludovic BOUÉ
1756bd567c
fix(zigbee): Enable internal pull-up resistor (#10491)
Enable the internal pull-up resistor for BUTTON_PIN
2024-10-23 11:46:04 +03:00
me-no-dev
20a28b58bc fix(net): Do not use netif_index_to_name
Causes error on recent IDF builds
2024-10-22 12:13:04 +03:00
Rodrigo Garcia
8ac076c44c
fix(matter): empty line removing - style 2024-10-21 19:26:34 -03:00
Rodrigo Garcia
7a33a9eeff
fix(matter): change the place of wifi credentials in the code 2024-10-21 19:25:20 -03:00
Rodrigo Garcia
0045cfa658
fix(matter): change place of wifi credentials in code 2024-10-21 19:23:28 -03:00
Rodrigo Garcia
f1f0e4d4f3
Update MatterOnOffLight.ino 2024-10-21 14:43:54 -03:00
Rodrigo Garcia
c40444ab33
feat(matter): initial commit with arduino matter lib (#10467)
* feat(matter): initial commit with arduino matter lib

* feat(matter): add matter library to cmakelists.txt

* fix(matter): add correct guard for ci

* fix(matter): using correct ci requirements in ci.json

* fix(matter): using correct ci requirements in header files

* fix(matter): using correct ci requirements header and examples

* fix(typo): typo and commentaries

* fix(typo): typo and commentaries

* fix(typo): typo and commentaries

* fix(commentary): longer explanation

* feat(matter): api simplification with begin

* feat(matter): testing flashmode=qio in CI

* feat(matter): testing flashmode=qio in CI

* fix(matter): changes CI FQBN

* fix(matte): include all fqbn in ci.json using qio

* fix(matter): revert ci and guard changes

* fix(matter): typo and commentaties

* feat(matter): adds a light toggle switch button

* feat(matter): improved the button control

* feat(matter): using switch instead of if() for attibute change

* fix(matter): switch/case scope

* fix(matter): problems found after pressing reset

* feat(matter): improve example using preferences

* fix(pre-commit): Fix and apply pre-commit hooks

---------

Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>
2024-10-21 16:42:43 +03:00
Jan Procházka
83d35683c3
feat(sdmmc): Add SDMMC support for P4 + remove BUILTIN LED (#10460)
* feat(sdmmc): Add support for P4

* fix(board): Remove builtin led

* Update libraries/SD_MMC/examples/SDMMC_Test/SDMMC_Test.ino

Add missing note about power pin for P4

Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>

* ci(pre-commit): Apply automatic fixes

* feat(sdmmc): Option to set power channel

* feat(sdmmc): Update pins_arduino.h

* feat(sdmmc): remove sdmmc power from periman

* fix(sdmmc): use corrent variable

* fix(sdmmc): Remove periman

* feat(sdmmc): Toggle power pin if defined

* feat(sdmmc): setPowerChannel available only when supported

* feat(sdmmc): Toggle sd power pin for 200ms

* fix(example): Remove p4 pins as they are listed already

* feat(sdmmc): Check if power channel is specified

* ci(pre-commit): Apply automatic fixes

* fix(ci): codespell fix

---------

Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2024-10-21 15:03:44 +03:00
Jan Procházka
7cfe470d8d
feat(touch): Support NG touch driver for P4 (#10448)
* feat(touch): Support NG touch driver for P4

* fix(ci): Touch test + IDF compilation fixes

* fix(ci): remove debug prints from touch test

* fix(ci): Fix touch test for esp32

* ci(pre-commit): Apply automatic fixes

---------

Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2024-10-21 13:29:01 +03:00
Me No Dev
59ca4e2d3d
Merge branch 'master' into release/v3.1.x 2024-10-18 20:32:08 +03:00
Lucas Saavedra Vaz
8570b3d270
Fix formatting in ETH and USB 2024-10-17 10:21:08 -03:00
Me No Dev
ee1bc6ba0a
Add RMII Ethernet support for ESP32-P4 (#10479)
* fix(eth): Add ETH support for ESP32-P4

Also adds configuration to pins_arduino.h

* fix(eth): Enable TLK110 Example on P4

* fix(eth): Fix Ethernet examples

* ci(pre-commit): Apply automatic fixes

---------

Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2024-10-17 14:30:48 +03:00
Jan Procházka
955b277497
fix(example): print correct fade direction (#10450)
* fix(example): print correct fade direction

* fix(example): Change to fade in out

* fix(example): Codespell fix
2024-10-17 10:43:47 +03:00
me-no-dev
c676ce7dc0 fix(p4): Move ESP-HOSTED init to WiFiGeneric
@P-R-O-C-H-Y will add the configured pins to periman, so that they can not be assigned to anything else
2024-10-15 21:06:31 +03:00
Me No Dev
3edf518825
Add support for WiFi to ESP32-P4 (#10463)
* feat(p4): Add support for WiFi to ESP32-P4

Implements support for external MCU connected through SDIO

* fix(p4): Init SDIO host properly on Network boot

esp-hosted has one function marked as "constructor" that did not run in the boot phase of the chip. This calls the function when network is started
2024-10-15 17:25:45 +03:00
Jason2866
3733c87c83
replace outdated wrong SOC_I2C_NUM and use SOC_HP_I2C_NUM (#10452)
* SOC_HP_I2C_NUM

* SOC_HP_I2C_NUM
2024-10-11 16:33:49 +03:00
Me No Dev
774f2756f1
Merge branch 'master' into release/v3.1.x 2024-10-10 18:38:27 +03:00
Me No Dev
af4099202d
IDF release/v5.3 (#10444)
* IDF release/v5.3 707d097b

* fix(camera): Remove support for face detection and recognition
2024-10-10 17:22:39 +03:00
Hamza Hajeir
f083e2df8d
fix(asyncudp): Fixes and implements tcpip thread locking (#10415)
* fix(asyncudp): Fixes and implements tcpip thread locking

* fix(asyncudp): Adds missing unlock

* ci(pre-commit): Apply automatic fixes

---------

Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2024-10-07 19:15:42 +03:00
Lucas Saavedra Vaz
4d1c9bcfa3
Fix partitions for examples 2024-10-07 09:54:13 -03:00
Lucas Saavedra Vaz
e12e33c581
Merge branch 'master' into release/v3.1.x 2024-10-04 11:14:57 -03:00
Lucas Saavedra Vaz
8ce5f775fe
ci(compilation): Use default partition and add append to FQBN option (#10392)
* ci(partitions): Use default partition for compilation in CI

* fix(ci): Fix paths for sdkconfig

* Fix build of camera web server

* fix(ci): Fix test requirements check

* ci(append): Add option to append to all FQBNs

* fix(json): Fix JSON files to compile examples

* fix(example): Use requires instead of target in ci.json

fix(zigbee): Improve JSON files

Co-authored-by: Jan Prochazka <90197375+P-R-O-C-H-Y@users.noreply.github.com>

* fix(regex): Trim argument before grep

* docs(ci): Add documentation about FQBNs in CI

* fix(json): Remove redundant FQBNs

* fix(json): Skip requirements if libs are not installed

* fix(partitions): Use rainmaker specific partitions

---------

Co-authored-by: me-no-dev <hristo@espressif.com>
Co-authored-by: Jan Prochazka <90197375+P-R-O-C-H-Y@users.noreply.github.com>
2024-10-04 16:57:08 +03:00
sivar2311
5d873c0787
Add conditional compilation for second I2C interface based on SOC_I2C_NUM (#10408)
The ESP32, ESP32-S and ESP32-H series have two I2C interfaces, while the ESP32-C series has only one.
2024-10-04 13:49:55 +03:00
me-no-dev
341dc18079 fix(usb): Add support for HighSpeed USB
This commit adds support for HighSpeed USB as present on ESP32-P4
2024-10-03 13:47:24 +03:00
Rodrigo Garcia
733373a049
Update FreeRTOS Symbols in OThreadCLI (#10412)
* Update OThreadCLI.cpp

* feat(openthread): change FreeRTOS names and types

* feat(openthread): change FreeRTOS names and types

QueueHandle_t instead of xQueueHandle
2024-10-03 09:37:44 +03:00
Jan Procházka
c5047286a1 fix(example): Use requires instead of target in ci.json 2024-10-02 18:40:04 +02:00
Jan Procházka
b067cd6d7f fix(example): Skip zigbee build for P4 2024-10-02 17:25:15 +02:00
me-no-dev
264c858830 Merge branch 'master' into release/v3.1.x 2024-10-02 17:07:42 +03:00
Jan Procházka
473b8515ac
feat(zigbee): Add Zigbee library (#10265)
* Initial commit - light bulb + switch working

* Add Thermostat + fix enum

* Dev update: roles, cb removal, handlers

Fixed ep_thermostat to compile successfully
Removed cb from all EP, as it have been removed, virtual methods will be used instead.
Moved zigbee handlers out of Zigbee_core to Zigbee_handlers for better readability.
Fixed zigbeeInit to be bool and return status of initialization for begin function.
Updated examples with edited roles and custom method for on_off light

* Dev update: implement on/off light and switch methods

Implemented basic function calls of switch commands to on/off light:
  lightToggle, lightOn, lightOff, ...
Implemented virtual methods for on/off light that have to be override in user code:
  setOnOff, sceneControl, setOnOffTime, setOffWaitTime
APIs can be changed, still early development.

* Dev update: Factory reset, names, multiple EPs

Implemented Factory reset of Zigbee device, in order to connect to new network without reflashing/erasing flash
Implemented optional setting for Manufacturer and Model names
Added option to allow endpoint to have multiple endpoint connected -> switch - 2 lights (tested)
Minor sketches update

* Dev update: Device ID to string

Implemented easy transfer from device it to Device type (0x0000 = ESP_ZB_HA_ON_OFF_SWITCH_DEVICE_ID  -> "General On/Off switch".

* Implement cmd default response handler

* Remove unused _identify_cluster

* Dev Update: Color DImmable light + switch implemented

Implemeted color dimmable light and color dimmer switch HA devices + examples.
Removed unnecessary stored attribute cluster
Renamed on/off light and switch examples

* Implement Network Scanning

Implemented Zigbee network scanning (async) to mostly match WiFi scan APIs.
Added Zigbee_Scan_Networks example

* Dev Update: Thermostat and Temperature sensor EP

Implemeted thermostat and temperature sensor HA devices + examples.
Implemented configure report handler.
Updated READMEs and description of examples.
Minor code updates

* fix(): Replace deprecated function

* Remove ported IDF examples

* Update Zigbee examples with new APIs

* Dev Update: Version setting, Thermostat fix, ...

Simplified bounded device print as the structure is common for any EP type
Allowed setting custom app version for EP, default is 0
Small fixes and code updates

* Remove EP template + add lib to CMakeLists

* Rename classes to have proper naming

* Add check for SOC_IEEE802154_SUPPORTED

* Ignore false positive unused variable/function

* Fix compilation errors in examples

* Fill keyworkds.txt, remove unnecessary defines

* Rename methods, variables + make private/protected

* Remove unnecesary defaults defines

* Remove outdated comments

* Update Scan networks Readme

* fix(example): Use proper naming of func and variables

* Change virtual methods to callbacks (TODO)

* Refactor classes methods + implement Identify command

* Apply suggestions from code review by @lucasssvaz

Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>

* Update READMEs + add openNetwork fucntion

* Use [[maybe_unused]] instead of #pragma

* Use gpio calls for OnOff Light example

* ci(pre-commit): Apply automatic fixes

* fix(): Codespell issues

---------

Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>
2024-10-02 17:00:39 +03:00
me-no-dev
8af91fb4a7 Fix build of camera web server 2024-10-02 15:38:57 +03:00
Me No Dev
e3499bc4b7
Merge branch 'master' into release/v3.1.x 2024-10-02 15:36:56 +03:00
Me No Dev
2ec5584d06
fix(hid): Fix OUTPUT report not received (#10398)
Fixes an issue where the keyboard LEDs will not trigger the proper event
2024-10-02 15:34:27 +03:00
Me No Dev
cd971319cb
Fix WPS example config initialization (#10399)
* fix(wps): fixes wps struct initialization

C99 complaint

* fix(wps): adds memset to 0

---------

Co-authored-by: Rodrigo Garcia <rodrigo.garcia@espressif.com>
2024-10-02 15:26:32 +03:00
Lucas Saavedra Vaz
a76b22881a
Fix ethernet examples JSON for P4 2024-09-30 19:21:46 -03:00
Lucas Saavedra Vaz
8422b745c2
Fix touch examples JSON for P4 2024-09-30 09:27:10 -03:00
Lucas Saavedra Vaz
69351312e5
Merge branch 'master' into release/v3.1.x 2024-09-30 09:13:12 -03:00
Lucas Saavedra Vaz
e403f0b481
ci(json): Add configuration requirements to ci.json files (#10385)
* ci(json): Add support for checking sdkconfig before running tests

* docs(ci): Add explanation about requires field in JSON

* fix(json): Ignore comments when searching requirements

* feat(json): Add extended regex support to requires field

* change(json): Move to using requirements in JSON

* fix(json): Fix requirements for touch tests

* refactor(json): Fix formatting of JSON files

* fix(spi): Fix SPI example and JSON
2024-09-30 13:43:50 +03:00
Me No Dev
7a0138462d
Merge branch 'master' into release/v3.1.x 2024-09-26 01:37:46 +03:00
vortigont
b05f18dad5
fix: DNSServer Lib - improper startup code in WiFi mode (#10366)
* DNSServer: fix improper startup code in WiFi mode

When running on WiFi-AP mode server's start() method returned true while in fact UDP listening socket was never created
Regression introduced in #8760
Closes #10330

* ci(pre-commit): Apply automatic fixes

---------

Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2024-09-26 01:37:00 +03:00
Lucas Saavedra Vaz
4bb287eaf6
fix(esp32p4): Fix compilation errors (#10371)
* fix(esp32p4): Add missing touchpad definitions

* fix(esp32p4): Add missing target in SPI example

* fix(esp32p4): Start touch driver fix

* fix(esp32p4): Skip touch examples while it is not implemented

* fix(esp32p4): Add missing analog pin definitions

* refactor(formatting): Fix formatting that was broken in P4 PR

* fix(openthread): Add missing targets to skip

* fix(esp32p4): Skip ethernet sketches

* fix(esp32p4): Disable periman test while touch is not implemented

* fix(esp32p4): Disable touch test while touch is not implemented

* fix(esp32p4): Fix UART test

* fix(esp32p4): Skip Wi-Fi test

* fix(esp32): Skip unsupported example

* fix(esp32p4): Fix skip files

* ci(pre-commit): Apply automatic fixes

---------

Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2024-09-25 23:38:21 +03:00
Lucas Saavedra Vaz
a4c33e3897
feat(esp32p4): Add initial ESP32-P4 support (#10358)
* feat(esp32p4): Initial changes required for ESP32-P4

* esp32-p4: Initial changes to build with Arduino

Signed-off-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>

* fix(esp32p4): Fix lib builder errors

* change(esp32p4): Unhide board

* ci(esp32p4): Add ESP32-P4 to workflow

* change(esptool): Update esptool to 4.8.0

* fix(build): Fix redefinition errors

* fix(build): Remove old commands

* change(esptool): Remove unsupported 32-bit tools

* fix(get.py): Force exe generation

* Revert "fix(get.py): Force exe generation"

This reverts commit 979b16b3b19d02917ddccf0139c6913cca618714.

* fix(get.py): Fix system check

* change(tools): Push generated binaries to PR

* ci(esp32p4): Add missing ESP32-P4 entries

* fix(esp32p4): Add chip info

* fix(esp32p4): Fix build commands

* docs(esp32p4): Add missing references to P4

* fix(esp32p4): Fix clock sources definitions

* fix(esp32p4): Set CPU frequency to 360 MHz so it is stable in all chips

* refactor(esp32p4): Change preprocessor conditionals for maintainability

Co-authored-by: me-no-dev <hristo@espressif.com>

* fix(esp32p4): Add missing menu options

* fix(esp32p4): Mark as not in development json in readme

* fix(esp32p4): Add P4 to ci.json files

* ci(pre-commit): Apply automatic fixes

* fix(get.py): Remove unused include

* ci(pre-commit): Apply automatic fixes

* change(tools): Push generated binaries to PR

* ci(pre-commit): Apply automatic fixes

* fix(ci.json): Fix formatting

---------

Signed-off-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>
Co-authored-by: Jason2866 <24528715+Jason2866@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: me-no-dev <hristo@espressif.com>
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2024-09-24 21:18:28 +03:00
me-no-dev
e68b1cca09 Merge branch 'master' into release/v3.1.x 2024-09-18 15:06:31 +03:00
me-no-dev
7018cd114d Update core version to 3.0.5 2024-09-18 14:54:00 +03:00
TD-er
100b3c67cf
Reduce copy of Strings in WebServer RequestHandler (#10345)
* Reduce copy of Strings in WebServer RequestHandler

* ci(pre-commit): Apply automatic fixes

---------

Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2024-09-18 11:20:19 +03:00
ClockeNessMnstr
c55f5aa506
change(esp_now_serial): No teardown on retry limit (#10293)
* change(ESP_NOW_Serial): No teardown on retry limit

After max retries is met once the ESP_NOW_Serial_Class performs "end()". 
This removes the peer from ESP_NOW. 
Further messages to and from ESP_NOW_Serial are not received or sent. 
Peer should stay in ESP_NOW to re-establish connection even with data loss. 
This change will "retry and drop" the data piece by piece instead of aborting the connection.

* feat(espnow): Add remove on fail parameter

* feat(espnow): By default keep the peer when sending fails

---------

Co-authored-by: Jan Prochazka <90197375+P-R-O-C-H-Y@users.noreply.github.com>
2024-09-17 14:58:01 +03:00
Lee Leahy
2f89026540
Fix(NetworkEvents): Don't skip event callbacks in NetworkEvents::remo… (#10337)
* Fix(NetworkEvents): Don't skip event callbacks in NetworkEvents::removeEvent

Fixes Issue 10318
Includes pull request 10321 that fixes 10316

This change:
* Adds code to find the event callbacks
* Issues error when duplicate callbacks insertion attempts are made
* Issues error when callbacks are not found during removal

* Fix(NetworkEvents): Don't skip event callbacks in NetworkEvents::removeEvent

Fixes Issue 10318
Includes pull request 10321 that fixes 10316

This change:
* Adds code to find the event callbacks
* Issues warning when duplicate callbacks insertion attempts are made
* Issues warning when callbacks are not found during removal

---------

Co-authored-by: Me No Dev <me-no-dev@users.noreply.github.com>
2024-09-16 12:28:26 +03:00
TD-er
3978870f9f
[WiFiScan] Allow allocation in _scanDone() to fail and prevent memory leak (#10335)
* [WiFiScan] Allow allocation to fail and prevent memory leak

When there are many AP's seen during a scan, the allocation of `_scanResult` may fail.
Thus add `(std::nothrow)` to the `new` call.

Also it is possible the array was still present before allocating a new one.

* [WiFiScan] Use nullptr instead of 0

As suggested by @me-no-dev
2024-09-16 12:26:43 +03:00
TD-er
9e60bbe4bc
[WebServer] Mark functions as const + reduce copy of strings (#10339)
* [WebServer] Mark functions as const + reduce copy of strings

* ci(pre-commit): Apply automatic fixes

---------

Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2024-09-13 11:39:54 +03:00
me-no-dev
8c25325e18 fix(webserver): OTHER_AUTH will leak memory 2024-09-13 11:10:12 +03:00
TD-er
8a87df3b95
NetworkClientRxBuffer::clear() may not always clear (#10288) (#10331)
Fixes: #10288
2024-09-13 10:50:06 +03:00
Me No Dev
eda6d21d87
fix(events): Fix crash in getStdFunctionAddress (#10321) 2024-09-13 10:49:28 +03:00
Me No Dev
855da422ba
Merge branch 'master' into release/v3.1.x 2024-09-11 15:18:38 +03:00
Lucas Saavedra Vaz
4e9eb35752
feat(pre-commit): Add JSON formatter to pre-commit hooks (#10324) 2024-09-11 15:18:03 +03:00
Jan Procházka
1e04762e3a
fix(example): Fix compilation warnings in examples (#10311)
* fix(example): Fix compilation warnings in examples

* ci(pre-commit): Apply automatic fixes

---------

Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2024-09-10 16:25:18 +03:00
Me No Dev
d846311344
fix(scan): Make sure that we do not leak memory if reading the APs fails (#10312)
As it was written, it was possible to leak the scan result array if esp_wifi_scan_get_ap_records() failed. Change will ensure that the array is deleted in that case.
2024-09-10 16:18:48 +03:00
Rodrigo Garcia
cbe0f2ff0d
OpenThread Example Improvement (#10299)
* feat(openthread): add extended example

Creates a new example that mixes different APIs

* feat(openthread): create cj.json file

Adds neessary CI file

* feat(openthread): improve the example

Update ExtendedRoterNode.ino with more use of API

* feat(openthread): improve the example

Adds OpenThread Native calls to the example

* feat(openthread): improve the example 

Update LeaderNode.ino example to add OpenThread Native calls.

* fix(openthread): bad formatting using space

Update keywords.txt to use TAB instead of SPACE in order to recognize correctly the keywords.

* fix(openthread): bad example file name - typo

Changed ExtendedRoterNode to ExtendedRouterNode - Typo error.

* feat(openthread): add extended example ci.json file

Added CI file to the example.

* fix(openthread): deleted bad file names in the example

Delete libraries/OpenThread/examples/SimpleThreadNetwork/ExtendedRoterNode directory

* fix(openthread): typo in commentaries

* fix(openthread): typo in commentaries

* ci(pre-commit): Apply automatic fixes

---------

Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2024-09-09 16:19:14 +03:00
Me No Dev
e964a2deab
fix(scan): Make sure scan struct is cleared before set (#10282) 2024-09-09 12:39:43 +03:00
Me No Dev
254c5e43f1
fix(http): Replace flush() with clear() in HTTPClient (#10269)
Following deprecation of flush()
2024-08-31 18:28:22 +03:00
Me No Dev
b2c805a139
fix(ppp): Fix PPP not working after reboot if no RST (#10264)
Modem will try to switch to CMUX and then back to COMMAND in order to allow communication with the modem.
2024-08-30 18:03:56 +03:00
Andreas Merkle
019855ff90
fix(littlefs): Use VFSImpl::exists() to avoid false error log (#10217)
* fix(littlefs): Use VFSImpl::exists() to avoid false error log

* fix(ffat): Use VFSImpl::exists() to avoid false error log

---------

Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>
2024-08-30 18:01:23 +03:00
pre-commit-ci-lite[bot]
57518b821c
ci(pre-commit): Apply automatic fixes 2024-08-28 14:11:51 +00:00
me-no-dev
0b842442c9 Update core version to 3.1.0 2024-08-28 16:11:35 +03:00
Me No Dev
75b29fde57
Merge branch 'master' into release/v3.1.x 2024-08-28 15:49:38 +03:00
Lucas Saavedra Vaz
683fea103c
docs(vale): Enable vale and fix errors (#10231)
* docs(vale): Enable vale and fix errors

* Apply suggestions
2024-08-28 15:48:18 +03:00
Lucas Saavedra Vaz
e04f050639
fix(spelling): Fix misspellings detected by codespell and enable it (#10232)
* fix(spelling): Fix misspellings detected by codespell and enable it

* change(tools): Push generated binaries to PR

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-08-28 15:43:02 +03:00
Me No Dev
fa6711551d
Merge branch 'master' into release/v3.1.x 2024-08-28 11:57:41 +03:00
Me No Dev
7633653019
fix(client): Make flush() call clear() and deprecate it (#10242)
This is a compromise for issues caused by https://github.com/espressif/arduino-esp32/pull/9453
2024-08-28 09:54:25 +03:00
Juraj Andrássy
df4518d6a1
fix: WebServer - change occurrence of client.flush() to clear() (#10234) 2024-08-28 09:53:59 +03:00
Juraj Andrássy
6f84a43611
fix: ArduinoOTA - change occurrence of client.flush() to clear() (#10233) 2024-08-28 09:53:43 +03:00
Rodrigo Garcia
99e68a0518
Change "neopixel" references to use RGB LED naming (#10225)
* fix(rgbled): fixes core rgbledWrite()

* fix(rgbled): fixes examples - rgbledWrite()

* fix(rgbled): fixes variants commetaries - rgbledWrite()

* fix(rgbled): examples and doc - use RGB_LED naming

* fix(rgbled): variants - use RGB_LED naming

* fix(rgbled): other places for RGB LED naming

* fix(typo): cores - rgbLed instead of rgbled

* fix(typo): examples - rgbLed instead of rgbled

* fix(typo): variants commentaties - rgbLed instead of rgbled

* fix(rgbled): bad file name

* fix(typo): typo and commentaries

Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>

* fix(rgbled): deprecating neopixelWrite()

* fix(rgbled): use RGB LED naming

* fix(rgbled): document formatting

* fix(rgbled): neopixelWrite() is now deprecated

* fix(rgbled): removed attribute in wrong place

* just a git push test

* restart git bash test

* ci(pre-commit): Apply automatic fixes

* removed wrong test file

* fix(rgbled): new Arduino style depreacted attribute

---------

Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2024-08-28 09:53:24 +03:00
me-no-dev
54f1c22672 fix(build): Fix warning in FFat 2024-08-20 01:16:59 +03:00
me-no-dev
f77ce040db fix(build): Fix many warnings 2024-08-20 00:51:23 +03:00
me-no-dev
e1673e4c0c fix(build): IDF release/v5.3 466a392a and initial changes 2024-08-19 23:28:11 +03:00
Sylvain Quendez
def319add8
Update README.md (#10148)
Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>
2024-08-16 16:44:39 +03:00
Sylvain Quendez
41f3e5e236
Update url in library.properties (#10147)
Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>
2024-08-16 16:44:27 +03:00
Me No Dev
16b2d74441
IDF release/v5.1 (#10162)
* fix(prov): Use network_provisioning

* IDF release/v5.1 5c57dfe949

* fix(prov): Add sketch and CMake fixes

* fix(prov): Fix build for ESP32-C2

* ci(pre-commit): Apply automatic fixes

* fix(prov): Improve WiFiProv library and QRcode print

* IDF release/v5.1 c608177cf9

---------

Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2024-08-15 09:30:45 +03:00
Jan Procházka
4aab8179a2
fix(wifiprov): Fix starting Wifi when already provisioned (#10151) 2024-08-13 15:29:49 +03:00
Jan Procházka
49d9b060ca
feat(RMaker): Register common events for better debugging (#10133)
* feat(rmaker): Register common events for better debugging

* ci(pre-commit): Apply automatic fixes

---------

Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2024-08-13 14:30:15 +03:00
Patrik Andersson
7f1ab63053
Fix use after free in SD library (#10122)
* fix(sd): Fix use after free

* ci(pre-commit): Apply automatic fixes

---------

Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2024-08-13 14:25:48 +03:00
Matthias Hertel
5b05a34dff
Improving WebServer Example (#10111)
* Update WebServer.ino

* Enable FAT and LittleFS filesystems as configured.
* use new versions of RequestHandler::canHandle and RequestHandler::canUpload

* Update Documentation

* Documentation changed accoring review comments.

* README.md changed accoring to review comments.
2024-08-13 14:23:54 +03:00
Me No Dev
0d4ffcf74b
fix(core): Update versions to 3.0.4 (#10106) 2024-08-02 12:18:35 +03:00
Me No Dev
dd86244b4f
feat(net): Add NAPT examples (#10100)
* feat(net): Add NAPT examples for STA and ETH

* feat(net): Add NAPT example for PPP

* feat(net): Add CI configs to skip H2

* ci(pre-commit): Apply automatic fixes

---------

Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2024-08-02 11:28:36 +03:00
Jan Procházka
5aaa49e76d
fix(ESP-NOW): Remove all peers on ESP_NOW.end() (#10102)
* fix(esp-now): Remove all peers on ESP_NOW.end()

* ci(pre-commit): Apply automatic fixes

---------

Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2024-08-02 11:21:32 +03:00
Me No Dev
23b84e5bdd
fix(ssl): Add size arg to NetworkClientSecure::setCACertBundle (#10101) 2024-08-01 15:06:24 +03:00
Jan Procházka
2aa4828dcb
fix(example): Update RainMaker examples to work with ESP32C6 (#10096)
Co-authored-by: Me No Dev <me-no-dev@users.noreply.github.com>
2024-08-01 12:26:09 +03:00
Chris Dailey
ad5aaf86b6
fix(lwip): Add early out in NetworkUDP::parsePacket() when socket has no data (#10075)
* fix(lwip): Add early out in `NetworkUDP::parsePacket()` when socket has no data

Previously, `NetworkUDP::parsePacket()` would take the time to allocate a 1460 byte buffer
to call `recvfrom()` with, immediately freeing it if there was no data read.

This change has it check if there is available data via `ioctl()` with `FIONREAD` first,
saving the allocation and thus significantly increasing performance in no data situations.

* fix(lwip): Initialize `len` to ensure it's set before check
2024-07-31 16:00:13 +03:00
Jan Procházka
9065342f53
feat(wifi): Allow setting minimum time for wifi scan (#10083)
* feat(wifi): Allow setting minimum time for wifi scan

* ci(pre-commit): Apply automatic fixes

---------

Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2024-07-31 14:16:10 +03:00
lbernstone
b91e453707
fix(wfcs): Replaced expired certificate for howsmyssl.com (#10063) 2024-07-29 12:49:03 +03:00
Jan Procházka
0670e20421
fix(rainmaker): Add new partition tables that fits the binary size (#10046)
* fix(rainmaker): Add new partition tables

* fix(rainmaker): Update readme file for RM examples

* fix(rainmaker): Hide RM partitions for esp32h2
2024-07-29 12:48:40 +03:00
WebDust21
0fa4aa632c
PPP: add "battery status" read stub functions (#10043)
* add "getBattery" functions + #define simplicity

replaced all function protections with a #define to simplify code functionality.  Also added "getBattery" functions to leverage "esp_modem_get_battery_status" call in ESP-MODEM.

* add "getBattery" function defs to PPP.h

* fix(ppp): uncomment error logging, change new function naming

* fix(ppp): rename new functions for naming conformity

* ci(pre-commit): Apply automatic fixes

---------

Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2024-07-22 11:59:40 +03:00
Me No Dev
614c72b4d3
fix(libs): Update all libraries to match the core version (#10041)
From now on core libraries will have the same version as the core
2024-07-16 23:04:43 +03:00
Me No Dev
77ca7ea7e5
IDF release/v5.1 (#10038)
* IDF release/v5.1 dc859c1e67

* fix(lwip): Filter out V6 packets if V6 is not enabled

the ESP might accept and act on some IPv6 packets, even though IPv6 is not enabled for the interface in Arduino. This change makes the ESP ignore all IPv6 packets if IPv6 address is not available.

* fix(lwip): DNS header is not required

* fix(ot): Add LWIP_HOOK_IP6_INPUT_CUSTOM support
2024-07-16 19:35:06 +03:00
Jan Procházka
3c1e5a9189
feat(ledc): Allow attaching multiple pins to 1 channel (#10032)
* feat(ledc): Allow attaching multiple pins to 1 channel

* feat(ledc): Add ledcWriteChannel function

* feat(ledc): Print info about already set channel

* docs(ledc): Add ledcWriteChannel function and attach update

* feat(ledc): Add example and fixes

* feat(ledc): Remove commented code

* feat(ledc): Fix missing new line at end of file

* ci(pre-commit): Apply automatic fixes

---------

Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2024-07-16 15:52:45 +03:00
Martin Hübner
e850afb15e
SDMMC: Fix example code (#10035)
The setPins() function obviously comes from the SD_MMC lib. Not prepending
that lib, this code won't compile.

Signed-off-by: Martin Hübner <martin.hubner@web.de>
Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com>
2024-07-16 11:52:11 +03:00
Ludovic BOUÉ
b57fe57a7f
Update Zigbee_Temperature_Sensor.ino (#10030) 2024-07-15 11:59:26 +03:00
Me No Dev
874e2a1a1b
fix(example): Add better WPS logging (#9999)
* fix(example): Add better WPS logging

Provides a better log of what went wrong when using WPS

* ci(pre-commit): Apply automatic fixes

---------

Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2024-07-10 14:01:04 +03:00
drmpf
0ab2c58b6c
FS library position() to return (size_t) -1 on error (#10002)
* position_fix

Fix for error return from position()
Issue #9992

* ci(pre-commit): Apply automatic fixes

---------

Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2024-07-10 13:50:09 +03:00
Me No Dev
0adf7873d1
feat(eth): Allow setting the RX task stack size (#10003)
* feat(eth): Allow setting the RX task stack size

Default stack size of 2K might not be enough in some cases. Increase the default to safer 4K and allow setting it to custom value.

* ci(pre-commit): Apply automatic fixes

---------

Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2024-07-10 13:49:33 +03:00
Me No Dev
60b6faacf6
fix(httpc): Fix data read was less than expected (#9998) 2024-07-10 13:49:09 +03:00
TD-er
6debc5c902
Fix timeout in WebServer::_uploadReadByte and handleClient() (#9990) (#9991)
* Fix timeout in WebServer::_uploadReadByte and set timeout handleClient()

Fixes: #9990

* Set HTTP_MAX_CLOSE_WAIT equal to other HTTP_xxx_WAIT values

* ci(pre-commit): Apply automatic fixes

---------

Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2024-07-10 13:48:46 +03:00
Me No Dev
fef3c7369d
feat(net): Enable IPv6 immediately if already connected (#9948)
If the interface is already connected, try to enable IPv6 immediately. Otherwise the interface would need to go through disconnect/connect cycle for IPv6 to be enabled.
2024-07-01 11:20:05 +03:00
Rodrigo Garcia
337058ac94
Fixes WiFiProv.ino (#9946)
* Update WiFiProv.ino

* fix(wifiprov): Uses BLE for provisioning

* ci(pre-commit): Apply automatic fixes

---------

Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2024-06-28 16:34:06 +03:00
Rodrigo Garcia
36863449e4
RMT Legacy Driver option (#9941)
* feat(rmt): allow legacy driver

* feat(rmt): legacy driver example

* fix(rmt): legacy driver example

* fix(rmt): ESP32_ARDUINO_NEW_RMT_DRV_OFF

* fix(rmt): ESP32_ARDUINO_NEW_RMT_DRV_OFF

* fix(rmt): ESP32_ARDUINO_NEW_RMT_DRV_OFF

* fix(rmt): GPIO HAL only

* fix(rmt): error case

* fix(rmt): not necessary change

* ci(pre-commit): Apply automatic fixes

* ci(pre-commit): Ignore build_opt in clangformat

---------

Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>
2024-06-28 12:06:58 +03:00
Rodrigo Garcia
d891ddfec7
New OpenThread CLI Arduino Library for ESP32-C6 and ESP32-H2 (#9908)
* feat(OThread): Add Library

* fix(OpenThread): fixes file list in CMakeLists.txt

* fix(openthread): Fixes JSON CI Files

* fix(openthread): Fixes JSON CI Files

* fix(openthread): Include Openthread guarding

* fix(openthread): COAP parametrization

* fix(openthread): Include Openthread guarding

* fix(openthread): Improves commentaries and code

* fix(openthread): Improves code

* fix(openthread): Includes StreamString.h

* feat(openthread): New Scan Example

* feat(openthread): Improved Scan Example

* feat(openthread): README.md

Initial documentation for ESP3 Arduino OpenThread CLI API.

* feat(openthread): helper functions documentation

Create helper_functions.md for ESP32 Arduino OpenThread API

* fix(openthread): begin end

* feat(openthread): onReceice example

* fix(openthread): tx queue error

* fix(doc): fixing documentation apresentation

Fixes the documentation first paragraph in order to make it easier fore reading. It also displays in the very top which SoC are supported by the library.

* fix(doc): documentation format

* feat(openthread): commentary

* fix(openthread): Typo, start/stop console

* fix(openthread): library properties

* ci(pre-commit): Apply automatic fixes

* feat(openthread): formatting text

* ci(pre-commit): Apply automatic fixes

---------

Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2024-06-24 19:26:42 +03:00
TimL
9e55ccd98e
PPP: Make modem reset delay configurable (#9910)
* fix(ppp): Make modem reset delay configurable

The delay required to reset Simcom modem modules varies significantly across
different models, even where they have otherwise identical AT command
sets.

Simcom A7672 was failing to reset with the default 200ms delay. Make the reset
delay configurable to allow customising this for a specific modem.
Default delay, if not specified is kept at 200ms.

* ci(pre-commit): Apply automatic fixes

---------

Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2024-06-24 12:00:58 +03:00
Me No Dev
ad1de0b37c
feat(net): Switch to typedefs for WiFiClient, WiFiServer, WiFiUdp and WiFiClientSecure (#9909)
* feat(net): Deprecate old WiFi APIs

Deprecates WiFiClient, WiFiServer, WiFiUdp and WiFiClientSecure

* fix(net): add defines to WiFi.h

Defines are added to not cause deprecation warnings. Will be removed in the future

* fix(net): Use typedefs instead to help with forward declarations

Defines do not allow forward declarations
2024-06-24 10:26:22 +03:00
vortigont
1079f4c855
HTTPClient lib - add HTTPCLIENT_NOSECURE build flag (#9893)
* HTTPClient lib - add HTTPCLIENT_NOSECURE build flag

`HTTPCLIENT_NOSECURE` build flag disables TLS support in HTTPClient library by
excluding `NetworkClientSecure.h` header.
This allows linker to strip down mbedTLS lind and certificates bundle,
which in turn reduces firmware image for about ~80kib.

* Update HTTPClient.cpp

* ci(pre-commit): Apply automatic fixes

---------

Co-authored-by: Me No Dev <me-no-dev@users.noreply.github.com>
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2024-06-20 14:13:15 +03:00
Vincentius Adrian
d708438b8c
feat: reduce bluetooth serial flush delay to 2 ms (#9905) 2024-06-19 21:10:11 +03:00
Rodrigo Garcia
206c0c71ab
Deep Sleep Example Fix (#9904)
* fix(example): EXT0 and EXT1 wakeup

Fixes the Deep Sleep wakup example to run with IDF5.1. The API has changed and a adjustment was necessary.

* feat(wakeup): Use Macro for GPIO_NUM

Changed the example to use a #define for the RTC IO Pin (GPIO) used in the example.

* fix(typo): typo and commentaries

Fixes the commentary to the correct IDF terms.

* ci(pre-commit): Apply automatic fixes

---------

Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2024-06-19 19:19:39 +03:00
Me No Dev
a992967079
fix(time): Fix SimpleTime to also use DHCP (#9886) 2024-06-19 09:55:54 +03:00
Rodrigo Garcia
99750cd37e
Adds BLE Characteristic User Description 0x2901 Descriptor (#9883)
Adds a class for 0x2901 - Characteristic User Descriptor.
This Descriptor is usual in BLE and describes with text what each characteristic is about.
Improve Notify.ino example by adding the 0x2901 descriptor
2024-06-18 14:45:22 -03:00
Earle F. Philhower, III
6b223391c1
fix(netbios): Return interface address for NetBIOS name lookup (#9885)
* fix(netbios): Return interface address for NetBIOS

When NetBIOS returns a match, it should return the IP address of the device.
Presently, however, it returns the address of multicast IP for the subnet
since the incoming NBNS packet's UDP target will be multicast
(i.e. 192.168.1.255).

Iterate over the active network interfaces and check netmasks to determine
where the packet came from, and return the appropriate IP interface address
instead.

* ci(pre-commit): Apply automatic fixes

---------

Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2024-06-18 12:35:56 +03:00
Ashley Grealish
76b6ff6500
fix: Updated the BasicHttpsClient example root certificate (#9857)
Co-authored-by: Rodrigo Garcia <rodrigo.garcia@espressif.com>
2024-06-18 07:47:52 +03:00
Rodrigo Garcia
32def87c0b
fix(BLE): Arduino String shall not be used within std::map<> (#9875)
* fix(BLE): std::map()

* Update libraries/BLE/src/BLERemoteService.cpp

* ci(pre-commit): Apply automatic fixes

---------

Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2024-06-18 00:26:21 +03:00
Me No Dev
c43187a386
fix(wifi): Fix WiFi setTxPower and getTxPower (#9862)
* fix(wifi): Fix WiFi setTxPower and getTxPower

We need to wait for the interface to be started in order to be able to set/get TX Power. Code was returning too early, so calling the functions after `begin()` resulted in failure.

* ci(pre-commit): Apply automatic fixes

---------

Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2024-06-17 22:47:12 +03:00
Juraj Andrássy
5c22402025
fix: ClientSecure.available() fix for connection closed by remote socket (#9869) 2024-06-17 22:40:10 +03:00
Me No Dev
1efab83432
feat(http): Allow to set Accept-Encoding header (#9863)
Similar to setUserAgent
2024-06-17 22:32:52 +03:00
Me No Dev
f33cc7e944
fix(ota): Allow password and partition change while idle (#9853)
Previously it was allowed only once before begin() was called
2024-06-14 00:26:36 +03:00
Me No Dev
a8ce679d81
fix(ota): Magic byte check fails with encrypted firmware (#9852) 2024-06-14 00:26:11 +03:00
Ayush Sharma
08ef62531d
fix: removeRoute should remove all matching routes (#9851) 2024-06-14 00:25:49 +03:00
Ayush Sharma
3428eb6a9e
feat: added support for filters in WebServer library (#9842)
* feat: added support for filters in webserver

* feat: add setFilter function in StaticRequestHandler

* fix: ON_STA_FILTER & ON_AP_FILTER

* fix: make request handlers backward compatible

* fix: ON_STA_FILTER & ON_AP_FILTER

* fix: more filters to their own example

* chore: grammar

* fix: remove filters from header file

* fix: use same root route for both interfaces

* ci(pre-commit): Apply automatic fixes

---------

Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2024-06-14 00:25:20 +03:00
Ayush Sharma
849ec57ca6
Added support for removing routes in WebServer library (#9832)
* feat: added removeRoutes and removeHandler methods

* feat: added removeRoute and removeHandler methods

* ci(pre-commit): Apply automatic fixes

---------

Co-authored-by: Me No Dev <me-no-dev@users.noreply.github.com>
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2024-06-13 08:51:32 +03:00
Me No Dev
211520b4ba
fix(client): Fix NetworkClient::localIP() (#9845)
It was returning zero, because it was not able to handle IPv4 mapped address into IPv6 address
2024-06-13 08:40:06 +03:00
Me No Dev
bc79feb217
fix(client): Implement readBytes in NetworkClient for faster downloads (#9824)
* fix(client): Implement readBytes in NetworkClient for faster downloads

* fix(client): Implement readBytes to obey the client timeout

* fix(clieant): use getTimeout() instead

* ci(pre-commit): Apply automatic fixes

---------

Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2024-06-13 08:39:04 +03:00
lbernstone
e382746b95
feat(sdmmc): Add RAW disk functions (#9796)
* feat(sdmmc): Add RAW disk functions

feat(sdmmc): fixed printf mismatches and missing callback

feat(sdmmc): added ci.json

Removed excess log_i

* ci(pre-commit): Apply automatic fixes

* Fixed sdmmc host check to pass CI

* feat(sdmmc): fixed example USB check

---------

Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>
2024-06-12 08:53:54 +03:00
Lucas Saavedra Vaz
2928654027
change(idf): Rename component example and fix compilation warnings (#9801)
* change(idf): Rename component example

* ci(push): Fix steps conditions

* ci(tests): Remove unnecessary concurrency

* ci(push): Fix step condition

* fix(idf): Fix compilation warnings when as component
2024-06-10 15:30:18 +03:00
Lucas Saavedra Vaz
f5b8e27df7
ci(refactor): Refactor workflows and skip files (#9696)
* ci(refactor): Refactor workflows and skip files

* ci(refactor): Refactor workflows and skip files

* ci(refactor): Improvements and compilation of only related files

* ci(refactor): Delete duplicated steps

* ci(refactor): General improvements

* ci(refactor): Delete duplicated lines

* ci(refactor): Rename jobs
2024-06-05 15:19:25 +03:00
Me No Dev
55ec22f2e5
fix(ssl): Fix load stream memory leak (#9767)
* fix(ssl): Fix load stream memory leak

Loading Ca Cert/Certificate or Private Key from stream was leaking memory, due to buffers not being freed.

* fix(ssl): Cast the buffers to non-const
2024-06-04 07:58:21 +03:00
Me No Dev
546ce3806b
fix(tls): do not attach bundle from runtime (#9763)
* fix(tls): do not attach bundle from runtime

* fix(ssl): Make the bundle callback per context
2024-06-04 07:57:47 +03:00
Me No Dev
21228117ff
feat(scan): Allow setting scan timeout in milliseconds (#9738) 2024-06-03 10:10:08 +03:00
Me No Dev
a4ee652506
fix(net): Don't unregister events if there are interfaces still open (#9706)
* fix(net): Don't unreg events if there are netifs

Unregister IP events only if all other netifs are stopped.

* fix(eth): Delete mac and phy on end

* fix(net): Update pin naming and log levels
2024-05-29 07:43:28 +03:00
Tarosa
8091b7a77c
feat(3rd_party_board):Add GPIO pin mappings for M5Stack CamS3 Unit and select OPI PSRAM by default (#9688)
* feat(camera): Add GPIO pin numbers for M5Stack CamS3 Unit

* docs(troubleshooting): Update guide for M5UnitCamS3 PSRAM configuration

* fix(): Remove QSPI option from M5Stack CamS3

* ci(pre-commit): Apply automatic fixes

* fix(): Make OPI PSRAM option as default

* fix(): Revert troubleshooting addition

---------

Co-authored-by: Jan Prochazka <90197375+P-R-O-C-H-Y@users.noreply.github.com>
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2024-05-27 16:34:24 +03:00
Me No Dev
4717585421
fix(eth): Fix ETH.stop() with IDF SPI (#9693) 2024-05-27 15:30:01 +03:00
Me No Dev
ee081b988f
fix(eth): Fix ETH.end() (#9661)
* fix(eth): Fix ETH.end()

* fix(eth): set glue handle to NULL
2024-05-22 09:51:20 +03:00
Me No Dev
b1c9506489
feat(eth): Enable the possibility to use SPI ETH with only 4 wires (#9659)
This PR enables ETH_SPI_SUPPORTS_NO_IRQ to support connection by only 4 wires (SCK, MISO, MOSI and SS) with IRQ and RESET being set as -1
2024-05-21 23:10:06 +03:00
Me No Dev
f2e064d0c2
fix(eth): Attach ETH events at the correct place (#9658)
This is to ensure that stack events are called before ours, because callbacks are called in order of attaching
2024-05-21 23:09:39 +03:00
Jan Procházka
50ef6f4369
Zigbee examples update (#9627) 2024-05-15 18:13:41 +02:00
Me No Dev
356e738ee3
Add support for specifying a WPA2 EAP-TTLS phase 2 method to WiFi.begin (#9639) 2024-05-15 18:12:52 +02:00
Me No Dev
f6cbea13b7
feat(usb): Remove redundant absolute mouse support (#9640) 2024-05-15 18:12:18 +02:00
Juraj Andrássy
3d92edecf1
fix: NetworkClientSecure - copyability improvements (#9632)
and _timeout shadowing fixed
2024-05-15 13:16:06 +02:00
Me No Dev
0c4b35e07e
IDF release/v5.1 (#9613)
* IDF release/v5.1 01b912a9e5

* Fix USB OTG Init on new IDF

* Delete libraries/TFLiteMicro/examples/micro_speech directory

Done in order to fix a CI problem created by an entire folder that was removed in original Library Repository.

* IDF release/v5.1 442a798083

* Update esp32-hal-tinyusb.c

---------

Co-authored-by: Rodrigo Garcia <rodrigo.garcia@espressif.com>
2024-05-14 01:04:12 +02:00
Juraj Andrássy
ea27a98252
NetworkClientSecure made copyable (#9612)
* NetworkClientSecure made copyable

* ci(pre-commit): Apply automatic fixes

---------

Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com>
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2024-05-13 17:36:59 +02:00
Happy Code Farm
a04fceee2f
feat(usbmsc): Add is_writable function to the USBMSC class. (#9569)
* (feat)usbmsc: Add is_writable function

Add is_writable function to the USBMSC class.
Allows USBMSC to be mounted in read-only mode.

* Update USBMSC.ino

Changes to USB Mass Storage (MSC) example code in Arduino USB library

* Added MSC.isWritable(true) line to set the disk as writable

* ci(pre-commit): Apply automatic fixes

---------

Co-authored-by: Rodrigo Garcia <rodrigo.garcia@espressif.com>
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2024-05-13 15:10:45 +02:00
Juraj Andrássy
e8e251abc6
NetworkClient - close the connection in stop() method (#9542)
* fix: NetworkClient - close the connection in stop() method

for all copies referring it

* ci(pre-commit): Apply automatic fixes

---------

Co-authored-by: Me No Dev <me-no-dev@users.noreply.github.com>
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2024-05-10 16:49:34 +02:00
Deadolus
78bb452f8b
BLEAdvertising.h: Fix spelling mistake in setScanFilter parameter (#9609) 2024-05-10 14:15:41 +02:00
Rob58329
afa5f41328
Arduino core for the esp32 - Add new function "bool isDirty()" to EEPROM.h and EEPROM.cpp (#9611)
* Update EEPROM.h - Added new function: bool isDirty()

* Update EEPROM.cpp - Added new function: bool isDirty()
2024-05-10 14:10:29 +02:00
Craig Link
e883a2ccfa
define HTTP_METHOD_STR as static const to save RAM (#9594) 2024-05-08 08:08:18 +03:00
Juraj Andrássy
cf448906b3
Ethernet - MAC address parameter for beginSPI (#9539)
* feat: Ethernet - MAC address parameter for beginSPI

and `friend class EthernetClass`
as support for potential Arduino API compatibility layer

* ci(pre-commit): Apply automatic fixes

---------

Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2024-04-20 03:05:05 +03:00
Lucas Saavedra Vaz
6bfcd6d9a9
refactor(style): Change some style options (#9526)
* refactor(style): Change some style options

* refactor(style): Apply style changes
2024-04-19 18:16:55 +03:00
Me No Dev
4960d86ba2
Add support for PPP Modems to Arduino (#9518)
* feat(ppp): Add support for PPP Modems

* feat(sdk): Add libs with PPP enabled

* ci(pre-commit): Apply automatic fixes

* IDF c432c692fa (#9527)

---------

Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2024-04-19 15:50:50 +03:00
Darkl0ud
6b3a9a9bff
Fixed typo for adc_continuous_data typedef in esp32-hal-adc.h/.c (#9529)
* Fixed typo in adc_continuous_data typedef

Fixed typo in adc_continuous_data typedef

* Additional typo fix for adc_continuous_data typedef

Additional commit for previous commit (#9529) adding typo corrections within

1. /docs/en/api/adc.rst
2. /libraries/ESP32/examples/AnalogReadContinuous\AnalogReadContinuous.ino
3. tests/periman/periman.ino

---------

Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>
2024-04-19 12:42:41 +03:00
Lucas Saavedra Vaz
da5c6ab9ae
Refactor repository with pre-commit hooks (#9515)
* Add Config

* Add Cache and remove pre-commit action

* [pre-commit.ci lite] apply automatic fixes

* Remove freeze

* Fix

* Update action

* Use latest stable Python 3 version

* Improve caching

* Improve cache tag

* Improve bot message

* fix(typos): Fix typos

* fix(typos): Fix more typos

* refactor(udp_server): Convert script from Python 2 to 3

* Fix whitespace

* Clang-format fixes

* Prettier fixes

* Black formatting

* Manual fixes

* Line endings

* Fix flake and make Vale manual

* Fix flake and reformat

---------

Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
Co-authored-by: Rodrigo Garcia <rodrigo.garcia@espressif.com>
2024-04-15 19:40:56 +03:00
Lucas Saavedra Vaz
557380682c
refactor(udp_server): Convert script from Python 2 to 3 (#9513) 2024-04-15 17:44:38 +03:00
Ikko Eltociear Ashimine
394ebb673b
Fix typo in Updater.cpp (#9511)
arguement -> argument
2024-04-15 12:00:31 +03:00
Lucas Saavedra Vaz
908ca9f022
fix(ftm): Fix compilation warning (#9508) 2024-04-15 11:07:08 +03:00
Me No Dev
49b94644c6
IDF release/v5.1 (#9498)
* fix(ble): rename esp_ble_gap_ext_adv_report_t

* IDF release/v5.1 d23b7a0361
2024-04-12 18:21:27 +03:00
Sly Gryphon
3a0dd1cbe5
fix(dns): Fix IPv6-only network, by checking IPv6 first if you have public address (#9443)
Work around because AF_UNSPEC does not check available addresses when
determining result.

If you have a global scope IPv6 address, then first check for IPv6 DNS result;
if you don't have an IPv6, or there is no IPv6 result, then check IPv4.

This allows IPv6-only networks to connect to dual-stack destinations, as they
will get the IPv6 address (rather than the unusable IPv4).

It also means a dual-stack host to a dual-stack destination will preference
IPv6.

There is no effect if you are on an IPv4-only network, or it is an IPv4-only
destination.
2024-04-12 12:28:12 +03:00
Rodrigo Garcia
04b70bbf6a
Change name to HWCDC_Events.ino (From HWSerial_Events.ino) (#9483)
* Create HWCDC_Events.ino

* Delete libraries/ESP32/examples/HWSerial_Events/.skip.esp32

* Delete libraries/ESP32/examples/HWSerial_Events/.skip.esp32s2

* Delete libraries/ESP32/examples/HWSerial_Events/HWSerial_Events.ino

* Create .skip.esp32

* Create .skip.esp32s2

* Fixes HWCDC_Events.ino

* Fixes CI for S3
2024-04-11 18:19:11 +03:00
Nathan Nau
93448d7f34
Handle large octet-stream (master branch) (#9440)
* Handle large octet-stream

* Add exemple Upload Huge File

* Remove unuse function printDirectory

* Fix upload path

* Simplify and generalize the body parsing.

* Create .skip.esp32h2

---------

Co-authored-by: me-no-dev <hristo@espressif.com>
2024-04-11 14:42:31 +03:00
s-hadinger
f7b4959994
fix(ethernet): move event listener earlier to avoid missing event ETH_CONNECTED (#9481)
* Ethernet: Move event listener earlier

* fix(ethernet): move network listener after initNetif
2024-04-11 01:55:32 +03:00
Me No Dev
8c75c35290
feat(wifi): Add support for NAPT to WIFI AP (#9478)
Allows another interface's connection to be shared to the AP
2024-04-10 15:09:22 +03:00
Rodrigo Garcia
8ceb4bacb2
fix: USB HID Keyboard raw report (#9473) 2024-04-10 11:54:31 +03:00
Sly Gryphon
858b107bdf
feat(dns): Check type of IP addresses and clear DNS cache if they changed (#9476) 2024-04-10 11:53:16 +03:00
Sly Gryphon
17888679c7
fix(tls): Enable IPv6 support in ssl_client connect (#9470)
Similar to NetworkClient, check the family of the passed in address and configure the socket and socket address accordingly, for both IPv6 and IPv4 support.
2024-04-09 16:33:51 +03:00
Jan Procházka
b6ca5a8630
fix(sd): AquireSPI lock in sdcard_uninit (#9468) 2024-04-09 14:01:43 +03:00
Me No Dev
8dbb7c0c13
feat(net): Add support for esp_netif flags (#9460)
* feat(net): Add support for esp_netif flags

Provides better automation for setting IP/DNS

* feat(net): Show DHCPC status as OFF when static IP is used
2024-04-08 12:10:11 +03:00
Me No Dev
d805b88c32
feat(net): Add support for selecting the default network interface (#9457) 2024-04-05 15:38:11 +03:00
Juraj Andrássy
9b32541c0c
WiFiClient - rename flush() to clear() (breaking) (#9453)
Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>
2024-04-05 14:41:26 +03:00
Me No Dev
cff2a18aa2
Add option to specify AP auth mode and cipher (#9454) 2024-04-04 13:27:06 +03:00
Lucas Saavedra Vaz
78820f2236
ESP-NOW: Fix examples and improve logging (#9455) 2024-04-04 13:25:01 +03:00
Lucas Saavedra Vaz
dcc307665f
Fix NetworkManager compilation warning (#9452) 2024-04-04 00:04:43 +03:00
Sly Gryphon
64235dc6d6
Network refactoring - fix some IPv6 DNS issues (#9439)
* fix(dns): Handle IPv6 DNS server address results

If the result from esp_netif_get_dns_info is an IPv6 address, then parse to an IPAddress.

* fix(dns): Use getaddrinfo for DNS, to fix some IPv6 issues

Replace hostbyname with getaddrinfo for better IPv6 support. The API is also
simpler, as it has no callbacks (they are handled internally). Allows
dual-stack networks to connect to IPv6-only destinations.

Still does not work for IPv6-only networks, as IPv6 DNS is not enabled in the
pre-built ESP-IDF libraries.
2024-04-03 18:23:11 +03:00
Jan Procházka
1a80829435
Add ESP-NOW Arduino library (#9395)
* feat(libs): Add ESP-NOW Arduino library

* Update libraries/ESP_NOW/src/ESP32_NOW.cpp

Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>

* Update libraries/ESP_NOW/src/ESP32_NOW.cpp

Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>

* fix(esp-now): Add check if Wifi is started.

* Fix ESP_NOW_Serial

* Add ESP NOW Serial Example

* Add comment

* Skip esp-now example for esp32h2

* Add broadcast address constant

* Change return value to align with other APIs

* Apply suggested changes

* Improve example

* Fix example

* Improve serial example

* Add argument to receive callback to know if a message was broadcasted

* Update libraries/ESP_NOW/src/ESP32_NOW_Serial.cpp

* Simplify example

* Add broadcast example

* Change comments

* Change comment

* Improve broadcast master example

* Remove examples using IDF's API

* Fix example

* Add network example

* Add skip file

* Add LMK back

* Add logs

* Improve example

* Fix example

* Apply @suglider suggestions from code review

Co-authored-by: Rodrigo Garcia <rodrigo.garcia@espressif.com>

* Add documentation

* fix examples links in docs

* Apply @lucasssvaz suggestions to docs

Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>

* Update espnow.rst

* Update examples

* make onSent optional and remove underscores for virtual functions

* Make onRecieve also optional and make constructor protected

---------

Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>
Co-authored-by: me-no-dev <hristo@espressif.com>
Co-authored-by: Rodrigo Garcia <rodrigo.garcia@espressif.com>
2024-04-03 18:18:57 +03:00
Rodrigo Garcia
e709b9a388
Set Apache license to Update Library (#9446)
* feat: update license

* feat: update license

* feat: update license

* feat: update license

* feat: license

* Update Update.h

* Update HttpsOTAUpdate.h

* Update HttpsOTAUpdate.cpp

* Update HttpsOTAUpdate.cpp

* Update HttpsOTAUpdate.cpp

* Update HttpsOTAUpdate.cpp

* Update HttpsOTAUpdate.cpp

* Update HttpsOTAUpdate.h
2024-04-02 19:35:05 +03:00
Me No Dev
e4a57854a6
Ensure that Static IP configuration for network interfaces is kept until STOP (#9445) 2024-04-02 19:18:46 +03:00
Juraj Andrássy
3c1885f8ef
WiFi.config handle Arduino parameters ordering and auto dns,gw,mask (#9425)
Co-authored-by: Me No Dev <me-no-dev@users.noreply.github.com>
2024-04-02 18:36:54 +03:00
Me No Dev
7bdf67e518
Use WiFi.mode to enable/disable the Network Interfaces (#9436) 2024-04-02 12:26:17 +03:00
Juraj Andrássy
7b29bac625
WiFi BSSID getter fix (#9434)
Co-authored-by: Me No Dev <me-no-dev@users.noreply.github.com>
2024-03-29 12:28:05 +02:00
lbernstone
654aeada0a
Matched pin numbers in doco to numbers in variants files (#9422)
* Matched pin numbers in doco to numbers in variants files

* Non-breaking dashes

* Changed SD examples to make REASSIGN_PINS more transparent. Fixes #9082

---------

Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com>
2024-03-27 12:07:12 +02:00
Me No Dev
f2026f1e34
3.0.0 Network Refactoring (#8760)
* Create ESP_NetworkInterface class and have Ethernet extending it

* Update CMakeLists.txt

* Split networking from WiFi (H2 can now use Ethernet)

Now all libs have been checked yet. More to do on WiFi side

* Fix build errors

* Guard WiFi classes and fix RMII ETH examples

* Decouple network related libraries from WiFi

* Fix examples and WiFiUpdate

* Guard WiFiProv lib to compile only on WiFi chips

* Add periman string for network and "fix" mdns on the first ETH

* Revert back location of Client/Server/Udp in order to accept some PRs

* Fix periman

* Some fixes from merging master

* Fix web server missing fs.h

* Move Client, Server and Udp out of WiFi

* More fixes

* more fixes

* Fix CMakekLists and rework lib menu dependencies

* Fix CMake issues

* move back WiFiClient to rebase with master

* Update ETH_TLK110.ino

* Move back WiFiClient

* Update progress

* Update WiFiGeneric.cpp

* More fixes

* Switch AP to the new interface

* Cleanup

* Rename AP methods

* Add extra interface info for Printable

* Rename IPv6 getters to clarify that they are returning LinkLocal address

cc @sgryphon

* Rename network classes

cc @sgryphon

* Update NetworkManager.h

* Rename WiFi Server and UDP

* Rename WiFiClient and WiFiClientSecure

* Update CMakeLists.txt

* Update on-push.sh

* Rename Network library

* Remove unnecessary guard

* Get the correct interface MAC address for mDND Workstation service

* Apply suggestions from code review

Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>

---------

Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>
2024-03-26 23:31:23 +02:00
Rodrigo Garcia
6345350584
Adds a new example: onReceiveExample.ino (#9415)
* feat: onReceiveExample.ino

Adds a new example that uses HardwareSerial::onReceive(). The example demosntrates how to read all the data sent to UART0, considering that the end of transmission is defined by a period of time with UART in idle state.

* fix: onReceiveExample.ino

Fixes typos

* feat: add explanation header

* fix: mutex release

* fix: add Mutex verification

* feat: Mutex error message

* feat: Mutex NULL testing
2024-03-26 12:21:41 +02:00
Lucas Saavedra Vaz
9c0d59f9c4
Add method to set the WiFi radio channel (#9405)
* Add method to set the WiFi radio channel

* Fix Tab

* Add check

* Change name

* Fix description

* Add check

* Add error return

* Improve error message
2024-03-26 12:21:00 +02:00
Akeem Hart
896f072f67
Fixing small typo in DiscoverConnect.ino BluetoothSerial example (#9389) 2024-03-20 14:11:59 +02:00
Lucas Saavedra Vaz
dce754b693
Improve USBVendor Example (#9349)
* Add WebUSB console

* Improve Console Page

* Improve example

* Add comments

* Add flush method

---------

Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com>
2024-03-11 15:10:46 +02:00
Lucas Saavedra Vaz
4123e20a2c
Fix indentation (#9343) 2024-03-05 20:56:46 +02:00
Jan Procházka
aed7b4fa59
ETH: Support physical address auto detection (#9313)
* feat(eth): Support phy address auto detection

* fix(eth): add phy_address check
2024-03-01 18:50:19 +02:00
Rodrigo Garcia
2fdd901639
fixes default 100ms delay with HWCDC write() is CDC is not connected (#9307)
* feat(hwcdc): fix delay

Fixes delay when CDC is disconnected. At this time is only fixes it when USB cable is unplugged.

* feat(hwcdc): fix delay

fixes delay when CDC is not connected. It was only considering when the USB cable was not plugged.

* feat(hwcdc): add 2 methods

Adds 2 new methods:
- isPlugged() will return true when USB cable is plugged, false otherwise.
- isConnected() will return true when USB CDC is connected to a application in the USB Host side and communication is stablished.

* feat(hwcdc): adjusts APIs

Fixes the example to use the new added APIs for checking if USB cable is plugged and for checking if CDC is connected.

* fixes api declaration

* fixes API declaration
2024-02-29 08:40:28 +02:00
Rodrigo Garcia
b7af090f71
Fixes the hardware cdc jtag plugged/unplugged status and related timeout/delay (#9275)
* feat(hw_cdc):fixes the hardware cdc jtag plugged/unplugged status

This will use a new IDF 5.1 feature to detect if the USB HW CDC is plugged or not. This can be checked testing HWCDCSerial.
It also fixes issues related to timeout or delays while writing to the HW Serial when USB is unplugged.

* feat(usb): Creates HWSerial_Events.ino example

* feat: adds .skip.esp32

Skips the ESP32 SoC test given that it has no USB

* feat: adds .skip.esp32s2

Skips the ESP32S2 because it has no HW CDC JTAG interface

* fix: fixes issues with Ubuntu CI 

Only compiles the example in case it is using Hardware CD and JTAG mode.

* feat(serialcdc): non block functions

modifies write and flush to do not clock in case CDC host is not connected to the CDC client from the C3/S3/C6/H2

* fix(HWCDC): changes made demands testing for CDC ON BOOT

* feat(hwcdc): Improves HWSerial_Events.ino

Improves the example by adding more information about USB being plugged and CDC being connected.

* feat(hwcdc): solves CDC connection issue

Detects correctly when CDC is or not connected. 
Deals with USB unplugged while the sketch is printing to CDD.

* Update cores/esp32/HWCDC.cpp

* Update cores/esp32/HWCDC.cpp

* Update cores/esp32/HWCDC.cpp

* Update cores/esp32/HWCDC.cpp

* Update cores/esp32/HWCDC.cpp

* Update cores/esp32/HWCDC.cpp

* Update cores/esp32/HWCDC.cpp

* Update cores/esp32/HWCDC.cpp

* Update cores/esp32/HWCDC.cpp

* Update cores/esp32/HWCDC.cpp

* Update cores/esp32/HWCDC.cpp

* Update cores/esp32/HWCDC.cpp

* Update cores/esp32/HWCDC.cpp

* Update cores/esp32/HWCDC.cpp

* Update cores/esp32/HWCDC.cpp

* Update cores/esp32/HWCDC.cpp

* Apply suggestions from code review

---------

Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>
2024-02-28 18:14:21 +02:00
Me No Dev
22d7fc91eb
Enable USB Serial only if selected (#9294)
* Enable USB Serial only if selected

* fix examples

---------

Co-authored-by: Rodrigo Garcia <rodrigo.garcia@espressif.com>
2024-02-27 17:32:19 +02:00
TD-er
113de1fa02
[Enhancement] Support no-IRQ for SPI Ethernet W5500 (#9251)
* [W5500] Support no-IRQ

Requires this commit from ESP-IDF to be cherry picked:
fd0a1dc53c

* Remove unrelated code to support ETH_PHY_JL1101

* remove the commented check and fix the error message

* Guard feature to be enabled when IDF backports it to v5.1

---------

Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>
Co-authored-by: Me No Dev <me-no-dev@users.noreply.github.com>
2024-02-22 12:31:31 +02:00
Kinon
72f9fe3b8b
Fixed "Invalid mbox" error in SimpleTime example (#9262)
* fix(esp32): 🐛 Fixed "Invalid mbox" in the Wi-Fi example

* fix: changes the code to actually connect to the WiFi in roder to get time and date

* fix: removing call to WiFi.begin() at the end of the sketch. It must be called at first.

---------

Co-authored-by: Rodrigo Garcia <rodrigo.garcia@espressif.com>
2024-02-21 16:24:07 +02:00
Jan Procházka
c4b55bb9f1
feature(ledc): Add output invert option for LEDC pin + minor fixes (#9257)
* feat(ledc): Add output invert option for LEDC pin + minor fixes

* docs(ledc): Document LEDC functions in header file

* feat(ledc): Replace log2 with __builtin_ctz

* fix(ledc): Fixing free_channel for > 8 supported channels

* fix(ledc): Apply suggestions from code review

Co-authored-by: Rodrigo Garcia <rodrigo.garcia@espressif.com>

* fix(ledc): Added freq check to ledcChangeFrequency

* docs(ledc): Fix ledc documentation formatting

* docs(migration): Add new functions to the migration guide

* docs(ledc): Fix functions name and parameters

---------

Co-authored-by: Rodrigo Garcia <rodrigo.garcia@espressif.com>
Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>
2024-02-21 16:15:06 +02:00
clyne
3c3079851c
fix(webserver): Ignore extra headers within multipart forms (#9253)
Update subpart ("PostArg") parsing to ignore extra headers instead of silently failing.

Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>
2024-02-20 15:13:15 +02:00
Rodrigo Garcia
7eb1ce89b4
Adds RMT End of Transmission Level API (#9238)
* RMT (featt):  adds a new function to set EOT level after RMT writing

* RMT (feat): adds new feature to set the EOT level after writing RMT channel

* adds return value to rmtSetEOT()

* adds bool return to rmtSetEOT()

* adds return value to the rmtSetEOT() function

* FIX (rmt): fixes eot_level setting using flags in the TX structure

* RMT(feat): Create RMT_EndOfTransmissionState.ino example

* Update cores/esp32/esp32-hal-rmt.h

Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com>

* Update cores/esp32/esp32-hal-rmt.c

Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com>

* Update cores/esp32/esp32-hal-rmt.c

Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com>

---------

Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com>
2024-02-14 15:26:51 +02:00
Jan Procházka
90036a2c1b
fix(eth): Eth pins check in examples to avoid redefinition (#9242) 2024-02-14 15:25:25 +02:00
Rodrigo Garcia
0a2a487259
Fixes Pointer and Call using Serial BT callback (#9245)
* SerialBT (fix): fixes the callback function pointer

* SerialBT(fix): fixes callback pointer reference and call

* Update BluetoothSerial.h
2024-02-14 15:24:37 +02:00
Dirk-Willem van Gulik
48072ee098
Support for STARTLS/STARTSSL in-band transport upgrades/renegotation (#9100)
* Split start_ssl_client into two phases; to allow the implementation of protocols that use some sort of in-band STARTTLS or STARTSSL signal to upgrade a plaint text connection to SSL/TLS. Examples of these protocols are XMPP, SMTP and various database TCP connections.

* Remove removed setTimeout that was accidentally included (was removed for IDF >=5), bring timeout inline with the other timeouts (ints), fix cert/key checks to look if there is actually something there (all issues caught by the CI/CD on windows-latest

* Quell compiler warning; use the right timeout

* Newer versions of MBEDTLS make the client key struct private (and most of the x509 struct too), so absent of a non-null pointer we cannot check wether it is populated. Solve this by looking at the version (as 0 is not a valid x509 version).

* Fix another \(rightfull\) compiler warning iwth the version pointer

* Quell CI/CD runs on non-WiFi supporting hardare

* Quell CI/CD runs on non-WiFi supporting hardare

* Fix typo in directory name

* Apply suggestions from code review

Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com>

* Rename Files

* Remove leftover file

---------

Co-authored-by: Me No Dev <me-no-dev@users.noreply.github.com>
Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com>
Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>
2024-02-09 21:40:33 +02:00
Dirk-Willem van Gulik
13fac0876b
feature: create a Trust on First Use example (#9103)
* feature: create a Trust on First Use example the quell the increasingly common copy & paste of the insecure approach making it to production

* Quell CI/CD runs on non-WiFi supporting hardare

* Update libraries/WiFiClientSecure/examples/WiFiClientInsecure/WiFiClientInsecure.ino

typo/improvement to text

Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>

* Update libraries/WiFiClientSecure/examples/WiFiClientTrustOnFirstUse/WiFiClientTrustOnFirstUse.ino

typo/improvement to text

Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>

* Update libraries/WiFiClientSecure/examples/WiFiClientTrustOnFirstUse/WiFiClientTrustOnFirstUse.ino

Fix formatting

Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>

* Update libraries/WiFiClientSecure/examples/WiFiClientTrustOnFirstUse/WiFiClientTrustOnFirstUse.ino

typo/improvement to text

Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>

* Update libraries/WiFiClientSecure/examples/WiFiClientTrustOnFirstUse/WiFiClientTrustOnFirstUse.ino

typo/improvement to text

Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>

* Update libraries/WiFiClientSecure/examples/WiFiClientTrustOnFirstUse/WiFiClientTrustOnFirstUse.ino

typo/improvement to text

Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>

* Update libraries/WiFiClientSecure/examples/WiFiClientTrustOnFirstUse/WiFiClientTrustOnFirstUse.ino

typo/improvement to text

Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>

* Update libraries/WiFiClientSecure/examples/WiFiClientTrustOnFirstUse/WiFiClientTrustOnFirstUse.ino

typo/improvement to text

Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>

* Various things can all stop_ssl_socket() which sets the socket to -1; but the WiFiClientSecure checks for _connected. So we want to make sure the latter is always set. And thus have moved the state handling around *ssl_client down into the C code; below WiFiClientSecure.

* Unitialized NVRAM/EEPROM is actual set to 0xFF; so adjust for this. And print the LF/CR for the header lines.

* Update libraries/WiFiClientSecure/examples/WiFiClientTrustOnFirstUse/WiFiClientTrustOnFirstUse.ino

---------

Co-authored-by: Me No Dev <me-no-dev@users.noreply.github.com>
Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>
2024-02-09 21:39:04 +02:00
Lucas Saavedra Vaz
58bea5c131
Fix C2 compilation for Updater.cpp (#9228) 2024-02-09 21:35:11 +02:00
Cyril Danilevski
f18b690d76
Fix AdvancedWebServer.ino uptime conversion (#9224)
* fix(examples): Fix AdvancedWebServer.ino uptime conversion

* Fix build error

---------

Co-authored-by: Me No Dev <me-no-dev@users.noreply.github.com>
2024-02-09 16:03:41 +02:00
Lucas Saavedra Vaz
c21a8cdaa5
Server Side Events (#9222)
* feat: Server Side Events (SSE)

* Update libraries/WiFi/src/WiFiClient.cpp

Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>

---------

Co-authored-by: Miquel Martin <miqmago@gmail.com>
Co-authored-by: Miquel <miqmago@users.noreply.github.com>
2024-02-07 17:05:58 +02:00
theeprawn
aceea3e519
Adds feature to decrypt uploaded image bin files. Used esp-idf to encrypt a bin file. (#5807)
* Update Update.h

* Update Updater.cpp

* Add files via upload

* Add files via upload

* Add files via upload

* Update Update.h

* Update Updater.cpp

* Add files via upload

* Revert changes

* Revert changes

* Fix CI

* Fix format

* Skip H2

* Use new

* Fix comments and formatting

* Format example

* Remove binaries and QoL improvements

---------

Co-authored-by: Me No Dev <me-no-dev@users.noreply.github.com>
Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>
2024-02-07 16:29:37 +02:00
Theo Arends
bbbbec977a
Fix ESP32-Solo WDT on HTTP OTA update (#5426)
* Fix ESP32-Solo WDT on HTTP OTA update

* Fix ESP32-Solo WDT on HTTP OTA update

* Fix commits

---------

Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>
2024-02-07 15:49:01 +02:00
LiveSparks
e1a3525b5a
fix(esp32): Added a timeout option to the BLEClient's connect function (#9005)
* fix(esp32): Added timeout to BLEClient.connect fn

* Update libraries/BLE/src/BLEClient.cpp

Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>

---------

Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>
Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com>
2024-02-07 14:45:27 +02:00
Lucas Saavedra Vaz
4cbce10cb1
Add support for hidden networks in WiFiMulti (#9202)
* Add support for hidden networks in WiFiMulti

* Update WiFiMulti.cpp

* Update WiFiMulti.cpp
2024-02-05 13:59:16 +02:00
Jan Procházka
d14873ab8a
Add Zigbee examples (#9024)
* feat: added zigbee light and switch examples

* fix: added skip files for unsupported socs

* fix(example): Removed Serial and updated readme.

* fix(): Simplify examples + fix zigbee partition table
2024-02-01 15:38:07 +02:00
Clemens Kirchgatterer
7c5196df1b
fix(webserver): Proposal for simplifying webserver file uploads via form POST. (#9167)
* Proposal for fixing file webserver uploads via form upload.

The form parser has shown to have issues with files ending with "--\r\n". This commit replaces the form parser with the parser from ESP8266, which passes the test case.

* Replace _uploadReadByte() in WebServer/Parsing.cpp with ESP8266 implementation.
2024-02-01 12:24:14 +02:00
Andrea Canale
b163583bf8
feat(usb): Add more keys in USBHIDKeyboard (#9190)
* Add more keys value that can be used with Keyboard.press()
2024-02-01 11:16:13 +02:00
Leif
77b64506a6
ArduinoOTA upload intermittent failure fixed (#4657)
* OTA upload often fails when client.read() return -1 and we subsequently try to write 4 gigabytes to flash. Fixed by signed comparison and retry.

* Delay of 1ms already solves the issue

* Update libraries/ArduinoOTA/src/ArduinoOTA.cpp

Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com>

---------

Co-authored-by: Leif <git@leif.lc>
Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>
Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com>
2024-01-31 12:54:34 +02:00
Dirk O. Kaar
f764af0d1c
Ticker updated to match extensions in ESP8266 API (#2849)
* Update Ticker API to compatibility with ESP8266, prepares for co-op loop Scheduler

* Fixing Build server complaints

* Fix omitted casts in template member function

* Changes after review

* Expose µs resolution of OS API in Ticker class

* Return Ticker to libraries only for modularity.

* Unify Ticker examples.

* Default for LED_BUILTIN

* In Ticker, the *scheduled functions become available in another development branch.

* Astyle from ESP8266

* Fixed Arduino keywords.txt

* 64bit integers instead of 32bits, timer functions on ESP32 accept 64bit integers.

* Move code from header into compiliation unit.

Reformat.

* Test case same as ESP8266

* Implementing inline in header saves 204+ bytes program size.

* Examples

* Fix a compiler warning due to c-style casting.

* Revert formatting changes

* More format reversions

* Revert

* Revert

* Revert

---------

Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>
2024-01-31 12:53:56 +02:00
safocl
7966f4ae79
Fix ambiguous for TwoWire::requestFrom() methods and align API with Arduino.cc (#8817)
* Fix ambiguous for TwoWire::requestFrom() methods.

* Remove TwoWire::begin(int) overload
Inside the function, this overload truncated the data type to a shorter one. This could break some users' hopes.

* Rewrite TwoWire with using HardwareI2C
- implement proposal https://github.com/espressif/arduino-esp32/pull/8818#issuecomment-1792191815
  to bring the HARDWARE interface into compliance

* Fix TwoWire::end() return type.

* Fix TwoWire::setClock() return type.

* Fix no return statement in the TwoWire::requestFrom.

* fix(libraries/Wire): fix bad return-statement

Remove non-void values of the return-statements in function returning 'void'.

* style(libraries/Wire): replace tabs with spaces

* refactor(libraries/Wire): use slave without support
TwoWire::begin(uint8_t address) should be available without slave
support by SoC?

* refactor(libraries/Wire): remove unused variables
Compiler reports "Wire.cpp:393:15: error: variable 'err' set but not used [-Werror=unused-but-set-variable]".

* refactor(libraries/Wire): remove unused variables
Compiler reports "Wire.cpp:337:15: error: variable 'err' set but not used [-Werror=unused-but-set-variable]".

* fix(libraries/Wire): hide slave support elements
TwoWire::user_onRequest is used only in conjunction with slave support?

* refactor(libraries/Wire): remove temporary comment

* fix(libraries/Wire): restore an accidentally deleted implementation
TwoWire::endTransmission() was accidentally deleted from a cpp file.

* refactor(libraries/Wire): return return types
In TwoWire class return return types.

* fix(libraries/Wire): fix return type

* refactor(libraries/Wire): add return statement if slave isn't supported

Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com>

* refactor(libraries/Wire): fix indentation

Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com>

* refactor(libraries/Wire): fix indentation

Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com>

* refactor(libraries/Wire): fix indentation

Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com>

* refactor(libraries/Wire): remove unnecessary empty lines

---------

Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>
Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com>
2024-01-31 12:50:35 +02:00
Rodrigo Garcia
cceebb58f1
Improves WiFiMulti (#9139)
* feat(wifi): Improves WiFiMulti

* fix(wifi): Fixes Initialization of Security Mode

* feat(wifi): simplifies the example by using HTTPClient

* fix(WiFi): fixes a type in the commentaries
2024-01-23 16:28:30 +02:00
Juraj Andrássy
39043b8586
WiFiServer - don't inherit from Print and Server (#8930)
because print-to-all-clients is not implemented

Co-authored-by: Rodrigo Garcia <rodrigo.garcia@espressif.com>
Co-authored-by: Me No Dev <me-no-dev@users.noreply.github.com>
2024-01-23 15:05:12 +02:00
Juraj Andrássy
e73af48e22
Revert "undeprecate available() (#9027)" (#9165)
This reverts commit 5d97e02ad7.
2024-01-23 14:54:54 +02:00
Jason2866
7fbd9a163c
Update LittleFS Platformio example (#9151)
* rm not anymore needed `LittleFS Builder.py`

* use custom partition scheme

to guarantee a big enough SPIFFS partition scheme is used.
2024-01-23 12:52:10 +02:00
Lucas Saavedra Vaz
1149650105
Add I2S examples and documentation (#9030)
* feat(i2s): Add I2S examples

- ES8388 loopback example using the LyraT board
- ESP32-S3-EYE record WAV to SD card example
- Simple tone example

* docs(i2s): Add I2S API docs
2024-01-19 17:25:07 +02:00
Jan Procházka
2e5c932aeb
SPI - Allow detaching of some SPI pins without stopping SPI (#9117)
* feature(spi): Allow detach of some SPI pins

* fix(spi): Remove unnecessary check

Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>

* feat(spi): Rename CS pin to SS to match Arduino standard

* fix(spi): Remove unnecessary checks

* remove lock from spiAttackMISO

---------

Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>
Co-authored-by: Me No Dev <me-no-dev@users.noreply.github.com>
Co-authored-by: me-no-dev <hristo@espressif.com>
2024-01-19 17:21:19 +02:00
Juraj Andrássy
47666082ff
WiFi.disconnect() "aligned with Aduino.cc". waiting for status change. (#9062)
WiFi.disconnect renamed to disconnectAsync

new WiFi.disconnect waits for status change
2024-01-18 13:39:56 +02:00
Dirk-Willem van Gulik
e581717bf3
Web server simplifications and handers (#7429)
* First stab ad simplyfing webserver auth and adding a handler.

* Tweaks after testing against docs and latest Library tree

* Add documentatin for callback handler

* Bodge to allow things to compile without the dependencies

* Remove dependency on sodium to make it compile with 4.4

* Fix hex conversion

* Move some common HEX functions into a static HEX class, remove those from MD5 and add some examples. This allows for the cleanup of various to/from HEX routines elsewhere.

* Remove some duplicated code

* Add simplfiied HEXBuilder under MD5Bulder to CMakefile.

* Update for 3.0.0 and QoL improvements

* Remove examples that depend on external libraries

* Skip H2 testing

* Formatting improvements

* Move builders examples to Utilities folder

* Fix indentation

* Add HashBuilder abstract class

* Add SHA1Builder

* Fix comment

* Fix whitespace

* Fix crashes and improve log messages

* Fix indentation for webserver

---------

Co-authored-by: Rodrigo Garcia <rodrigo.garcia@espressif.com>
Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>
2024-01-16 15:49:46 +02:00
TANAKA Masayuki
90bef0b80b
fix(esp32): Set the maximum value of AnalogRead to 4095 (#9114)
The 12-bit MAX is 4095, not 4096.
2024-01-16 15:35:08 +02:00
Juraj Andrássy
29995eb604
WiFiClient - assignment shouldn't stop connection (#9029)
there may be other copy of WiFiClient working with that connection.
let shared_ptr stop the connection when it is not refered anymore.

Co-authored-by: Me No Dev <me-no-dev@users.noreply.github.com>
2024-01-16 15:18:24 +02:00
Me No Dev
768719c68f
This is a continuation on the topic of adding IPv6 Support to ESP32 Arduino (#9016)
* IPv6 for Arduino 3.0.0

* Fix warning in WifiUdp

* remove comment / formating

* Add zone to IPAddress and update WiFiUDP and WiFiGeneric

* Add from ip_addr_t conversion and better toString implementation

* Use constant for IPAddress offset

@sgryphon is this better?

* Combine hostByName to support both IPv6 and IPv4 results

* implement logic to use v6 dns only when global v6 address is assigned and remove IPv6Address

* Rename softAPenableIPv6

* Rename mDNS methods

* fix IPAddress method to work with const address

* Some cleanup and do not print zone in IPAddress

* rename WiFiMulti method

* Fix AP DHCPS not properly working on recent IDF

* Add option to print the zone at the end of IPv6

@TD-er

* remove log prints from hostByName

* Use correct array length for listing IPv6 addresses

* Implement some Tasmota requirements

Added constructor that takes `const ip_addr_t *`.
Added `addr_type()` getter
Organize header to highlight the Espressif additions to IPAddress

* add 'const' to IPAddress::addr_type()

* Fix WiFiUdp not updating mapped v4 address

* Update WiFiServer.cpp

---------

Co-authored-by: Jason2866 <24528715+Jason2866@users.noreply.github.com>
Co-authored-by: s-hadinger <49731213+s-hadinger@users.noreply.github.com>
2024-01-15 15:24:34 +02:00
Clemens Kirchgatterer
c040f9528d
sd_diskio.cpp: return 0 instead of false when return type != bool (#9075) 2024-01-08 14:01:59 +02:00
Michael
b2e7338a5e
SD library: Fix format (#9034)
Pass correct work buffer size to f_mkfs
2023-12-28 14:46:47 +02:00
lbernstone
4d469c8f86
Added missing identifiers in esp_vfs_littlefs_conf_t (#9046) 2023-12-28 14:46:09 +02:00
Neale Petrillo
812a59aadd
Added example to demonstrate using HardwareSerial with RS485 interfaces (#8941)
* Added Serial as RS485 interface demo

* Added more detail to initial comment

* Switched to UART_MODE definitions from uart_types.h in order to accomodate some versions of Arduino core

* Update libraries/ESP32/examples/Serial/RS485_Echo_Demo/RS485_Echo_Demo.ino

Co-authored-by: Lucas Saavedra Vaz <lucassvaz@yahoo.com.br>

* Update libraries/ESP32/examples/Serial/RS485_Echo_Demo/RS485_Echo_Demo.ino

Co-authored-by: Lucas Saavedra Vaz <lucassvaz@yahoo.com.br>

* Update libraries/ESP32/examples/Serial/RS485_Echo_Demo/RS485_Echo_Demo.ino

Co-authored-by: Lucas Saavedra Vaz <lucassvaz@yahoo.com.br>

* Removed HardwareSerial.h include. Switched RTS pin to GPIO 4 for broader compatability.

* using 115200 for UART0 - console

---------

Co-authored-by: Lucas Saavedra Vaz <lucassvaz@yahoo.com.br>
Co-authored-by: Rodrigo Garcia <rodrigo.garcia@espressif.com>
2023-12-20 16:35:31 +02:00
Rodrigo Garcia
5d97e02ad7
undeprecate available() (#9027) 2023-12-20 16:26:35 +02:00
Juraj Andrássy
ad4f0acea9
Revert "WiFiSTA - allow using DHCP again after disconnecting static IP (#8848)" (#8873)
This reverts commit a9a72d1fdc.

Co-authored-by: Rodrigo Garcia <rodrigo.garcia@espressif.com>
2023-12-20 16:22:40 +02:00
vortigont
d91271019c
DNSServer refactoring, switch to AsyncUDP (#7482)
* DNSServer: switch to AsyncUDP instead of WiFiUDP

AsyncUDP offers event driven approch for handling udp dns req's
WiFiUDP hooks to loop() for packet processing and making useless malloc's each run

* DNSServer code refactoring

get rid of intermediate mem buffers and extra data copies,
most of the data could be referenced or copied from the source packet
 - removed _buffer member
 - replaced DNSQuestion.QName from uint8_t[] to char*

added sanity checks for mem bounds
optimize label/packet length calculations
other code cleanup

* DNSServer drop dynamically allocated member structs

DNSHeader and DNSQuestion structs could be created on stack
no need to keep it as obj members

* DNSServer: labels min length checks, simplified labels parser

* DNSServer use default settings for catch-all setup

 - default constructor and start() method simply runs a catch-all DNS setup
 - avoid string comparison for domain reqs in catch-all mode
 - use IPaddress class for _resolvedIP (looking for IPv6 support in future)

* CaptivePortal example refactored

 - use webserver instead of simple tcp setver
 - use redirects to allows CaptivePortal detection pop-ups in modern systems

* DNSServer status getters added

add isUp() method - returns 'true' if server is up and UDP socket is listening for UDP req's
add isCaptive() method - returns 'true' if server runs in catch-all (captive portal mode)
some doxygen comments added
start() method now keeps existing IP address if any

---------

Co-authored-by: Lucas Saavedra Vaz <lucas.vaz@espressif.com>
Co-authored-by: Me No Dev <me-no-dev@users.noreply.github.com>
2023-12-18 14:47:04 +02:00
Rodrigo Garcia
71b1d767af
Fixes Malloc (#9012)
Fixes `malloc()` call preventing it from using function pointer reference instead of actually calling the function itself.
2023-12-18 11:35:12 +02:00
Juraj Andrássy
6c919f40f1
WiFiClients.setConnectionTimeout added (#8863) 2023-12-14 17:16:07 +02:00
Jan Procházka
07fa3441c6
fix: Remove setTimeout (#8998) 2023-12-14 14:06:31 +02:00
Jan Procházka
29cde94bb9
ESPLwIPClient::setTimeout conflict fix with Stream::setTimeout (#6676)
* Removed virtual + moved socketOptions ot read/write

* Removed no needed code + edit

* removed Client::getTimeout

* removed setTimeout from WifiClient - read/write timeouts in constructor now

* Changed seconds to miliseconds in other classes relaed + examples

* Applied same changes for WifiClientSecure

* Added 0 init values to constructor

* Seconds are not rounded now

* removed +500 for previous rounding

+ unnecessary comments removed.

* fix rebased code in WifiClientSecure

* Fix rebased code

* Fix rebase code
2023-12-13 16:02:54 +02:00
David McCurley
02b384a54a
Replace new with malloc for non-class calls (#7868)
* Resolve potential crashes

* Update Esp.cpp

Resolved possible crash in EspClass::getSketchMD5().
2023-12-13 10:22:54 +02:00
Rodrigo Garcia
8d1a84557c
Wifi async scan example and fix (#8981)
* Create WiFiScanAsync.ino

* Create .skip.esp32h2

* Create README.md

* Update README.md - adds C6

* Update wifi.rst with new example

* avoid timeout with Async Mode

---------

Co-authored-by: Me No Dev <me-no-dev@users.noreply.github.com>
2023-12-11 13:34:40 +02:00
Mattias Schäffersmann
51cb927712
Fix race condition in WiFiGenericClass::hostByName (#8672)
dns_gethostbyname, as used in hostByName, is required to run in lwIP's TCP/IP
context. This can be verified by enabling LWIP_CHECK_THREAD_SAFETY in the
sdkconfig.

Calling dns_gethostbyname from the Arduino task can trigger race conditions
in lwIP or lower layers. One possibility is a corruption of IDF's Ethernet
buffers, causing an unstoppable flood of "insufficient TX buffer size" errors,
effectively severing all Ethernet connectivity.

This patch makes sure to call dns_gethostbyname from lwIP's TCP/IP context.
2023-12-05 18:54:53 +02:00
David McCurley
2696a127de
Example: ResetReason2 (#8105)
* Create ResetReason2.ino

* Separate Reset Examples

Moved examples to separate sub folders
2023-12-05 17:23:40 +02:00
Daniel Egnor
67c027ce17
Add documentation on threading issues with WiFi.onEvent() to examples (#8081)
* Compile error if CONFIG_FREERTOS_HZ != 1000

* add a check at the CMake level, per feedback

* fix a punctuation glitch

* Remove `_Static_assert` per feedback

* add documentation on threading issues with WiFi.onEvent()

* more comments

* thin out comments, add docs

* Update WiFiProv.ino merge conflict issue fixed

* Added the CLK type and MAC from eFuse to Ethernet begin

* Fixed the order and arguments on the Ethernet begin function

---------

Co-authored-by: Pedro Minatel <pedro.minatel@espressif.com>
Co-authored-by: Pedro Minatel <pminatel@gmail.com>
2023-12-05 13:50:26 +02:00
Jan Procházka
7ecde87701
UpdateClass::setMD5 store expected md5 in lowercase (#8959)
* set _target_md5 to lowercase

* fix errors
2023-12-05 13:30:26 +02:00
Marcel Toele
1a7a893497
Add USB MIDI support to libraries/USB (#8166)
* Added USBMIDI support to libraries/USB

* Added MIDI examples to libraries/USB

* Added missing newline at end of file to MidiController.ino

* Added USBMIDI.cpp to CMake file

* Fix narrowing conversion warning in USBMIDI.cpp

* Fix incomplete initializers warning in USBMIDI.cpp

* Apply suggestions from code review

Co-authored-by: Lucas Saavedra Vaz <lucassvaz@yahoo.com.br>

* add skip files for C6+H2

* remove already patched workaroud for bug

* move #define to top of file

---------

Co-authored-by: Me No Dev <me-no-dev@users.noreply.github.com>
Co-authored-by: Lucas Saavedra Vaz <lucas.vaz@espressif.com>
Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com>
Co-authored-by: Lucas Saavedra Vaz <lucassvaz@yahoo.com.br>
2023-12-05 10:42:53 +02:00
RefactorFactory
9a9ec09f63
Make USBHIDKeyboard work at boot (#6964)
1. Like a real keyboard, the USB interface descriptor will have an interface
   subclass of boot and an interface protocol of keyboard. This will cause
   some PC BIOS to send a SET PROTOCOL BOOT request to the device.

2. When the device sends reports to the host, if the host requested boot
   protocol, don't send a report ID because boot protocol does not use report
   IDs.

3. To work with some simple PC BIOS:
   a. Use endpoint address of 1 for input and output.
   b. Use separate reports for the shift key. These extra reports can be
      disabled by calling USBHIDKeyboard::setShiftKeyReports(false).

Co-authored-by: Rodrigo Garcia <rodrigo.garcia@espressif.com>
Co-authored-by: Me No Dev <me-no-dev@users.noreply.github.com>
Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com>
2023-11-30 20:53:25 +02:00
Matthias Hertel
89fd90d669
Supporting ETag http headers on static files (#7687)
* Supporting ETag http headers on static files

* Supporting ETag http headers on static files

* WebServer Example and Doku

* new template for readme added.

* example updated, som more TRACE output.

* better TRACE formatting.

* upload and trace enhancements

* Create .skip.esp32h2

* Update libraries/WebServer/examples/WebServer/data/index.htm

Co-authored-by: Lucas Saavedra Vaz <lucassvaz@yahoo.com.br>

* files.htm trailing newLine

---------

Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com>
Co-authored-by: Lucas Saavedra Vaz <lucassvaz@yahoo.com.br>
2023-11-30 20:52:49 +02:00
Chester
5fcdb8412d
Kernel panic when delete BLEClient object with descriptor characteristic (#8010)
* Update BLERemoteCharacteristic.cpp

Fix kernel panic issue when trying to release BLEClient when the target device have a ble descriptor.

* Update BLERemoteCharacteristic.cpp

Co-authored-by: Lucas Saavedra Vaz <lucassvaz@yahoo.com.br>

---------

Co-authored-by: Lucas Saavedra Vaz <lucas.vaz@espressif.com>
Co-authored-by: Lucas Saavedra Vaz <lucassvaz@yahoo.com.br>
2023-11-30 14:26:23 +02:00
Luca Burelli
e97a519032
fix: pin_remap: make periman APIs private and non-remapped (#8940)
Turns out that disabling the periman APIs from remap has a negligible
effect on the source: the core is already excluded from remapping, as
are most of the libraries. It's also expected to be a private API not
exposed by default.
This patch removes it from both esp32-hal.h and io_pin_remap.h,
adjusting the relevant libraries.
2023-11-29 16:46:03 +02:00
Vlastimil Hajek
8c150e2184
feat: adding possibility to manually set MD5 checksum for HTTP update (#7629) 2023-11-29 15:53:07 +02:00
Me No Dev
5ca45bebdf
Add support for I2S Slot Mask (#8936)
Needed for some setups, where only the right channel is being used.
2023-11-29 15:48:34 +02:00
dpnebert
c1417e9b7d
Added methods to remove service UUID from BLEAdvertising (#8747)
* Modified 'BLEAdvertising.h' & 'BLEAdvertising.cpp'

Added three methods for removing service UUID from BLEAdvertised

* Update BLEAdvertising.cpp

Changed 'i' to 'index'

---------

Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com>
2023-11-29 14:26:48 +02:00
tobozo
bd39fcfac6
Absolute mouse support (was #6331) (#8831)
* Added absolute mouse support

* make click() virtual

---------

Co-authored-by: Rodrigo Garcia <rodrigo.garcia@espressif.com>
Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com>
2023-11-29 14:25:26 +02:00
Christian Ferbar
dbf0b18d49
Bluetooth-classic: release BLE memory when BT classic only is requested (#8051)
* esp32-hal-bt.c free Bluetooth LE memory if CONFIG_BTDM_CONTROLLER_MODE_BR_EDR_ONLY is set

BLE memory can be released if bluetooth-classic - only is requested

* tStart( add error output

* ble mem_release only for esp32

* disable BLE with BT_MODE define

* BluetoothSerial add begin()+disableBLE; add memrelease

* btStart with BT_MODE parameter

* beautification

* Update BluetoothSerial.cpp fix wrong merges

---------

Co-authored-by: Me No Dev <me-no-dev@users.noreply.github.com>
2023-11-29 12:44:23 +02:00
Luca Burelli
7d26b070d7
Add support for the Arduino Nano ESP32 on 3.x branch (#8909)
* [pin_remap 1/3] platform: define ARDUINO_CORE_BUILD when building core files

* [pin_remap 2/3] core,libs: add pin remap hooks

* platform: remove previous build options if file is missing

"touch" would create the file if not present, but not delete its
contents if a previous run left the file in the build dir.

* platform: make debug_custom.json file customizable by board

* platform: fix default debug prefix

"debug.toolchain.prefix" must end with a dash, since only the tool name is
appended to this string.

The reason this is not a major issue is that the "debug_custom.json" file
(copied in the sketch directory when debugging is enabled) forces its own
prefix. And to make things more interesting, the "toolchainPrefix" entry
in that file should _not_ end with a dash.

* [pin_remap 3/3]: add Arduino Nano ESP32 board

* fix: periman: include it by default, add include guard

* fix: io_pin_remap: adjust for new perimap APIs

* fix: libraries: manually handled pin remapping files

Previously all libraries invoked either high-level APIs (transparently
remapped, like the user sketch) or low-level ESP-IDF calls (where the
remap to GPIO numbers had to be added manually).

Since 3.x, some of these are mixed (for example, periman* APIs are
remapped, while soc* are not). This must be handled by disabling the
automatic API remapping and making sure all calls use GPIO numbers.

* feat: show remapped pins in chip debug reports

---------

Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com>
Co-authored-by: Me No Dev <me-no-dev@users.noreply.github.com>
2023-11-29 12:43:59 +02:00
dpnebert
595dc01830
Added example 'get mac address' (#8618)
* Example sketch prints MAC for different interfaces

Interfaces described in documenation: https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/system/misc_system_api.html#mac-address

* Update README.md to include 'MacAddress'

* Add files via upload

* Delete libraries/ESP32/examples/MacAddress/GetMacAddress.ino

* Delete libraries/ESP32/examples/MacAddress/GetMacAddress/GetMacAddress.ino

* Delete libraries/ESP32/examples/MacAddress/GetMacAddress/MacAddress directory

* Add files via upload

* Add files via upload

* Adds necessary MAC header file

* Reverting - moving to the sketch

* Adds include with esp_mac_type_t values

---------

Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com>
Co-authored-by: Rodrigo Garcia <rodrigo.garcia@espressif.com>
2023-11-29 12:11:46 +02:00
Mirco Pizzichini
db7b3495d5
Add lock to protect concurrent i2c transactions performed by different tasks (#8127)
Co-authored-by: Me No Dev <me-no-dev@users.noreply.github.com>
2023-11-29 11:42:56 +02:00