Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 4ada3f5

Browse filesBrowse files
committed
Fix Windows USB issues
- Device will not reset if previous baudrate was not 9600 - CDC Device is not recognized if WebUSB is enabled
1 parent 268595c commit 4ada3f5
Copy full SHA for 4ada3f5

File tree

2 files changed

+11
-1
lines changed
Filter options

2 files changed

+11
-1
lines changed

‎cores/esp32/USBCDC.cpp

Copy file name to clipboardExpand all lines: cores/esp32/USBCDC.cpp
+2-1Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,8 @@ void USBCDC::_onLineState(bool _dtr, bool _rts){
227227

228228
void USBCDC::_onLineCoding(uint32_t _bit_rate, uint8_t _stop_bits, uint8_t _parity, uint8_t _data_bits){
229229
if(bit_rate != _bit_rate || data_bits != _data_bits || stop_bits != _stop_bits || parity != _parity){
230-
if(bit_rate == 9600 && _bit_rate == 1200){
230+
// ArduinoIDE sends LineCoding with 1200bps baud to reset the device
231+
if(_bit_rate == 1200){
231232
usb_persist_restart(RESTART_BOOTLOADER);
232233
} else {
233234
bit_rate = _bit_rate;

‎cores/esp32/esp32-hal-tinyusb.c

Copy file name to clipboardExpand all lines: cores/esp32/esp32-hal-tinyusb.c
+9Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -502,6 +502,15 @@ static void tinyusb_apply_device_config(tinyusb_device_config_t *config){
502502
snprintf(WEBUSB_URL, 126, "%s", config->webusb_url);
503503
}
504504

505+
// Windows 10 will not recognize the CDC device if WebUSB is enabled and USB Class is not 2 (CDC)
506+
if(
507+
(tinyusb_loaded_interfaces_mask & BIT(USB_INTERFACE_CDC))
508+
&& config->webusb_enabled
509+
&& (config->usb_class != TUSB_CLASS_CDC)
510+
){
511+
config->usb_class = TUSB_CLASS_CDC;
512+
}
513+
505514
WEBUSB_ENABLED = config->webusb_enabled;
506515
USB_DEVICE_ATTRIBUTES = config->usb_attributes;
507516
USB_DEVICE_POWER = config->usb_power_ma;

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.