8000 Fix Windows USB issues · RyanHN/arduino-esp32@4ada3f5 · GitHub
[go: up one dir, main page]

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 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

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

cores/esp32/USBCDC.cpp

Lines 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

Lines 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