Skip to content

Conversation

SuGlider
Copy link
Collaborator

@SuGlider SuGlider commented Oct 7, 2025

Description of Change

Added a timeout check to prevent locking during CDC writing.

Test Scenarios

ESP32-S3/S2 with the sketch:

// ESP32-S3 | ESP32-S2 
// Arduino IDE Setting: CDC on Boot = ENABLED (both S2|S3) 
// Arduino IDE Setting for S3: USB Mode = USB OTG (TinyUSB) ||  Upload Mode =  USB OTG CDC (TinyUSB)
// First time sketch upload may require to make the ESP32-S2/S3 to enter in Download Mode
// In order to achieve it: Hold BOOT Button pressed, press and release RESET button then release BOOT button.
#include "USB.h"
#include "USBHIDGamepad.h"
USBHIDGamepad Gamepad;

#define RGB_LED_PIN 48 // some ESP32-S3 may use pin 38 or something else. S2 Devkit uses pin 18

void setup() {
  Serial.begin();  // TinyUSB CDC Port
  while(!Serial) {
    // blinks RGB LED to tell user that the Serial Terminal has not been open
    rgbLedWrite(RGB_LED_PIN, 64, 0, 0);  // RED
    delay(250);
    rgbLedWrite(RGB_LED_PIN, 0, 0, 0);  // OFF
    delay(250);
  }
  USB.begin();
  Gamepad.begin();
  Serial.println("TinyUSB Sketch will send CDC and HID reports in loop()");
}

uint32_t c = 0;
void loop() {
  Serial.println(String(c++) + " ==> Hello ESP32S3");
  //delay(500);  // remove this line for the TinyUSB bug -- note: a minimum delay(2) here solves the issue....
  if (c & 1) {
    Gamepad.pressButton(0);
  } else {
    Gamepad.releaseButton(0);
  }
  //delay(500);  // remove this line for the TinyUSB bug
}

Related links

Related to, but not final solution for:
#10836
#11600
#10307

Added a timeout check to prevent locking during CDC writes.
@SuGlider SuGlider added this to the 3.3.0 milestone Oct 7, 2025
@SuGlider SuGlider self-assigned this Oct 7, 2025
@SuGlider SuGlider requested a review from a team as a code owner October 7, 2025 19:25
@SuGlider SuGlider added the Area: Peripherals API Relates to peripheral's APIs. label Oct 7, 2025
@SuGlider SuGlider moved this from Todo to In Progress in Arduino ESP32 Core Project Roadmap Oct 7, 2025
Copy link
Contributor

github-actions bot commented Oct 7, 2025

Messages
📖 🎉 Good Job! All checks are passing!

👋 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.
- 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 8833edb

Copy link
Contributor

github-actions bot commented Oct 7, 2025

Test Results

 76 files   76 suites   14m 13s ⏱️
 38 tests  38 ✅ 0 💤 0 ❌
241 runs  241 ✅ 0 💤 0 ❌

Results for commit 8833edb.

♻️ This comment has been updated with latest results.

@SuGlider SuGlider moved this from In Progress to In Review in Arduino ESP32 Core Project Roadmap Oct 7, 2025
@SuGlider SuGlider added the Status: Review needed Issue or PR is awaiting review label Oct 7, 2025
@SuGlider SuGlider requested a review from Copilot October 7, 2025 20:22
Copy link
Contributor

@Copilot 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 adds a timeout mechanism to prevent infinite loops when the TinyUSB CDC layer hangs during write operations. The change addresses a critical issue where the ESP32-S3/S2 devices could become locked when CDC writing operations fail.

  • Added timeout check in the CDC write loop to prevent indefinite blocking
  • Introduced error logging when timeout occurs or USB disconnects
  • Enhanced robustness of CDC communication by avoiding system lockup

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

Copy link
Contributor

github-actions bot commented Oct 7, 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
ESP32C5000.000.00000.000.00
ESP32P40⚠️ +320.00⚠️ +0.01000.000.00
ESP32S3💚 -16⚠️ +280.00⚠️ +0.01000.000.00
ESP32S20⚠️ +120.000.00000.000.00
ESP32C3000.000.00000.000.00
ESP32C6000.000.00000.000.00
ESP32H2000.000.00000.000.00
ESP320⚠️ +160.000.00000.000.00
Click to expand the detailed deltas report [usage change in BYTES]
TargetESP32C5ESP32P4ESP32S3ESP32S2ESP32C3ESP32C6ESP32H2ESP32
ExampleFLASHRAMFLASHRAMFLASHRAMFLASHRAMFLASHRAMFLASHRAMFLASHRAMFLASHRAM
libraries/ArduinoOTA/examples/BasicOTA000000000000--00
libraries/AsyncUDP/examples/AsyncUDPClient0000💚 -160000000--00
libraries/AsyncUDP/examples/AsyncUDPMulticastServer000000000000--00
libraries/AsyncUDP/examples/AsyncUDPServer000000000000--00
libraries/BLE/examples/Beacon_Scanner000000--00000000
libraries/BLE/examples/Client000000--00000000
libraries/BLE/examples/Client_secure_static_passkey000000--00000000
libraries/BLE/examples/EddystoneTLM_Beacon000000--00000000
libraries/BLE/examples/EddystoneURL_Beacon000000--00000000
libraries/BLE/examples/Notify000000--00000000
libraries/BLE/examples/Scan000000--00000000
libraries/BLE/examples/Server000000--00000000
libraries/BLE/examples/Server_multiconnect000000--00000000
libraries/BLE/examples/Server_secure_authorization00--00--000000--
libraries/BLE/examples/Server_secure_static_passkey000000--00000000
libraries/BLE/examples/UART000000--00000000
libraries/BLE/examples/Write000000--00000000
libraries/BLE/examples/iBeacon000000--00000000
libraries/DNSServer/examples/CaptivePortal000000000000--00
libraries/EEPROM/examples/eeprom_class0000000000000000
libraries/EEPROM/examples/eeprom_extra0000000000000000
libraries/EEPROM/examples/eeprom_write0000000000000000
libraries/ESP32/examples/AnalogOut/LEDCFade0000000000000000
libraries/ESP32/examples/AnalogOut/LEDCGammaFade0000------0000--
libraries/ESP32/examples/AnalogOut/LEDCSingleChannel0000000000000000
libraries/ESP32/examples/AnalogOut/LEDCSoftwareFade0000000000000000
libraries/ESP32/examples/AnalogOut/SigmaDelta0000000000000000
libraries/ESP32/examples/AnalogOut/ledcFrequency0000000000000000
libraries/ESP32/examples/AnalogOut/ledcWrite_RGB0000000000000000
libraries/ESP32/examples/AnalogRead0000000000000000
libraries/ESP32/examples/AnalogReadContinuous0000000000000000
libraries/ESP32/examples/ArduinoStackSize0000000000000000
libraries/ESP32/examples/ArduinoWaitTimeBeforeStartingSketch0000000000000000
libraries/ESP32/examples/CI/CIBoardsTest0000000000000000
libraries/ESP32/examples/ChipID/GetChipID0000000000000000
libraries/ESP32/examples/DeepSleep/TimerWakeUp000000000000--00
libraries/ESP32/examples/FreeRTOS/BasicMultiThreading0000000000000000
libraries/ESP32/examples/FreeRTOS/Mutex0000000000000000
libraries/ESP32/examples/FreeRTOS/Queue0000000000000000
libraries/ESP32/examples/FreeRTOS/Semaphore0000000000000000
libraries/ESP32/examples/GPIO/BlinkRGB0000000000000000
libraries/ESP32/examples/GPIO/FunctionalInterrupt0000000000000000
libraries/ESP32/examples/GPIO/FunctionalInterruptLambda0000000000000000
libraries/ESP32/examples/GPIO/FunctionalInterruptStruct0000000000000000
libraries/ESP32/examples/GPIO/GPIOInterrupt0000000000000000
libraries/ESP32/examples/HWCDC_Events000000--000000--
libraries/ESP32/examples/MacAddress/GetMacAddress0000000000000000
libraries/ESP32/examples/RMT/Legacy_RMT_Driver_Compatible0000000000000000
libraries/ESP32/examples/RMT/RMTCallback0000000000000000
libraries/ESP32/examples/RMT/RMTLoopback0000000000000000
libraries/ESP32/examples/RMT/RMTReadXJT0000000000000000
libraries/ESP32/examples/RMT/RMTWrite_RGB_LED0000000000000000
libraries/ESP32/examples/RMT/RMT_CPUFreq_Test0000000000000000
libraries/ESP32/examples/RMT/RMT_EndOfTransmissionState0000000000000000
libraries/ESP32/examples/RMT/RMT_LED_Blink0000000000000000
libraries/ESP32/examples/ResetReason/ResetReason0000000000000000
libraries/ESP32/examples/ResetReason/ResetReason20000000000000000
libraries/ESP32/examples/Serial/BaudRateDetect_Demo0000000000000000
libraries/ESP32/examples/Serial/OnReceiveError_BREAK_Demo0000000000000000
libraries/ESP32/examples/Serial/OnReceive_Demo0000000000000000
libraries/ESP32/examples/Serial/RS485_Echo_Demo0000000000000000
libraries/ESP32/examples/Serial/RxFIFOFull_Demo0000000000000000
libraries/ESP32/examples/Serial/RxTimeout_Demo0000000000000000
libraries/ESP32/examples/Serial/Serial_All_CPU_Freqs0000000000000000
libraries/ESP32/examples/Serial/Serial_STD_Func_OnReceive0000000000000000
libraries/ESP32/examples/Serial/onReceiveExample0000000000000000
libraries/ESP32/examples/Template/ExampleTemplate0000000000000000
libraries/ESP32/examples/Time/SimpleTime000000000000--00
libraries/ESP32/examples/Timer/RepeatTimer0000000000000000
libraries/ESP32/examples/Timer/WatchdogTimer0000000000000000
libraries/ESP_I2S/examples/ES8388_loopback0000000000000000
libraries/ESP_I2S/examples/Simple_tone0000000000000000
libraries/ESP_NOW/examples/ESP_NOW_Broadcast_Master00--00000000--00
libraries/ESP_NOW/examples/ESP_NOW_Broadcast_Slave00--00000000--00
libraries/ESP_NOW/examples/ESP_NOW_Network00--00000000--00
libraries/ESP_NOW/examples/ESP_NOW_Serial00--00000000--00
libraries/ESPmDNS/examples/mDNS-SD_Extended000000000000--00
libraries/ESPmDNS/examples/mDNS_Web_Server000000000000--00
libraries/Ethernet/examples/ETH_W5500_Arduino_SPI0000000000000000
libraries/Ethernet/examples/ETH_W5500_IDF_SPI0000000000000000
libraries/Ethernet/examples/ETH_WIFI_BRIDGE000000000000--00
libraries/FFat/examples/FFat_Test0000000000000000
libraries/FFat/examples/FFat_time000000000000--00
libraries/HTTPClient/examples/Authorization000000000000--00
libraries/HTTPClient/examples/BasicHttpClient000000000000--⚠️ +160
libraries/HTTPClient/examples/BasicHttpsClient000000000000--00
libraries/HTTPClient/examples/CustomHeaders000000000000--00
libraries/HTTPClient/examples/HTTPClientEnterprise00--00000000--00
libraries/HTTPClient/examples/ReuseConnection000000000000--00
libraries/HTTPClient/examples/StreamHttpClient000000000000--00
libraries/HTTPUpdate/examples/httpUpdate000000000000--00
libraries/HTTPUpdate/examples/httpUpdateSPIFFS000000000000--00
libraries/HTTPUpdate/examples/httpUpdateSecure000000000000--00
libraries/HTTPUpdateServer/examples/WebUpdater000000000000--00
libraries/Hash/examples/HEX0000000000000000
libraries/Hash/examples/MD50000000000000000
libraries/Hash/examples/PBKDF2_HMAC0000000000000000
libraries/Hash/examples/SHA10000000000000000
libraries/Hash/examples/SHA20000000000000000
libraries/Hash/examples/SHA30000000000000000
libraries/Hash/examples/SHA3Stream0000000000000000
libraries/Insights/examples/DiagnosticsSmokeTest00--00000000--00
libraries/Insights/examples/MinimalDiagnostics00--00000000--00
libraries/LittleFS/examples/LITTLEFS_test0000000000000000
libraries/LittleFS/examples/LITTLEFS_time000000000000--00
libraries/Matter/examples/MatterColorLight00--000000000000
libraries/Matter/examples/MatterCommissionTest00--000000000000
libraries/Matter/examples/MatterComposedLights00--000000000000
libraries/Matter/examples/MatterContactSensor00--000000000000
libraries/Matter/examples/MatterDimmableLight00--000000000000
libraries/Matter/examples/MatterEnhancedColorLight00--000000000000
libraries/Matter/examples/MatterEvents00--000000000000
libraries/Matter/examples/MatterFan00--000000000000
libraries/Matter/examples/MatterHumiditySensor00--000000000000
libraries/Matter/examples/MatterLambdaSingleCallbackManyEPs00--000000000000
libraries/Matter/examples/MatterMinimum00--000000000000
libraries/Matter/examples/MatterOccupancySensor00--000000000000
libraries/Matter/examples/MatterOnIdentify00--000000000000
libraries/Matter/examples/MatterOnOffLight00--000000000000
libraries/Matter/examples/MatterOnOffPlugin00--000000000000
libraries/Matter/examples/MatterPressureSensor00--000000000000
libraries/Matter/examples/MatterSmartButon00--000000000000
libraries/Matter/examples/MatterTemperatureLight00--000000000000
libraries/Matter/examples/MatterTemperatureSensor00--000000000000
libraries/Matter/examples/MatterThermostat00--000000000000
libraries/NetBIOS/examples/ESP_NBNST000000000000--00
libraries/NetworkClientSecure/examples/WiFiClientInsecure000000000000--00
libraries/NetworkClientSecure/examples/WiFiClientPSK000000000000--00
libraries/NetworkClientSecure/examples/WiFiClientSecure000000000000--00
libraries/NetworkClientSecure/examples/WiFiClientSecureEnterprise00--00000000--00
libraries/NetworkClientSecure/examples/WiFiClientSecureProtocolUpgrade000000000000--00
libraries/NetworkClientSecure/examples/WiFiClientShowPeerCredentials000000000000--00
libraries/NetworkClientSecure/examples/WiFiClientTrustOnFirstUse000000000000--00
libraries/OpenThread/examples/CLI/COAP/coap_lamp00--------0000--
libraries/OpenThread/examples/CLI/COAP/coap_switch00--------0000--
libraries/OpenThread/examples/CLI/SimpleCLI00--------0000--
libraries/OpenThread/examples/CLI/SimpleNode00--------0000--
libraries/OpenThread/examples/CLI/SimpleThreadNetwork/ExtendedRouterNode00--------0000--
libraries/OpenThread/examples/CLI/SimpleThreadNetwork/LeaderNode00--------0000--
libraries/OpenThread/examples/CLI/SimpleThreadNetwork/RouterNode00--------0000--
libraries/OpenThread/examples/CLI/ThreadScan00--------0000--
libraries/OpenThread/examples/CLI/onReceive00--------0000--
libraries/OpenThread/examples/Native/SimpleThreadNetwork/LeaderNode00--------0000--
libraries/OpenThread/examples/Native/SimpleThreadNetwork/RouterNode00--------0000--
libraries/PPP/examples/PPP_Basic0000000000000000
libraries/PPP/examples/PPP_WIFI_BRIDGE000000000000--00
libraries/Preferences/examples/Prefs2Struct0000000000000000
libraries/Preferences/examples/StartCounter0000000000000000
libraries/RainMaker/examples/RMakerCustom00--00000000----
libraries/RainMaker/examples/RMakerCustomAirCooler00--00000000----
libraries/RainMaker/examples/RMakerSonoffDualR300--00000000----
libraries/RainMaker/examples/RMakerSwitch00--00000000----
libraries/SD/examples/SD_Test0000000000000000
libraries/SD/examples/SD_time000000000000--00
libraries/SPI/examples/SPI_Multiple_Buses0000000000000000
libraries/SPIFFS/examples/SPIFFS_Test0000000000000000
libraries/SPIFFS/examples/SPIFFS_time000000000000--00
libraries/TFLiteMicro/examples/hello_world0000000000000000
libraries/Ticker/examples/Blinker0000000000000000
libraries/Ticker/examples/TickerBasic0000000000000000
libraries/Ticker/examples/TickerParameter0000000000000000
libraries/Update/examples/AWS_S3_OTA_Update000000000000--00
libraries/Update/examples/HTTPS_OTA_Update000000000000--00
libraries/Update/examples/HTTP_Client_AES_OTA_Update000000000000--00
libraries/Update/examples/HTTP_Server_AES_OTA_Update000000000000--00
libraries/Update/examples/OTAWebUpdater000000000000--00
libraries/Update/examples/SD_Update0000000000000000
libraries/WebServer/examples/AdvancedWebServer000000000000--00
libraries/WebServer/examples/ChunkWriting000000000000--00
libraries/WebServer/examples/FSBrowser000000000000--00
libraries/WebServer/examples/Filters000000000000--00
libraries/WebServer/examples/HelloServer000000000000--00
libraries/WebServer/examples/HttpAdvancedAuth000000000000--00
libraries/WebServer/examples/HttpAuthCallback000000000000--00
libraries/WebServer/examples/HttpAuthCallbackInline000000000000--00
libraries/WebServer/examples/HttpBasicAuth000000000000--00
libraries/WebServer/examples/HttpBasicAuthSHA1000000000000--00
libraries/WebServer/examples/HttpBasicAuthSHA1orBearerToken000000000000--00
libraries/WebServer/examples/Middleware00--00000000--00
libraries/WebServer/examples/MultiHomedServers000000000000--00
libraries/WebServer/examples/PathArgServer000000000000--00
libraries/WebServer/examples/SDWebServer000000000000--00
libraries/WebServer/examples/SimpleAuthentification000000000000--00
libraries/WebServer/examples/UploadHugeFile000000000000--00
libraries/WebServer/examples/WebServer000000000000--00
libraries/WebServer/examples/WebUpdate000000000000--00
libraries/WiFi/examples/FTM/FTM_Initiator000000000000--00
libraries/WiFi/examples/FTM/FTM_Responder000000000000--00
libraries/WiFi/examples/SimpleWiFiServer000000000000--00
libraries/WiFi/examples/WPS00--00000000--00
libraries/WiFi/examples/WiFiAccessPoint000000000000--00
libraries/WiFi/examples/WiFiBlueToothSwitch00--00--0000--00
libraries/WiFi/examples/WiFiClient000000000000--00
libraries/WiFi/examples/WiFiClientBasic000000000000--00
libraries/WiFi/examples/WiFiClientConnect000000000000--00
libraries/WiFi/examples/WiFiClientEnterprise00--00000000--00
libraries/WiFi/examples/WiFiClientEvents000000000000--00
libraries/WiFi/examples/WiFiClientStaticIP000000000000--00
libraries/WiFi/examples/WiFiExtender000000000000--00
libraries/WiFi/examples/WiFiIPv6000000000000--00
libraries/WiFi/examples/WiFiMulti000000000000--00
libraries/WiFi/examples/WiFiMultiAdvanced000000000000--00
libraries/WiFi/examples/WiFiScan000000000000--00
libraries/WiFi/examples/WiFiScanAsync000000000000--00
libraries/WiFi/examples/WiFiScanDualAntenna000000000000--00
libraries/WiFi/examples/WiFiScanTime000000000000--00
libraries/WiFi/examples/WiFiSmartConfig00--00000000--00
libraries/WiFi/examples/WiFiTelnetToSerial000000000000--00
libraries/WiFi/examples/WiFiUDPClient000000000000--00
libraries/WiFiProv/examples/WiFiProv00--00000000--00
libraries/Wire/examples/WireMaster0000000000000000
libraries/Wire/examples/WireScan0000000000000000
libraries/Wire/examples/WireSlave0000000000000000
libraries/Wire/examples/WireSlaveFunctionalCallback0000000000000000
libraries/Zigbee/examples/Zigbee_Analog_Input_Output00--000000000000
libraries/Zigbee/examples/Zigbee_Binary_Input_Output00--------0000--
libraries/Zigbee/examples/Zigbee_CarbonDioxide_Sensor00--------0000--
libraries/Zigbee/examples/Zigbee_Color_Dimmable_Light00--------0000--
libraries/Zigbee/examples/Zigbee_Color_Dimmer_Switch00--000000000000
libraries/Zigbee/examples/Zigbee_Contact_Switch00--------0000--
libraries/Zigbee/examples/Zigbee_Dimmable_Light00--------0000--
libraries/Zigbee/examples/Zigbee_Electrical_AC_Sensor00--000000000000
libraries/Zigbee/examples/Zigbee_Electrical_AC_Sensor_MultiPhase00--000000000000
libraries/Zigbee/examples/Zigbee_Electrical_DC_Sensor00--------0000--
libraries/Zigbee/examples/Zigbee_Fan_Control00--000000000000
libraries/Zigbee/examples/Zigbee_Gateway00--000000----00
libraries/Zigbee/examples/Zigbee_Illuminance_Sensor00--------0000--
libraries/Zigbee/examples/Zigbee_Multistate_Input_Output00--000000000000
libraries/Zigbee/examples/Zigbee_OTA_Client00--------0000--
libraries/Zigbee/examples/Zigbee_Occupancy_Sensor00--------0000--
libraries/Zigbee/examples/Zigbee_On_Off_Light00--------0000--
libraries/Zigbee/examples/Zigbee_On_Off_MultiSwitch00--000000000000
libraries/Zigbee/examples/Zigbee_On_Off_Switch00--000000000000
libraries/Zigbee/examples/Zigbee_PM25_Sensor00--------0000--
libraries/Zigbee/examples/Zigbee_Power_Outlet00--000000000000
libraries/Zigbee/examples/Zigbee_Pressure_Flow_Sensor00--------0000--
libraries/Zigbee/examples/Zigbee_Range_Extender00--000000000000
libraries/Zigbee/examples/Zigbee_Scan_Networks00--------0000--
libraries/Zigbee/examples/Zigbee_Temp_Hum_Sensor_Sleepy00--------0000--
libraries/Zigbee/examples/Zigbee_Temperature_Sensor00--------0000--
libraries/Zigbee/examples/Zigbee_Thermostat00--000000000000
libraries/Zigbee/examples/Zigbee_Vibration_Sensor00--------0000--
libraries/Zigbee/examples/Zigbee_Wind_Speed_Sensor00--------0000--
libraries/Zigbee/examples/Zigbee_Window_Covering00--------0000--
libraries/ESP32/examples/DeepSleep/TouchWakeUp--000000------00
libraries/ESP32/examples/TWAI/TWAIreceive--00000000000000
libraries/ESP32/examples/TWAI/TWAItransmit--00000000000000
libraries/ESP32/examples/Touch/TouchButton--000000------00
libraries/ESP32/examples/Touch/TouchInterrupt--000000------00
libraries/ESP32/examples/Touch/TouchRead--000000------00
libraries/ESP_I2S/examples/Record_to_WAV--0000--------00
libraries/ESP_SR/examples/Basic--0000----------
libraries/Ethernet/examples/ETH_TLK110--00----------00
libraries/SD_MMC/examples/SD2USBMSC--0000----------
libraries/SD_MMC/examples/SDMMC_Test--0000--------00
libraries/SD_MMC/examples/SDMMC_time--0000--------00
libraries/USB/examples/CompositeDevice--⚠️ +320⚠️ +280⚠️ +120--------
libraries/USB/examples/ConsumerControl--000000--------
libraries/USB/examples/CustomHIDDevice--000000--------
libraries/USB/examples/FirmwareMSC--000000--------
libraries/USB/examples/Gamepad--000000--------
libraries/USB/examples/HIDVendor--000000--------
libraries/USB/examples/Keyboard/KeyboardLogout--000000--------
libraries/USB/examples/Keyboard/KeyboardMessage--000000--------
libraries/USB/examples/Keyboard/KeyboardReprogram--000000--------
libraries/USB/examples/Keyboard/KeyboardSerial--000000--------
libraries/USB/examples/KeyboardAndMouseControl--000000--------
libraries/USB/examples/MIDI/MidiController--000000--------
libraries/USB/examples/MIDI/MidiInterface--000000--------
libraries/USB/examples/MIDI/MidiMusicBox--000000--------
libraries/USB/examples/MIDI/ReceiveMidi--000000--------
libraries/USB/examples/Mouse/ButtonMouseControl--000000--------
libraries/USB/examples/SystemControl--000000--------
libraries/USB/examples/USBMSC--000000--------
libraries/USB/examples/USBSerial--⚠️ +320⚠️ +160⚠️ +120--------
libraries/USB/examples/USBVendor--000000--------
libraries/ESP32/examples/Camera/CameraWebServer----0000------00
ESP32/examples/Camera/CameraWebServer (2)----0000------00
ESP32/examples/Camera/CameraWebServer (3)----00----------
libraries/ESP32/examples/DeepSleep/ExternalWakeUp----0000------00
libraries/BluetoothSerial/examples/DiscoverConnect--------------00
libraries/BluetoothSerial/examples/GetLocalMAC--------------00
libraries/BluetoothSerial/examples/SerialToSerialBT--------------00
libraries/BluetoothSerial/examples/SerialToSerialBTM--------------00
libraries/BluetoothSerial/examples/SerialToSerialBT_Legacy--------------00
libraries/BluetoothSerial/examples/SerialToSerialBT_SSP--------------00
libraries/BluetoothSerial/examples/bt_classic_device_discovery--------------00
libraries/BluetoothSerial/examples/bt_remove_paired_devices--------------00
libraries/ESP32/examples/DeepSleep/SmoothBlink_ULP_Code--------------00
libraries/Ethernet/examples/ETH_LAN8720--------------00
libraries/SimpleBLE/examples/SimpleBleDevice--------------00

@P-R-O-C-H-Y P-R-O-C-H-Y added Status: Pending Merge Pull Request is ready to be merged and removed Status: Review needed Issue or PR is awaiting review labels Oct 8, 2025
@me-no-dev me-no-dev merged commit e8cba09 into master Oct 8, 2025
78 checks passed
@me-no-dev me-no-dev deleted the tinyusb_write_timeout branch October 8, 2025 10:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area: Peripherals API Relates to peripheral's APIs. Status: Pending Merge Pull Request is ready to be merged
Projects
Development

Successfully merging this pull request may close these issues.

4 participants