* 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>
* 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>
* 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>
* 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>
* 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
* 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>
* 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>
* 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
* 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 #8760Closes#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>
* 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>
* 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>
* 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>
* [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
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.
* 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>
* 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>
* 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.
* 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>
* 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
* 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>
* 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
* 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>
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>
* 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>
* 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>
* 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>
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.
* 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>
* 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>
* 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
* 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>
* 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>
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
* 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>
* 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>
* 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>
* 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
* 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
* 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>
* (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>
* 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>
* 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>
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.
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.
* 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
* 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.
* 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>
* 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>
* 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>
* 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
* 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
* 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>
* [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>
* 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>
Update subpart ("PostArg") parsing to ignore extra headers instead of silently failing.
Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>
* 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>
* 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>
* 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>
* 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>
* 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>
* 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.
* 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>
* 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>
* 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>
* 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
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>
* 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
* 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>
* 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>
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>
* 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>
* 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>
* 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>
* 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
* 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>
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.
* 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>
* 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>
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>
* 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>
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.
* 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>
* 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>
* [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>
* 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>
* Update WiFiClient.h
Added missing getSocketOption() with full access to level and option
* Update WiFiClient.h
* Handle timeout settings below 1 second
Fix error with connect timeout settings below 1000ms.
Add getsocketoptions function.
* Add cast for setsockopt length
---------
Co-authored-by: Me No Dev <me-no-dev@users.noreply.github.com>
* Added Bandwith setting method
* Separted AP and STA on it's own class each
* Missing WiFi
* Rename for consistency
---------
Co-authored-by: Me No Dev <me-no-dev@users.noreply.github.com>
esp8266 and esp32 server.available() is not implemented as documented
it is implemented like server.accept() is documented by Arduino
Co-authored-by: Rodrigo Garcia <rodrigo.garcia@espressif.com>
* Extended bus types for peripheral manager
* add extra_type to peripheral manager
* Fix function call
* Fix check for no extra_type
* Add extra_type for SD and ETH CS pin
* added bus_num and bus_channel to pin structure
* update printPerimanInfo with new fields
* replaced setting bus to INIT with DetachPin call
* add defines for extra attributes
* use new required parameters in perimanSetPinBus
* function rename
* removed duplicate define
* Update print format
---------
Co-authored-by: Rodrigo Garcia <rodrigo.garcia@espressif.com>
to change initial WiFi.status() because WL_NO_SHIELD
is checked in any generic Arduino WiFi example
Co-authored-by: Rodrigo Garcia <rodrigo.garcia@espressif.com>
* IDF release/v5.1 b6a66b7d8c
* Fix CI - RMakerCustomAirCooler.ino
No use of `#include "led_strip.h"` in the code
---------
Co-authored-by: Rodrigo Garcia <rodrigo.garcia@espressif.com>
* Update/upgrade OTAWebUpdater.ino example
* Wrong side of the MAC address in ssid
* Better not to cheat it on an example :)
* Changes requested by @me-no-dev
* improve neopixel definition for all boards
* Improve NeoPixel definition for all boards
* neopixelWrite uses Peirpheral Manager now
The function can now be used for many GPIOs in the same sketch by using Peripheral Manager attach/detach, not being necesary to worry about initialization.
* improve error message
* check if pin is RGB_BUILTIN
* fixes boards that don't RGB_BUILTIN
* Uses IDF Managed Components
This changes is targeted to be used within Arduino Lib Builder and with projects that use Arduino as IDF Component.
* Fixes RainMaker QR code
Fixes RainMaker in order to use it as Managed Component and with the latest RainMaker release.
* Removes Camera Component
* SR Component only needed for the S3
* Serial as a #define
* Typo
* fixes USBCDC declaration
* Fixes Examples
* simplifies examples
* Adds USB Serial Events
* adds error msg when ESP32 is used with USB
* [I2S][SR] Add new I2S library and Sound Recognition support
* periman + TDM and PDM support
* separated init function + default values for pins
* fix SR example
* fix init functions
* remove old I2S from CmakeList
* Add ESP_I2S and ESP_SR to Cmakelist includedirs
* TDM slot_mask fix
* Peripheral manager pin check fix
* Compile ESP_SR Arduino code only if ESP-SR is available as component
* Guard I2S modes, depending on what is supported by the chip
* add check if i2s is supported
* Remove old I2S Example
---------
Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com>
* Fix memory leak and undefined behavour in Updater #7984
* Update error message
Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com>
* Update error message
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>
Co-authored-by: Me No Dev <me-no-dev@users.noreply.github.com>
* Adds Analog Continuous mode API
* fix when stopping/starting ADC data are not complete
* Added example
* fix size check
* update frequency in example
* set buffer to NULL if error occurs
* add docs
* set buffer to null on error
* fix example
* update docs
* fix example
* change return value to bool type
* updated adc modes description in docs
* Add empty line at the end of sketch
* Initial changes to compile under ESP-IDF v5.1
* Initial import for ESP-IDF v5.1 libs
* Update toolchain
* Update esp32-hal-psram.c
* Add missing LDs
* Update platform.txt
* Stop some CI jobs, because they will always fail
* Fix examples
* Update app_httpd.cpp
* Update ResetReason.ino
* Warnings fixes
* Added the example guideline and template (#7665)
* Added the example guideline and template
* PR review changes with some typos and grammar fixes
* Changes according to the PR review
* Added ESP32-S3 link to the datasheet (#7738)
* Update HiFreq_ADC.ino
* Replace periph_ctrl.h use because of deprecation
* Replace esp_spi_flash.h use because of deprecation
* Add includes to male mDNS::enableWorkstation compile
* Fix ssl_client mbedtls_pk_parse_key callback
* Update temperature sensor driver
* Allow sketch_utils to compile with arduino-cli
* Run CI with arduino-cli
* Fix arduino-cli CI build on Windows
* Refactor platform.txt to not use components installed through the board manager when running from git
* Initial Peripheral Manager Implementation
* Update SigmaDelta driver to use the new ESP-IDF driver API
* Small improvements to peripheral manager and SigmaDelta
* Remove deleted function from SigmaDelta header
* Update DAC driver to use the new ESP-IDF driver API
* Adds softAp(String) to make it compatible with ESP8266 (#7801)
* Fix commentary (#7800)
Minor fix based on observation done in https://github.com/espressif/arduino-esp32/issues/7795#issuecomment-1416868611
* add adafruit new board feather esp32s2 reserve tft (#7794)
* bugfix: add <stdint.h> for uint8_t to avoid compilation failure (GCC 11.2.0) (#7744)
* Adding 3rd party boards for VALTRACK-V4-VTS-ESP32-C3 & VALTRACK-V4-MFW-ESP32-C3 (#7735)
* Added VALTRACK-V4-VTS-ESP32-C3 board definition
Created pins_arduino.h & made changes to boards.txt with necessary changes
* Modified the URL
* Renamed json
* renamed all auRL
* Adding VALTRACK-V4 series board definitions
Added VALTRACK-V4-VTS-ESP32C3 & VALTRACK-V4-MFW-ESP32-C3 board variants
* Adding VALTRACK-V4 series board definitions
Added VALTRACK-V4-VTS-ESP32C3 & VALTRACK-V4-MFW-ESP32-C3 board variants
* Reverted package_esp32_index.template.json
restored package_esp32_index.template.json from edits
* Reverted package_esp32_index.template.json
Added new line to package_esp32_index.template.json
* Update Platformio CI (#7725)
* WiFiClient example fix (#7711)
* Modified WiFiClient example to use thingspeak instead of non-functionig sparkfun
* Moved instructions to README
* Fixed spelling
* Added link to S3 datasheet
---------
Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com>
* Mirror update from Heltec repository (#7709)
Heltec updated the I2C pins in b10f4bf85d
* Fixes BLE data printing (#7699)
* Fixes BLE data printing
BLE data has no '\0' terminator, therefore it can't be printed as a regular C string.
This fix just prints the BLE data based on its length.
* Simplify printing to a single call
* split menu options + lora_32_V3 fix (#7697)
* Change header gaurd name (#7696)
* Fix Name (#7691)
Wrong name in definitions.
* Fix error in WiFiClient.cpp where the connect function fails for timeouts below 1 second (#7686)
* Update WiFiClient.cpp
This change will allow specifying connect timeouts below 1 second. Without this change, if connect timeouts under 1 second are given, the connect defaults to 0ms and fails.
This will also allow timeouts in fractions of seconds, e.g. 1500ms. Without this change, connect timeouts are truncated to full second increments.
* Make parameter timeout_ms clear
* Change connection timeout_ms name for clarity
---------
Co-authored-by: Rodrigo Garcia <rodrigo.garcia@espressif.com>
* fixed the function header (#7674)
* fixed the function header
* fixed function name and paramaters
---------
Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com>
* Ticker fix solving #6155 (#7664)
* Wrapped Ticker functions with #pragma disabling -Wcast-function-type
* Revert "Wrapped Ticker functions with #pragma disabling -Wcast-function-type"
This reverts commit 160be7e67a10d01b6e44c4bf2521c0ccd6348976.
* Fixed Ticker example
* Modified Ticker example
* Fixed LED_BUILTIN err for ESP32
---------
Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com>
* setPins fix ESP32 "specified pins are not supported by this chip." (#7646)
[ESP32: SDMMCFS::begin hardcodes the usage of slot 1, only check if the pins match slot 1 pins.]
setPins() was testing pins D1, D2 and D3 all against D1 ... fine in 1 pin mode when all are -1 not so much if you're trying to get 4 pin mode working.
I now see this function doesn't really do anything on the ESP32...accept now correctly checks that you are trying to use the slot 1 pins.
Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com>
* Allow passing IP as connect method parameter in WiFiClientSecure and skip unnecessary host-ip conversions (#7643)
* Add LED_BUILTIN* definitions and initialization for LEDs to stop them floating. (#7636)
Co-authored-by: Rodrigo Garcia <rodrigo.garcia@espressif.com>
* Expand path to tinuf2 image when checking existence in platformio-build.py (#7631)
* Expand path to tinuf2 image when checking existence
* More isFiles fixed
* Remove (useless) trailing semicolon from Print.cpp (#7622)
* ADD: New variant Edgebox-ESP-100 (#7771)
* ADD: New variant Edgebox-ESP-100
* FIX: Edgebox-ESP-100 Board.txt usb mode option change back to default value as ESP32S3
* Add Crabik Slot ESP32-S3 board (#7790)
* Added Crabik Slot ESP32-S3
* Adding CPU frequency settings and removing excess from partition scheme settings
* new variant LilyGO T-Display-S3 (#7763)
* new variant LilyGO T-Display-S3
https://github.com/Xinyuan-LilyGO/T-Display-S3
* Add boards.txt definition
---------
Co-authored-by: Me No Dev <me-no-dev@users.noreply.github.com>
* Update get.py to support Apple ARM64
* Update package_esp32_index.template.json
* WString Return bool (#7774)
* Add Roboheart Hercules development board to the esp32-core (#7672)
* added Roboheart Hercules pin definitions and board.txt entries
* added package_roboheat.json for prototyping
* Roboheart Hercules pins
* Updated the pins
* Delete package_roboheart.json
* Requested changes
---------
Co-authored-by: renebohne <rene.bohne@gmail.com>
* Reword "ESP-IDF as Component" (#7812)
I think "Arduino as an ESP-IDF component" or just "As ESP-IDF component" instead of "ESP-IDF as Component" is more correct way to name the link.
1. "ESP-IDF as Component" would imply that ESP-IDF is some sort of library for Arduino, which is (IMO) misleading, because it's true the other way around.
2. It's written as "Arduino as an ESP-IDF component" on the webpage it points to as well.
- Also I removed the capitalization from "Component" as I have not found a reason why is it capitalized.
* add new board Adafruit Feather ESP32-S3 Reverse TFT (#7811)
* Multi threading examples (tasks, queues, semaphores, mutexes) (#7660)
* Moved and renamed example ESP32/FreeRTOS to MultiThreading/BasicMultiThreading
* Added dummy files
* Modified original example
* Fixed BasicMultiThreading.ino
* Added Example demonstrating use of queues
* Extended info in BasicMultiThreading
* Renamed Queues to singular Queue
* Added Mutex example
* Added Semaphore example
* Moved info from example to README
* Moved doc from Mutex to README
* Added Queue README
* Removed unecesary text
* Fixed grammar
* Increased stack size for Sempahore example
* Added headers into .ino files
* Added word Example at the end of title in README
* removed unused line
* Added forgotten README
* Modified BasicMultiThreading example
* Added missing S3 entry in README
* moved location
* Update ESP-IDF libs
* Update CMakeLists.txt
* Update esptool to v4.4
* Add function timerAttachInterruptFlag (#7809)
* Update esptool to v4.5
* ADC refactoring (#7827)
* Adc refactored + periman implementation
Peripheral manager still needs to be checked if the implementation is right.
* switched to working solution for milivolts read
* Periman detachbus fix
* coding style
* fix CI warnings
* fix FreeRTOS example
* Update ETH.cpp
* Update FunctionalInterruptStruct.ino
* Update package_esp32_index.template.json
* Update package_esp32_index.template.json
* Fixes for the latest IDF v5.1
* update esp-idf libs and toolchain
* Turn OFF auto crystal frequency for ESP32 (needed by TWAI)
* Update examples
* Switch build to mostly use flags from files
Includes can not be done this way
* Reorganize flag files
* Optimize chip build flags further
* Revert defines from file. MBEDTLS_CONFIG_FILE does not properly expand
* Add support for includes and defines from file
* Replace old sdk path references in platform.txt
* use gcc-ar (#8013)
* Makes F_CPU generic for all SoC (#8007)
Based on CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ that is correctly defined in the sdkconfig file for each SoC.
* TIMER refactoring (#7904)
* refactor using GPtimer
* Updated timer HW test
* fix examples
* Add v2.0.7 in issue template (#7871)
* refactor using GPtimer
* Updated timer HW test
* fix examples
* Revert "Add v2.0.7 in issue template (#7871)"
This reverts commit fcc3b17d62ff57861f8913ca1f142fd5163b7457.
* Update upload-artifact to v3 in HW CI
* Revert "Update upload-artifact to v3 in HW CI"
This reverts commit 1ba228071718ba37c4e26d98db22f77b2a7364a6.
* replace resolution with frequency
* remove count_down option
* countup removed from examples + header
* Refactored timer object
* code cleanup + examples and tests fixes
* TimerAlarm fix
---------
Co-authored-by: Vojtěch Bartoška <76958047+VojtechBartoska@users.noreply.github.com>
* [Docs] ADC and Timer API Update (+some docs fixes) (#7906)
* updated docs
* remove hall sensor docs
Removed Hall sensor documentation as its no longer supported in IDF-5
* Fixed ESPNow examples location in docs
* Last timer refactored API + gpio small fix
* AlarmWrite fix
* Fixes APLL/PLL with RTC Frequency (#8025)
log_d() was displaying APLL for any SoC, but S3 and C3 has not such option, causing compilation errors.
* Update IDF libs and fix OPI PSRAM on S3
* Add setMode function HardwareSerial.c to set the esp32 uart mode for use with RS485 auto RTS (#7935)
* Added setMode function to set the esp32 uart mode
Used to set the esp32 uart mode for use with RS485 Half Duplex and the auto RTS pin mode. This will set/clear the RTS pin output to control the RE/DE pin on most RS485 chips.
* Add Success (bool) return in some functions
* Add Success (bool) return code to some functions
* Add Success (bool) return to some functions
* Add Success (bool) return to some functions
* Fix uartSetRxTimeout return type
---------
Co-authored-by: Rodrigo Garcia <rodrigo.garcia@espressif.com>
* Add support for esp-elf-gdb
* WFG Crashfix (#8044)
* Update component libs
* IDF release/v5.1 (#8061)
* IDF release/v5.1 bb9200acec
* Update Esp.cpp
* IDF release/v5.1 420ebd208a
* Update esp32-hal-psram.c
* Switch SDK to be an external package
* fix path (#8096)
* Makes UART work at any APB Frequency (#8097)
Fixes HardwareSerial to work with IDF 5.1 on any CPU/APB Frequency (240MHz to 10MHZ), including user created low power modes.
* Add required callbacks for TinyUSB DFU
* Update version to 3.0.0
* Add ESP.getCoreVersion() and update ESP.getChipModel()
* Update timer hal for the latest 5.1
* Use separate RX and TX buffer sizes in HTTP client
optimizes download by allowing up to 4K packets to be received
* Rename clock tree enum name in latest 5.1
* ESP32-H4 support was removed in ESP-IDF v5.1
* IDF release/v5.1 2004bf4e11 (#8165)
* Deinit previous bus first (#8180)
* TIMER - add timer_started flag, fix timerEnd() + timer HW test (#8135)
* Add timer_started flag and stop before disable
* Fix timer HW test
* TOUCH - Peripheral manager implementation (#8129)
* Touch periman implemented
* Deinit previous bus first
* LEDC Refactoring - Peripheral manager implemented (#8126)
* LEDC periman implementation
* Fix examples
* Rework tone
* Update ledc docs
* fix missing bracket
* Update analog funtions esp32-hal.h
* Update CameraWebServer example
* Fix HiFreq_ADC example
* minor fixes - typos
* Avoid calling tone/notone when tone already runs on dif. pin
* Remove unused channels_resolution
* GPIO - Peripheral manager implementation (#8179)
* periman-implementation
* fix RGB_BUILTIN and remove space
* Enforces more consistency into Peripheral Manager (#8188)
* Avoid log_i() message the first time a bus is assigned
* Prevent operation with ESP32_BUS_TYPE_INIT
* keeps coding style
* do not print messages on INIT bus type
* [Arduino Core 3.0.0] RMT IDF5.1 Refactoring (#7994)
* RMT IDF5.1 refactoring
* Fixes initial value setting
* removed rmtRead() with user callback
* simplify/remove Read data structure
* Deep API simplification
* fixes the examples
* fix rmt.h
* adds support to APB different frequencies
* fixes CI and not defined RGB_BUILTIN
* new RMT API and examples
* fixing commentaties
* Update esp32-hal-rgb-led.c
* changes Filter API
* Fixes example with Filter API
* Update PlatformIO scripts for the upcoming 3.0 core (#8183)
* Update PlatformIO scripts for the upcoming 3.0 core
* Dynamically select proper framework-arduinoespressif32-libs package
With this change the dev-platform will be dynamically configured to
pull the latest .zip package with precompiled libraries from extracted from
package_esp32_index.template.json
* free memory on detach (#8264)
* SPI - Peripheral manager implementation (#8255)
* spi periman implementation
* fix header file
* remove unused struct
* fix missing braces
* Update esp32-hal-rmt.c (#8216)
Optimizing Peripheral Manager Test
* I2C - Peripheral manager implementation (#8220)
* i2c-master periman initial commit
* i2c-master make detachbus static + comment remove
* i2c-slave periman implementation
* SetPinBus to INIT on i2cDeinits
* Fix slave pins deinit
* remove dbg logs
* set ret to ESP_FAIL instead of returning
* Fix warnings in hal-spi caused by pariman transition
* Update esptool.py to version 4.6
* Add platform support for ESP_SR
* Add USB Type and valid pin check to periman
* replace bus with spi->num+1 (#8279)
* Remove default pins from SPI HAL
* Add commented out handlers for esptool.js in TinyUSB CDC
For future use
* Add build defines for host os and fqbn (for debug purposes)
* Provide proper memory caps total size
* Update Esp.cpp
* SDMMC - Peripheral manager implementation (#8289)
* sdmmc periman implemented
* save pins when SOC_SDMMC_USE_IOMUX
* IDF release/v5.1 4bc762621d (#8292)
* Adds missing pinMode (#8312)
* Adds missing pinMode
The example code lacks a pinMode() to initialize the GPIO 0 (button). In Arduino Core 3.0.0, it prints an error message when trying to read a not initialized GPIO.
* Update KeyboardLogout.ino
Adds <buttonPin> to keep code standard
* Update KeyboardReprogram.ino
Adds <buttonPin> to keep code standard
* LEDC Fade implementation (#8338)
* fade API + pointer fixes
* Add fade api
* Add fade example
* update ledc docs
* remove unused variables
* fix path to example
* Adds USB to Peripheral Manager - Arduino Core 3.0.0 (#8335)
* ETHERNET - Peripheral manager implementation (#8297)
* Peripheral manager implemented
* remove unused variable
* Add all RMII pins
* fix typo
* Adds HardwareSerial to Peripheral Manager Arduino 3.0.0 (#8328)
* Do not limit ETHERNET in periman to only ESP32. SPI is also an option
* Initial support for ESP32-C6 (#8337)
* Add checks for SOC defines (#8351)
* Add checks for SOC defines
* Add SoC checks to BLE library
* fix i2c compilation error
* fix wrong placement of include
* add check to SPI library
* add check to USB library
* add checks to Wire library
* Feature/esp32h2 support (#8373)
* Initial support for ESP32H2
* Additional changes for ESP32H2
* Update libs for ESP32H2
* Fix flashing on ESP32-H2
* Fix GPIO Configs for ESP32-C6 and ESP32-H2
* Update Timer test sketch
* Fix upload flash parameters
* Use ets_write_char_uart instead of ets_printf in log_printfv
* Print full chip report when log level is sufficient (#8282)
* ESP32-C3 does not have ets_write_char_uart
* Fix BLE gap event name
* HW Testing - Pytest update (#8389)
* update tests requirements
* remove already handled components
* Update version of pytest
* Add missing ESP32-H2 to hil.yml
* Updated FreeRTOS names (#8418)
* HW Testing - ESP32-C6 + ESP32-H2 fixes (#8404)
* add C6/H2 to tests cfg.json
* remove ,
* workflow runs-on runner by matrix
* Add need for arduino tag to select runner
* Add cryptography to requirements.txt
* Removed duplicate TX1 define for H2 (#8402)
* Fix broken examples
* Fixes RMT filter & idle timing and setup (#8359)
* Fixes Filter and Idle parameter to uint32
* Fixes Filter and Idle setup
* Fixes it to 5.1Libs branch
* fix RMT CLK source and Filter API
* fixes missing ;
* fixes missing ;
* fixes RMT example
* IDF release/v5.1 a7b62bbcaf (#8438)
* Add workflow to build executables from python scripts (#8290)
* Add workflow to build executables from python scripts
* Push binary to tools
* Enable executable signing on Windows
* Update get.py
* Push binary to tools
* Try with multiple files
* Try more actions
* Try powershell
* Restore tools so they do not get rebuilt
* Finalize scripts
* Push binary to tools
* App rollback should be after PSRAM is initialized
* Correcting RX1 to GPIO4 and TX1 to GPIO5 to be consistent with documentation. Previous pin use works but is inconsistent with C6 docs.
* Fixes Memory Leak (#8486)
* fixes preprocessor test (#8485)
* fixes preprocessor test
When using `#define USE_SOFT_AP`
Change
`&& not USE_SOFT_AP` ==> `&& !defined(USE_SOFT_AP)`
* Adds any BLE capable device in WiFiProv.ino
Removing ESP32 restriction for BLE Provisioning.
* fix flash mode read out for C6
* Add option for custom partitions without restrictions
* SD_MMC update (#8298)
* Updated SD_MMC lib and examples
* Removed getter implementation and commented usage in examples
* squashed updates
* IDF release/v5.1 f0437b945f (#8599)
* Update package_esp32_index.template.json
* Fix printf format build error in BTAdvertisedDeviceSet.cpp
---------
Co-authored-by: Pedro Minatel <pedro.minatel@espressif.com>
Co-authored-by: Rodrigo Garcia <rodrigo.garcia@espressif.com>
Co-authored-by: Ha Thach <thach@tinyusb.org>
Co-authored-by: Martin Turski <quiret@vfemail.net>
Co-authored-by: raviypujar <raviypujar@gmail.com>
Co-authored-by: Jason2866 <24528715+Jason2866@users.noreply.github.com>
Co-authored-by: Tomáš Pilný <34927466+PilnyTomas@users.noreply.github.com>
Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com>
Co-authored-by: Daniel Berlin <dberlin@dberlin.org>
Co-authored-by: Nima Askari (نیما عسکری) <nimaltd@yahoo.com>
Co-authored-by: rtpmsys <106180646+rtpmsys@users.noreply.github.com>
Co-authored-by: bytiful <55647551+bytiful@users.noreply.github.com>
Co-authored-by: tmfarrington <tmfarrington@users.noreply.github.com>
Co-authored-by: Krzysiek S <chris.streh@gmail.com>
Co-authored-by: surt <carl.olsson@gmail.com>
Co-authored-by: Max Scheffler <max.scheffler@pm.me>
Co-authored-by: Clemens Kirchgatterer <clemens@1541.org>
Co-authored-by: Peter Pan's Techland <twinkle-pirate@hotmail.com>
Co-authored-by: Roman <programmeofficemilkyway@gmail.com>
Co-authored-by: Eistee <Eistee82@users.noreply.github.com>
Co-authored-by: David McCurley <44048235+mrengineer7777@users.noreply.github.com>
Co-authored-by: Gaya3N25 <30388176+Gaya3N25@users.noreply.github.com>
Co-authored-by: renebohne <rene.bohne@gmail.com>
Co-authored-by: Olivér Remény <25034625+remenyo@users.noreply.github.com>
Co-authored-by: davidk88 <david.kotar@gmail.com>
Co-authored-by: Vojtěch Bartoška <76958047+VojtechBartoska@users.noreply.github.com>
Co-authored-by: James Armstrong <jamesarmstrong3@me.com>
Co-authored-by: Valerii Koval <valeros@users.noreply.github.com>
Co-authored-by: Peter G. Jensen <root@petergjoel.dk>
* Updated preferences.rst
* Added into FAQ info about SPIFFS failed mount
* Updated troubleshooting
* Moved SPIFFS paragraph from FAQ to troubleshooting
* Minor updates
* Updated troubleshooting
* Updated SD README files and example comments
* Updated troubleshooting with SD issue
* Added note about S3 pins
* Updated SDMMC test setPins calls + added definition for default pins
* Updated SD_MMC comments
* Added pin table to SD_MMC readme
* Updated table in SD_SPI
* Updated based on comments
* Update io_mux.rst
* Update README.md
In WiFiSTA you can ask for the subnet mask, but not in WiFiAP.
Only the CIDR is reported.
Therefor the missing method is added to have the same features in softAP as well.
This PR fixes an issue of multiple device callbacks (one callback per device) were not getting registered and invoked.
Consider an example where I create two devices, a switch and a fan; each of them having their own write callbacks. On controlling either switch/fan through Rainmaker app, the callback that got registered at last gets invoked. This is also seen in the issue reported in #8231
Resolves deprecation warnings in CameraWebServer.ino. pin_sscb_sda -> pin_sccb_sda. pin_sscb_scl -> pin_sccb_scl.
The variables are in the same union and are identical.
* Makes sure it can be tested with Windows 10/11
Initial code had no effect with Win10/11 because BUTTON_START was not recognized.
This change makes it visible in the Windows Game Controller Testing TAB.
* Examples tests all USB gamepad APIs.
It is possible to change the selected gamepad button when pressing BOOT (long/short press).
The selected button is used as parameter to change R/L Stick and Trigger as well as the Hat.
* Remove __FlashStringHelper from ESP32, it's not needed - all the files using it are different from their ESP8266 counterparts anyway.
* Revert removal of class __FlashStringHelper forward for continued compatibility with external libs
* Improved fix, works for libs that return const __FlashStringHelper*
* Inline all wrappers using const __FlashStringHelper*.
* new variant Seeed XIAO_ESP32S3
* add pin define for camera example
* Remove excess comments and fix minor errors
---------
Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com>
* Changed data type of temperature
* Changed data type in EddystoneTLM class and example
* Revert "Changed data type in EddystoneTLM class and example"
This reverts commit 1f3a9414ee13341f80bd6d51cdbd57254aadfe97.
* Draft of Eddystone TLM example
* Adds MACROs to convert beacon temperature
2 Macros
EDDYSTONE_TEMP_U16_TO_FLOAT(tempU16) - takes the TLM BigEndian 8.8 fixed point representation and returns its float value
EDDYSTONE_TEMP_FLOAT_TO_U16(tempFloat) - takes a float (temperature) and returns its BigEndian 8.8 fixed point representation
* Fixed temp
* Changed to conform with PR comments
* Fixed comment on closing bracket
* Prints negative TEMP big endian as just 2 bytes
* Extacts correct Eddyston Service Data
* Fixes BLEEddystoneTLM::toString() negative temp
* Fixes URL field length
* Fixes Eddystone URL decoding
* Fixes MSB for iBeacon UUID
iBeacons use big endian BLE fields.
* Fix to detect iBeacon that also has Service UUID
This fix makes the BLE_iBeacon.ino to work correctly with the BLE_Beacon_Scanner.ino example
---------
Co-authored-by: Rodrigo Garcia <rodrigo.garcia@espressif.com>
* Remove inline code comments for the struct description
* Renamed ESPNow examples
* Changed example from C++ class to C struct
* Updated MultiHomedServers
* Updated BT Serial examples
* Added short overview of exaples - missing Enterprise
* Added draft of Enterprise header note
* Fixed note in README
* Fixed compilation error
* Changed FunctionalInterrupt example
* Fixes
* Returned FunctionalInterrupts to original state + added modified version as new example
* Added methods + example to retrive local MAC for BT
* Added .skip files in the new example folder
* Fixed typos and formatting + added doxygen comments
* changed std::string to String
* another std::string -> String
* Changed std::string to String
* chaged string type in example
* Moved and renamed example ESP32/FreeRTOS to MultiThreading/BasicMultiThreading
* Added dummy files
* Modified original example
* Fixed BasicMultiThreading.ino
* Added Example demonstrating use of queues
* Extended info in BasicMultiThreading
* Renamed Queues to singular Queue
* Added Mutex example
* Added Semaphore example
* Moved info from example to README
* Moved doc from Mutex to README
* Added Queue README
* Removed unecesary text
* Fixed grammar
* Increased stack size for Sempahore example
* Added headers into .ino files
* Added word Example at the end of title in README
* removed unused line
* Added forgotten README
* Modified BasicMultiThreading example
* Added missing S3 entry in README
* moved location
[ESP32: SDMMCFS::begin hardcodes the usage of slot 1, only check if the pins match slot 1 pins.]
setPins() was testing pins D1, D2 and D3 all against D1 ... fine in 1 pin mode when all are -1 not so much if you're trying to get 4 pin mode working.
I now see this function doesn't really do anything on the ESP32...accept now correctly checks that you are trying to use the slot 1 pins.
Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com>
* Update WiFiClient.cpp
This change will allow specifying connect timeouts below 1 second. Without this change, if connect timeouts under 1 second are given, the connect defaults to 0ms and fails.
This will also allow timeouts in fractions of seconds, e.g. 1500ms. Without this change, connect timeouts are truncated to full second increments.
* Make parameter timeout_ms clear
* Change connection timeout_ms name for clarity
---------
Co-authored-by: Rodrigo Garcia <rodrigo.garcia@espressif.com>
* Fixes BLE data printing
BLE data has no '\0' terminator, therefore it can't be printed as a regular C string.
This fix just prints the BLE data based on its length.
* Simplify printing to a single call
* Modified WiFiClient example to use thingspeak instead of non-functionig sparkfun
* Moved instructions to README
* Fixed spelling
* Added link to S3 datasheet
---------
Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com>
* Fixed issue where esp32 won't reconnect to WiFi AP if the AP was restarted
* Added the autoReconnect condition and removed the reconnect reason
* Chenges on the WiFi reconnection and added new example
* Added new line at the end
* Changes reverted with some minor changes. New example remained
* Changes reverted and sync
Co-authored-by: pedro.minatel <pedro.minatel@espressif.com>