Commit Graph

1496 Commits

Author SHA1 Message Date
951c32056a Merge branch 'master' into i2c-slave 2021-10-11 13:13:13 +03:00
7a7bd37e51 feat: Add the ability to get the peer certificate of an SSL connection
Summary

New feature: Add the ability to get the peer certificate of an SSL connectio. This is useful for IoT when the root/cert trust chain has a shorter lifecylce than the device itself. Includes example code.

It adds two methods to the WiFiClientSecure client:

bool getFingerprintSHA256( uint8_t fingerprint_remote_sha256[32]) -- return true and the fingerprint (i.e. the SHA256 of the raw x509 as a DER - identical to what you see in for example your webbrowser). Or false on error.
const mbedtls_x509_crt* getPeerCertificate(); -- return the actual X509 struct or NULL on error.
Impact

No impact; backwards compatible (only adds to the API)
2021-10-11 13:04:13 +03:00
a75602dc68 Add support M5Stack Unit CAM (#5748)
In this PR, we add support for M5Stack Unit CAM to CameraWebServer.
https://docs.m5stack.com/en/unit/unit_cam
2021-10-11 13:01:10 +03:00
88789cd817 Fix build error when compiling with verbose logging (#5747)
When compiling with verbose logging, the build would error with a message saying `len` is not defined in `tud_vendor_rx_cb()`. This change fixes the error.
2021-10-11 13:00:25 +03:00
335cedf4f7 Update CMakeLists.txt 2021-10-09 14:37:10 +03:00
f9f70d2f73 I2C Slave Implementation 2021-10-09 14:30:20 +03:00
5b207104aa Fix: SD_MMC deinit (#5732)
* SD.open() new feature for creating all folders in path

This PR adds to the SD.open() function option to create all folders to the file.

SD.open(const char* path, const char* mode, const bool create)

Default value of create is false.
When true folders are created.

From issue #5019

* Update vfs_api.cpp

memccpy -> memcpy

* SD_MMC deinit fix

Wrong deinit function was called.
2021-10-09 14:12:25 +03:00
1706af4656 Add the ability to get the peer certificate of an SSL connection; useful for IoT when the root/cert trust chain has a shorter lifecylce than the device itself. Includes example 2021-10-08 14:20:43 +02:00
bd54ee442b Remove git submodule update (#5696)
We don't have submodules.
2021-10-01 18:11:59 +03:00
00214d5c2a IDF master 3e370c4296
* Fix build compilation due to changes in the HW_TIMER's structs

* Fix compilation warnings and errors with USB

* Update USBCDC.cpp

* Update CMakeLists.txt

* Update HWCDC.cpp
2021-10-01 17:52:29 +03:00
381e88ec75 [UART] check if write data is valid 2021-10-01 17:36:59 +03:00
f87107dedb Implement Thread-Safe I2C based on ESP-IDF API (#5683)
* Implement Thread-Safe I2C based on ESP-IDF API

* Update esp32-hal.h

* use proper types for size and timeout

* Allow disabling of the HAL locks

* Limit frequency settings to prevent Interrupt WDT
2021-10-01 17:34:20 +03:00
ce85cf03cc added comment for user clarity (#5724) 2021-10-01 17:17:42 +03:00
f2a20e8a38 SD.open() new feature for creating all folders in path (#5721)
* SD.open() new feature for creating all folders in path

This PR adds to the SD.open() function option to create all folders to the file.

SD.open(const char* path, const char* mode, const bool create)

Default value of create is false.
When true folders are created.

From issue #5019

* Update vfs_api.cpp

memccpy -> memcpy

* File f = open() edit

added false for create
2021-10-01 17:16:59 +03:00
c5bb8334d7 include pin_arduino.h for variant USB defines (#5719) 2021-10-01 16:15:15 +03:00
6de7f16f28 update adafruit boards for 2.0 (#5718) 2021-10-01 16:14:50 +03:00
1688b7c179 Fix analogWidth for ESP32S2 in esp32-hal-adc.c (#5711) 2021-10-01 16:13:24 +03:00
36ff442698 bugfix: off-by-one error (#5648) 2021-10-01 15:48:35 +03:00
93f10609f4 SDMMC frequency selection based on board type (#5688)
* SDMMC frequency selection based on board type

On Olimex ESP32 EVB I/O operations with SD card can cause error when LAN is used in same time.
Problem is disappearing if SD MMC frequency lower down from SDMMC_FREQ_HIGHSPEED to SDMMC_FREQ_DEFAULT.

No problem if WiFi used instead LAN.

* Code rewritten according to https://github.com/espressif/arduino-esp32/pull/5688#pullrequestreview-759359645
2021-10-01 15:48:20 +03:00
67583e84d6 Return size_t instead of uint8_t from BLECharacteristic::getLength(). Allows large MTU to be used. (#5687) 2021-10-01 15:47:42 +03:00
108e467164 Enable progress bar on ArduinoOTA upload (platform.txt) (#5657) 2021-10-01 15:06:55 +03:00
91bca6c074 Fix compilation of HardwareSerial.cpp (#5677)
Fix compilation in case NO_GLOBAL_INSTANCES || NO_GLOBAL_SERIAL is defined.
2021-10-01 15:06:16 +03:00
204f360dce Append '/' to an URL with empty path in HTTPClient::begin (#5634)
* Add an error check for empty path of an URL

* Append '/' to an URL with empty path instead of returning an error
2021-10-01 15:04:09 +03:00
3f06a38f69 SD_MMC max_freq_khz is set to HIGHSPEED by default (#5631) 2021-10-01 15:03:38 +03:00
2f6f251400 Fixes boards.txt entries for the atmegazero_esp32s2, and also the platform.txt --flash_size which is not letting the board compile due to its 32MB size. (#5673) 2021-10-01 14:39:08 +03:00
e4acfbc54a only use ksz8081 for idf versions later than 4.3 (this fixes compile as component for idf 4.3) (#5599)
esp_eth_phy_new_ksz8081 was added in IDF after version 4.3 and generates a compilation error with IDF-4.3. This change will only use esp_eth_phy_new_ksz8081 for IDF versions after 4.3
2021-10-01 14:38:45 +03:00
79d53bdc4c Update ESP.getChipModel() to support ESP32-S2 (#5598) 2021-10-01 14:37:17 +03:00
f3f6dad14a TTGO T-OI PLUS RISC-V ESP32-C3 Development Board Added (#5576) 2021-10-01 14:24:44 +03:00
317be68cef Merge pull request #5685 from pedrominatel/docs/integration_with_wokwi
Docs integration with Wokwi - Blink Tutorial
2021-09-21 15:31:44 +01:00
1f4dd7f131 Merge branch 'master' into docs/integration_with_wokwi 2021-09-21 14:55:27 +01:00
8be2f7b1cc Changes according to the PR review 2021-09-21 14:34:21 +01:00
9f827a66d5 Update README.MD - "Type: For reference" labels link (#5619)
* Create PULL_REQUEST_TEMPLATE.md

Adding first version of PULL_REQUEST_TEMPLATE.md.

The purpose of this template is to improve and simplify writing more accurate Release Notes.

* Update PULL_REQUEST_TEMPLATE.md

Fix typo.

* Update README.MD - "Type: For reference" labels link

Updating a link to issues labeled with "Type: For reference". The old one is not working due to the updates of labels in the past.
2021-09-21 11:36:36 +03:00
e1cdbd7816 Minor changes on the blink tutorial 2021-09-20 12:39:05 +01:00
7a35be3e7e Added blink example with Wokwi embedded simulation 2021-09-20 12:00:52 +01:00
078671d273 [HWCDC] Improve HW CDC Implementation (#5643)
This pull request contains a few fixes and improvements to the HWCDC implementation.
- Rework `HWCDC::write()` to accept unlimited data
- Add Semaphore to guard the TX Ring Buffer
- Add events support
- Remove unnecessary 1200bps touch for flashing over HWCDC
- Fix `HardwareSerial::setDebugOutput()` not resetting `putc` if the port is already selected, causing debug output to also show on HWCDC even when not selected.
2021-09-15 19:37:09 +03:00
541cef9149 [USB CDC] Fix data might not be transmitted until more is written (#5652)
Depending on `tud_cdc_tx_complete_cb` can cause in some cases the last packet to not be transmitted until more data is written and flushed. It's a rare case, but if the other end is expecting those last bytes, transmission will hang.

This PR also fixes debug output on CDC
2021-09-15 15:23:11 +03:00
6dfaf6cdd4 Add dummy test for self hosted GitHub runners (#5521)
* Add dummy test for self hosted GitHub runners
2021-09-15 15:02:04 +03:00
92ce408f4c Merge pull request #5616 from pedrominatel/docs/update_for_release_2-0-0
Supported devices table updated due the 2.0.0 release
2021-08-31 12:16:57 +01:00
453af3800c Supported devices table updated due the 2.0.0 release 2021-08-31 11:29:10 +01:00
44c11981d2 Added UM FeatherS2 Neo to boards.txt and added appropriate variants. (#5615) 2.0.0 2021-08-31 09:28:56 +03:00
9eea85f9ff Check if m_pServerCallbacks is not null before calling method. (#5603)
Fixes: https://github.com/espressif/arduino-esp32/issues/5573

To reproduce:
1. Run any sample code that starts a BLE server, and does not call `setCallbacks`.
2. Connect to the device using the "LightBlue" app on iOS.
3. Observe crash shown in the issue linked above.
2021-08-31 09:20:02 +03:00
24b76cbb14 Add string constructor and concat routines taking explicit length args (#5586)
## Summary
Applies the upstream changes here: https://github.com/arduino/ArduinoCore-API/compare/3b88acac8%5E...0d83f1afc3367037dbde5323c2abd0ae1bd2c583

## Impact
Adds new String convenience methods that are now available in the mainline Arduino implementation, simplifying interoperability with C code that uses pointer+length strings rather than 0-termination. Also includes a change to avoid mutating the source string when taking a substring.
2021-08-31 09:12:27 +03:00
4a55ff970d Add support for the hardware CDC in ESP32-C3 (#5614)
* Add support for the hardware CDC in ESP32-C3
2021-08-31 08:47:55 +03:00
a62979d8a0 Add missing upload.flags (#5589) 2021-08-25 10:40:13 +03:00
1f59c5abec Adds HardwareSerial::setRxBufferSize() (#5583)
* Adds rxBufferSize parameter to begin()

* Adds HardwareSerial::setRXBufferSize()
2021-08-24 08:21:20 +03:00
0730e0ec93 Include nvs_commit() on three methods (#5309)
* Include nvs_commit() on three methods

In [Preferences.cpp](https://github.com/espressif/arduino-esp32/blob/master/libraries/Preferences/src/Preferences.cpp),  the functions:
```
Preferences::clear()
Preferences::remove()
Preferences::end()
```
should be revised to include a call to 
`nvs_commit()`
as required per 
[Non-volatile storage library](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/storage/nvs_flash.html)
when using 
```
nvs_erase_all()
nvs_erase_key()
nvs_close()
```
2021-08-23 21:23:42 +03:00
c45cff5f83 Implement USB HID Device Support for ESP32-S2 (#5538)
* Add support and example for USB HID Devices
* Add support and example for USB Vendor
2.0.0-rc2
2021-08-23 17:27:34 +03:00
b1d072df9f Implements UART SerialHardware Refactoring on top of IDF (#5549)
## Summary
This PR is a complete reffactoring of UART Serial Hardware and respective HAL in order to use IDF instead of current Register manipulation approach. 

It  implements Arduino SerialEvent functionality. 

Fix #5287  
Fix #5273 
Fix #5519 
Fix #5247 
Fix #5403
Fix #5429
Fix #5047
Fix #5463
Fix #5362 
Fix #5112  
Fix #5443 

## Impact
It solves many reported issues related to UART.
It was tested and works fine for ESP32, ESP-S2 and ESP32-C3.
2021-08-23 17:25:33 +03:00
929cf2c2d5 Add ATMegaZero ESP32-S2 microcontroller (#5569)
## Summary
Adds support for the new ATMegaZero ESP32-S2 board. Adds the relevant section to `boards.txt` and adds the folder for the `atmegazero-esp32s2` with the proper `pins_arduino.h` to the `variants` folder.

## Impact
Allows users to compile code properly for the ATMegaZero ESP32-S2 without having to use a similar board and manually entering pin numbers.

## Links
[ATMegaZero ESP32-S2](https://atmegazero.com/#/atmegazero_esp32s2_overview)

Thanks!
2021-08-23 17:21:48 +03:00
87853353db Add SparkFun ESP32 MicroMod microcontroller (#5556)
* Add SparkFun ESP32 MicroMod to boards.txt

Copied from the tarball found in the SparkFun board manager
[JSON](https://raw.githubusercontent.com/sparkfun/Arduino_Boards/main/IDE_Board_Manager/package_sparkfun_index.json),
v1.0.1 -- [tarball can be found here](https://github.com/sparkfun/Arduino_Boards/raw/main/IDE_Board_Manager/sparkfun-esp32-1.0.1.tar.bz2)

* Add `pins_arduino.h` for ESP32 MicroMod

Co-authored-by: Me No Dev <me-no-dev@users.noreply.github.com>
2021-08-23 17:20:35 +03:00