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

Browse filesBrowse files
committed
Fix upload over USB CDC (USB serial must be set to 0)
1 parent aeb4a13 commit 425619d
Copy full SHA for 425619d

File tree

3 files changed

+34
-12
lines changed
Filter options

3 files changed

+34
-12
lines changed

‎boards.txt

Copy file name to clipboardExpand all lines: boards.txt
+14Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ esp32s2.upload.tool=esptool_py
2525
esp32s2.upload.maximum_size=1310720
2626
esp32s2.upload.maximum_data_size=327680
2727
esp32s2.upload.flags=
28+
esp32s2.upload.use_1200bps_touch=true
29+
esp32s2.upload.wait_for_upload_port=true
2830

2931
esp32s2.serial.disableDTR=false
3032
esp32s2.serial.disableRTS=false
@@ -684,6 +686,8 @@ feathers2.upload.tool=esptool_py
684686
feathers2.upload.maximum_size=1310720
685687
feathers2.upload.maximum_data_size=327680
686688
feathers2.upload.flags=
689+
feathers2.upload.use_1200bps_touch=true
690+
feathers2.upload.wait_for_upload_port=true
687691

688692
feathers2.serial.disableDTR=false
689693
feathers2.serial.disableRTS=false
@@ -805,6 +809,8 @@ pros2.upload.tool=esptool_py
805809
pros2.upload.maximum_size=1310720
806810
pros2.upload.maximum_data_size=327680
807811
pros2.upload.flags=
812+
pros2.upload.use_1200bps_touch=true
813+
pros2.upload.wait_for_upload_port=true
808814

809815
pros2.serial.disableDTR=false
810816
pros2.serial.disableRTS=false
@@ -982,6 +988,8 @@ micros2.upload.tool=esptool_py
982988
micros2.upload.maximum_size=1310720
983989
micros2.upload.maximum_data_size=327680
984990
micros2.upload.flags=
991+
micros2.upload.use_1200bps_touch=true
992+
micros2.upload.wait_for_upload_port=true
985993

986994
micros2.serial.disableDTR=false
987995
micros2.serial.disableRTS=false
@@ -1797,6 +1805,8 @@ sparkfun_esp32s2_thing_plus.upload.tool=esptool_py
17971805
sparkfun_esp32s2_thing_plus.upload.maximum_size=1310720
17981806
sparkfun_esp32s2_thing_plus.upload.maximum_data_size=327680
17991807
sparkfun_esp32s2_thing_plus.upload.flags=
1808+
sparkfun_esp32s2_thing_plus.upload.use_1200bps_touch=true
1809+
sparkfun_esp32s2_thing_plus.upload.wait_for_upload_port=true
18001810

18011811
sparkfun_esp32s2_thing_plus.serial.disableDTR=false
18021812
sparkfun_esp32s2_thing_plus.serial.disableRTS=false
@@ -3020,6 +3030,8 @@ adafruit_metro_esp32s2.upload.tool=esptool_py
30203030
adafruit_metro_esp32s2.upload.maximum_size=1310720
30213031
adafruit_metro_esp32s2.upload.maximum_data_size=327680
30223032
adafruit_metro_esp32s2.upload.flags=
3033+
adafruit_metro_esp32s2.upload.use_1200bps_touch=true
3034+
adafruit_metro_esp32s2.upload.wait_for_upload_port=true
30233035

30243036
adafruit_metro_esp32s2.serial.disableDTR=false
30253037
adafruit_metro_esp32s2.serial.disableRTS=false
@@ -3167,6 +3179,8 @@ adafruit_magtag29_esp32s2.upload.tool=esptool_py
31673179
adafruit_magtag29_esp32s2.upload.maximum_size=1310720
31683180
adafruit_magtag29_esp32s2.upload.maximum_data_size=327680
31693181
adafruit_magtag29_esp32s2.upload.flags=
3182+
adafruit_magtag29_esp32s2.upload.use_1200bps_touch=true
3183+
adafruit_magtag29_esp32s2.upload.wait_for_upload_port=true
31703184

31713185
adafruit_magtag29_esp32s2.serial.disableDTR=false
31723186
adafruit_magtag29_esp32s2.serial.disableRTS=false

‎cores/esp32/USBCDC.cpp

Copy file name to clipboardExpand all lines: cores/esp32/USBCDC.cpp
+14-10Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -198,16 +198,20 @@ void USBCDC::_onLineState(bool _dtr, bool _rts){
198198

199199
void USBCDC::_onLineCoding(uint32_t _bit_rate, uint8_t _stop_bits, uint8_t _parity, uint8_t _data_bits){
200200
if(bit_rate != _bit_rate || data_bits != _data_bits || stop_bits != _stop_bits || parity != _parity){
201-
bit_rate = _bit_rate;
202-
data_bits = _data_bits;
203-
stop_bits = _stop_bits;
204-
parity = _parity;
205-
arduino_usb_cdc_event_data_t p = {0};
206-
p.line_coding.bit_rate = bit_rate;
207-
p.line_coding.data_bits = data_bits;
208-
p.line_coding.stop_bits = stop_bits;
209-
p.line_coding.parity = parity;
210-
arduino_usb_event_post(ARDUINO_USB_CDC_EVENTS, ARDUINO_USB_CDC_LINE_CODING_EVENT, &p, sizeof(arduino_usb_cdc_event_data_t), portMAX_DELAY);
201+
if(bit_rate == 9600 && _bit_rate == 1200){
202+
usb_persist_restart(RESTART_BOOTLOADER);
203+
} else {
204+
bit_rate = _bit_rate;
205+
data_bits = _data_bits;
206+
stop_bits = _stop_bits;
207+
parity = _parity;
208+
arduino_usb_cdc_event_data_t p = {0};
209+
p.line_coding.bit_rate = bit_rate;
210+
p.line_coding.data_bits = data_bits;
211+
p.line_coding.stop_bits = stop_bits;
212+
p.line_coding.parity = parity;
213+
arduino_usb_event_post(ARDUINO_USB_CDC_EVENTS, ARDUINO_USB_CDC_LINE_CODING_EVENT, &p, sizeof(arduino_usb_cdc_event_data_t), portMAX_DELAY);
214+
}
211215
}
212216
}
213217

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

Copy file name to clipboardExpand all lines: cores/esp32/esp32-hal-tinyusb.c
+6-2Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -533,6 +533,9 @@ static void IRAM_ATTR usb_persist_shutdown_handler(void)
533533
//USB CDC Download
534534
if (usb_persist_enabled) {
535535
chip_usb_set_persist_flags(USBDC_PERSIST_ENA);
536+
} else {
537+
periph_module_reset(PERIPH_USB_MODULE);
538+
periph_module_enable(PERIPH_USB_MODULE);
536539
}
537540
REG_WRITE(RTC_CNTL_OPTION1_REG, RTC_CNTL_FORCE_DOWNLOAD_BOOT);
538541
} else if (usb_persist_mode == RESTART_BOOTLOADER_DFU) {
@@ -586,11 +589,12 @@ esp_err_t tinyusb_init(tinyusb_device_config_t *config) {
586589

587590
bool usb_did_persist = (USB_WRAP.date.val == USBDC_PERSIST_ENA);
588591

589-
if(usb_did_persist && usb_persist_enabled){
592+
//if(usb_did_persist && usb_persist_enabled){
590593
// Enable USB/IO_MUX peripheral reset, if coming from persistent reboot
591594
REG_CLR_BIT(RTC_CNTL_USB_CONF_REG, RTC_CNTL_IO_MUX_RESET_DISABLE);
592595
REG_CLR_BIT(RTC_CNTL_USB_CONF_REG, RTC_CNTL_USB_RESET_DISABLE);
593-
} else {
596+
//} else
597+
if(!usb_did_persist || !usb_persist_enabled){
594598
// Reset USB module
595599
periph_module_reset(PERIPH_USB_MODULE);
596600
periph_module_enable(PERIPH_USB_MODULE);

0 commit comments

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