Commit graph

721 commits

Author SHA1 Message Date
Sugar Glider
9d84c78cf2
feat(uart): fixes pin attach for any IDF 5.x (#11499)
* feat(uart): fixes pin attach for any IDF 5.x

* fix(uart): commentary typo error

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix(uart): commentary typo error

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix(uart): commentary typo error

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix(uart): commentary style fix

* ci(pre-commit): Apply automatic fixes

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2025-06-22 21:02:36 +03:00
Sugar Glider
01e4d5debb
feat(uart): fixes loopback function after IDF changes (#11492)
* feat(uart): fixes loopback function after IDF changes

IDF 5.4.1 has added a new function called uart_release_pin() that is called whenever new pins are set or when uart driver is deleted.

This has a side effect that causes RX pin to never work again with the loopback function. Other changes also have removed some GPIO setup that was necessary for the GPIO loopback mode work.

The PR forces a full RX Pin setup in order to make it work in GPIO Matrix with Loopback TX Signal

* feat(uart): adds missing include file

* feat(uart): removes not necessary part of the code

* fix(uart): commentaries style fix

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* ci(pre-commit): Apply automatic fixes

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2025-06-21 15:45:26 +03:00
Jan Procházka
6d4886cd1f
feat(spi): Add return values to SPI begin (#11477) 2025-06-17 16:23:35 +03:00
Jan Procházka
7462b09bb4
feat(LEDC): Add Gamma Fade support and enhance auto channel/timer selection for multi-group (#11464)
* feat(ledc): Enhance LEDC auto channel/timer selection for multi-group support

* feat(ledc): Add Gamma Fade support

* fix(example): Update comments

* 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-06-16 14:44:11 +03:00
Paula Scharf
422e52684b
fix(msc): remove weak function declaration of tud_msc_is_writable_cb (#11353)
Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>
2025-06-10 14:29:27 +03:00
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