Commit Graph

726 Commits

Author SHA1 Message Date
d7ffd573d0 Fixes stream load memory leak in WifiSecureClient for SSL CACert, Certificate, and (#6387)
Private Key. Issue presented during any subsequent invocation of loadCACert, loadCertificate, and
loadPrivateKey, respectively, after the first invocation.
2022-04-26 14:44:37 +03:00
b88a70a0bd Allow BluetoothSerial::connect() with specified channel and more options (#6380)
* BTAddress const, add bool()

* BTAdvertisedDevice: const functions

* BluetoothSerial: add: getChannels, add isClosed, add read/peek timeout, add connect with channel#

* BluetoothSerial: add sec_mask, role in ::connect

* BluetoothSerial add discover and connect with channel number example

* DiscoverConnect: add SPP_ENABLED check

* DiscoverConnect: disable on esp32s3
2022-04-26 14:41:29 +03:00
d8a99ed449 Added RainMaker support on Arduino IDE for ESP32-C3/S2/S3 (#6598)
* Added RainMaker support on Arduino IDE for ESP32-C3/S2/S3

Closes #6573
Note related to the issue #6435
2022-04-26 14:12:20 +03:00
0a1ba74b60 Update LittleFS PlatformIO example (#6617) 2022-04-26 14:02:14 +03:00
1aa16104ff Enable LittleFs sketches for C3 (#6618)
* LittleFs is working with C3

* Delete .skip.esp32c3
2022-04-26 14:00:14 +03:00
02f4178b72 BUGFIX: FS read + speed improvements for SD (#6569)
* Revert "Edited VFSFileImpl::read to use both read/fread (#6456)"

This reverts commit 7b89b39e10.

* Added default file buffer size + function to change it by user
2022-04-21 17:51:44 +03:00
12045d335b Update camera example to support face detection and recognition (#6603)
Fixes: #6508
2022-04-21 17:48:47 +03:00
6cfe4613e4 Amend "GPIO refactoring (#6259)" (#6527) 2022-04-05 11:28:59 +03:00
f1acc432af Fix Ticker::Active crash if _ticker null (#6511) (#6513) 2022-04-04 14:45:14 +03:00
6fe1c4c5d6 Correct less- and greater-than operators (#6521)
Lets Manufacturer ranges in bluetooth address space be filtered correctly
2022-04-04 14:44:32 +03:00
5d6b9d0939 Compiler error (#6523)
Error on compile Arduino as an ESP-IDF component
2022-04-04 14:29:45 +03:00
ab197e12a9 Fix - wrong path to file (#6505) 2022-03-31 16:54:33 +03:00
7c9b837cdb Fix Reading MAC from efuse for ESP32 Arduino 2.x.x (#6458) (#6459)
Also support ESP_IDF_VERSION_MAJOR > 3
Fixes #6458

Co-authored-by: Rodrigo Garcia <rodrigo.garcia@espressif.com>
Co-authored-by: Me No Dev <me-no-dev@users.noreply.github.com>
2022-03-29 16:54:47 +03:00
8ee5f0a11e Esp32 s3 support (#6341)
Co-authored-by: Jason2866 <24528715+Jason2866@users.noreply.github.com>
Co-authored-by: Unexpected Maker <seon@unexpectedmaker.com>
Co-authored-by: Rodrigo Garcia <rodrigo.garcia@espressif.com>
Co-authored-by: Tomáš Pilný <34927466+PilnyTomas@users.noreply.github.com>
Co-authored-by: Pedro Minatel <pedro.minatel@espressif.com>
Co-authored-by: Ivan Grokhotkov <ivan@espressif.com>
Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com>
Co-authored-by: Limor "Ladyada" Fried <limor@ladyada.net>
2022-03-28 12:09:41 +03:00
528c071299 Adding sectorsize() and numSectors() to SD (#6457)
* Update SD.h

* Added numSectors() and sectorSize()
2022-03-28 11:46:15 +03:00
7b89b39e10 Edited VFSFileImpl::read to use both read/fread (#6456)
* Edited VFSFileImpl::read to use both read/fread

* Added missing include
2022-03-28 11:44:10 +03:00
905f8f2991 Warns about SSP only available for ESP32 (#6455) 2022-03-28 11:43:10 +03:00
6014ff433f Fixes USB CDC setRxBufferSize(), begin(), _onRX() (#6413)
* Fixes USB CDC setRxBufferSize(), begin(), _onRX()

* Fixes SetRxBufferSize(0) with end()

* Fixes reset when 2x call to end()

* Adds RX_OVERFLOW_EVENT and Queue Copy in setBufferSize

* changed event name to ARDUINO_USB_CDC_RX_OVERFLOW_EVENT
2022-03-28 11:40:02 +03:00
d977359e34 Added another overloaded WiFiSTAClass::begin() function that provides… (#6398)
Summary

The examples demonstrate how to create a WPA2 Enterprise connection, but it requires using various direct esp_idf functions. This patch is intended to create another overloaded version of the WiFi.begin() function that allows a user to create a WPA2 Enterprise connection in much the same way as different kinds of connections.

My only question for the core maintainers is whether I should leave those #ifdef's in there. I added them so that it was easy to disable all the code I added via defines from my platformio.ini file, but they technically aren't necessary.

Impact

This should make it easier for novice users to create WPA2 Enterprise connections. For my university, I didn't need a root certificate or the client certificate or client key, so I haven't been able to debug those scenarios, but I built the begin functions to allow any one of those to be used, if needed.

I can confirm that eduroam-style WPA2 Enterprise networks that only require authentication with a username and password works as expected.
2022-03-15 16:34:15 +02:00
e87b87d04c Add missing include in AsyncUDP.h (#6412)
In my project I'm getting the error 
```
In file included from lib/Discovery/Discovery.cpp:2:
C:/Users/David/.platformio/packages/framework-arduinoespressif32/libraries/AsyncUDP/src/AsyncUDP.h:47:1: error: expected class-name before '{' token
```

Adding a reference to Stream.h fixes it.
2022-03-14 12:44:24 +02:00
9b00d4ae6b Fixed the antenna GPIO argument (#6392) 2022-03-10 15:32:13 +02:00
66596fa581 Fix ledc panic’ed when wrong setup of frequency and bit width (#6371)
* Fixed LEDC panic when wrong bit widht / frequency set.

* Fixed ledc example to be working on all SOCs
2022-03-10 15:30:57 +02:00
02a3a71e7c CameraWebServer fix (#6370) 2022-03-10 15:29:56 +02:00
95b8e7e42b Fixes DHCP Server Lease Range for any AP Server Static IP Address (#6296)
* Fixes DHCP Server Lease Range for any AP Server Static IP Address

* Fixes DHCP in APMode when Static IP is out of subnet range
2022-03-02 15:19:05 +02:00
e8d6050a7b Implemented new types of SmartConfig (#6367) 2022-03-02 15:18:20 +02:00
683dbf3b1b Added ESP32-WROOM-DA module to boards.txt (#6361)
Added dual antenna configuration based on the module selection
Added warning to the example on how to use the DA
2022-03-02 15:17:18 +02:00
eae67a9fb4 WiFi DA: Added Dual Antenna to the docs and example created (#6357)
Summary

Added the Dual Antenna documentation.
Added the DA example.
2022-02-28 16:48:51 +02:00
52575d63f4 Fixed wifiBegin to fail wfile connecting to same AP without previous disconnecting (#6359) 2022-02-28 16:47:06 +02:00
bf58ab65e9 Because QName max. size is 256, the QNameLength range must be able to address it. Therefore the datatype was changed to uint16_t. (#6354) 2022-02-28 14:42:48 +02:00
a135169176 Added ADC API doc + simple example (#6301)
* Added ADC API doc + simple example

* Added attenuation input voltage range + conf.py added tabs extension

* Update requirements.txt

* Update adc.rst
2022-02-23 15:45:19 +02:00
d5e8c9dddc Make USBHIDKeyboard::sendReport() public (#6322)
Exposing this method makes it easier to integrate non-espressif USB-based projects (e.g. led/modifiers examples from USB Host Shield 2.0)
2022-02-21 15:16:24 +02:00
02a70bbd21 fixed http.end taking too long (#6277)
http end takes 20-30 seconds if there is a large amount of data
replacing this read loop with flush fixes that problem
2022-02-21 10:03:25 +02:00
e83a9b5f60 Adds BLE examples to ESP32-C3 CI cycle (#6285) 2022-02-16 14:25:39 +02:00
7be846cb23 Fixes softAPConfig() return (#6294) 2022-02-16 13:51:21 +02:00
c99f594b63 Fix Check for _cookieJar in HTTPClient (#6266) (#6280)
* Check for cookieJar before setting cookies

* Return as soon as possible w/o _cookieJar
2022-02-16 12:08:24 +02:00
05d8cddee7 Fix CDC+JTAG is disabled when WiFi is used on ESP32-C3 (#6287)
Fixes: https://github.com/espressif/arduino-esp32/issues/6264
Thanks @Spritetm
2022-02-16 09:30:59 +02:00
c4954dd582 Fix compile with Arduino lib builder (#6244) 2022-02-07 16:31:38 +02:00
4cbb7389db Support the updated MbedTLS in ESP-IDF v4.4 (#6243) 2022-02-07 13:42:22 +02:00
ab6e010c20 HttpClient: Add cookie support (cookie jar) (#6216)
* Support concatenation of headers (as in 1de0c341b5 (diff-977435a9cc4619fa0b8b995085f6ae683485cf563722756bab57108b362da316) for ESP8266, fixes https://github.com/espressif/arduino-esp32/issues/4069)

* Add support for receiving, storing and sending cookies (cookie jar)

* Cookie support: Respect `secure` attribute when sending a request

* Fix missing `_secure` flag

* Comment out support concatenation of headers (not needed anymore when using cookie jar)
2022-02-05 13:04:57 +02:00
9b066ea61c Added dual antenna for WiFi (based on the ESP32-WROOM-DA module) (#6226)
* Added dual antenna for WiFi (based on the ESP32-WROOM-DA module)

* Fixed build error

* Fixed indentation and renamed function to setDualAntennaConfig

* Added the RX and TX selection modes as configuration

* Mode code optimization
2022-02-03 20:56:25 +02:00
0ea485e518 Touch Sensor IDF Refactoring (#6194)
Summary

Touch Sensor refactoring to be based on IDF 4.4.
Adds support to ESP32S2 and future ESP32S3.

Adds some new APIs:

For all chips:

void touchAttachInterruptArg(uint8_t pin, void (*userFunc)(void*), void *arg, uint32_t threshold);
This function allows the user to add and pass a void* parameter to the ISR user callback.

void touchDetachInterrupt(uint8_t pin);
This function detaches ISR call back for the touch pad pin.

Only ESP32 chip

void touchInterruptSetThresholdDirection(bool mustbeLower);
This function allows the user to set if the ISR callback will be activated when the touch sensor readings are lower or higher than the threshold defined. See example TouchButton.ino.

Only ESP32-S2 and ESP32-S3 chips

bool touchInterruptGetLastStatus(uint8_t pin);
This function reports if the touch pad pin is touched or untouched. It can be used with ISR to identify when it is touched and untouched (released). See example TouchButtonV2.ino.

Impact

None. ll original APIs and examples now run on ESP32 and ESP32-S2.

Related links

Fix #6095
Fix #6034
Fix #5799
Fix #5745
Fix #5527
Fix #5493
Fix #4321
Fix #4044
Fix #2722
Fix #2625
2022-02-03 19:06:12 +02:00
3a96fc0e4a framebuffer location for no-psram boards (#6219)
If board has no PSRAM, we need to set the framebuffer location to DRAM:
config.fb_location = CAMERA_FB_IN_DRAM;
2022-02-01 13:59:32 +02:00
ef35baffb0 Fix random CaptivePortal.ino crashes (#6206)
CaptivePortal.ino example did randomly crash for me ... so I start investigate ;-)

Decoding stack results
0x4016faea: WiFiUDP::write(unsigned char const*, unsigned int) at C:\Users\knoeb\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.5\libraries\WiFi\src\WiFiUdp.cpp line 201
0x400d4a4a: DNSServer::replyWithIP() at C:\Users\knoeb\AppData\Local\Temp\arduino_build_486825\sketch\src\DNSServer\DNSServer.cpp line 187
0x400d4d01: DNSServer::processNextRequest() at C:\Users\knoeb\AppData\Local\Temp\arduino_build_486825\sketch\src\DNSServer\DNSServer.cpp line 117
0x400d3e81: loop() at D:\Drive\Dokumente\HTL_Lehrer\2021_22\Projekte\Stromzaehler_Patrick\arduino/arduino.ino line 1078
0x400dd545: loopTask(void*) at C:\Users\knoeb\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.5\cores\esp32\main.cpp line 37
0x4008a0de: vPortTaskWrapper at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/freertos/port.c line 143

I found with wireshark a possibility to trigger the crash on demand is:
nslookup 3.1o1osr0092ons87rp375p1pq8q066o8p56or1sqsps6rs17r4384q9748qr1r52.699p1r741q737393648s29917o45p16q50rn517rnsp73pp68p1q259s92693qp.s607408539s0p06p7559os0899866344r7qq7rpns960o9576q65.r5n94r5so9784pq1.i.03.s.sophosxl.net

The problem was that QNameLength is a signed byte and therefore its not possible to count up to 255. Additionally we need 256 bytes for the QName string to accommodate for the zero termination.
2022-01-31 13:25:43 +02:00
9f08cf4767 Update RequestHandlersImpl.h (#6179)
With LittleFS the `fs.exists(path)` returns true also on folders. A `isDirectory()` call is required to set _isFile to false on directories.
This enables serving all files from a folder like : `server->serveStatic("/", LittleFS, "/", cacheHeader.c_str());
        File f = fs.open(path);
        _isFile = (f && (! f.isDirectory()));
2022-01-31 13:09:04 +02:00
96a5ddcd0e Allow HTTPCLIENT_1_1_COMPATIBLE to be disabled (#6200)
Allow a user to disable the HTTPCLIENT_1_1_COMPATIBLE flag from the command line, or whichever means available.
2022-01-31 13:08:09 +02:00
cbeb7c4df8 Add conditional include to WiFiProv.h (#6192)
Resolves issue #6171
2022-01-31 13:06:39 +02:00
754ceddf48 added explanatory comments to WebServer.h (#6204) 2022-01-31 13:04:29 +02:00
0d665d7e55 fix: restoring handshake timeout (#6165) (#6166) 2022-01-31 13:01:32 +02:00
bb7df04446 Fix - SD mount issue (#6162)
* sdSelectCard longer timeout for sdWait

* GO_IDLE_STATE command ignores sdWait fail
2022-01-31 13:01:01 +02:00
cbfcfbf970 Add certificate bundle capability to WiFiClientSecure (#6106)
* Add certificate bundle capability to WiFiClientSecure

Enable usage of the ESP32 IDF's certificate bundle for WiFiClientSecure connections.

Adds the ability to load a bundle or root certificates and use them for authenticating SSL servers.

Based on work from Onno-Dirkzwager, Duckle29, kubo6472, meltdown03, kinafu and others.

See also:
- https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/protocols/esp_crt_bundle.html
- https://github.com/espressif/arduino-esp32/issues/3646
- libraries/WiFiClientSecure/README.md

* Fix build issues

* Clean up old bundle index when NULL bundle is attached
2022-01-19 15:42:36 +02:00