Commit graph

504 commits

Author SHA1 Message Date
Rodrigo Garcia
cd409b2168
removes delay(10) from HardwareSerial::end() (#8634) 2023-09-15 12:18:26 +03:00
Jan Procházka
c7c975fc3f
make output_open_drain pin readable (#8592) 2023-09-01 12:20:21 +03:00
Ricardo Lipas Augusto
2173373dcc
ledc.c: Fix analogWrite() last channel available verification (#8509)
* Fix analogWrite channel available verification

The last channel allocated is number 0, which conflicted with the value given to an uninitialized pin, giving the "No more analogWrite channels available!" error when trying to use it
Pins are now given the value -1 to indicate that they are not used so channel 0 can be used without errors.

* Fix incorrect array initialization

Keeping array of zeros for `pin_to_channel` and shifting stored channel
values by +1 to keep the pin with channel 0 from being interpreted as unused.

ref: https://github.com/espressif/arduino-esp32/pull/8509#issuecomment-1676103452
2023-08-29 14:16:54 +03:00
Rodrigo Garcia
6d1706cd70 allows setting buffer size after or before begin() 2023-08-23 20:31:29 -03:00
Rodrigo Garcia
c783918289 Fixes ESP32 BT Memory Releasing 2023-08-22 21:33:25 -03:00
colincross
289c2a1405
Use SDK macros for matrix detach constants (#8345)
The constants that need to be passed to gpio_matrix_in and gpio_matrix_out
to detach an input or output pin from a peripheral vary by platform.  Use
SIG_GPIO_OUT_IDX to detach an output, and GPIO_MATRIX_CONST_ONE_INPUT
and GPIO_MATRIX_CONST_ZERO_INPUT to detach an input.  ESP32 before IDF 4.0
didn't define GPIO_MATRIX_CONST_*_INPUT, so add compatibility #defines
for GPIO_FUNC_IN_LOW/HIGH.  GPIO_FUNC_IN_LOW/HIGH exist in IDF 4.0+, but
can't be used because they have the wrong values for ESP32-C3 at least
in IDF 4.4.3 (https://github.com/espressif/esp-idf/issues/11737).
2023-07-17 13:10:23 +03:00
Rodrigo Garcia
18164e6f02
Fixes crash when calling twice end() (#8332) 2023-06-29 23:13:05 +03:00
Rodrigo Garcia
5548fbe02d
fixes ESP32-C3 WiFiProv and btInUse() (#8243) 2023-05-31 14:30:11 +03:00
Rodrigo Garcia
083db166a1
Fixes HWCDC::end() (#8247)
* Fixes HWCDC::end()

There is a missing `tx_lock = NULL;`

* Update HWCDC.cpp

Initialize rx_data_buf[] with zeros.
2023-05-31 14:11:17 +03:00
Luca Burelli
3ec5f4efa1
HardwareSerial: fix begin() lock issue on error path (#8182)
* HardwareSerial: fix begin() lock issue on error path

If the user supplied a wrong UART number, the begin() method would
return without releasing the lock. Add missing unlock call.

* removing unsed Case test

---------

Co-authored-by: Rodrigo Garcia <rodrigo.garcia@espressif.com>
2023-05-11 16:13:36 +03:00
Dirk O. Kaar
628b668c5c
Add overloads to support __FlashStringHelper like ESP8266 has them. (#8111)
Co-authored-by: Me No Dev <me-no-dev@users.noreply.github.com>
2023-05-03 20:28:18 +03:00
David McCurley
5c92a0231b
BugFix FlashStringHelper Macros (#8147)
Revert to previous definition of `FPSTR` and `F` macros.
2023-05-03 19:49:04 +03:00
Rodrigo Garcia
a7bd6c9bc5
Fixes analogWrite (#8137)
* Fixes analogWrite

* sets cnt_channel index

* fixes TAB alligment
2023-05-03 19:46:12 +03:00
Rodrigo Garcia
85d179c63c
Apply this change to 2.0.9 (#8131)
* Fix the F_CPU frequency for the ESP32-S3

Hello, I was using the FastLED library and it was complaining about F_CPU not being defined. So, I just noticed that it is not defined for the ESP32-S3 module. So I made this change in the header file and it compiled. Therefore I wanted to propose this change to the HAL library to improve compatibility. Thank you for your time.

* Makes F_CPU generic based on the SoC frequency

Works for ESP32, ESP32C3, ESP32S2, ESP32S3

* Includes ESP32C3 in the F_CPU definition

Necessary for ESP32 Arduino Core 2.0.x based on IDF 4.4

---------

Co-authored-by: Ali Devrim OGUZ <11381547+devrim-oguz@users.noreply.github.com>
2023-05-03 19:42:55 +03:00
Dirk O. Kaar
b98255d8d1
Completely inline the helper pure abstract __FlashStringHelper class (#7941)
* 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*.
2023-04-06 13:32:21 +03:00
pswid
57b951a182
missing ESP32-D0WDR2-V3 added to getChipModel() (#7958)
* missing ESP32-D0WDR2-V3 added to getChipModel()

* added ESP32-D0WD-V3 variants to getChipModel()

* renamed ESP32-D2WDQ5 to ESP32-D2WD
2023-03-31 14:50:38 +03:00
Dirk O. Kaar
f275ce5563
Use enum for C++ to avoid macro pitfalls (#7926) 2023-03-31 14:32:48 +03:00
David McCurley
345e3c637a
WString Fix int64_t (#7765)
WString Fix int64_t

Fixed int64_t String support. Resolves issue #7760.

Background:
sprintf on esp32 doesn't support "%lld" parameter.  It's possible to recompile the underlying libraries to add that option, but I have an easier solution.
This has already been solved in ESP8266 version of WString by replacing sprintf() with itoa/ltoa/lltoa.

This PR does the following:
Fixes integer print issues by replacing sprintf() with itoa/ltoa/lltoa
Moves concat(long long num), concat(unsigned long long num) location (match ESP8266)
Cleans up code formatting (matches ESP8266)

Co-authored-by: Me No Dev <me-no-dev@users.noreply.github.com>
2023-02-15 14:22:30 +02:00
Rodrigo Garcia
1e3717bcdf
Adds pseudo random numbers generation (#7848) 2023-02-15 13:26:18 +02:00
Rodrigo Garcia
8873adb1a9
Sets correct code for UART baud rate detection (#7838) 2023-02-14 17:08:07 +02:00
Ha Thach
f69bbfeead
fix usb_switch_to_cdc_jtag() not re-enable USB D+ before reset (#7828) 2023-02-13 12:39:22 +02:00
davidk88
b31c9361ec
Add function timerAttachInterruptFlag (#7809) 2023-02-10 01:03:14 +02:00
David McCurley
0fa667226c
WString Return bool (#7774) 2023-02-08 11:54:32 +02:00
Clemens Kirchgatterer
d228da4a27
Remove (useless) trailing semicolon from Print.cpp (#7622) 2023-02-06 21:13:52 +02:00
Martin Turski
0c6222c0a3
bugfix: add <stdint.h> for uint8_t to avoid compilation failure (GCC 11.2.0) (#7744) 2023-02-06 14:43:22 +02:00
me-no-dev
94fd529e36 Update version prior to release 2022-12-21 18:54:30 +02:00
Rodrigo Garcia
2333df5ac6
Removes a few Warnings and fixes Math rand() to work like Arduino mainstream (#7613)
* fixes warnings and rand function

* removes extra space - style
2022-12-21 18:48:10 +02:00
Rodrigo Garcia
5dff15ce9d
Fixes inconsistencies and adds extended HardwareSerial examples (#7412)
* adds extended HardwareSerial examples

* Adds new example with Serial RxTimeout

* adds and improves Serial onReceive expamples

* adjust includes CMake - UART example

* adjust includes CMake - UART example

* fixes CMake and CI

* adds ESP/Serial to CMakeList

* adds ESP/Serial to CMakeList

* fixes demo include

* fixes BREAK demo

* fixes onReceive demo

* Changes FIFO Full criteria

Changed the "1-by-1" Serial only when baud rate is 57600 or lower.

* example code replacement

* replaces functions in hal
2022-12-21 18:47:17 +02:00
Rodrigo Garcia
1d595fd35c
Workaround for when USB CDC is unplugged (#7583)
* Workaround for when USB CDC is unplugged

* Considers default TX timeout

Sets back default TX timeout whenever USB is plugged, otherwise it is kept as zero.

* fixed left over code
2022-12-14 12:47:29 +02:00
Linar Yusupov
12038cb555
apply the same USB descriptor's iSerialNumber logic for ESP32-S2 as t… (#7563)
* apply the same USB descriptor's iSerialNumber logic for ESP32-S2 as the ESP32-S3 already has

* response on request from code reviewer
2022-12-13 12:33:49 +02:00
Rodrigo Garcia
7cbd0371e4
Improves UART reading performance (#7525)
* Improves UART reading performance

* overrides Stream::readBytes()

* fixes override signature

* adds some IDF error return  conditions
2022-12-13 11:54:07 +02:00
Rodrigo Garcia
99f66d3f87
fixes UART at lower than 80MHz | S3 C3 (#7496) 2022-12-13 11:49:59 +02:00
Sanket Wadekar
165d62472a
log_printf: Restructured log_printf for wrapping (#7567) 2022-12-12 15:01:55 +02:00
Linar Yusupov
9b880929df
do not use 'colon' sign in the iSerialNumber field of USB descriptor (#7225) 2022-12-08 11:04:21 -03:00
Jan Procházka
dbeae9480d
AnalogWrite - frequency and resolution log errors + returns (#7471)
* Added log errors + returns
* Update LEDC docs
2022-12-08 10:25:31 -03:00
Jan Procházka
9762b2392a
LEDC - AnalogWrite new API + ledcAttachPin duty fix (#7346) 2022-11-11 08:54:02 -03:00
Jan Procházka
7a76aded54
Add touch sleep wakeup API (#7439) 2022-11-09 14:17:46 -03:00
Jan Procházka
3c033236f7
[DOCS] Add TOUCH peripheral API (#7421)
* add touch.rst

* update touchRead comment in header file

* Edited examples

* typo changes + updates

* about edit
2022-11-04 09:12:52 +00:00
Rodrigo Garcia
2cebee4a40
fixes UART pin detach on end() (#7402) 2022-11-02 12:30:02 +02:00
me-no-dev
2d6ca351a3 Update Arduino version to 2.0.5 2022-09-17 08:39:27 +03:00
David McCurley
b473fc6976
Fix corrupt debug message in esp32-hal-cpu.c (#7264)
Issue: Serial data sent during frequency change is corrupted.
Fixes corrupt debug message by printing the message after the frequency change is completed.
2022-09-16 21:34:55 +03:00
Rodrigo Garcia
55d608e322
Adds noInterrupt() and interrupt() functionality (#7226)
* Adds noInterrupt() and interrupt() functionality

* Adds sei/cli

Adds back sei()/cli() macros

Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com>
2022-09-15 15:48:07 +03:00
Rodrigo Garcia
dca1a1e6b3
Changes UART ISR to only trigger on RX FIFO Full and timeout (#6930)
* Changes UART ISR to only trigger on RX FIFO Full and timeout

* changes initial RX timeout

* Eliminates extra testing for _uart != NULL

* reconfiguration with "uartSetFastReading()"

* Adds new function "uartSetFastReading()"

* changed default onReceive() behaviour

* forces User callback in case of error

* Error Code Order

Set NO_ERROR as first error code, same as ESP_OK = 0
2022-09-15 15:12:40 +03:00
Jason2866
d4d145897a
Real flash chip mode (#7239) 2022-09-14 11:54:27 +03:00
Jason2866
37cbaeccb7
Get real Flash Chip Size (#7159)
Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com>
2022-09-07 15:04:24 +02:00
Rodrigo Garcia
0130856b2a
Improves time for setting touch interrupt (#7099)
* Improves time for setting touch interrupt

* Fixes Interrupt Touchpad initialization

Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com>
2022-08-11 10:18:36 +02:00
Jan Procházka
285e898604
fixed 1bit mode duty (#7079) 2022-08-08 12:26:41 -03:00
Rodrigo Garcia
054e6b3d56
Fixes HardwareSerial::availableForWrite + setTxBufferSize (#6998) 2022-08-08 10:29:09 -03:00
Rodrigo Garcia
c996036e61
Adds an error message to HardwareSerial::setPins() (#7040)
* Adds an error message to HardwareSerial::setPins() 
In order to avoid problems if the user tries to setPins() before initializing the Serial port with begin()
2022-07-26 10:41:04 -03:00
Rodrigo Garcia
45f4bef989
Fixes Arduino Wire::begin overload (#7000)
Makes Wire::begin() fully compatible with Arduino mainstream (Master/Slave)
2022-07-26 06:53:47 -03:00