ESP32-S3 serial troubles

I'm sure there is something I'm not doing properly. I have an ESP32-S3 DevkitC1 (real expressif, not a knockoff) and loaded an existing project I have been using on a gen1 ESP32 via USB. I had to use the enable/boot buttons to get the first project to load, I can install new projects via RTS pin reset now, that part works great.

The issue is I wasn't greeted by the expected serial debugging information from my project.

I know my project sketch works because it's working and I can connect to it over the network and the hardware attached to the ESP is working properly.

I checked baud rate and ports etc. To eliminate all variables as there are some libraries in my project sketch, I made a very simple serial printing sketch, uploaded that and am seeing nothing on serial monitor on the USB port. This is the test sketch that fails:

void setup() {
  // put your setup code here, to run once:
  delay(500);
  Serial.begin(115200);
}

void loop() {
  // put your main code here, to run repeatedly:
  delay(500);
  Serial.println("foop");
  delay(500);
  Serial.println("woop");
}

Yes, serial monitor is set for 115200, I am using the "USB" port on the dev board. I tried the JTAG port, no luck. I even hooked up a FDDI type adapter to the RX/TX pins to see if the serial messages were being sent over that, no luck there.

I am able to upload via USB and I get the following line on boot via USB so I believe my hardware and USB setup is good:

ESP-ROM:esp32s3-20210327

I feel like I am doing something incredibly dumb or there is something I fundamentally don't understand about the newer boards.

Arduino IDE is version 1.8.19 and ESP32 board package 2.0.4, on mac OS Monterey.

Thanks in advance for any assistance.

I don't have one to test, but your code looks fine and I would also expect that to show up on the serial monitor when set to 115200 baud.

I figured it out.

There are two ports on the dev board, one is USB, the other is UART. The USB connector is wired directly to the processor for USB OTG and you can software upload over that port.

The other port is a USB to serial port and connected to UART0, which the RX and TX pins are connected to. You can get output but I have inconsistent results powering/booting when only attached to the UART port, it is much more reliable if I power from the USB port. It looks like the ESP32 was hanging on boot when powered only off the UART port...

I also noticed that if I reset the ESP via reset button after loading via uart port it will connect... I wonder if powering/flashing via that port leaves some part of the chip in an inconsistent state.

1 Like

I have the same problem with a LOLIN S3 Pro with an ESP32 S3 chip, but i don't quite understand your solution. How do i change these USB modes?

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.