Commit graph

716 commits

Author SHA1 Message Date
Jan Procházka
cbdaee6f52
feat(ledc): Improve timer management with frequency/resolution matching (#11452)
* feat(ledc): Improve timer management with frequency/resolution matching

* fix(ci): Fix uninitialized timer variable warning

* Update cores/esp32/esp32-hal-ledc.c

Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>

* 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>
2025-06-10 12:57:07 +03:00
Jason2866
610d951f9d
include "esp_bt.h" only when existing (#11438) 2025-06-10 10:29:29 +03:00
Jason2866
460b89201b
make BT core code execution conditional from include esp_bt.h (#11413)
* make code execution conditional from include esp_bt.h.h

* only one if

* Update esp32-hal-bt.c
2025-06-04 17:39:54 +03:00
Me No Dev
f3ae2a65e2
IDF release/v5.4 (#11406)
* fix(build): Update APB frequency set routine

* IDF release/v5.4 aed8bdc8
2025-05-30 15:18:57 +03:00
Me No Dev
6f92b604f6
IDF release/v5.4 (#11212)
* fix(i2c): update i2c_ll_slave_init for IDF 5.4

* IDF release/v5.4 8ad0d3d8
2025-05-13 11:46:58 +02:00
Lucas Saavedra Vaz
543fad2bdf
fix(spi): Add missing initializer for ss_invert (#11320)
* fix(spi): Add missing initializer for ss_invert

* ci(pre-commit): Apply automatic fixes

---------

Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2025-04-29 10:49:23 +03:00
Luca Burelli
16fcdeb0be
fix(arduino): restore proper pin remapping functionality (#11315)
Commit 0773dd7619 from PR #10841 broke pin
remapping by moving its application too early in the definition process.
This commit restores the original order of includes, ensuring that pin
remapping is applied correctly.

Signed-off-by: Luca Burelli <l.burelli@arduino.cc>
Co-authored-by: Sugar Glider <rodrigo.garcia@espressif.com>
2025-04-29 08:57:51 +03:00
UltimumControl
b461e01e22
New SPI invert hardware SS function in hall-spi and SPI library (#11297)
* Add files via upload

* Add files via upload

* Update SPI.h

* Update esp32-hal-spi.c

renamed invert_out to ss_invert to be more intuitive

* Update esp32-hal-spi.h

Removed the out from the function name spiSSInvertout.

* Update SPI.cpp

Removed the out from the function name spiSSInvertout.

* Update cores/esp32/esp32-hal-spi.c

Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>

* 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>
2025-04-28 20:45:31 +03:00
Sugar Glider
51023aea79
feat(ledc): clear all fields added to ledc struct in IDF 5.4 (#11276)
* feat(ledc): clear all fields added to ledc struct in IDF 5.4

* feat(ledc): use memset for all ledc struct

* fix(ledc): typo - missing semi collon

* ci(pre-commit): Apply automatic fixes

---------

Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2025-04-23 20:20:05 +03:00
Lucas Saavedra Vaz
a8bead7efb
fix(gpio): Fix GPIO warning message (#11268) 2025-04-22 09:16:46 +03:00
Jason2866
9cad83bacf
check for CONFIG_BT_BLUEDROID_ENABLED in esp32-hal-misc.c (#11234)
* check for `CONFIG_BT_BLUEDROID_ENABLED` in esp32-hal-misc.c

* overseen changes to `CONFIG_BT_BLUEDROID_ENABLED`
2025-04-14 12:13:55 +03:00
Mathieu Carbou
60c8206ee6
feat(logging): Arduino log redirection (#11159)
* feat(logging): Arduino log redirection

* fix(uart): log will only use ets_printf() for uart and cdc

* feat(uart_cdc): when CDC is logging, UART is silent

* feat(uart_cdc): when CDC is logging, UART is silent

* ci(pre-commit): Apply automatic fixes

---------

Co-authored-by: Sugar Glider <rodrigo.garcia@espressif.com>
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2025-04-14 12:08:33 +03:00
Sugar Glider
be57376b6b
fix(usb): uninitilized variable warning message (#11222) 2025-04-09 11:56:52 +03:00
Jason2866
8e8b1cbd31
Use CONFIG_BT_BLUEDROID_ENABLED for enabling (#11214)
Co-authored-by: Sugar Glider <rodrigo.garcia@espressif.com>
2025-04-09 11:26:13 +03:00
Gonzalo Brusco
0cc8eab836
Add an option to force IDF's default UART clock source (#11191)
* Add an option to force IDF's default UART clock source

* feat(uart): adds function to set clock source

* feat(uart): add uart clock source selection method

* feat(uart): add uart hall function to set the uart clock source

* feat(uart): add function to set the uart clock source

* feat(uart): set clock source as necessary

* fix(uart): missing class qualifier declaration

* fix(uart): fixing a typo and non LP UART SoC clk src setting

* fix(uart): variable name, typo error

* fix(uart): retores previous identation reducing diff load

* feat(uart): apply CONFIG_ARDUINO_SERIAL_FORCE_IDF_DEFAULT_CLOCK_SOURCE to LP UART

* feat(uart): adds option for UART_CLK_SRC_DEFAULT

* feat(uart): adds option for setting default uart clock source from IDF

* feat(uart): documents UART_CLK_SRC_DEFAULT as option in header file

* feat(uart): documents using the IDF default uart clock source

* fix(uart): type missmatch may cause error

* fix(uart): type missmatch may cause error, test for -1

* feat(uart): considering both HP and LP default uart clock source

* feat(uart): improve the defined value for UART_CLK_SRC_DEFAULT

* fix(uart): using uart_sclk_t as hal level parameter

* feat(uart): apply default LP uart clock source

* fix(uart): considers that it may set the LP UART as well

* feat(uart): using UART SCLK enum for uart clock source values

* fix(uart): using UART_CLK_SRC_RTC now

* fix(uart): documentation using UART_CLK_SRC_RTC now

* fix(uart): fix old commentary that is not correct anymore

* fix(uart): wrong identation in code line

* fix(uart): using uart number as argument instead

* fix(uart): using uart number as argument in setClockSource()

* fix(uart): using uart number as parameter in uartSetClockSource()

* feat(uart): update Kconfig.projbuild to reflect functionality

* feat(uart): removing Kconfig.projbuild option to force default clk src

* feat(uart): removes kconfig option to force uart default clk src

* fix(uart): replacing #if #endif by #if #elif #endif for the same enum

* ci(pre-commit): Apply automatic fixes

---------

Co-authored-by: Sugar Glider <rodrigo.garcia@espressif.com>
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2025-04-09 11:25:06 +03:00
Sugar Glider
22f07d01c8
fix(rmt): memset all config structs to zero before using (#11203)
* fix(rmt): memset all config structs to zero to increase code safety
2025-04-01 09:36:19 -03:00
Sugar Glider
6273c4ffd8
fix(freertos_stats): remove volatile c++ 20 deprecated warning (#11158) 2025-03-24 14:59:42 +02:00
Sugar Glider
18709faa90
fix(uart): uart rx timeout validation with proper log message (#11141)
* feat(uart): adds a function to calculate maximum valid rx timeout

* fix(uart): check uart rx timeout value and log an error msg

* fix(uart): changes log message to a more clear one

* ci(pre-commit): Apply automatic fixes

---------

Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2025-03-20 02:02:20 +02:00
Sugar Glider
8e62997bfd
fix(UART): sets the correct uart clock source when using begin(baudrate) (#11122)
* fix(uart): uart begin does not set the clock source when baudrate changes

* fix(uart): returns success on baud rate change operation

* fix(code): uart typo - missing ( in the code

* fix(uart): replacing mutex lock to avoid double lock

* 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>
2025-03-17 17:36:44 +02:00
Sugar Glider
efb02d30ac
feat(gpio): allows mixing digital and analog read/write operations (#11016)
* feat(gpio): allows mixing digital and analog read/write operations

* fix(gpio): simple mistake in calling __pinMode() fnuction

* fix(gpio): simple mistake in calling __pinMode() fnuction

* feat(gpio): update the log message to tell the solution for the error.

* feat(gpio): warn user about digitalRead() used with non GPIO pin

* fix(gpio): wrong peripheral manager test case
2025-03-09 13:20:59 +02:00
iranl
684a9312e6
fix(bt): Compile error on ESP32-P4 (#11035)
* fix(bt): Fix compile error on ESP32-P4

* fix(bt): Fix compile error on ESP32-P4
2025-03-05 12:45:11 +02:00
Gonzalo Brusco
09d89c6da1
Fix HardwareSerial config (#11007) 2025-02-25 17:58:10 +02:00
Rodrigo Garcia
646785e086
feat(LP_UART): Implements the ESP32-C6/ESP32-P4 Low Power UART as a possible HardwareSerial port (#10967)
* feat(uart): adds low power uart peripheral into hardware serial class

* feat(lp_uart): pin setting for lp uart plus esp32p4 fixes

* fix(uart): keeps the test as it was before.

* fix(uart): updates the copyright year reference

* fix(uart): updates the copyright year reference

* feat(lp_uart): supports any number of lp uart port for the future

* 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>
2025-02-19 01:01:18 +02:00
me-no-dev
55f4f1bfa8 Update core version to 3.2.0 2025-02-18 19:10:54 +02:00
Me No Dev
f0cf3b1af6 feat(i2c): Add support for the new I2C driver in IDF v5.4 (#10858)
* feat(i2c): Add support for the new I2C driver in IDF v5.4

* fix(build): Add the new driver to CMakeLists.txt

* fix(i2c): Guard sleep retention

Not all chips can restore I2C bus after light sleep

* ci(pre-commit): Apply automatic fixes

---------

Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2025-02-18 10:11:55 +02:00
Me No Dev
47343a43f7 feat(idf): Add support for IDF v5.4 (#10823) 2025-02-18 10:11:55 +02:00
me-no-dev
dbfde15b6a Update core version to 3.1.3 2025-02-17 15:28:32 +02:00
TD-er
758cbd097d
Fix crash in String when using nullptr (#10971) (#10972)
Fixes: #10971
2025-02-17 15:27:41 +02:00
me-no-dev
62082398d3 Update core version to 3.1.2 2025-02-13 14:32:20 +02:00
TD-er
5488d5d23f
Fix crash when using String::move on empty string (#10938) (#10945)
Fixes: #10938
Keep allocated memory when rhs fits

Use case: Appending to a String with pre-allocated memory (e.g. from `reserve()`)
No need to move 0-termination char in String::move
Simplify calls to String::copy

A lot of the same checks were done before calling `copy()` which should be done in the `copy()` function itself.
String::copy() Should not copy more than given length
Fix potential out of range in String::concat

There is no prerequisite the given array has to be a 0-terminated char array.
So we should only copy the length that has been given.

The `setLen()` function will make sure the internal string is 0-terminated.
So no need to dangerously assume there will be 1 more byte to copy
Allow String::concat(const String &s) with s.buffer() == nullptr

When constructing a String object, the internal buffer is a nullptr.
However concatenating this to another String would return `false` while this is perfectly fine to do.
2025-02-13 14:14:05 +02:00
Me No Dev
7b651b64d6
feat(cdc): Add support for two CDC ports at once (#10962)
* feat(cdc): Add support for two CDC ports at once

* ci(pre-commit): Apply automatic fixes

---------

Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2025-02-13 12:51:28 +02:00
lbernstone
2fecc482b7
fix(littlefs): Converted core disableWDT functions to bool (#10896)
* fix(littlefs): Converted core disableWDT functions to bool

* Missed the returns on core1

* ci(pre-commit): Apply automatic fixes

---------

Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2025-01-27 12:39:15 +02:00
Rodrigo Garcia
0773dd7619
Bugfix/include order (#10841)
* fix(arduino): include order pins_arduino first

* fix(arduino): include order pins_arduino first

* fix(arduino): include order pins_arduino first
2025-01-13 12:40:14 +02:00
Me No Dev
7cfe0adc87
IDF release/v5.3 (#10816)
* IDF release/v5.3 cfea4f7c

* Update core version
2025-01-07 15:50:38 +02:00
Mattia Pennasilico
5f44c4ebc5
fix(client): Restore Arduino Client API (#10776) 2025-01-07 12:03:11 +02:00
Lucas Saavedra Vaz
c688f3090f
fix(clk_src): Fix error as APLL is not yet supported for P4 2024-12-16 10:48:50 -03:00
Me No Dev
3c3ff48d73
Merge branch 'master' into release/v3.1.x 2024-12-14 17:52:55 +02:00
Mathieu Carbou
71396de822
fix(sntp): Lock / Unlock LWIP if CONFIG_LWIP_TCPIP_CORE_LOCKING is set
- Fixes: #10526
- Completes old PR #10529
2024-12-13 09:09:09 +01:00
Lucas Saavedra Vaz
3d8014b453
Merge branch 'master' into release/v3.1.x 2024-12-10 10:23:39 -03:00
Me No Dev
9660e66325
feat(chip): Add definition for BOOT_PIN for all chips (#10700)
* feat(chip): Add definition for BOOT_PIN for all chips

For use in sketches as default button

* fix(core): Make BOOT_PIN static

* fix(hal): BOOT_PIN should always be defined
2024-12-10 01:12:50 +02:00
Michael Stegen
19e4d0db4a
fix ESP32-U4WDH chip detection by ESP.getChipModel() (#10696)
* fixes chip detection for ESP32-U4WDH
2024-12-09 12:59:52 -03:00
Rodrigo Garcia
414e4f3233
feat(Matter): add new MatterColorLight endpoint (#10654)
* feat(matter): adds Matter Color Light endpoint
2024-11-26 17:14:38 -03:00
Rodrigo Garcia
9417a84918
feat(uart): [IDF 5.3] fixes HardwareSerial::updateBaudRate() using a baud rate higher 230400 - checks UART Clock Source (#10643)
* fix(uart): fixes issue with update baudrate higher than 250000

* ci(pre-commit): Apply automatic fixes

---------

Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2024-11-25 13:13:01 +02:00
Jason2866
6e57662599
fix compile of P4 caused from missing ")" in debug macro (#10638) 2024-11-25 11:49:24 +02:00
Jason2866
4a8ba4294e
fix weird formatting, no code change (#10617)
* fix formatting

* Disable formatter for these lines

---------

Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>
2024-11-19 12:18:06 +02:00
Me No Dev
f8d9ffb74a
fix(net): Allow to compile without IPv6 enabled (#10582)
* fix(net): Allow to compile without IPv6 enabled

cc: @Jason2866

* ci(pre-commit): Apply automatic fixes

---------

Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2024-11-12 11:29:52 +02:00
s-hadinger
a80b03e017
fix(IPaddress): IPv6 restore zone id (#10546)
* IPv6 restore zone id

This PR restores the IPv6 zone-id in String representation of IPv6 address as well as parsing. This follows 20a28b58bc that disabled it due to a crash in `netif_index_to_name()`.

The fixed code scans through `netif_list` to find the `netif` name and id.

Note: zone-id are incremented by 1 compared to `netif` id.

For example internal zoneid value `3` actually translates to `%st2`

* ci(pre-commit): Apply automatic fixes

---------

Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2024-11-06 00:58:30 +02:00
Lucas Saavedra Vaz
f1e1f5ab95
Merge branch 'master' into release/v3.1.x 2024-11-04 19:43:44 -03:00
Mathieu Carbou
d47771f2cc
fix(sntp): Lock / Unlock LWIP if CONFIG_LWIP_TCPIP_CORE_LOCKING is set (#10529)
* fix(sntp): Lock / Unlock LWIP if CONFIG_LWIP_TCPIP_CORE_LOCKING is set
Fixes: https://github.com/espressif/arduino-esp32/issues/10526

* ci(pre-commit): Apply automatic fixes

---------

Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2024-10-29 13:10:40 +02:00
Rodrigo Garcia
9aeb1ba548
ESP32-P4 UART Pin Definitions (#10521)
* feat(uart): allow pins_arduino.h to define esp32-p4 uart pins

ESP32-P4 has UART default pins only for UART0 and UART1.
This PR allows the board definition from pins_arduino.h to define RX2 ... RX4 and TX2 ... TX4 if necessary.
It also solves the issue of begin(baud) with no pins for UART2...4 by just sending a error message and returning.

* feat(uart): removes the uart2 pin definitions - not existant

* fix(uart): solves the case when uart has already been initialized

* ci(pre-commit): Apply automatic fixes

* fix(ci): uart definition for esp32-p4 uart2 rx,tx pins

---------

Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2024-10-25 15:07:37 +03:00