I use ESP32-S3, but Arduino IDE serial monitor doesn't output

I use ESP32-S3.
After compiling and uploading the code below, nothing will be printed on the IDE serial monitor.
The speed of the IDE serial monitor is also set to 9600bps.

void setup() {
Serial.begin(9600);
}

void loop() {
Serial.println("Hello");
delay(1000);
}

스냅1

1 Like

Hi @greatcrown. If you don't have it already, try selecting Tools > USB CDC On Boot > Enabled from the Arduino IDE menus and then upload the sketch to your ESP32-S3 board again.

After doing that, does the serial communication work as expected?

More information on the subject here:

https://docs.espressif.com/projects/arduino-esp32/en/latest/tutorials/cdc_dfu_flash.html#usb-cdc

1 Like

"Tools > USB CDC On Boot > Enabled" is already applied.
But it did not work.

Do you have 2 USB connectors on your board? The one I have has 2 connectors and the serial monitor only works with the one that is connected to the USB-serial converter chip.

Kindly go through it and edit you post accordingly

1 Like

I posted a picture of my board. It has 2 USB connectors.

It appears that the one on the left is connected to the USB-serial chip.

I resolved.

USB CDC On Boot : Disabled

I guess you must have connected your board to the computer via the "UART" USB socket that is labeled "UART" on the board silkscreen:

When you have Tools > USB CDC On Boot > Disabled selected from the Arduino IDE menus, calling Serial.println etc. in your sketch will cause the serial communication to be done via that socket's serial port.

When you have Tools > USB CDC On Boot > Enabled selected from the Arduino IDE menus, serial communication will instead be done via the serial port of the USB socket labeled "USB":

On boards that only have one USB socket, Tools > USB CDC On Boot > Enabled should be used to enable serial communication via that USB socket's port.

2 Likes

Hello,

that's it, using an ESP32-S3-MATRIX from WaveShare, was struggling to read serial output, reading kilometer long topics to finally get the right answer.

Perhaps a better naming would help instead of just "Disabled" and "Enabled". Something like "UART port (2 ports board)" and "USB port (1 or 2 ports board)".

After all Arduino is supposed to be accessible to the non tech savvy people, so make it understandable.

Also setting "Core debug level" to something else than "None" also helped, it seems.

Regards.

You can talk to Espressif :wink: It's their board package / platform that you're using and that contains that setting.

Ok, it's just that the Arduino ecosystem is a "simplified" IDE using kinda skeuomorphism ("sketch", ...) so perhaps people should also follow the guideline and use "simplified" idioms instead to make things uselessly complicated.