Skip to content

fix(uart): fixes setPins() when changing RTS and CTS#12201

Merged
me-no-dev merged 11 commits intomasterfrom
fix/uart_set_pins_rts_cts_failure
Jan 12, 2026
Merged

fix(uart): fixes setPins() when changing RTS and CTS#12201
me-no-dev merged 11 commits intomasterfrom
fix/uart_set_pins_rts_cts_failure

Conversation

@SuGlider
Copy link
Collaborator

@SuGlider SuGlider commented Jan 5, 2026

Description of Change

IDF 5.1+ has finally fixed the issue related to changing a single UART pin (rx, tx, cts, rts).
It has been backported from 5.5.2 to 5.1.0.

An issue was found that prevents RTS and CTS pins to be correctly configures when HardwareSerial::setPins() is executed before HardwareSerial::begin(). This issue is fixed by the change from IDF in conjuction with the changes of this PR.

As part of the testing and also for demonstation purpose, a new RX-TX + RTS-CTS loopback using Hardware Flow Control has been provided as part of this PR.

Test Scenarios

tested using an ESP32-S3 and the provided examples in different configurations.

Related links

Closes #12199

@SuGlider SuGlider added this to the 3.3.0 milestone Jan 5, 2026
@SuGlider SuGlider self-assigned this Jan 5, 2026
@SuGlider SuGlider requested a review from a team as a code owner January 5, 2026 03:37
@SuGlider SuGlider added Type: Bug 🐛 All bugs Peripheral: UART Related to the UART peripheral or its functionality. labels Jan 5, 2026
@github-actions
Copy link
Contributor

github-actions bot commented Jan 5, 2026

Warnings
⚠️

Some issues found for the commit messages in this PR:

  • the commit message "fix(doc): improvement and docs bullet fix":
    • body's lines must not be longer than 100 characters

Please fix these commit messages - here are some basic tips:

  • follow Conventional Commits style
  • correct format of commit message should be: <type/action>(<scope/component>): <summary>, for example fix(esp32): Fixed startup timeout issue
  • allowed types are: change,ci,docs,feat,fix,refactor,remove,revert,test
  • sufficiently descriptive message summary should be between 10 to 72 characters and start with upper case letter
  • avoid Jira references in commit messages (unavailable/irrelevant for our customers)

TIP: Install pre-commit hooks and run this check when committing (uses the Conventional Precommit Linter).

👋 Hello SuGlider, we appreciate your contribution to this project!


📘 Please review the project's Contributions Guide for key guidelines on code, documentation, testing, and more.

🖊️ Please also make sure you have read and signed the Contributor License Agreement for this project.

Click to see more instructions ...


This automated output is generated by the PR linter DangerJS, which checks if your Pull Request meets the project's requirements and helps you fix potential issues.

DangerJS is triggered with each push event to a Pull Request and modify the contents of this comment.

Please consider the following:
- Danger mainly focuses on the PR structure and formatting and can't understand the meaning behind your code or changes.
- Danger is not a substitute for human code reviews; it's still important to request a code review from your colleagues.
- Resolve all warnings (⚠️ ) before requesting a review from human reviewers - they will appreciate it.
- To manually retry these Danger checks, please navigate to the Actions tab and re-run last Danger workflow.

Review and merge process you can expect ...


We do welcome contributions in the form of bug reports, feature requests and pull requests.

1. An internal issue has been created for the PR, we assign it to the relevant engineer.
2. They review the PR and either approve it or ask you for changes or clarifications.
3. Once the GitHub PR is approved we do the final review, collect approvals from core owners and make sure all the automated tests are passing.
- At this point we may do some adjustments to the proposed change, or extend it by adding tests or documentation.
4. If the change is approved and passes the tests it is merged into the default branch.

Generated by 🚫 dangerJS against bef7ed0

@github-actions
Copy link
Contributor

github-actions bot commented Jan 5, 2026

Test Results

 90 files   90 suites   28m 25s ⏱️
 67 tests  67 ✅ 0 💤 0 ❌
683 runs  683 ✅ 0 💤 0 ❌

Results for commit bef7ed0.

♻️ This comment has been updated with latest results.

@github-actions
Copy link
Contributor

github-actions bot commented Jan 5, 2026

Memory usage test (comparing PR against master branch)

The table below shows the summary of memory usage change (decrease - increase) in bytes and percentage for each target.

MemoryFLASH [bytes]FLASH [%]RAM [bytes]RAM [%]
TargetDECINCDECINCDECINCDECINC
ESP32C50⚠️ +13700.00⚠️ +0.13000.000.00
ESP32P4💚 -502⚠️ +1120💚 -0.09⚠️ +0.37💚 -640💚 -0.210.00
ESP32S30⚠️ +7960.00⚠️ +0.09000.000.00
ESP32S2💚 -300⚠️ +1068💚 -0.06⚠️ +0.42💚 -16⚠️ +16💚 -0.10⚠️ +0.10
ESP32C3💚 -316⚠️ +1004💚 -0.06⚠️ +0.37💚 -4⚠️ +16💚 -0.03⚠️ +0.07
ESP32C60⚠️ +13680.00⚠️ +0.14000.000.00
ESP32H2💚 -314⚠️ +974💚 -0.06⚠️ +0.37💚 -4⚠️ +16💚 -0.03⚠️ +0.06
ESP32💚 -252⚠️ +1072💚 -0.04⚠️ +0.29💚 -16⚠️ +16💚 -0.08⚠️ +0.08
Click to expand the detailed deltas report [usage change in BYTES]
TargetESP32C5ESP32P4ESP32S3ESP32S2ESP32C3ESP32C6ESP32H2ESP32
ExampleFLASHRAMFLASHRAMFLASHRAMFLASHRAMFLASHRAMFLASHRAMFLASHRAMFLASHRAM
libraries/ArduinoOTA/examples/BasicOTA⚠️ +13700⚠️ +10980⚠️ +7560⚠️ +7560⚠️ +9480⚠️ +13640--⚠️ +8160
libraries/ArduinoOTA/examples/SignedOTA⚠️ +13700⚠️ +10980⚠️ +7560⚠️ +7640⚠️ +9480⚠️ +13640--⚠️ +8080
libraries/AsyncUDP/examples/AsyncUDPClient--⚠️ +11180⚠️ +7400⚠️ +8400⚠️ +9640⚠️ +13680--⚠️ +9000
libraries/AsyncUDP/examples/AsyncUDPMulticastServer--⚠️ +11180⚠️ +7600⚠️ +7840⚠️ +9640----⚠️ +8880
libraries/AsyncUDP/examples/AsyncUDPServer--⚠️ +11180⚠️ +7960⚠️ +8320⚠️ +9640----⚠️ +8880
libraries/BLE/examples/Beacon_Scanner--⚠️ +11080----⚠️ +9560--⚠️ +968⚠️ +12⚠️ +8680
libraries/BLE/examples/Client--⚠️ +11120----⚠️ +968⚠️ +16--⚠️ +952⚠️ +4⚠️ +900⚠️ +16
libraries/BLE/examples/Client_Server--⚠️ +11120----⚠️ +968⚠️ +16--⚠️ +952⚠️ +4⚠️ +872⚠️ +16
libraries/BLE/examples/Client_multiconnect--⚠️ +11200----⚠️ +9560--⚠️ +968⚠️ +12⚠️ +8840
libraries/BLE/examples/Client_secure_static_passkey--⚠️ +11120----⚠️ +968⚠️ +16--⚠️ +952⚠️ +4⚠️ +8800
libraries/BLE/examples/EddystoneTLM_Beacon--⚠️ +11140----⚠️ +9480--⚠️ +952⚠️ +4⚠️ +8960
libraries/BLE/examples/EddystoneURL_Beacon--⚠️ +11140----⚠️ +9480--⚠️ +952⚠️ +4⚠️ +8920
libraries/BLE/examples/Notify--⚠️ +1056💚 -64----⚠️ +968⚠️ +16--⚠️ +952⚠️ +4⚠️ +924⚠️ +16
libraries/BLE/examples/Scan--⚠️ +11080----⚠️ +9560--⚠️ +968⚠️ +12⚠️ +8920
libraries/BLE/examples/Server--⚠️ +1056💚 -64----⚠️ +968⚠️ +16--⚠️ +952⚠️ +4⚠️ +920⚠️ +16
libraries/BLE/examples/Server_multiconnect--⚠️ +1056💚 -64----⚠️ +968⚠️ +16--⚠️ +952⚠️ +4⚠️ +908⚠️ +16
libraries/BLE/examples/Server_secure_static_passkey--⚠️ +1056💚 -64----⚠️ +968⚠️ +16--⚠️ +952⚠️ +4⚠️ +8600
libraries/BLE/examples/UART--⚠️ +1056💚 -64----⚠️ +968⚠️ +16--⚠️ +952⚠️ +4⚠️ +888⚠️ +16
libraries/BLE/examples/Write--⚠️ +1056💚 -64----⚠️ +968⚠️ +16--⚠️ +952⚠️ +4⚠️ +920⚠️ +16
libraries/BLE/examples/iBeacon--⚠️ +1056💚 -64----⚠️ +968⚠️ +16--⚠️ +952⚠️ +4⚠️ +904⚠️ +16
libraries/DNSServer/examples/CaptivePortal--⚠️ +11180--⚠️ +8040⚠️ +9960----⚠️ +888⚠️ +16
libraries/EEPROM/examples/eeprom_class--⚠️ +11080--⚠️ +7760⚠️ +948💚 -4--⚠️ +956⚠️ +4⚠️ +772💚 -16
libraries/EEPROM/examples/eeprom_extra--⚠️ +11040--⚠️ +7480⚠️ +948💚 -4--⚠️ +956⚠️ +4⚠️ +788💚 -16
libraries/EEPROM/examples/eeprom_write--⚠️ +10980--⚠️ +7560⚠️ +960⚠️ +4--⚠️ +948💚 -4⚠️ +8040
libraries/ESP32/examples/AnalogOut/LEDCFade--⚠️ +10900--⚠️ +7480⚠️ +9460--⚠️ +9440⚠️ +7960
libraries/ESP32/examples/AnalogOut/LEDCGammaFade--⚠️ +10920--------⚠️ +9520--
libraries/ESP32/examples/AnalogOut/LEDCSingleChannel--⚠️ +10920--⚠️ +7480⚠️ +9560--⚠️ +9520⚠️ +8000
libraries/ESP32/examples/AnalogOut/LEDCSoftwareFade--⚠️ +10960--⚠️ +7480⚠️ +9560--⚠️ +9520⚠️ +8000
libraries/ESP32/examples/AnalogOut/SigmaDelta--⚠️ +10940--⚠️ +7480⚠️ +948💚 -4--⚠️ +958⚠️ +4⚠️ +792💚 -16
libraries/ESP32/examples/AnalogOut/ledcFrequency--⚠️ +10940--⚠️ +7560⚠️ +9460--⚠️ +9500⚠️ +8000
libraries/ESP32/examples/AnalogOut/ledcWrite_RGB--⚠️ +10900--⚠️ +8520⚠️ +9480--⚠️ +9440⚠️ +8120
libraries/ESP32/examples/AnalogRead--⚠️ +10900--⚠️ +784💚 -16⚠️ +936⚠️ +4--⚠️ +930💚 -4⚠️ +7960
libraries/ESP32/examples/AnalogReadContinuous--⚠️ +10940--⚠️ +7640⚠️ +944⚠️ +4--⚠️ +936💚 -4⚠️ +812⚠️ +16
libraries/ESP32/examples/ArduinoStackSize--⚠️ +10980--⚠️ +7560⚠️ +942💚 -4--⚠️ +940⚠️ +4⚠️ +788💚 -16
libraries/ESP32/examples/ArduinoWaitTimeBeforeStartingSketch--⚠️ +10960--⚠️ +7560⚠️ +946💚 -4--⚠️ +942⚠️ +4⚠️ +788💚 -16
libraries/ESP32/examples/CI/CIBoardsTest--⚠️ +10980--⚠️ +7520⚠️ +9500--⚠️ +9500⚠️ +7960
libraries/ESP32/examples/ChipID/GetChipID--⚠️ +11020--⚠️ +732💚 -16⚠️ +936💚 -4--⚠️ +946⚠️ +4⚠️ +7880
libraries/ESP32/examples/DeepSleep/TimerWakeUp--⚠️ +11040--⚠️ +772⚠️ +16⚠️ +932💚 -4----⚠️ +7880
libraries/ESP32/examples/DeepSleep/TouchWakeUp--⚠️ +10940--⚠️ +7480------⚠️ +8120
libraries/ESP32/examples/FreeRTOS/BasicMultiThreading--⚠️ +10920--⚠️ +7480⚠️ +9520--⚠️ +9520⚠️ +7960
libraries/ESP32/examples/FreeRTOS/Mutex--⚠️ +11000--⚠️ +7560⚠️ +940💚 -4--⚠️ +948⚠️ +4⚠️ +8040
libraries/ESP32/examples/FreeRTOS/Queue--⚠️ +11000--⚠️ +7560⚠️ +942💚 -4--⚠️ +944⚠️ +4⚠️ +772💚 -16
libraries/ESP32/examples/FreeRTOS/Semaphore--⚠️ +10980--⚠️ +7560⚠️ +946💚 -4--⚠️ +942⚠️ +4⚠️ +788💚 -16
libraries/ESP32/examples/GPIO/BlinkRGB--⚠️ +10980--⚠️ +7560⚠️ +9500--⚠️ +9460⚠️ +792💚 -16
libraries/ESP32/examples/GPIO/FunctionalInterrupt--⚠️ +10920--⚠️ +8120⚠️ +9440--⚠️ +9460⚠️ +8120
libraries/ESP32/examples/GPIO/FunctionalInterruptLambda--⚠️ +10920--⚠️ +7560⚠️ +9540--⚠️ +9540⚠️ +7960
libraries/ESP32/examples/GPIO/FunctionalInterruptStruct--⚠️ +10980--⚠️ +7880⚠️ +9440--⚠️ +9400⚠️ +7960
libraries/ESP32/examples/GPIO/GPIOInterrupt--⚠️ +11000--⚠️ +9200⚠️ +9420--⚠️ +9420⚠️ +7960
libraries/ESP32/examples/HWCDC_Events--⚠️ +10980----⚠️ +9540--⚠️ +9560--
libraries/ESP32/examples/MacAddress/GetMacAddress--⚠️ +11040--⚠️ +7480⚠️ +930💚 -4--⚠️ +948⚠️ +4⚠️ +788💚 -16
libraries/ESP32/examples/RMT/Legacy_RMT_Driver_Compatible--⚠️ +10900--⚠️ +7560⚠️ +9380--⚠️ +9400⚠️ +772💚 -16
libraries/ESP32/examples/RMT/RMTCallback--⚠️ +11040--⚠️ +8120⚠️ +934💚 -4--⚠️ +946⚠️ +4⚠️ +788💚 -16
libraries/ESP32/examples/RMT/RMTLoopback--⚠️ +11020--⚠️ +8480⚠️ +946💚 -4--⚠️ +954⚠️ +4⚠️ +788💚 -16
libraries/ESP32/examples/RMT/RMTReadXJT--⚠️ +11000--⚠️ +8520⚠️ +930💚 -4--⚠️ +974⚠️ +4⚠️ +7880
libraries/ESP32/examples/RMT/RMTWrite_RGB_LED--⚠️ +11000--⚠️ +8200⚠️ +926💚 -4--⚠️ +972⚠️ +4⚠️ +8040
libraries/ESP32/examples/RMT/RMT_CPUFreq_Test--⚠️ +11060--⚠️ +7920⚠️ +946💚 -4--⚠️ +956⚠️ +4⚠️ +788💚 -16
libraries/ESP32/examples/RMT/RMT_EndOfTransmissionState--⚠️ +11000--⚠️ +812💚 -16⚠️ +938💚 -4--⚠️ +950⚠️ +4⚠️ +7880
libraries/ESP32/examples/RMT/RMT_LED_Blink--⚠️ +11100--⚠️ +8200⚠️ +948💚 -4--⚠️ +956⚠️ +4⚠️ +7880
libraries/ESP32/examples/ResetReason/ResetReason--⚠️ +11000--⚠️ +772⚠️ +16⚠️ +938💚 -4--⚠️ +944⚠️ +4⚠️ +7880
libraries/ESP32/examples/ResetReason/ResetReason2--⚠️ +10920--⚠️ +7480⚠️ +946💚 -4--⚠️ +942⚠️ +4⚠️ +772💚 -16
libraries/ESP32/examples/Serial/BaudRateDetect_Demo--⚠️ +10980--⚠️ +7480⚠️ +942💚 -4--⚠️ +944⚠️ +4⚠️ +772💚 -16
libraries/ESP32/examples/Serial/HardwareFlowControl_Demo----------------
libraries/ESP32/examples/Serial/OnReceiveError_BREAK_Demo--⚠️ +10940--⚠️ +740💚 -16⚠️ +952⚠️ +4--⚠️ +944💚 -4⚠️ +8040
libraries/ESP32/examples/Serial/OnReceive_Demo--⚠️ +10960--⚠️ +7560⚠️ +950⚠️ +4--⚠️ +942💚 -4⚠️ +8040
libraries/ESP32/examples/Serial/RS485_Echo_Demo--⚠️ +10980--⚠️ +7560⚠️ +942💚 -4--⚠️ +944⚠️ +4⚠️ +788💚 -16
libraries/ESP32/examples/Serial/RxFIFOFull_Demo--⚠️ +10900--⚠️ +7480⚠️ +952⚠️ +4--⚠️ +940💚 -4⚠️ +7880
libraries/ESP32/examples/Serial/RxTimeout_Demo--⚠️ +11000--⚠️ +7560⚠️ +936💚 -4--⚠️ +950⚠️ +4⚠️ +8040
libraries/ESP32/examples/Serial/Serial_All_CPU_Freqs--⚠️ +11000--⚠️ +7480⚠️ +938💚 -4--⚠️ +950⚠️ +4⚠️ +7880
libraries/ESP32/examples/Serial/Serial_STD_Func_OnReceive--⚠️ +10920--⚠️ +7560⚠️ +950⚠️ +4--⚠️ +942💚 -4⚠️ +8040
libraries/ESP32/examples/Serial/onReceiveExample--⚠️ +11040--⚠️ +7560⚠️ +934💚 -4--⚠️ +946⚠️ +4⚠️ +788💚 -16
libraries/ESP32/examples/TWAI/TWAIreceive--⚠️ +11000--⚠️ +8720⚠️ +936💚 -4--⚠️ +946⚠️ +4⚠️ +784💚 -16
libraries/ESP32/examples/TWAI/TWAItransmit--⚠️ +11000--⚠️ +8400⚠️ +934💚 -4--⚠️ +944⚠️ +4⚠️ +784💚 -16
libraries/ESP32/examples/Template/ExampleTemplate--⚠️ +10980--⚠️ +7560⚠️ +944💚 -4--⚠️ +952⚠️ +4⚠️ +792💚 -16
libraries/ESP32/examples/Time/SimpleTime--⚠️ +11060--⚠️ +8520⚠️ +9480----⚠️ +912⚠️ +16
libraries/ESP32/examples/Timer/RepeatTimer--⚠️ +10980--⚠️ +8600⚠️ +9460--⚠️ +9480⚠️ +7960
libraries/ESP32/examples/Timer/WatchdogTimer--⚠️ +10920--⚠️ +8560⚠️ +9460--⚠️ +9460⚠️ +7960
libraries/ESP32/examples/Touch/TouchButton--⚠️ +10920--⚠️ +7480------⚠️ +7960
libraries/ESP32/examples/Touch/TouchInterrupt--⚠️ +10940--⚠️ +7480------⚠️ +7960
libraries/ESP32/examples/Touch/TouchRead--⚠️ +10920--⚠️ +7480------⚠️ +7960
libraries/ESP_HostedOTA/examples/ESP_HostedOTA--⚠️ +11060------------
libraries/ESP_I2S/examples/ES8388_loopback--⚠️ +10980--⚠️ +7440⚠️ +9480--⚠️ +9480⚠️ +8520
libraries/ESP_I2S/examples/Record_to_WAV--⚠️ +10980----------⚠️ +776💚 -16
libraries/ESP_I2S/examples/Simple_tone--⚠️ +10980--⚠️ +7520⚠️ +958⚠️ +4--⚠️ +946💚 -4⚠️ +8040
libraries/ESP_SR/examples/Basic--⚠️ +10880------------
libraries/ESPmDNS/examples/mDNS-SD_Extended--⚠️ +11180--⚠️ +8040⚠️ +9560----⚠️ +8760
libraries/ESPmDNS/examples/mDNS_Web_Server--⚠️ +11180--⚠️ +8080⚠️ +9560----⚠️ +8400
libraries/Ethernet/examples/ETH_TLK110--⚠️ +10980----------⚠️ +8160
libraries/Ethernet/examples/ETH_W5500_Arduino_SPI--⚠️ +10980--⚠️ +7600⚠️ +9480--⚠️ +9480⚠️ +7960
libraries/Ethernet/examples/ETH_W5500_IDF_SPI--⚠️ +10980--⚠️ +7600⚠️ +9480--⚠️ +9480⚠️ +7960
libraries/Ethernet/examples/ETH_WIFI_BRIDGE--⚠️ +10980--⚠️ +7640⚠️ +9480----⚠️ +8280
libraries/FFat/examples/FFat_Test--⚠️ +11080--⚠️ +7480⚠️ +9480--⚠️ +9560⚠️ +8040
libraries/FFat/examples/FFat_time--⚠️ +1046💚 -64--⚠️ +8600⚠️ +9560----⚠️ +864⚠️ +16
libraries/HTTPClient/examples/Authorization--⚠️ +11060--⚠️ +8080⚠️ +9480----⚠️ +868⚠️ +16
libraries/HTTPClient/examples/BasicHttpClient--⚠️ +11060--⚠️ +8000⚠️ +9480----⚠️ +868⚠️ +16
libraries/HTTPClient/examples/BasicHttpsClient--⚠️ +11060--⚠️ +8160⚠️ +9480----⚠️ +896⚠️ +16
libraries/HTTPClient/examples/CustomHeaders--⚠️ +11060--⚠️ +8080⚠️ +9480----⚠️ +8520
libraries/HTTPClient/examples/ReuseConnection--⚠️ +11060--⚠️ +8080⚠️ +9480----⚠️ +868⚠️ +16
libraries/HTTPClient/examples/StreamHttpClient--⚠️ +11060--⚠️ +8200⚠️ +9480----⚠️ +892⚠️ +16
libraries/HTTPUpdate/examples/httpUpdate--⚠️ +10980--⚠️ +7680⚠️ +9480----⚠️ +8160
libraries/HTTPUpdate/examples/httpUpdateSPIFFS--⚠️ +10980--⚠️ +7880⚠️ +9480----⚠️ +7960
libraries/HTTPUpdate/examples/httpUpdateSecure--⚠️ +10980--⚠️ +7680⚠️ +9480----⚠️ +8120
libraries/HTTPUpdateServer/examples/WebUpdater--⚠️ +10980--⚠️ +7600⚠️ +9480----⚠️ +7840
libraries/Hash/examples/HEX--⚠️ +10980--⚠️ +7560⚠️ +938💚 -4--⚠️ +950⚠️ +4⚠️ +788💚 -16
libraries/Hash/examples/MD5--⚠️ +11040--⚠️ +7560⚠️ +944💚 -4--⚠️ +952⚠️ +4⚠️ +772💚 -16
libraries/Hash/examples/PBKDF2_HMAC--⚠️ +11040--⚠️ +7480⚠️ +946💚 -4--⚠️ +954⚠️ +4⚠️ +772💚 -16
libraries/Hash/examples/SHA1--⚠️ +11040--⚠️ +8720⚠️ +946💚 -4--⚠️ +954⚠️ +4⚠️ +772💚 -16
libraries/Hash/examples/SHA2--⚠️ +11060--⚠️ +7640⚠️ +950💚 -4--⚠️ +958⚠️ +4⚠️ +788💚 -16
libraries/Hash/examples/SHA3--⚠️ +11080--⚠️ +10680⚠️ +948💚 -4--⚠️ +956⚠️ +4⚠️ +772💚 -16
libraries/Hash/examples/SHA3Stream--⚠️ +11100--⚠️ +8160⚠️ +946💚 -4--⚠️ +954⚠️ +4⚠️ +788💚 -16
libraries/LittleFS/examples/LITTLEFS_test--⚠️ +11080--⚠️ +7560⚠️ +936💚 -4--⚠️ +956⚠️ +4⚠️ +788💚 -16
libraries/LittleFS/examples/LITTLEFS_time--⚠️ +11100--⚠️ +8720⚠️ +9480----⚠️ +856⚠️ +16
libraries/NetBIOS/examples/ESP_NBNST--⚠️ +11180--⚠️ +7880⚠️ +9640----⚠️ +8560
libraries/NetworkClientSecure/examples/WiFiClientInsecure--⚠️ +11100--⚠️ +8720⚠️ +9560----⚠️ +884⚠️ +16
libraries/NetworkClientSecure/examples/WiFiClientPSK--⚠️ +11180--⚠️ +8640⚠️ +9480----⚠️ +8680
libraries/NetworkClientSecure/examples/WiFiClientSecure--⚠️ +11180--⚠️ +8720⚠️ +9480----⚠️ +8680
libraries/NetworkClientSecure/examples/WiFiClientSecureProtocolUpgrade--⚠️ +11100--⚠️ +8040⚠️ +9560----⚠️ +860⚠️ +16
libraries/NetworkClientSecure/examples/WiFiClientShowPeerCredentials--⚠️ +11060--⚠️ +8120⚠️ +9480----⚠️ +8840
libraries/NetworkClientSecure/examples/WiFiClientTrustOnFirstUse--⚠️ +10980--⚠️ +7640⚠️ +9480----⚠️ +8200
libraries/PPP/examples/PPP_Basic--💚 -5020--💚 -3000💚 -3120--💚 -3120💚 -2280
libraries/PPP/examples/PPP_WIFI_BRIDGE--💚 -5020--💚 -2960💚 -3120----💚 -2400
libraries/Preferences/examples/Prefs2Struct--⚠️ +11020--⚠️ +8480⚠️ +936💚 -4--⚠️ +946⚠️ +4⚠️ +788💚 -16
libraries/Preferences/examples/StartCounter--⚠️ +11000--⚠️ +8640⚠️ +934💚 -4--⚠️ +944⚠️ +4⚠️ +772💚 -16
libraries/SD/examples/SD_Test--⚠️ +10980--⚠️ +7800⚠️ +9480--⚠️ +9480⚠️ +7960
libraries/SD/examples/SD_time--⚠️ +10980--⚠️ +7480⚠️ +9480----⚠️ +8440
libraries/SD_MMC/examples/SD2USBMSC--⚠️ +10980------------
libraries/SD_MMC/examples/SDMMC_Test--⚠️ +10980----------⚠️ +8120
libraries/SD_MMC/examples/SDMMC_time--⚠️ +10980----------⚠️ +8000
libraries/SPI/examples/SPI_Multiple_Buses--⚠️ +10940--⚠️ +7480⚠️ +9480--⚠️ +9480⚠️ +8000
libraries/SPIFFS/examples/SPIFFS_Test--⚠️ +11080--⚠️ +7560⚠️ +944💚 -4--⚠️ +952⚠️ +4⚠️ +788💚 -16
libraries/SPIFFS/examples/SPIFFS_time--⚠️ +11060--⚠️ +8320⚠️ +9480----⚠️ +864⚠️ +16
libraries/TFLiteMicro/examples/hello_world--⚠️ +10940--⚠️ +7360⚠️ +948💚 -4--⚠️ +956⚠️ +4⚠️ +792💚 -16
libraries/Ticker/examples/Blinker--⚠️ +10960--⚠️ +8440⚠️ +9520--⚠️ +9540⚠️ +8000
libraries/Ticker/examples/TickerBasic--⚠️ +10960--⚠️ +8800⚠️ +9480--⚠️ +9540⚠️ +8000
libraries/Ticker/examples/TickerParameter--⚠️ +10960--⚠️ +9080⚠️ +9500--⚠️ +9520⚠️ +8000
libraries/USB/examples/CompositeDevice--⚠️ +10980--⚠️ +7600--------
libraries/USB/examples/ConsumerControl--⚠️ +10960--⚠️ +7480--------
libraries/USB/examples/CustomHIDDevice--⚠️ +10980--⚠️ +7600--------
libraries/USB/examples/FirmwareMSC--⚠️ +10960--⚠️ +736💚 -16--------
libraries/USB/examples/Gamepad--⚠️ +11000--⚠️ +7480--------
libraries/USB/examples/HIDVendor--⚠️ +11000--⚠️ +7480--------
libraries/USB/examples/Keyboard/KeyboardLogout--⚠️ +10940--⚠️ +7480--------
libraries/USB/examples/Keyboard/KeyboardMessage--⚠️ +10940--⚠️ +7480--------
libraries/USB/examples/Keyboard/KeyboardReprogram--⚠️ +10980--⚠️ +7480--------
libraries/USB/examples/Keyboard/KeyboardSerial--⚠️ +10940--⚠️ +848💚 -16--------
libraries/USB/examples/KeyboardAndMouseControl--⚠️ +11000--⚠️ +7560--------
libraries/USB/examples/MIDI/MidiController--⚠️ +11000--⚠️ +7480--------
libraries/USB/examples/MIDI/MidiInterface--⚠️ +10880--⚠️ +740💚 -16--------
libraries/USB/examples/MIDI/MidiMusicBox--⚠️ +10980--⚠️ +7520--------
libraries/USB/examples/MIDI/ReceiveMidi--⚠️ +10940--⚠️ +752💚 -16--------
libraries/USB/examples/Mouse/ButtonMouseControl--⚠️ +10960--⚠️ +7560--------
libraries/USB/examples/SystemControl--⚠️ +10960--⚠️ +7560--------
libraries/USB/examples/USBMSC--⚠️ +10900--⚠️ +768💚 -16--------
libraries/USB/examples/USBSerial--⚠️ +10960--⚠️ +776💚 -16--------
libraries/USB/examples/USBVendor--⚠️ +10980--⚠️ +7480--------
libraries/Update/examples/AWS_S3_OTA_Update--⚠️ +10980--⚠️ +7520⚠️ +9480----⚠️ +8040
libraries/Update/examples/HTTPS_OTA_Update--⚠️ +10980--⚠️ +7600⚠️ +9480----⚠️ +8040
libraries/Update/examples/HTTP_Client_AES_OTA_Update--⚠️ +10980--⚠️ +7520⚠️ +9480----⚠️ +8040
libraries/Update/examples/HTTP_Server_AES_OTA_Update--⚠️ +10980--⚠️ +7360⚠️ +9480----⚠️ +8000
libraries/Update/examples/OTAWebUpdater--⚠️ +10980--⚠️ +7600⚠️ +9480----⚠️ +8120
libraries/Update/examples/SD_Update--⚠️ +10980--⚠️ +7560⚠️ +9480--⚠️ +9480⚠️ +7960
libraries/Update/examples/Signed_OTA_Update--⚠️ +10980--⚠️ +7640⚠️ +9480----⚠️ +7920
libraries/WebServer/examples/AdvancedWebServer--⚠️ +10980--⚠️ +8080⚠️ +9480----⚠️ +8320
libraries/WebServer/examples/ChunkWriting--⚠️ +11180--⚠️ +7760⚠️ +9560----⚠️ +9160
libraries/WebServer/examples/FSBrowser--⚠️ +11060--⚠️ +9400⚠️ +9480----⚠️ +952⚠️ +16
libraries/WebServer/examples/Filters--⚠️ +10980--⚠️ +7720⚠️ +9480----⚠️ +8000
libraries/WebServer/examples/HelloServer--⚠️ +10980--⚠️ +8120⚠️ +9480----⚠️ +8080
libraries/WebServer/examples/HttpAdvancedAuth--⚠️ +10980--⚠️ +7640⚠️ +9480----⚠️ +8120
libraries/WebServer/examples/HttpAuthCallback--⚠️ +10980--⚠️ +7800⚠️ +9480----⚠️ +8040
libraries/WebServer/examples/HttpAuthCallbackInline--⚠️ +10980--⚠️ +7600⚠️ +9480----⚠️ +8240
libraries/WebServer/examples/HttpBasicAuth--⚠️ +10980--⚠️ +7640⚠️ +9480----⚠️ +8320
libraries/WebServer/examples/HttpBasicAuthSHA1--⚠️ +10980--⚠️ +7800⚠️ +9480----⚠️ +8280
libraries/WebServer/examples/HttpBasicAuthSHA1orBearerToken--⚠️ +10980--⚠️ +7800⚠️ +9480----⚠️ +8240
libraries/WebServer/examples/MultiHomedServers--⚠️ +10980--⚠️ +7560⚠️ +9480----⚠️ +7880
libraries/WebServer/examples/PathArgServer--⚠️ +11020--⚠️ +7920⚠️ +9480----⚠️ +9120
libraries/WebServer/examples/SDWebServer--⚠️ +10980--⚠️ +8120⚠️ +9480----⚠️ +8120
libraries/WebServer/examples/SimpleAuthentification--⚠️ +11180--⚠️ +8120⚠️ +9640----⚠️ +8560
libraries/WebServer/examples/UploadHugeFile--⚠️ +10980--⚠️ +7600⚠️ +9480----⚠️ +8320
libraries/WebServer/examples/WebServer--⚠️ +11060--⚠️ +8280⚠️ +9560----⚠️ +8760
libraries/WebServer/examples/WebUpdate--⚠️ +10980--⚠️ +7600⚠️ +9480----⚠️ +8120
libraries/WiFi/examples/FTM/FTM_Initiator--⚠️ +11060--⚠️ +8720⚠️ +9480----⚠️ +876⚠️ +16
libraries/WiFi/examples/FTM/FTM_Responder--⚠️ +11180--⚠️ +8440⚠️ +9640----⚠️ +8400
libraries/WiFi/examples/SimpleWiFiServer--⚠️ +10980--⚠️ +7360⚠️ +9480----⚠️ +7920
libraries/WiFi/examples/WiFiAccessPoint--⚠️ +10980--⚠️ +7880⚠️ +9480----⚠️ +8200
libraries/WiFi/examples/WiFiClient--⚠️ +11180--⚠️ +7880⚠️ +9480----⚠️ +9000
libraries/WiFi/examples/WiFiClientBasic--⚠️ +11180--⚠️ +8200⚠️ +9640----⚠️ +8680
libraries/WiFi/examples/WiFiClientConnect--⚠️ +10980--⚠️ +7720⚠️ +9480----⚠️ +7960
libraries/WiFi/examples/WiFiClientEvents--⚠️ +11180--⚠️ +8440⚠️ +9640----⚠️ +8720
libraries/WiFi/examples/WiFiClientStaticIP--⚠️ +11100--⚠️ +8200⚠️ +9560----⚠️ +920⚠️ +16
libraries/WiFi/examples/WiFiExtender--⚠️ +11180--⚠️ +8240⚠️ +9960----⚠️ +908⚠️ +16
libraries/WiFi/examples/WiFiIPv6--⚠️ +11180--⚠️ +8080⚠️ +9960----⚠️ +924⚠️ +16
libraries/WiFi/examples/WiFiMulti--⚠️ +11180--⚠️ +8280⚠️ +9640----⚠️ +8480
libraries/WiFi/examples/WiFiMultiAdvanced--⚠️ +11060--⚠️ +8120⚠️ +9480----⚠️ +904⚠️ +16
libraries/WiFi/examples/WiFiScan--⚠️ +11180--⚠️ +8560⚠️ +9640----⚠️ +8560
libraries/WiFi/examples/WiFiScanAsync--⚠️ +11180--⚠️ +8240⚠️ +9640----⚠️ +8920
libraries/WiFi/examples/WiFiScanDualAntenna--⚠️ +11180--⚠️ +9200⚠️ +9640----⚠️ +10720
libraries/WiFi/examples/WiFiScanTime--⚠️ +11180--⚠️ +8480⚠️ +9640----⚠️ +8600
libraries/WiFi/examples/WiFiTelnetToSerial--⚠️ +11100--⚠️ +8160⚠️ +9560----⚠️ +892⚠️ +16
libraries/WiFi/examples/WiFiUDPClient--⚠️ +11060--⚠️ +8280⚠️ +9480----⚠️ +920⚠️ +16
libraries/Wire/examples/WireMaster--⚠️ +10980--⚠️ +7440⚠️ +9520--⚠️ +9540⚠️ +7960
libraries/Wire/examples/WireScan--⚠️ +11000--⚠️ +7440⚠️ +9520--⚠️ +9540⚠️ +7960
libraries/Wire/examples/WireSlave--⚠️ +10960--⚠️ +7440⚠️ +9520--⚠️ +9540⚠️ +8120
libraries/Wire/examples/WireSlaveFunctionalCallback--⚠️ +10960--⚠️ +7440⚠️ +9520--⚠️ +9540⚠️ +8120
tests/validation/uart----------------
libraries/ESP32/examples/Camera/CameraWebServer------⚠️ +7760------⚠️ +8080
ESP32/examples/Camera/CameraWebServer (2)------⚠️ +8280------⚠️ +8040
libraries/ESP32/examples/DeepSleep/ExternalWakeUp------⚠️ +764⚠️ +16------⚠️ +8040
libraries/ESP_NOW/examples/ESP_NOW_Broadcast_Master------⚠️ +8320⚠️ +10040----⚠️ +892⚠️ +16
libraries/ESP_NOW/examples/ESP_NOW_Broadcast_Slave------⚠️ +8120⚠️ +10040----⚠️ +916⚠️ +16
libraries/ESP_NOW/examples/ESP_NOW_Network------⚠️ +8520⚠️ +10040----⚠️ +872⚠️ +16
libraries/ESP_NOW/examples/ESP_NOW_Serial------⚠️ +8080⚠️ +9560----⚠️ +936⚠️ +16
libraries/HTTPClient/examples/HTTPClientEnterprise------⚠️ +7480⚠️ +9480----⚠️ +8080
libraries/Insights/examples/DiagnosticsSmokeTest------⚠️ +8280⚠️ +9560----⚠️ +904⚠️ +16
libraries/Insights/examples/MinimalDiagnostics------⚠️ +8280⚠️ +9560----⚠️ +936⚠️ +16
libraries/Matter/examples/MatterColorLight------⚠️ +7600⚠️ +9540--💚 -3060⚠️ +8520
libraries/Matter/examples/MatterCommissionTest------⚠️ +8440⚠️ +9280--💚 -304⚠️ +12⚠️ +9440
libraries/Matter/examples/MatterComposedLights------⚠️ +7520⚠️ +9520--💚 -3080⚠️ +7560
libraries/Matter/examples/MatterContactSensor------⚠️ +7880⚠️ +9560--💚 -3040⚠️ +8200
libraries/Matter/examples/MatterDimmableLight------⚠️ +7280⚠️ +9540--💚 -3080⚠️ +8200
libraries/Matter/examples/MatterDimmablePlugin------⚠️ +7280⚠️ +9540--💚 -3060⚠️ +8200
libraries/Matter/examples/MatterEnhancedColorLight------⚠️ +7880⚠️ +9480--💚 -3080⚠️ +8200
libraries/Matter/examples/MatterEvents------⚠️ +8480⚠️ +9380--💚 -302⚠️ +12⚠️ +9160
libraries/Matter/examples/MatterFan------⚠️ +7440⚠️ +9520--💚 -3080⚠️ +7720
libraries/Matter/examples/MatterHumiditySensor------⚠️ +7280⚠️ +9520--💚 -3060⚠️ +8080
libraries/Matter/examples/MatterLambdaSingleCallbackManyEPs------⚠️ +7440⚠️ +9520--💚 -3060⚠️ +8200
libraries/Matter/examples/MatterMinimum------⚠️ +7600⚠️ +9520--💚 -3080⚠️ +7760
libraries/Matter/examples/MatterOccupancySensor------⚠️ +7800⚠️ +9540--💚 -3060⚠️ +7960
libraries/Matter/examples/MatterOccupancyWithHoldTime------⚠️ +7600⚠️ +9540--💚 -3060⚠️ +8000
libraries/Matter/examples/MatterOnIdentify------⚠️ +7840⚠️ +9540--💚 -3060⚠️ +8160
libraries/Matter/examples/MatterOnOffLight------⚠️ +7680⚠️ +9560--💚 -3040⚠️ +7960
libraries/Matter/examples/MatterOnOffPlugin------⚠️ +7400⚠️ +9560--💚 -3040⚠️ +8200
libraries/Matter/examples/MatterPressureSensor------⚠️ +7320⚠️ +9520--💚 -3060⚠️ +8560
libraries/Matter/examples/MatterRainSensor------⚠️ +7800⚠️ +9560--💚 -3040⚠️ +8360
libraries/Matter/examples/MatterSimpleBlinds------⚠️ +8880⚠️ +9380--💚 -302⚠️ +12⚠️ +9400
libraries/Matter/examples/MatterSmartButton------⚠️ +7600⚠️ +9500--💚 -3100⚠️ +7960
libraries/Matter/examples/MatterStatus------⚠️ +7680⚠️ +9540--💚 -3060⚠️ +8280
libraries/Matter/examples/MatterTemperatureControlledCabinet------⚠️ +7600⚠️ +9540--💚 -3060⚠️ +7840
libraries/Matter/examples/MatterTemperatureControlledCabinetLevels------⚠️ +7520⚠️ +9540--💚 -3060⚠️ +7840
libraries/Matter/examples/MatterTemperatureLight------⚠️ +7640⚠️ +9540--💚 -3060⚠️ +8360
libraries/Matter/examples/MatterTemperatureSensor------⚠️ +7280⚠️ +9520--💚 -3060⚠️ +7920
libraries/Matter/examples/MatterThermostat------⚠️ +7640⚠️ +9500--💚 -3100⚠️ +8120
libraries/Matter/examples/MatterWaterFreezeDetector------⚠️ +7800⚠️ +9560--💚 -3040⚠️ +8120
libraries/Matter/examples/MatterWaterLeakDetector------⚠️ +7800⚠️ +9560--💚 -3040⚠️ +8280
libraries/Matter/examples/MatterWindowCovering------⚠️ +7640⚠️ +9480--💚 -3140⚠️ +7600
libraries/NetworkClientSecure/examples/WiFiClientSecureEnterprise------⚠️ +7600⚠️ +9480----⚠️ +7520
libraries/RainMaker/examples/RMakerCustom------⚠️ +7240⚠️ +9480------
libraries/RainMaker/examples/RMakerCustomAirCooler------⚠️ +7880⚠️ +9480------
libraries/RainMaker/examples/RMakerSonoffDualR3------⚠️ +7280⚠️ +9480------
libraries/RainMaker/examples/RMakerSwitch------⚠️ +7440⚠️ +9480------
libraries/WebServer/examples/Middleware------⚠️ +8280⚠️ +9560----⚠️ +8680
libraries/WiFi/examples/WPS------⚠️ +8240⚠️ +9480----⚠️ +904⚠️ +16
libraries/WiFi/examples/WiFiClientEnterprise------⚠️ +8080⚠️ +9560----⚠️ +8560
libraries/WiFi/examples/WiFiSmartConfig------⚠️ +808💚 -16⚠️ +9960----⚠️ +8400
libraries/WiFiProv/examples/WiFiProv------⚠️ +8280⚠️ +9480----⚠️ +928⚠️ +16
libraries/Zigbee/examples/Zigbee_Analog_Input_Output------💚 -2720💚 -3100--⚠️ +9500💚 -2200
libraries/Zigbee/examples/Zigbee_Color_Dimmer_Switch------💚 -2760💚 -3120--⚠️ +9480💚 -2440
libraries/Zigbee/examples/Zigbee_Electrical_AC_Sensor------💚 -2680💚 -3100--⚠️ +9480💚 -2400
libraries/Zigbee/examples/Zigbee_Electrical_AC_Sensor_MultiPhase------💚 -2840💚 -3100--⚠️ +9500💚 -2440
libraries/Zigbee/examples/Zigbee_Fan_Control------💚 -2840💚 -3080--⚠️ +9480💚 -2240
libraries/Zigbee/examples/Zigbee_Gateway------💚 -1960💚 -3160----💚 -224⚠️ +16
libraries/Zigbee/examples/Zigbee_Multistate_Input_Output------💚 -2920💚 -3120--⚠️ +9500💚 -2320
libraries/Zigbee/examples/Zigbee_On_Off_MultiSwitch------💚 -2960💚 -3120--⚠️ +9480💚 -2360
libraries/Zigbee/examples/Zigbee_On_Off_Switch------💚 -2640💚 -3120--⚠️ +9480💚 -2520
libraries/Zigbee/examples/Zigbee_Power_Outlet------💚 -2960💚 -3120--⚠️ +9500💚 -2360
libraries/Zigbee/examples/Zigbee_Range_Extender------💚 -2720💚 -3120--⚠️ +9520💚 -2440
libraries/Zigbee/examples/Zigbee_Thermostat------💚 -2920💚 -3080--⚠️ +9520💚 -2400
libraries/BLE/examples/Server_secure_authorization--------⚠️ +9480--⚠️ +9480--
libraries/WiFi/examples/WiFiBlueToothSwitch--------⚠️ +9480----⚠️ +7680
libraries/OpenThread/examples/CLI/COAP/coap_lamp------------💚 -300⚠️ +16--
libraries/OpenThread/examples/CLI/COAP/coap_switch------------💚 -3080--
libraries/OpenThread/examples/CLI/SimpleCLI------------💚 -302⚠️ +16--
libraries/OpenThread/examples/CLI/SimpleNode------------💚 -296⚠️ +16--
libraries/OpenThread/examples/CLI/SimpleThreadNetwork/ExtendedRouterNode------------💚 -3040--
libraries/OpenThread/examples/CLI/SimpleThreadNetwork/LeaderNode------------💚 -296⚠️ +16--
libraries/OpenThread/examples/CLI/SimpleThreadNetwork/RouterNode------------💚 -294⚠️ +16--
libraries/OpenThread/examples/CLI/ThreadScan------------💚 -296⚠️ +16--
libraries/OpenThread/examples/CLI/onReceive------------💚 -302⚠️ +16--
libraries/OpenThread/examples/Native/SimpleThreadNetwork/LeaderNode------------💚 -298⚠️ +16--
libraries/OpenThread/examples/Native/SimpleThreadNetwork/RouterNode------------💚 -296⚠️ +16--
libraries/Zigbee/examples/Zigbee_Binary_Input_Output------------⚠️ +9460--
libraries/Zigbee/examples/Zigbee_CarbonDioxide_Sensor------------⚠️ +9520--
libraries/Zigbee/examples/Zigbee_Color_Dimmable_Light------------⚠️ +9480--
libraries/Zigbee/examples/Zigbee_Contact_Switch------------⚠️ +9500--
libraries/Zigbee/examples/Zigbee_Dimmable_Light------------⚠️ +9500--
libraries/Zigbee/examples/Zigbee_Electrical_DC_Sensor------------⚠️ +9460--
libraries/Zigbee/examples/Zigbee_Illuminance_Sensor------------⚠️ +9480--
libraries/Zigbee/examples/Zigbee_OTA_Client------------⚠️ +9500--
libraries/Zigbee/examples/Zigbee_Occupancy_Sensor------------⚠️ +9540--
libraries/Zigbee/examples/Zigbee_On_Off_Light------------⚠️ +9500--
libraries/Zigbee/examples/Zigbee_PM25_Sensor------------⚠️ +9520--
libraries/Zigbee/examples/Zigbee_Pressure_Flow_Sensor------------⚠️ +9500--
libraries/Zigbee/examples/Zigbee_Scan_Networks------------⚠️ +9480--
libraries/Zigbee/examples/Zigbee_Temp_Hum_Sensor_Sleepy------------⚠️ +9500--
libraries/Zigbee/examples/Zigbee_Temperature_Sensor------------⚠️ +9500--
libraries/Zigbee/examples/Zigbee_Vibration_Sensor------------⚠️ +9500--
libraries/Zigbee/examples/Zigbee_Wind_Speed_Sensor------------⚠️ +9520--
libraries/Zigbee/examples/Zigbee_Window_Covering------------⚠️ +9480--
libraries/BluetoothSerial/examples/DiscoverConnect--------------⚠️ +912💚 -16
libraries/BluetoothSerial/examples/GetLocalMAC--------------⚠️ +872💚 -16
libraries/BluetoothSerial/examples/SerialToSerialBT--------------⚠️ +880💚 -16
libraries/BluetoothSerial/examples/SerialToSerialBTM--------------⚠️ +872💚 -16
libraries/BluetoothSerial/examples/SerialToSerialBT_Legacy--------------⚠️ +9040
libraries/BluetoothSerial/examples/SerialToSerialBT_SSP--------------⚠️ +8800
libraries/BluetoothSerial/examples/bt_classic_device_discovery--------------⚠️ +888💚 -16
libraries/BluetoothSerial/examples/bt_remove_paired_devices--------------⚠️ +872💚 -16
libraries/ESP32/examples/DeepSleep/SmoothBlink_ULP_Code--------------⚠️ +804⚠️ +16
libraries/Ethernet/examples/ETH_LAN8720--------------⚠️ +8160
libraries/SimpleBLE/examples/SimpleBleDevice--------------⚠️ +7920

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR fixes an issue with HardwareSerial::setPins() when changing RTS and CTS pins before calling begin(). The fix leverages improvements in ESP-IDF 5.1+ that have been backported from 5.5.2 to 5.1.0, which now properly support changing individual UART pins. The PR also adds a comprehensive hardware flow control example and documentation for testing functions.

Key changes:

  • Replaces internal _uartInternalSetPin() implementation with IDF's uart_set_pin() to properly handle RTS/CTS pin configuration
  • Adds new uart_internal_hw_flow_ctrl_loopback() helper function for testing hardware flow control without external wires
  • Provides a complete HardwareFlowControl_Demo example demonstrating both hardware-controlled and GPIO-controlled flow control modes

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
cores/esp32/esp32-hal-uart.c Removes custom _uartInternalSetPin() implementation and replaces calls with IDF's uart_set_pin(); adds uart_internal_hw_flow_ctrl_loopback() function for testing; fixes spelling errors in comments
cores/esp32/esp32-hal-uart.h Adds declaration for uart_internal_hw_flow_ctrl_loopback() function; fixes spelling error in comment
libraries/ESP32/examples/Serial/HardwareFlowControl_Demo/HardwareFlowControl_Demo.ino New comprehensive example demonstrating UART hardware flow control with RTS/CTS signals, supporting both internal GPIO matrix loopback and external wire connections
libraries/ESP32/examples/Serial/HardwareFlowControl_Demo/README.md New detailed documentation explaining hardware flow control concepts, pin connections, configuration options, and expected behavior for both hardware-controlled and GPIO-controlled modes
docs/en/api/serial.rst Adds documentation for uart_internal_loopback() and uart_internal_hw_flow_ctrl_loopback() testing functions with usage examples

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

SuGlider and others added 3 commits January 5, 2026 09:53
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Updated README.md to include additional pin connection details and modified function descriptions for hardware flow control.
@SuGlider SuGlider moved this from In Progress to In Review in Arduino ESP32 Core Project Roadmap Jan 5, 2026
@SuGlider SuGlider added the Status: Review needed Issue or PR is awaiting review label Jan 5, 2026
@lucasssvaz
Copy link
Member

Can we add a test case in our UART testing for this ?

@SuGlider
Copy link
Collaborator Author

SuGlider commented Jan 5, 2026

Can we add a test case in our UART testing for this ?

Sure! Do you want to do that or you expect me to add it?

@lucasssvaz
Copy link
Member

@SuGlider If you can add it in this PR would be good so we can check that everything passes in the test.

@SuGlider
Copy link
Collaborator Author

SuGlider commented Jan 6, 2026

@SuGlider If you can add it in this PR would be good so we can check that everything passes in the test.

CI HW flow control test case added.

@SuGlider
Copy link
Collaborator Author

SuGlider commented Jan 6, 2026

@lucasssvaz | @me-no-dev : PR is completed. Please review it.

@lucasssvaz
Copy link
Member

@SuGlider Tests are failing. PTAL

@SuGlider
Copy link
Collaborator Author

SuGlider commented Jan 6, 2026

@SuGlider Tests are failing. PTAL

Thre is nothing that I do for it. It works fine with real SoC.

ESP32 Log:

ets Jul 29 2019 12:21:46

rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0030,len:4980
load:0x40078000,len:16612
load:0x40080400,len:3500
entry 0x400805b4
Begin when running test successful
C:\TempFiles\.arduinoIDE-unsaved202606-48548-12gyfdt.vx1wf\sketch_jan6a\sketch_jan6a.ino:598:begin_when_running_test:PASS
Basic transmission test successful
C:\TempFiles\.arduinoIDE-unsaved202606-48548-12gyfdt.vx1wf\sketch_jan6a\sketch_jan6a.ino:599:basic_transmission_test:PASS
Buffer resize test successful
C:\TempFiles\.arduinoIDE-unsaved202606-48548-12gyfdt.vx1wf\sketch_jan6a\sketch_jan6a.ino:600:resize_buffers_test:PASS
Change baudrate test successful
C:\TempFiles\.arduinoIDE-unsaved202606-48548-12gyfdt.vx1wf\sketch_jan6a\sketch_jan6a.ino:601:change_baudrate_test:PASS
Change CPU frequency test successful
C:\TempFiles\.arduinoIDE-unsaved202606-48548-12gyfdt.vx1wf\sketch_jan6a\sketch_jan6a.ino:602:change_cpu_frequency_test:PASS
Disabled UART calls test successful
C:\TempFiles\.arduinoIDE-unsaved202606-48548-12gyfdt.vx1wf\sketch_jan6a\sketch_jan6a.ino:603:disabled_uart_calls_test:PASS
Enabled UART calls test successful
C:\TempFiles\.arduinoIDE-unsaved202606-48548-12gyfdt.vx1wf\sketch_jan6a\sketch_jan6a.ino:604:enabled_uart_calls_test:PASS
Auto baudrate test successful
C:\TempFiles\.arduinoIDE-unsaved202606-48548-12gyfdt.vx1wf\sketch_jan6a\sketch_jan6a.ino:606:auto_baudrate_test:PASS
Peripheral manager test successful
C:\TempFiles\.arduinoIDE-unsaved202606-48548-12gyfdt.vx1wf\sketch_jan6a\sketch_jan6a.ino:608:periman_test:PASS
Change pins test successful
C:\TempFiles\.arduinoIDE-unsaved202606-48548-12gyfdt.vx1wf\sketch_jan6a\sketch_jan6a.ino:609:change_pins_test:PASS
Hardware flow control test successful
C:\TempFiles\.arduinoIDE-unsaved202606-48548-12gyfdt.vx1wf\sketch_jan6a\sketch_jan6a.ino:610:hardware_flow_control_test:PASS
End when stopped test successful
C:\TempFiles\.arduinoIDE-unsaved202606-48548-12gyfdt.vx1wf\sketch_jan6a\sketch_jan6a.ino:611:end_when_stopped_test:PASS

-----------------------
12 Tests 0 Failures 0 Ignored 
OK

ESP32-S3 Log:

SP-ROM:esp32s3-20210327
Build:Mar 27 2021
rst:0x1 (POWERON),boot:0x18 (SPI_FAST_FLASH_BOOT)
SPIWP:0xee
Octal Flash Mode Enabled
For OPI Flash, Use Default Flash Boot Mode
mode:SLOW_RD, clock div:1
load:0x3fce2820,len:0x116c
load:0x403c8700,len:0xc2c
load:0x403cb700,len:0x3108
entry 0x403c88b8
Begin when running test successful
C:\TempFiles\.arduinoIDE-unsaved202606-48548-12gyfdt.vx1wf\sketch_jan6a\sketch_jan6a.ino:598:begin_when_running_test:PASS
Basic transmission test successful
C:\TempFiles\.arduinoIDE-unsaved202606-48548-12gyfdt.vx1wf\sketch_jan6a\sketch_jan6a.ino:599:basic_transmission_test:PASS
Buffer resize test successful
C:\TempFiles\.arduinoIDE-unsaved202606-48548-12gyfdt.vx1wf\sketch_jan6a\sketch_jan6a.ino:600:resize_buffers_test:PASS
Change baudrate test successful
C:\TempFiles\.arduinoIDE-unsaved202606-48548-12gyfdt.vx1wf\sketch_jan6a\sketch_jan6a.ino:601:change_baudrate_test:PASS
Change CPU frequency test successful
C:\TempFiles\.arduinoIDE-unsaved202606-48548-12gyfdt.vx1wf\sketch_jan6a\sketch_jan6a.ino:602:change_cpu_frequency_test:PASS
Disabled UART calls test successful
C:\TempFiles\.arduinoIDE-unsaved202606-48548-12gyfdt.vx1wf\sketch_jan6a\sketch_jan6a.ino:603:disabled_uart_calls_test:PASS
Enabled UART calls test successful
C:\TempFiles\.arduinoIDE-unsaved202606-48548-12gyfdt.vx1wf\sketch_jan6a\sketch_jan6a.ino:604:enabled_uart_calls_test:PASS
Peripheral manager test successful
C:\TempFiles\.arduinoIDE-unsaved202606-48548-12gyfdt.vx1wf\sketch_jan6a\sketch_jan6a.ino:608:periman_test:PASS
Change pins test successful
C:\TempFiles\.arduinoIDE-unsaved202606-48548-12gyfdt.vx1wf\sketch_jan6a\sketch_jan6a.ino:609:change_pins_test:PASS
Hardware flow control test successful
C:\TempFiles\.arduinoIDE-unsaved202606-48548-12gyfdt.vx1wf\sketch_jan6a\sketch_jan6a.ino:610:hardware_flow_control_test:PASS
End when stopped test successful
C:\TempFiles\.arduinoIDE-unsaved202606-48548-12gyfdt.vx1wf\sketch_jan6a\sketch_jan6a.ino:611:end_when_stopped_test:PASS

-----------------------
11 Tests 0 Failures 0 Ignored 
OK

@P-R-O-C-H-Y
Copy link
Member

Wokwi is fixed and CI is passing again.

@lucasssvaz lucasssvaz added Status: Pending Merge Pull Request is ready to be merged and removed Status: Review needed Issue or PR is awaiting review labels Jan 7, 2026
@github-actions github-actions bot added the Status: Pre-commit fixes required ⚠️ The pre-commit bot can't fix the issues automatically. Please fix the issues manually. label Jan 7, 2026
@github-actions
Copy link
Contributor

github-actions bot commented Jan 7, 2026

⚠️ Pre-commit Hooks Failed

Some pre-commit hooks failed and require manual fixes. Please see the detailed error report below.

What to do:

  1. 📋 View the detailed error report to see which hooks failed
  2. 🔧 Fix the issues locally in your code
  3. 💾 Commit and push your changes
  4. 🔄 The hooks will run again automatically

Need help? Ask in the comments below.

@SuGlider
Copy link
Collaborator Author

SuGlider commented Jan 7, 2026

@P-R-O-C-H-Y - It is failing Baudrate Detection with the ESP32-S2.

Wokwi CI Failure (baudrate test):

Hello to detect baudrate
2026-01-07 18:34:06 Hello to detect baudrate
/home/runner/work/arduino-esp32/arduino-esp32/tests/validation/uart/uart.ino:443:auto_baudrate_test:FAIL: Values Not Within Delta 2304 Expected 115200 Was 3688760
2026-01-07 18:34:07 /home/runner/work/arduino-esp32/arduino-esp32/tests/validation/uart/uart.ino:443:auto_baudrate_test:FAIL: Values Not Within Delta 2304 Expected 115200 Was 3688760
Peripheral manager test successful
/home/runner/work/arduino-esp32/arduino-esp32/tests/validation/uart/uart.ino:607:periman_test:PASS
2026-01-07 18:34:07 Peripheral manager test successful
2026-01-07 18:34:07 /home/runner/work/arduino-esp32/arduino-esp32/tests/validation/uart/uart.ino:607:periman_test:PASS
Change pins test successful
/home/runner/work/arduino-esp32/arduino-esp32/tests/validation/uart/uart.ino:608:change_pins_test:PASS
2026-01-07 18:34:07 Change pins test successful
2026-01-07 18:34:07 /home/runner/work/arduino-esp32/arduino-esp32/tests/validation/uart/uart.ino:608:change_pins_test:PASS
Hardware flow control test successful
/home/runner/work/arduino-esp32/arduino-esp32/tests/validation/uart/uart.ino:609:hardware_flow_control_test:PASS
End when stopped test successful
/home/runner/work/arduino-esp32/arduino-esp32/tests/validation/uart/uart.ino:610:end_when_stopped_test:PASS

-----------------------
12 Tests 1 Failures 0 Ignored 
FAIL

This is the Real SoC output:

C:\TempFiles\.arduinoIDE-unsaved202606-48548-12gyfdt.vx1wf\sketch_jan6a\sketch_jan6a.ino:598:begin_when_running_test:PASS
Basic transmission test successful
C:\TempFiles\.arduinoIDE-unsaved202606-48548-12gyfdt.vx1wf\sketch_jan6a\sketch_jan6a.ino:599:basic_transmission_test:PASS
Buffer resize test successful
C:\TempFiles\.arduinoIDE-unsaved202606-48548-12gyfdt.vx1wf\sketch_jan6a\sketch_jan6a.ino:600:resize_buffers_test:PASS
Change baudrate test successful
C:\TempFiles\.arduinoIDE-unsaved202606-48548-12gyfdt.vx1wf\sketch_jan6a\sketch_jan6a.ino:601:change_baudrate_test:PASS
Change CPU frequency test successful
C:\TempFiles\.arduinoIDE-unsaved202606-48548-12gyfdt.vx1wf\sketch_jan6a\sketch_jan6a.ino:602:change_cpu_frequency_test:PASS
Disabled UART calls test successful
C:\TempFiles\.arduinoIDE-unsaved202606-48548-12gyfdt.vx1wf\sketch_jan6a\sketch_jan6a.ino:603:disabled_uart_calls_test:PASS
Enabled UART calls test successful
C:\TempFiles\.arduinoIDE-unsaved202606-48548-12gyfdt.vx1wf\sketch_jan6a\sketch_jan6a.ino:604:enabled_uart_calls_test:PASS
Hello to detect baudrate
�Auto baudrate test successful
C:\TempFiles\.arduinoIDE-unsaved202606-48548-12gyfdt.vx1wf\sketch_jan6a\sketch_jan6a.ino:606:auto_baudrate_test:PASS
Peripheral manager test successful
C:\TempFiles\.arduinoIDE-unsaved202606-48548-12gyfdt.vx1wf\sketch_jan6a\sketch_jan6a.ino:608:periman_test:PASS
Change pins test successful
C:\TempFiles\.arduinoIDE-unsaved202606-48548-12gyfdt.vx1wf\sketch_jan6a\sketch_jan6a.ino:609:change_pins_test:PASS
Hardware flow control test successful
C:\TempFiles\.arduinoIDE-unsaved202606-48548-12gyfdt.vx1wf\sketch_jan6a\sketch_jan6a.ino:610:hardware_flow_control_test:PASS
End when stopped test successful
C:\TempFiles\.arduinoIDE-unsaved202606-48548-12gyfdt.vx1wf\sketch_jan6a\sketch_jan6a.ino:611:end_when_stopped_test:PASS

-----------------------
12 Tests 0 Failures 0 Ignored 
OK

@github-actions github-actions bot removed the Status: Pre-commit fixes required ⚠️ The pre-commit bot can't fix the issues automatically. Please fix the issues manually. label Jan 8, 2026
@P-R-O-C-H-Y
Copy link
Member

Please wait for #12215 so Wokwi CI can be re-triggered for all Socs.

@P-R-O-C-H-Y P-R-O-C-H-Y added the Re-trigger Wokwi Tests Label to manually re-trigger Wokwi tests ignoring the cached results. Automatically removed by bot label Jan 8, 2026
@github-actions github-actions bot removed the Re-trigger Wokwi Tests Label to manually re-trigger Wokwi tests ignoring the cached results. Automatically removed by bot label Jan 8, 2026
@P-R-O-C-H-Y
Copy link
Member

PR is good to go!

@me-no-dev me-no-dev merged commit 155a986 into master Jan 12, 2026
96 checks passed
@me-no-dev me-no-dev deleted the fix/uart_set_pins_rts_cts_failure branch January 12, 2026 11:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Peripheral: UART Related to the UART peripheral or its functionality. Status: Pending Merge Pull Request is ready to be merged Type: Bug 🐛 All bugs

Projects

Development

Successfully merging this pull request may close these issues.

Example, Hardware Serial, Loopback with Flow Control (RTS, CTS), Best Practices

5 participants