Commit Graph

1703 Commits

Author SHA1 Message Date
c26e3f4299 Adds HardwareSerial::setRxTimeout() (#6397)
* Adds HardwareSerial::onReceiveTimeout()

* Fixed typo

* Changes requested

* Fix eventQueueReset

* Changed _onReceiveTimeout to _rxTimeout for consistency

* Uniform uart_set_rx_timeout condition

* test _uart not NULL in eventQueueReset()

check if _uart is not NULL before using it.

* revert last commit - no need for it

reverting last change made - it is not necessary.

* adds onReceive() parameter 

In order to allow the user to choose if onReceive() call back will be called only when UART Rx timeout happens or also when UART FIFO gets 120 bytes, 
a new parameter has been added to onReceive() with the default behavior based on timeout.

    void onReceive(OnReceiveCb function, bool onlyOnTimeout = true);

   onReceive will setup a callback that will be called whenever an UART interruption occurs (UART_INTR_RXFIFO_FULL or UART_INTR_RXFIFO_TOUT)
   UART_INTR_RXFIFO_FULL interrupt triggers at UART_FULL_THRESH_DEFAULT bytes received (defined as 120 bytes by default in IDF)
   UART_INTR_RXFIFO_TOUT interrupt triggers at UART_TOUT_THRESH_DEFAULT symbols passed without any reception (defined as 10 symbos by default in IDF)
   onlyOnTimeout parameter will define how onReceive will behave:
   Default: true -- The callback will only be called when RX Timeout happens. 
                           Whole stream of bytes will be ready for being read on the callback function at once.
                           This option may lead to Rx Overflow depending on the Rx Buffer Size and number of bytes received in the streaming
            false --    The callback will be called when FIFO reaches 120 bytes and also on RX Timeout.
                           The stream of incommig bytes will be "split" into blocks of 120 bytes on each callback.
                           This option avoid any sort of Rx Overflow, but leaves the UART packet reassembling work to the Application.

* Adds onReceive() parameter for timeout only

* Adds back setRxTimeout()

* Adds setRxTimeout()

* CI Syntax error - "," missing

Co-authored-by: Rodrigo Garcia <rodrigo.garcia@espressif.com>
2022-03-28 14:18:30 +03:00
ab34321a16 add variant init code for the feather s2 tft (#6447) 2022-03-28 12:58:25 +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
3f79097d5f Add Preferences library API and tutorial documents (#6442)
* Add Preferences library API and tutorial documents

Add API and tutorial documents for the  Preferences library.

* Revise per review

Correct some errors. Remove the "wordiness" is a few places.

* Correct link to Preferences API

Update the references and link to the Preferences API document.

Co-authored-by: Pedro Minatel <pedro.minatel@espressif.com>
Co-authored-by: Me No Dev <me-no-dev@users.noreply.github.com>
2022-03-28 12:02:10 +03:00
e03a9f5c53 (boards.txt) Add partition scheme menu for WeMos WiFi&Bluetooth Battery (#6479) 2022-03-28 11:48: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
c25feca639 Change "python" to "python3" (#6448)
First aid for ESP32 builds not passing in Arduino IDE on macOS Monterey 12.3 that obsolete "python2.7".
2022-03-28 11:42:14 +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
77e95311e0 Adds HardwareSerial::setTxBufferSize() (#6383)
* Adds HardwareSerial::setTxBufferSize()

* uartBegin def fix

* checks TXBufferSize  as defined in IDF

Makes sure that the buffer size will not cause a reset to the board.

* Removes double value in Rx/Tx Buffer Size 

Keeps Rx/Tx buffer size as set, not doubling it. It makes the process more clear.

Co-authored-by: Rodrigo Garcia <rodrigo.garcia@espressif.com>
2022-03-28 11:37:12 +03:00
8fe0efe8c0 Fix boot freeze when trying to init PSRAM on Pico D4 (#6434)
* Fix boot freeze when trying to init PSRAM on Pico D4

* Don't deconfigure GPIO16/17 in Pico D4
2022-03-23 13:10:21 +02:00
0b10c8b79e [Docs] Added the guideline for documentation (#6409)
* [Docs] Added the guideline for documentation

* [Docs] Added more descriptions about the API documenting process

* [Docs] PR review

* [Docs] PR review and minor typos and grammar fixes
2022-03-18 18:28:18 +02: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
ba8024c0d2 Some board variant fixes (#6411)
* make work with rev C pcb

* use #define for easy testing
2022-03-14 12:45:16 +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
9b9744f25f publish.yml: Limit the running scope of the publish Workflow. (#6428)
1. Don't run the publish test result workflow on the master
branch.
2. Run only on Pull Requests to be able to publish the result as a PR comment.
3. Avoid running when the triggering workflow was skipped, this will
   cause a failure as no file will be uploaded.

Signed-off-by: Abdelatif Guettouche <abdelatif.guettouche@espressif.com>
2022-03-14 12:30:33 +02:00
68daea4a4a Implemented tone and noTone; fixes #980 (#6402)
* Implemented tone
* Tone uses queue; implemented setToneChannel
2022-03-10 17:26:30 +02:00
52e018198b publish.yml: Remove the debug job and fix an error in the workflow. (#6408)
Signed-off-by: Abdelatif Guettouche <abdelatif.guettouche@espressif.com>
2022-03-10 15:41:02 +02:00
883241229e Allows setting only one pin (rx or tx) in the first begin() (#6394) 2022-03-10 15:33:27 +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
3a7dfa14db Fixes rmtDeinit() and tests RX/TX before operations (#6369)
* Fixes rmtDeinit() and tests RX/TX before operations

* Optimizes final binary size

* Typo
2022-03-10 15:19:15 +02:00
96f8f5e3ef Add initial hardware testing support (#6313)
- Added workflow triggered by cron or label "hil_test"
- Added examples with both pytest and unity
2022-03-10 14:45:26 +02:00
4da1051266 Bugfix of the following problems: Invalid variable argument list used to retrieve length. If length is greater or equal than the available buffer, a memory leak will happen because va_end() is missing. (#6360) 2022-03-02 15:25:59 +02:00
7d4992a811 Adds C++ std::function to Serial.onReceive() (#6364)
* Adds C++ std::function to Serial.onReceive()

* fixes LOCK macro when disabled
2022-03-02 15:20:43 +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
c2e5957f35 Update esp32-hal-log.h (#6358)
#ifdef added, to avoid compiler redefinition warnings for LOG_LOCAL_LEVEL if defined by application, and we USE_ESP_IDF_LOG
2022-02-28 16:50:07 +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
d1f0d6c0fc Added more details about PlatformIO (#5540)
* Added more details about PlatformIO

* Fixed typo
2022-02-28 15:06:28 +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
c280225738 fix final rev pins (#6353)
fix uarts

Co-authored-by: ladyada <support@adafruit.com>
2022-02-28 14:31:00 +02:00
4f7e88a177 Fixes build error if TAG is const (#6351) 2022-02-28 14:30:33 +02:00
b254765ef8 add lolin s2 pico board def (#6325) 2022-02-24 01:03:03 +02:00
8899de760a Add new board (Deneyap Kart 1A) (#6324)
* Add new board (Deneyap Kart 1A)

* Update pins_arduino.h
2022-02-24 01:02:35 +02:00
524279d468 Merge pull request #6343 from Ouss4/dummy-selfhosted
.github/workflows: Remove the slefhost runner test.
2022-02-24 01:00:48 +02:00
f319804521 .github/workflows: Remove the slefhost runner test.
Signed-off-by: Abdelatif Guettouche <abdelatif.guettouche@espressif.com>
2022-02-23 23:23:34 +01:00
2884215f85 Documentation for DAC peripheral (#6337) 2022-02-23 16:00:16 +02:00
a57cac63e4 Timer API docs + esp32-hal-timer.h edit (#6335) 2022-02-23 15:59:20 +02:00
de6994187d LEDC & SigmaDelta documentation (#6330)
* LEDC preripheral doc

* SigmaDelta peripheral doc

* Added missing symbol

* Edited grammar, mistakes

* quick edit
2022-02-23 15:58:27 +02:00
491444c15a [Docs] Added more details about embedded FLASH and PSRAM on ESP32-S3. (#6321)
* [Docs] Added more information about embedded PSRAM and Flash for ESP32-S3

* [Docs] Fixed some typos

* [Docs] Fixed some spacing issues
2022-02-23 15:57:31 +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
b5f3d6c836 Update doc: Arduino as IDF component; fixes #5833 (#6299)
Summary

Updated documentation describing the usage of Arduino-esp32 core as ESP-IDF component.

Impact

Removed confusing mentions of advanced menuconfig options.
Extended process of installation, setup, and usage.

Related links

Closes #5833
2022-02-23 15:24:40 +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
65cfab7868 add lolin s2 mini board def (#6320) 2022-02-21 14:18:09 +02:00
4517b9c8fc The M5Core2 and M5Tough have 40 pins (#6315)
Summary

The M5Core2 and the very similar M5Tough have 40 digital pins

See reference here: https://docs.m5stack.com/en/core/core2 as well as the constant declarations in the bottom part of the file.

Impact

Without this, Code that needs the total number of pins (e.g. firmata) doesn't show the higher pin numbers correctly.
2022-02-21 10:24:14 +02:00