Skip to content

Investigate UART/CDC in all SoC #6765

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
SuGlider opened this issue May 17, 2022 · 6 comments
Closed

Investigate UART/CDC in all SoC #6765

SuGlider opened this issue May 17, 2022 · 6 comments
Assignees
Labels
Area: Peripherals API Relates to peripheral's APIs. Status: Needs investigation We need to do some research before taking next steps on this issue

Comments

@SuGlider
Copy link
Collaborator

@SuGlider I've now tested ESP32 Arduino 2.0.3 with a number of ESP32 boards, using a benchmark that involves uploading a program of about 1400 characters to my uLisp interpreter and then running it. The results are as follows:

Board Upload using UART Upload using USB CDC Benchmark
Adafruit Feather ESP32 OK Not available 8.0 s
ESP32-S2-Soala-1 OK Not available 5.7 s
Adafruit Feather ESP32-S2 Not available OK 2.7 s
Adafruit QT-PY ESP32-S2 Not available OK 2.7 s
Unexpected Maker Feather S2 Not available OK 2.7 s
ESP32-S3-DevKitM-1 OK Serial hangs up 6.1 s (USB)
ESP32-C3-DevKit1 OK Not available 7.8 s
Adafruit QT-PY ESP32-C3 Not available Serial hangs up ??

Key observations:

  • Serial using UART works fine on all boards that support it.
  • Serial using USB CDC works fine on ESP32-S2, fails on ESP32-S3 and ESP32-C3.
  • Benchmark seems to run much slower if I've connected to the MCU via UART (eg 5.7s) compared to connecting to the same MCU via USB CDC (2.7s).

Any thoughts about why USB CDC is now OK on ESP32-S2 but not ESP32-S3 or ESP32-C3?

Also, any idea where there's such a difference in performance? My benchmark isn't making use of serial, except to print the result at the end.

Originally posted by @technoblogy in #6221 (comment)

@SuGlider SuGlider self-assigned this May 17, 2022
@SuGlider
Copy link
Collaborator Author

@technoblogy
Let's continue it here.

@technoblogy
Copy link

Thanks.

@VojtechBartoska VojtechBartoska moved this to Under investigation in Arduino ESP32 Core Project Roadmap May 18, 2022
@VojtechBartoska VojtechBartoska modified the milestone: 2.1.0 May 18, 2022
@VojtechBartoska VojtechBartoska added Area: Peripherals API Relates to peripheral's APIs. Status: Needs investigation We need to do some research before taking next steps on this issue labels May 18, 2022
@egnor
Copy link
Contributor

egnor commented Jul 14, 2022

probably unrelated? espressif/esp-idf#9318 (at a guess, that bug is user-app-specific, this bug is Arduino-runtime-specific)

@SuGlider
Copy link
Collaborator Author

Thanks @egnor for the reference. I'll take it into consideration for the S3 USB Serial JTAG interface.

@VojtechBartoska VojtechBartoska added this to the 2.1.0 milestone Jul 15, 2022
@SuGlider
Copy link
Collaborator Author

@ALL

Examples about UART controlling are at PR #7412

@VojtechBartoska VojtechBartoska removed this from the 2.0.6 milestone Nov 30, 2022
@github-project-automation github-project-automation bot moved this from Under investigation to Done in Arduino ESP32 Core Project Roadmap Jan 10, 2025
@technoblogy
Copy link

Why is this closed? I have tested the ESP32-S3 CDC serial with Arduino core 3.1.0 and it still hangs up and so is unusable.

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: Needs investigation We need to do some research before taking next steps on this issue
Projects
Development

No branches or pull requests

4 participants