Skip to content

Conversation

@me-no-dev
Copy link
Member

This pull request introduces improvements to the peripheral bus deinitialization process and enhances the cleanup logic in the PPP (Point-to-Point Protocol) library. The main focus is on providing a way to clear and reset bus deinit callbacks, ensuring proper resource management and preventing potential issues when the PPP connection is terminated.

Enhancements to peripheral bus deinit management:

  • Added perimanClearBusDeinit function and its declaration to allow clearing the deinit callback for a specific bus type, replacing it with a no-op function. This helps prevent unintended cleanup actions after the bus is no longer in use. [1] [2]

PPP library cleanup improvements:

  • Updated PPPClass::end() to call perimanClearBusDeinit for all PPP-related bus types (PPP_TX, PPP_RX, PPP_RTS, PPP_CTS), ensuring that their deinit callbacks are reset during PPP shutdown.
  • Moved the destruction of the _dce modem object earlier in the PPPClass::end() cleanup process for better resource management.
  • After clearing pin-bus associations, restored the default deinit callbacks for all PPP bus types by calling perimanSetBusDeinit with PPPClass::pppDetachBus. This prepares the system for the next PPP session.

Fixes: #11914

@me-no-dev me-no-dev requested a review from a team as a code owner November 5, 2025 23:45
@me-no-dev me-no-dev added the Status: Review needed Issue or PR is awaiting review label Nov 5, 2025
@me-no-dev me-no-dev requested a review from Copilot November 5, 2025 23:46
@github-actions
Copy link
Contributor

github-actions bot commented Nov 5, 2025

Messages
📖 🎉 Good Job! All checks are passing!

👋 Hello me-no-dev, 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.
- 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 87a8345

@github-actions
Copy link
Contributor

github-actions bot commented Nov 5, 2025

Test Results

 76 files   76 suites   16m 44s ⏱️
 38 tests  38 ✅ 0 💤 0 ❌
241 runs  241 ✅ 0 💤 0 ❌

Results for commit 87a8345.

♻️ This comment has been updated with latest results.

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 addresses a resource cleanup ordering issue in the PPP library's end() method and adds a new function to clear peripheral destructor callbacks. The key change is moving the esp_modem_destroy(_dce) call to occur earlier in the teardown sequence and introducing perimanClearBusDeinit() to temporarily disable bus deinit callbacks during cleanup.

  • Modem destruction moved before pin cleanup to ensure proper resource release order
  • New perimanClearBusDeinit() function added to prevent recursive end() calls during cleanup
  • Pin bus clearing now happens with disabled deinit callbacks, then callbacks are re-registered

Reviewed Changes

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

File Description
libraries/PPP/src/PPP.cpp Reordered modem destruction to occur earlier; added calls to clear/restore bus deinit callbacks around pin cleanup
cores/esp32/esp32-hal-periman.h Added declaration for new perimanClearBusDeinit() function
cores/esp32/esp32-hal-periman.c Implemented perimanClearBusDeinit() using an empty callback function to prevent callback execution

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

@github-actions
Copy link
Contributor

github-actions bot commented Nov 6, 2025

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⚠️ +1460.00⚠️ +0.03000.000.00
ESP32P40⚠️ +1480.00⚠️ +0.03000.000.00
ESP32S30⚠️ +1200.00⚠️ +0.02000.000.00
ESP32S20⚠️ +1320.00⚠️ +0.03000.000.00
ESP32C30⚠️ +1440.00⚠️ +0.03000.000.00
ESP32C60⚠️ +1460.00⚠️ +0.03000.000.00
ESP32H20⚠️ +1420.00⚠️ +0.03000.000.00
ESP32💚 -20⚠️ +1040.00⚠️ +0.02000.000.00
Click to expand the detailed deltas report [usage change in BYTES]
TargetESP32C5ESP32P4ESP32S3ESP32S2ESP32C3ESP32C6ESP32H2ESP32
ExampleFLASHRAMFLASHRAMFLASHRAMFLASHRAMFLASHRAMFLASHRAMFLASHRAMFLASHRAM
libraries/ArduinoOTA/examples/BasicOTA⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140--⚠️ +200
libraries/AsyncUDP/examples/AsyncUDPClient⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140--⚠️ +200
libraries/AsyncUDP/examples/AsyncUDPMulticastServer⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140--⚠️ +200
libraries/AsyncUDP/examples/AsyncUDPServer⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140--⚠️ +200
libraries/BLE/examples/Beacon_Scanner⚠️ +140⚠️ +140⚠️ +200--⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/BLE/examples/Client⚠️ +140⚠️ +140⚠️ +200--⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/BLE/examples/Client_multiconnect⚠️ +140⚠️ +140⚠️ +200--⚠️ +140⚠️ +140⚠️ +140⚠️ +240
libraries/BLE/examples/Client_secure_static_passkey⚠️ +140⚠️ +140⚠️ +200--⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/BLE/examples/EddystoneTLM_Beacon⚠️ +140⚠️ +140⚠️ +200--⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/BLE/examples/EddystoneURL_Beacon⚠️ +140⚠️ +140⚠️ +200--⚠️ +140⚠️ +140⚠️ +140⚠️ +240
libraries/BLE/examples/Notify⚠️ +140⚠️ +140⚠️ +200--⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/BLE/examples/Scan⚠️ +140⚠️ +140⚠️ +200--⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/BLE/examples/Server⚠️ +140⚠️ +140⚠️ +200--⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/BLE/examples/Server_multiconnect⚠️ +140⚠️ +140⚠️ +200--⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/BLE/examples/Server_secure_authorization⚠️ +140--⚠️ +200--⚠️ +140⚠️ +140⚠️ +140--
libraries/BLE/examples/Server_secure_static_passkey⚠️ +140⚠️ +140⚠️ +200--⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/BLE/examples/UART⚠️ +140⚠️ +140⚠️ +200--⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/BLE/examples/Write⚠️ +140⚠️ +140⚠️ +200--⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/BLE/examples/iBeacon⚠️ +140⚠️ +140⚠️ +200--⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/DNSServer/examples/CaptivePortal⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140--⚠️ +200
libraries/EEPROM/examples/eeprom_class⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/EEPROM/examples/eeprom_extra⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/EEPROM/examples/eeprom_write⚠️ +140⚠️ +140⚠️ +200⚠️ +280⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/ESP32/examples/AnalogOut/LEDCFade⚠️ +140⚠️ +160⚠️ +200⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/ESP32/examples/AnalogOut/LEDCGammaFade⚠️ +140⚠️ +140------⚠️ +140⚠️ +140--
libraries/ESP32/examples/AnalogOut/LEDCSingleChannel⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/ESP32/examples/AnalogOut/LEDCSoftwareFade⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +160⚠️ +140⚠️ +140⚠️ +200
libraries/ESP32/examples/AnalogOut/SigmaDelta⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +160⚠️ +160⚠️ +140⚠️ +200
libraries/ESP32/examples/AnalogOut/ledcFrequency⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/ESP32/examples/AnalogOut/ledcWrite_RGB⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +160⚠️ +140⚠️ +200
libraries/ESP32/examples/AnalogRead⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/ESP32/examples/AnalogReadContinuous⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/ESP32/examples/ArduinoStackSize⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/ESP32/examples/ArduinoWaitTimeBeforeStartingSketch⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/ESP32/examples/CI/CIBoardsTest⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/ESP32/examples/ChipID/GetChipID⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/ESP32/examples/DeepSleep/TimerWakeUp⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140--⚠️ +200
libraries/ESP32/examples/FreeRTOS/BasicMultiThreading⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +160⚠️ +140⚠️ +200
libraries/ESP32/examples/FreeRTOS/Mutex⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/ESP32/examples/FreeRTOS/Queue⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/ESP32/examples/FreeRTOS/Semaphore⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/ESP32/examples/GPIO/BlinkRGB⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/ESP32/examples/GPIO/FunctionalInterrupt⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +160⚠️ +140⚠️ +140⚠️ +200
libraries/ESP32/examples/GPIO/FunctionalInterruptLambda⚠️ +140⚠️ +140⚠️ +200⚠️ +240⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/ESP32/examples/GPIO/FunctionalInterruptStruct⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/ESP32/examples/GPIO/GPIOInterrupt⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/ESP32/examples/HWCDC_Events⚠️ +160⚠️ +140⚠️ +200--⚠️ +140⚠️ +140⚠️ +140--
libraries/ESP32/examples/MacAddress/GetMacAddress⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/ESP32/examples/RMT/Legacy_RMT_Driver_Compatible⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/ESP32/examples/RMT/RMTCallback⚠️ +140⚠️ +160⚠️ +200⚠️ +200⚠️ +160⚠️ +160⚠️ +140⚠️ +200
libraries/ESP32/examples/RMT/RMTLoopback⚠️ +140⚠️ +160⚠️ +200⚠️ +200⚠️ +160⚠️ +160⚠️ +140⚠️ +200
libraries/ESP32/examples/RMT/RMTReadXJT⚠️ +140⚠️ +160⚠️ +200⚠️ +200⚠️ +160⚠️ +140⚠️ +140⚠️ +200
libraries/ESP32/examples/RMT/RMTWrite_RGB_LED⚠️ +140⚠️ +160⚠️ +200⚠️ +200⚠️ +140⚠️ +160⚠️ +140⚠️ +200
libraries/ESP32/examples/RMT/RMT_CPUFreq_Test⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/ESP32/examples/RMT/RMT_EndOfTransmissionState⚠️ +140⚠️ +160⚠️ +200⚠️ +200⚠️ +160⚠️ +160⚠️ +140⚠️ +200
libraries/ESP32/examples/RMT/RMT_LED_Blink⚠️ +140⚠️ +160⚠️ +200⚠️ +200⚠️ +160⚠️ +160⚠️ +140⚠️ +200
libraries/ESP32/examples/ResetReason/ResetReason⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/ESP32/examples/ResetReason/ResetReason2⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/ESP32/examples/Serial/BaudRateDetect_Demo⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/ESP32/examples/Serial/OnReceiveError_BREAK_Demo⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/ESP32/examples/Serial/OnReceive_Demo⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/ESP32/examples/Serial/RS485_Echo_Demo⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/ESP32/examples/Serial/RxFIFOFull_Demo⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/ESP32/examples/Serial/RxTimeout_Demo⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/ESP32/examples/Serial/Serial_All_CPU_Freqs⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/ESP32/examples/Serial/Serial_STD_Func_OnReceive⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/ESP32/examples/Serial/onReceiveExample⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/ESP32/examples/Template/ExampleTemplate⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +180⚠️ +140⚠️ +200
libraries/ESP32/examples/Time/SimpleTime⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140--⚠️ +200
libraries/ESP32/examples/Timer/RepeatTimer⚠️ +140⚠️ +160⚠️ +200⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/ESP32/examples/Timer/WatchdogTimer⚠️ +160⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/ESP_I2S/examples/ES8388_loopback⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +240
libraries/ESP_I2S/examples/Simple_tone⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/ESP_NOW/examples/ESP_NOW_Broadcast_Master⚠️ +140--⚠️ +200⚠️ +240⚠️ +140⚠️ +140--⚠️ +200
libraries/ESP_NOW/examples/ESP_NOW_Broadcast_Slave⚠️ +140--⚠️ +40⚠️ +120⚠️ +140⚠️ +140--⚠️ +200
libraries/ESP_NOW/examples/ESP_NOW_Network⚠️ +140--⚠️ +200⚠️ +200⚠️ +140⚠️ +140--⚠️ +200
libraries/ESP_NOW/examples/ESP_NOW_Serial⚠️ +140--⚠️ +200⚠️ +200⚠️ +140⚠️ +140--⚠️ +200
libraries/ESPmDNS/examples/mDNS-SD_Extended⚠️ +140⚠️ +140⚠️ +200⚠️ +160⚠️ +140⚠️ +140--⚠️ +240
libraries/ESPmDNS/examples/mDNS_Web_Server⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140--⚠️ +200
libraries/Ethernet/examples/ETH_W5500_Arduino_SPI⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/Ethernet/examples/ETH_W5500_IDF_SPI⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/Ethernet/examples/ETH_WIFI_BRIDGE⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140--⚠️ +240
libraries/FFat/examples/FFat_Test⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +240
libraries/FFat/examples/FFat_time⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140--⚠️ +200
libraries/HTTPClient/examples/Authorization⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140--⚠️ +200
libraries/HTTPClient/examples/BasicHttpClient⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140--⚠️ +200
libraries/HTTPClient/examples/BasicHttpsClient⚠️ +140⚠️ +140⚠️ +200⚠️ +280⚠️ +140⚠️ +140--⚠️ +200
libraries/HTTPClient/examples/CustomHeaders⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140--⚠️ +200
libraries/HTTPClient/examples/HTTPClientEnterprise⚠️ +140--⚠️ +200⚠️ +200⚠️ +140⚠️ +140--⚠️ +240
libraries/HTTPClient/examples/ReuseConnection⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140--⚠️ +200
libraries/HTTPClient/examples/StreamHttpClient⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140--⚠️ +200
libraries/HTTPUpdate/examples/httpUpdate⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140--⚠️ +200
libraries/HTTPUpdate/examples/httpUpdateSPIFFS⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140--⚠️ +200
libraries/HTTPUpdate/examples/httpUpdateSecure⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140--⚠️ +200
libraries/HTTPUpdateServer/examples/WebUpdater⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140--⚠️ +200
libraries/Hash/examples/HEX⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/Hash/examples/MD5⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/Hash/examples/PBKDF2_HMAC⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/Hash/examples/SHA1⚠️ +140⚠️ +140⚠️ +200⚠️ +280⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/Hash/examples/SHA2⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/Hash/examples/SHA3⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/Hash/examples/SHA3Stream⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/Insights/examples/DiagnosticsSmokeTest⚠️ +140--⚠️ +200⚠️ +200⚠️ +140⚠️ +140--⚠️ +200
libraries/Insights/examples/MinimalDiagnostics⚠️ +140--⚠️ +200⚠️ +200⚠️ +140⚠️ +140--⚠️ +200
libraries/LittleFS/examples/LITTLEFS_test⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/LittleFS/examples/LITTLEFS_time⚠️ +140⚠️ +140⚠️ +240⚠️ +200⚠️ +140⚠️ +140--⚠️ +200
libraries/Matter/examples/MatterColorLight⚠️ +140--⚠️ +200⚠️ +200⚠️ +140⚠️ +160⚠️ +140⚠️ +200
libraries/Matter/examples/MatterCommissionTest⚠️ +140--⚠️ +200⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/Matter/examples/MatterComposedLights⚠️ +140--⚠️ +200⚠️ +200⚠️ +160⚠️ +140⚠️ +140⚠️ +200
libraries/Matter/examples/MatterContactSensor⚠️ +140--⚠️ +360⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/Matter/examples/MatterDimmableLight⚠️ +140--⚠️ +200⚠️ +200⚠️ +140⚠️ +160⚠️ +140⚠️ +200
libraries/Matter/examples/MatterEnhancedColorLight⚠️ +140--⚠️ +200⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/Matter/examples/MatterEvents⚠️ +140--⚠️ +200⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/Matter/examples/MatterFan⚠️ +140--⚠️ +200⚠️ +280⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/Matter/examples/MatterHumiditySensor⚠️ +140--⚠️ +200⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/Matter/examples/MatterLambdaSingleCallbackManyEPs⚠️ +140--⚠️ +200⚠️ +200⚠️ +140⚠️ +140⚠️ +160⚠️ +200
libraries/Matter/examples/MatterMinimum⚠️ +140--⚠️ +200⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/Matter/examples/MatterOccupancySensor⚠️ +140--⚠️ +200⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/Matter/examples/MatterOnIdentify⚠️ +140--⚠️ +200⚠️ +200⚠️ +140⚠️ +160⚠️ +160⚠️ +200
libraries/Matter/examples/MatterOnOffLight⚠️ +140--00⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +240
libraries/Matter/examples/MatterOnOffPlugin⚠️ +140--⚠️ +200⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/Matter/examples/MatterPressureSensor⚠️ +140--⚠️ +200⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/Matter/examples/MatterSmartButton⚠️ +140--⚠️ +200⚠️ +200⚠️ +160⚠️ +140⚠️ +140💚 -200
libraries/Matter/examples/MatterTemperatureLight⚠️ +140--⚠️ +200⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/Matter/examples/MatterTemperatureSensor⚠️ +160--⚠️ +200⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/Matter/examples/MatterThermostat⚠️ +140--⚠️ +200⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +120
libraries/NetBIOS/examples/ESP_NBNST⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140--⚠️ +200
libraries/NetworkClientSecure/examples/WiFiClientInsecure⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140--⚠️ +200
libraries/NetworkClientSecure/examples/WiFiClientPSK⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140--⚠️ +200
libraries/NetworkClientSecure/examples/WiFiClientSecure⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140--⚠️ +200
libraries/NetworkClientSecure/examples/WiFiClientSecureEnterprise⚠️ +140--⚠️ +200⚠️ +200⚠️ +140⚠️ +140--⚠️ +200
libraries/NetworkClientSecure/examples/WiFiClientSecureProtocolUpgrade⚠️ +140⚠️ +140⚠️ +160⚠️ +200⚠️ +140⚠️ +140--⚠️ +200
libraries/NetworkClientSecure/examples/WiFiClientShowPeerCredentials⚠️ +140⚠️ +140⚠️ +200⚠️ +240⚠️ +140⚠️ +140--⚠️ +320
libraries/NetworkClientSecure/examples/WiFiClientTrustOnFirstUse⚠️ +140⚠️ +140⚠️ +160⚠️ +200⚠️ +140⚠️ +140--⚠️ +200
libraries/OpenThread/examples/CLI/COAP/coap_lamp⚠️ +140--------⚠️ +160⚠️ +140--
libraries/OpenThread/examples/CLI/COAP/coap_switch⚠️ +140--------⚠️ +140⚠️ +140--
libraries/OpenThread/examples/CLI/SimpleCLI⚠️ +140--------⚠️ +140⚠️ +140--
libraries/OpenThread/examples/CLI/SimpleNode⚠️ +140--------⚠️ +140⚠️ +140--
libraries/OpenThread/examples/CLI/SimpleThreadNetwork/ExtendedRouterNode⚠️ +140--------⚠️ +140⚠️ +140--
libraries/OpenThread/examples/CLI/SimpleThreadNetwork/LeaderNode⚠️ +140--------⚠️ +140⚠️ +140--
libraries/OpenThread/examples/CLI/SimpleThreadNetwork/RouterNode⚠️ +140--------⚠️ +140⚠️ +140--
libraries/OpenThread/examples/CLI/ThreadScan⚠️ +140--------⚠️ +140⚠️ +140--
libraries/OpenThread/examples/CLI/onReceive⚠️ +140--------⚠️ +140⚠️ +140--
libraries/OpenThread/examples/Native/SimpleThreadNetwork/LeaderNode⚠️ +140--------⚠️ +140⚠️ +140--
libraries/OpenThread/examples/Native/SimpleThreadNetwork/RouterNode⚠️ +140--------⚠️ +140⚠️ +140--
libraries/PPP/examples/PPP_Basic⚠️ +1420⚠️ +1440⚠️ +1200⚠️ +1320⚠️ +1440⚠️ +1420⚠️ +1420⚠️ +1000
libraries/PPP/examples/PPP_WIFI_BRIDGE⚠️ +1460⚠️ +1480⚠️ +1120⚠️ +1160⚠️ +1440⚠️ +1460--⚠️ +1040
libraries/Preferences/examples/Prefs2Struct⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/Preferences/examples/StartCounter⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/RainMaker/examples/RMakerCustom⚠️ +140--⚠️ +200⚠️ +200⚠️ +140⚠️ +140----
libraries/RainMaker/examples/RMakerCustomAirCooler⚠️ +140--⚠️ +200⚠️ +200⚠️ +140⚠️ +140----
libraries/RainMaker/examples/RMakerSonoffDualR3⚠️ +140--⚠️ +200⚠️ +200⚠️ +140⚠️ +140----
libraries/RainMaker/examples/RMakerSwitch⚠️ +140--⚠️ +200⚠️ +200⚠️ +140⚠️ +140----
libraries/SD/examples/SD_Test⚠️ +140⚠️ +160⚠️ +200⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/SD/examples/SD_time⚠️ +140⚠️ +160⚠️ +200⚠️ +200⚠️ +140⚠️ +140--⚠️ +200
libraries/SPI/examples/SPI_Multiple_Buses⚠️ +140⚠️ +140⚠️ +200⚠️ +280⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/SPIFFS/examples/SPIFFS_Test⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/SPIFFS/examples/SPIFFS_time⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140--⚠️ +200
libraries/TFLiteMicro/examples/hello_world⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/Ticker/examples/Blinker⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/Ticker/examples/TickerBasic⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/Ticker/examples/TickerParameter⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/Update/examples/AWS_S3_OTA_Update⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140--⚠️ +200
libraries/Update/examples/HTTPS_OTA_Update⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140--⚠️ +200
libraries/Update/examples/HTTP_Client_AES_OTA_Update⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140--⚠️ +200
libraries/Update/examples/HTTP_Server_AES_OTA_Update⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140--⚠️ +200
libraries/Update/examples/OTAWebUpdater⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140--⚠️ +200
libraries/Update/examples/SD_Update⚠️ +140⚠️ +160⚠️ +200⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/WebServer/examples/AdvancedWebServer⚠️ +140⚠️ +140⚠️ +240⚠️ +200⚠️ +140⚠️ +140--⚠️ +200
libraries/WebServer/examples/ChunkWriting⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140--⚠️ +200
libraries/WebServer/examples/FSBrowser⚠️ +160⚠️ +140⚠️ +160⚠️ +200⚠️ +140⚠️ +140--⚠️ +200
libraries/WebServer/examples/Filters⚠️ +140⚠️ +140⚠️ +240⚠️ +240⚠️ +140⚠️ +140--⚠️ +240
libraries/WebServer/examples/HelloServer⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140--⚠️ +200
libraries/WebServer/examples/HttpAdvancedAuth⚠️ +140⚠️ +140⚠️ +200⚠️ +240⚠️ +140⚠️ +140--⚠️ +200
libraries/WebServer/examples/HttpAuthCallback⚠️ +140⚠️ +140⚠️ +200⚠️ +240⚠️ +140⚠️ +140--⚠️ +200
libraries/WebServer/examples/HttpAuthCallbackInline⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140--⚠️ +200
libraries/WebServer/examples/HttpBasicAuth⚠️ +140⚠️ +140⚠️ +200⚠️ +240⚠️ +140⚠️ +140--⚠️ +200
libraries/WebServer/examples/HttpBasicAuthSHA1⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140--⚠️ +240
libraries/WebServer/examples/HttpBasicAuthSHA1orBearerToken⚠️ +140⚠️ +140⚠️ +200⚠️ +240⚠️ +140⚠️ +140--⚠️ +200
libraries/WebServer/examples/Middleware⚠️ +140--⚠️ +200⚠️ +200⚠️ +140⚠️ +140--⚠️ +200
libraries/WebServer/examples/MultiHomedServers⚠️ +140⚠️ +140⚠️ +200⚠️ +240⚠️ +140⚠️ +140--⚠️ +200
libraries/WebServer/examples/PathArgServer⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140--⚠️ +200
libraries/WebServer/examples/SDWebServer⚠️ +140⚠️ +160⚠️ +200⚠️ +200⚠️ +140⚠️ +140--⚠️ +200
libraries/WebServer/examples/SimpleAuthentification⚠️ +140⚠️ +140⚠️ +200⚠️ +240⚠️ +140⚠️ +140--⚠️ +200
libraries/WebServer/examples/UploadHugeFile⚠️ +140⚠️ +160⚠️ +200⚠️ +200⚠️ +140⚠️ +140--⚠️ +200
libraries/WebServer/examples/WebServer⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140--⚠️ +240
libraries/WebServer/examples/WebUpdate⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140--⚠️ +200
libraries/WiFi/examples/FTM/FTM_Initiator⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140--⚠️ +200
libraries/WiFi/examples/FTM/FTM_Responder⚠️ +140⚠️ +140⚠️ +40⚠️ +200⚠️ +140⚠️ +140--⚠️ +200
libraries/WiFi/examples/SimpleWiFiServer⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140--⚠️ +240
libraries/WiFi/examples/WPS⚠️ +140--⚠️ +200⚠️ +200⚠️ +140⚠️ +140--⚠️ +200
libraries/WiFi/examples/WiFiAccessPoint⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140--00
libraries/WiFi/examples/WiFiBlueToothSwitch⚠️ +140--⚠️ +200--⚠️ +140⚠️ +140--⚠️ +200
libraries/WiFi/examples/WiFiClient⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140--⚠️ +240
libraries/WiFi/examples/WiFiClientBasic⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140--⚠️ +200
libraries/WiFi/examples/WiFiClientConnect⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140--⚠️ +200
libraries/WiFi/examples/WiFiClientEnterprise⚠️ +140--⚠️ +200⚠️ +240⚠️ +140⚠️ +140--⚠️ +200
libraries/WiFi/examples/WiFiClientEvents⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140--⚠️ +200
libraries/WiFi/examples/WiFiClientStaticIP⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140--⚠️ +240
libraries/WiFi/examples/WiFiExtender⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140--⚠️ +200
libraries/WiFi/examples/WiFiIPv6⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140--⚠️ +200
libraries/WiFi/examples/WiFiMulti⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140--⚠️ +200
libraries/WiFi/examples/WiFiMultiAdvanced⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140--⚠️ +200
libraries/WiFi/examples/WiFiScan⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140--⚠️ +40
libraries/WiFi/examples/WiFiScanAsync⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140--⚠️ +200
libraries/WiFi/examples/WiFiScanDualAntenna⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140--⚠️ +200
libraries/WiFi/examples/WiFiScanTime⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140--⚠️ +200
libraries/WiFi/examples/WiFiSmartConfig⚠️ +140--⚠️ +200⚠️ +200⚠️ +140⚠️ +140--⚠️ +200
libraries/WiFi/examples/WiFiTelnetToSerial⚠️ +140⚠️ +140⚠️ +20000⚠️ +140⚠️ +140--⚠️ +200
libraries/WiFi/examples/WiFiUDPClient⚠️ +140⚠️ +140⚠️ +240⚠️ +200⚠️ +140⚠️ +140--⚠️ +200
libraries/WiFiProv/examples/WiFiProv⚠️ +140--⚠️ +200⚠️ +200⚠️ +140⚠️ +140--⚠️ +240
libraries/Wire/examples/WireMaster⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/Wire/examples/WireScan⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/Wire/examples/WireSlave⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +180⚠️ +140⚠️ +140⚠️ +200
libraries/Wire/examples/WireSlaveFunctionalCallback⚠️ +140⚠️ +140⚠️ +200⚠️ +200⚠️ +180⚠️ +140⚠️ +140⚠️ +200
libraries/Zigbee/examples/Zigbee_Analog_Input_Output⚠️ +140--00⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/Zigbee/examples/Zigbee_Binary_Input_Output⚠️ +140--------⚠️ +140⚠️ +140--
libraries/Zigbee/examples/Zigbee_CarbonDioxide_Sensor⚠️ +140--------⚠️ +140⚠️ +140--
libraries/Zigbee/examples/Zigbee_Color_Dimmable_Light⚠️ +140--------⚠️ +140⚠️ +140--
libraries/Zigbee/examples/Zigbee_Color_Dimmer_Switch⚠️ +140--⚠️ +200⚠️ +160⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/Zigbee/examples/Zigbee_Contact_Switch⚠️ +140--------⚠️ +140⚠️ +140--
libraries/Zigbee/examples/Zigbee_Dimmable_Light⚠️ +140--------⚠️ +140⚠️ +140--
libraries/Zigbee/examples/Zigbee_Electrical_AC_Sensor⚠️ +140--⚠️ +200⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/Zigbee/examples/Zigbee_Electrical_AC_Sensor_MultiPhase⚠️ +140--⚠️ +200⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/Zigbee/examples/Zigbee_Electrical_DC_Sensor⚠️ +140--------⚠️ +140⚠️ +140--
libraries/Zigbee/examples/Zigbee_Fan_Control⚠️ +140--⚠️ +200⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +240
libraries/Zigbee/examples/Zigbee_Gateway⚠️ +140--⚠️ +200⚠️ +200⚠️ +140----⚠️ +200
libraries/Zigbee/examples/Zigbee_Illuminance_Sensor⚠️ +140--------⚠️ +140⚠️ +140--
libraries/Zigbee/examples/Zigbee_Multistate_Input_Output⚠️ +140--⚠️ +200⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/Zigbee/examples/Zigbee_OTA_Client⚠️ +140--------⚠️ +140⚠️ +140--
libraries/Zigbee/examples/Zigbee_Occupancy_Sensor⚠️ +140--------⚠️ +140⚠️ +140--
libraries/Zigbee/examples/Zigbee_On_Off_Light⚠️ +140--------⚠️ +140⚠️ +140--
libraries/Zigbee/examples/Zigbee_On_Off_MultiSwitch⚠️ +140--⚠️ +200⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/Zigbee/examples/Zigbee_On_Off_Switch⚠️ +140--⚠️ +120⚠️ +200⚠️ +140⚠️ +140⚠️ +160⚠️ +240
libraries/Zigbee/examples/Zigbee_PM25_Sensor⚠️ +140--------⚠️ +140⚠️ +140--
libraries/Zigbee/examples/Zigbee_Power_Outlet⚠️ +140--⚠️ +200⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/Zigbee/examples/Zigbee_Pressure_Flow_Sensor⚠️ +140--------⚠️ +140⚠️ +140--
libraries/Zigbee/examples/Zigbee_Range_Extender⚠️ +140--⚠️ +200⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/Zigbee/examples/Zigbee_Scan_Networks⚠️ +140--------⚠️ +140⚠️ +140--
libraries/Zigbee/examples/Zigbee_Temp_Hum_Sensor_Sleepy⚠️ +140--------⚠️ +140⚠️ +140--
libraries/Zigbee/examples/Zigbee_Temperature_Sensor⚠️ +140--------⚠️ +140⚠️ +140--
libraries/Zigbee/examples/Zigbee_Thermostat⚠️ +140--⚠️ +200⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/Zigbee/examples/Zigbee_Vibration_Sensor⚠️ +140--------⚠️ +140⚠️ +140--
libraries/Zigbee/examples/Zigbee_Wind_Speed_Sensor⚠️ +140--------⚠️ +140⚠️ +140--
libraries/Zigbee/examples/Zigbee_Window_Covering⚠️ +140--------⚠️ +140⚠️ +140--
libraries/ESP32/examples/DeepSleep/TouchWakeUp--⚠️ +140⚠️ +200⚠️ +200------⚠️ +200
libraries/ESP32/examples/TWAI/TWAIreceive--⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/ESP32/examples/TWAI/TWAItransmit--⚠️ +140⚠️ +200⚠️ +200⚠️ +140⚠️ +140⚠️ +140⚠️ +200
libraries/ESP32/examples/Touch/TouchButton--⚠️ +140⚠️ +200⚠️ +200------⚠️ +200
libraries/ESP32/examples/Touch/TouchInterrupt--⚠️ +140⚠️ +200⚠️ +200------⚠️ +200
libraries/ESP32/examples/Touch/TouchRead--⚠️ +140⚠️ +200⚠️ +200------⚠️ +200
libraries/ESP_I2S/examples/Record_to_WAV--⚠️ +160⚠️ +200--------⚠️ +200
libraries/ESP_SR/examples/Basic--⚠️ +160⚠️ +200----------
libraries/Ethernet/examples/ETH_TLK110--⚠️ +140----------⚠️ +200
libraries/SD_MMC/examples/SD2USBMSC--⚠️ +160⚠️ +200----------
libraries/SD_MMC/examples/SDMMC_Test--⚠️ +160⚠️ +200--------⚠️ +200
libraries/SD_MMC/examples/SDMMC_time--⚠️ +160⚠️ +200--------⚠️ +200
libraries/USB/examples/CompositeDevice--⚠️ +140⚠️ +200⚠️ +200--------
libraries/USB/examples/ConsumerControl--⚠️ +140⚠️ +200⚠️ +200--------
libraries/USB/examples/CustomHIDDevice--⚠️ +140⚠️ +200⚠️ +200--------
libraries/USB/examples/FirmwareMSC--⚠️ +140⚠️ +200⚠️ +200--------
libraries/USB/examples/Gamepad--⚠️ +140⚠️ +200⚠️ +240--------
libraries/USB/examples/HIDVendor--⚠️ +140⚠️ +200⚠️ +200--------
libraries/USB/examples/Keyboard/KeyboardLogout--⚠️ +140⚠️ +200⚠️ +200--------
libraries/USB/examples/Keyboard/KeyboardMessage--⚠️ +140⚠️ +200⚠️ +200--------
libraries/USB/examples/Keyboard/KeyboardReprogram--⚠️ +140⚠️ +200⚠️ +200--------
libraries/USB/examples/Keyboard/KeyboardSerial--⚠️ +140⚠️ +200⚠️ +200--------
libraries/USB/examples/KeyboardAndMouseControl--⚠️ +140⚠️ +200⚠️ +200--------
libraries/USB/examples/MIDI/MidiController--⚠️ +140⚠️ +200⚠️ +200--------
libraries/USB/examples/MIDI/MidiInterface--⚠️ +140⚠️ +200⚠️ +240--------
libraries/USB/examples/MIDI/MidiMusicBox--⚠️ +140⚠️ +200⚠️ +200--------
libraries/USB/examples/MIDI/ReceiveMidi--⚠️ +140⚠️ +200⚠️ +200--------
libraries/USB/examples/Mouse/ButtonMouseControl--⚠️ +140⚠️ +200⚠️ +200--------
libraries/USB/examples/SystemControl--⚠️ +140⚠️ +200⚠️ +200--------
libraries/USB/examples/USBMSC--⚠️ +140⚠️ +200⚠️ +200--------
libraries/USB/examples/USBSerial--⚠️ +140⚠️ +200⚠️ +200--------
libraries/USB/examples/USBVendor--⚠️ +140⚠️ +200⚠️ +200--------
libraries/ESP32/examples/Camera/CameraWebServer----⚠️ +200⚠️ +120------⚠️ +200
ESP32/examples/Camera/CameraWebServer (2)----⚠️ +200⚠️ +200------⚠️ +200
ESP32/examples/Camera/CameraWebServer (3)----⚠️ +200----------
libraries/ESP32/examples/DeepSleep/ExternalWakeUp----⚠️ +200⚠️ +200------⚠️ +200
libraries/BluetoothSerial/examples/DiscoverConnect--------------⚠️ +200
libraries/BluetoothSerial/examples/GetLocalMAC--------------⚠️ +240
libraries/BluetoothSerial/examples/SerialToSerialBT--------------⚠️ +240
libraries/BluetoothSerial/examples/SerialToSerialBTM--------------⚠️ +240
libraries/BluetoothSerial/examples/SerialToSerialBT_Legacy--------------⚠️ +240
libraries/BluetoothSerial/examples/SerialToSerialBT_SSP--------------⚠️ +240
libraries/BluetoothSerial/examples/bt_classic_device_discovery--------------⚠️ +200
libraries/BluetoothSerial/examples/bt_remove_paired_devices--------------⚠️ +200
libraries/ESP32/examples/DeepSleep/SmoothBlink_ULP_Code--------------⚠️ +200
libraries/Ethernet/examples/ETH_LAN8720--------------⚠️ +200
libraries/SimpleBLE/examples/SimpleBleDevice--------------⚠️ +200

Copy link
Collaborator

@SuGlider SuGlider left a comment

Choose a reason for hiding this comment

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

LGTM

@Jason2866
Copy link
Collaborator

Jason2866 commented Nov 6, 2025

@me-no-dev Not directly related. Since you are refactor the PPP driver, is it possible to silence this non critical warnings?

/home/runner/.platformio/packages/framework-arduinoespressif32/libraries/PPP/src/PPP.cpp: In member function 'String PPPClass::IMSI() const':
/home/runner/.platformio/packages/framework-arduinoespressif32/libraries/PPP/src/PPP.cpp:543:59: warning: casting 'char [32]' to 'std::string&' {aka 'std::__cxx11::basic_string<char>&'} does not use 'constexpr std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, const _Alloc&) [with <template-parameter-2-1> = std::allocator<char>; _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]' [-Wcast-user-defined]
  543 |   esp_err_t err = esp_modem_get_imsi(_dce, (std::string &)imsi);
      |                                                           ^~~~
/home/runner/.platformio/packages/framework-arduinoespressif32/libraries/PPP/src/PPP.cpp: In member function 'String PPPClass::IMEI() const':
/home/runner/.platformio/packages/framework-arduinoespressif32/libraries/PPP/src/PPP.cpp:556:59: warning: casting 'char [32]' to 'std::string&' {aka 'std::__cxx11::basic_string<char>&'} does not use 'constexpr std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, const _Alloc&) [with <template-parameter-2-1> = std::allocator<char>; _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]' [-Wcast-user-defined]
  556 |   esp_err_t err = esp_modem_get_imei(_dce, (std::string &)imei);
      |                                                           ^~~~
/home/runner/.platformio/packages/framework-arduinoespressif32/libraries/PPP/src/PPP.cpp: In member function 'String PPPClass::moduleName() const':
/home/runner/.platformio/packages/framework-arduinoespressif32/libraries/PPP/src/PPP.cpp:569:66: warning: casting 'char [32]' to 'std::string&' {aka 'std::__cxx11::basic_string<char>&'} does not use 'constexpr std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, const _Alloc&) [with <template-parameter-2-1> = std::allocator<char>; _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]' [-Wcast-user-defined]
  569 |   esp_err_t err = esp_modem_get_module_name(_dce, (std::string &)name);
      |                                                                  ^~~~
/home/runner/.platformio/packages/framework-arduinoespressif32/libraries/PPP/src/PPP.cpp: In member function 'String PPPClass::operatorName() const':
/home/runner/.platformio/packages/framework-arduinoespressif32/libraries/PPP/src/PPP.cpp:583:68: warning: casting 'char [32]' to 'std::string&' {aka 'std::__cxx11::basic_string<char>&'} does not use 'constexpr std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, const _Alloc&) [with <template-parameter-2-1> = std::allocator<char>; _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]' [-Wcast-user-defined]
  583 |   esp_err_t err = esp_modem_get_operator_name(_dce, (std::string &)oper, act);
      |                                                                    ^~~~

@me-no-dev me-no-dev added Status: Pending Merge Pull Request is ready to be merged and removed Status: Review needed Issue or PR is awaiting review labels Nov 6, 2025
@me-no-dev me-no-dev merged commit 513507d into master Nov 6, 2025
94 of 98 checks passed
@me-no-dev me-no-dev deleted the bugfix/ppp_end branch November 6, 2025 14:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Status: Pending Merge Pull Request is ready to be merged

Projects

None yet

Development

Successfully merging this pull request may close these issues.

PPPOS PPP.end() crash

6 participants