mirror of
				https://github.com/esphome/esphome.git
				synced 2025-10-30 22:53:59 +00:00 
			
		
		
		
	ESP32-C3 USB_CDC fixes (#6069)
This commit is contained in:
		| @@ -84,7 +84,7 @@ UART_SELECTION_ESP32 = { | |||||||
|     VARIANT_ESP32: [UART0, UART1, UART2], |     VARIANT_ESP32: [UART0, UART1, UART2], | ||||||
|     VARIANT_ESP32S2: [UART0, UART1, USB_CDC], |     VARIANT_ESP32S2: [UART0, UART1, USB_CDC], | ||||||
|     VARIANT_ESP32S3: [UART0, UART1, USB_CDC, USB_SERIAL_JTAG], |     VARIANT_ESP32S3: [UART0, UART1, USB_CDC, USB_SERIAL_JTAG], | ||||||
|     VARIANT_ESP32C3: [UART0, UART1, USB_SERIAL_JTAG], |     VARIANT_ESP32C3: [UART0, UART1, USB_CDC, USB_SERIAL_JTAG], | ||||||
|     VARIANT_ESP32C2: [UART0, UART1], |     VARIANT_ESP32C2: [UART0, UART1], | ||||||
|     VARIANT_ESP32C6: [UART0, UART1, USB_CDC, USB_SERIAL_JTAG], |     VARIANT_ESP32C6: [UART0, UART1, USB_CDC, USB_SERIAL_JTAG], | ||||||
|     VARIANT_ESP32H2: [UART0, UART1, USB_CDC, USB_SERIAL_JTAG], |     VARIANT_ESP32H2: [UART0, UART1, USB_CDC, USB_SERIAL_JTAG], | ||||||
| @@ -172,9 +172,10 @@ CONFIG_SCHEMA = cv.All( | |||||||
|                 esp8266=UART0, |                 esp8266=UART0, | ||||||
|                 esp32=UART0, |                 esp32=UART0, | ||||||
|                 esp32_s2=USB_CDC, |                 esp32_s2=USB_CDC, | ||||||
|                 esp32_s3_idf=USB_SERIAL_JTAG, |  | ||||||
|                 esp32_c3_idf=USB_SERIAL_JTAG, |  | ||||||
|                 esp32_s3_arduino=USB_CDC, |                 esp32_s3_arduino=USB_CDC, | ||||||
|  |                 esp32_s3_idf=USB_SERIAL_JTAG, | ||||||
|  |                 esp32_c3_arduino=USB_CDC, | ||||||
|  |                 esp32_c3_idf=USB_SERIAL_JTAG, | ||||||
|                 rp2040=USB_CDC, |                 rp2040=USB_CDC, | ||||||
|                 bk72xx=DEFAULT, |                 bk72xx=DEFAULT, | ||||||
|                 rtl87xx=DEFAULT, |                 rtl87xx=DEFAULT, | ||||||
| @@ -265,6 +266,8 @@ async def to_code(config): | |||||||
|     if CORE.using_arduino: |     if CORE.using_arduino: | ||||||
|         if config[CONF_HARDWARE_UART] == USB_CDC: |         if config[CONF_HARDWARE_UART] == USB_CDC: | ||||||
|             cg.add_build_flag("-DARDUINO_USB_CDC_ON_BOOT=1") |             cg.add_build_flag("-DARDUINO_USB_CDC_ON_BOOT=1") | ||||||
|  |             if CORE.is_esp32 and get_esp32_variant() == VARIANT_ESP32C3: | ||||||
|  |                 cg.add_build_flag("-DARDUINO_USB_MODE=1") | ||||||
|  |  | ||||||
|     if CORE.using_esp_idf: |     if CORE.using_esp_idf: | ||||||
|         if config[CONF_HARDWARE_UART] == USB_CDC: |         if config[CONF_HARDWARE_UART] == USB_CDC: | ||||||
|   | |||||||
| @@ -272,17 +272,13 @@ void Logger::pre_setup() { | |||||||
| #endif | #endif | ||||||
| #if defined(USE_ESP32) && \ | #if defined(USE_ESP32) && \ | ||||||
|     (defined(USE_ESP32_VARIANT_ESP32S2) || defined(USE_ESP32_VARIANT_ESP32S3) || defined(USE_ESP32_VARIANT_ESP32C3)) |     (defined(USE_ESP32_VARIANT_ESP32S2) || defined(USE_ESP32_VARIANT_ESP32S3) || defined(USE_ESP32_VARIANT_ESP32C3)) | ||||||
| #if defined(USE_ESP32_VARIANT_ESP32S2) || defined(USE_ESP32_VARIANT_ESP32S3) | #if defined(USE_ESP32_VARIANT_ESP32S2) || defined(USE_ESP32_VARIANT_ESP32S3) || defined(USE_ESP32_VARIANT_ESP32C3) | ||||||
|       case UART_SELECTION_USB_CDC: |       case UART_SELECTION_USB_CDC: | ||||||
| #endif  // USE_ESP32_VARIANT_ESP32S2 || USE_ESP32_VARIANT_ESP32S3 | #endif  // USE_ESP32_VARIANT_ESP32S2 || USE_ESP32_VARIANT_ESP32S3 || USE_ESP32_VARIANT_ESP32C3 | ||||||
| #if defined(USE_ESP32_VARIANT_ESP32C3) || defined(USE_ESP32_VARIANT_ESP32S3) | #if defined(USE_ESP32_VARIANT_ESP32C3) || defined(USE_ESP32_VARIANT_ESP32S3) | ||||||
|       case UART_SELECTION_USB_SERIAL_JTAG: |       case UART_SELECTION_USB_SERIAL_JTAG: | ||||||
| #endif  // USE_ESP32_VARIANT_ESP32C3 || USE_ESP32_VARIANT_ESP32S3 | #endif  // USE_ESP32_VARIANT_ESP32C3 || USE_ESP32_VARIANT_ESP32S3 | ||||||
| #ifdef USE_ESP32_VARIANT_ESP32C3 | #if defined(USE_ESP32_VARIANT_ESP32S2) || defined(USE_ESP32_VARIANT_ESP32S3) || defined(USE_ESP32_VARIANT_ESP32C3) | ||||||
|         this->hw_serial_ = &Serial; |  | ||||||
|         Serial.begin(this->baud_rate_); |  | ||||||
| #endif  // USE_ESP32_VARIANT_ESP32C3 |  | ||||||
| #if defined(USE_ESP32_VARIANT_ESP32S2) || defined(USE_ESP32_VARIANT_ESP32S3) |  | ||||||
| #if ARDUINO_USB_CDC_ON_BOOT | #if ARDUINO_USB_CDC_ON_BOOT | ||||||
|         this->hw_serial_ = &Serial; |         this->hw_serial_ = &Serial; | ||||||
|         Serial.setTxTimeoutMs(0);  // workaround for 2.0.9 crash when there's no data connection |         Serial.setTxTimeoutMs(0);  // workaround for 2.0.9 crash when there's no data connection | ||||||
| @@ -291,7 +287,7 @@ void Logger::pre_setup() { | |||||||
|         this->hw_serial_ = &Serial; |         this->hw_serial_ = &Serial; | ||||||
|         Serial.begin(this->baud_rate_); |         Serial.begin(this->baud_rate_); | ||||||
| #endif  // ARDUINO_USB_CDC_ON_BOOT | #endif  // ARDUINO_USB_CDC_ON_BOOT | ||||||
| #endif  // USE_ESP32_VARIANT_ESP32S2 || USE_ESP32_VARIANT_ESP32S3 | #endif  // USE_ESP32_VARIANT_ESP32S2 || USE_ESP32_VARIANT_ESP32S3 || USE_ESP32_VARIANT_ESP32C3 | ||||||
|         break; |         break; | ||||||
| #endif  // USE_ESP32 && (USE_ESP32_VARIANT_ESP32S2 || USE_ESP32_VARIANT_ESP32S3 || USE_ESP32_VARIANT_ESP32C3) | #endif  // USE_ESP32 && (USE_ESP32_VARIANT_ESP32S2 || USE_ESP32_VARIANT_ESP32S3 || USE_ESP32_VARIANT_ESP32C3) | ||||||
| #ifdef USE_RP2040 | #ifdef USE_RP2040 | ||||||
|   | |||||||
| @@ -45,9 +45,10 @@ enum UARTSelection { | |||||||
|   UART_SELECTION_UART2, |   UART_SELECTION_UART2, | ||||||
| #endif  // !USE_ESP32_VARIANT_ESP32C3 && !USE_ESP32_VARIANT_ESP32C6 && !USE_ESP32_VARIANT_ESP32S2 && | #endif  // !USE_ESP32_VARIANT_ESP32C3 && !USE_ESP32_VARIANT_ESP32C6 && !USE_ESP32_VARIANT_ESP32S2 && | ||||||
|         // !USE_ESP32_VARIANT_ESP32S3 && !USE_ESP32_VARIANT_ESP32H2 |         // !USE_ESP32_VARIANT_ESP32S3 && !USE_ESP32_VARIANT_ESP32H2 | ||||||
| #if defined(USE_ESP32_VARIANT_ESP32S2) || defined(USE_ESP32_VARIANT_ESP32S3) | #if defined(USE_ESP32_VARIANT_ESP32S2) || defined(USE_ESP32_VARIANT_ESP32S3) || \ | ||||||
|  |     (defined(USE_ESP32_VARIANT_ESP32C3) && defined(USE_ARDUINO)) | ||||||
|   UART_SELECTION_USB_CDC, |   UART_SELECTION_USB_CDC, | ||||||
| #endif  // USE_ESP32_VARIANT_ESP32S2 || USE_ESP32_VARIANT_ESP32S3 | #endif  // USE_ESP32_VARIANT_ESP32S2 || USE_ESP32_VARIANT_ESP32S3 || USE_ESP32_VARIANT_ESP32C3 | ||||||
| #if defined(USE_ESP32_VARIANT_ESP32C3) || defined(USE_ESP32_VARIANT_ESP32C6) || defined(USE_ESP32_VARIANT_ESP32S3) || \ | #if defined(USE_ESP32_VARIANT_ESP32C3) || defined(USE_ESP32_VARIANT_ESP32C6) || defined(USE_ESP32_VARIANT_ESP32S3) || \ | ||||||
|     defined(USE_ESP32_VARIANT_ESP32H2) |     defined(USE_ESP32_VARIANT_ESP32H2) | ||||||
|   UART_SELECTION_USB_SERIAL_JTAG, |   UART_SELECTION_USB_SERIAL_JTAG, | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user