Author Topic: Serial Monitor Not Outputting with ESP32-S3 (PlatformIO)  (Read 1511 times)

0 Members and 1 Guest are viewing this topic.

Offline anthony_tech15Topic starter

  • Contributor
  • Posts: 13
  • Country: us
Serial Monitor Not Outputting with ESP32-S3 (PlatformIO)
« on: January 30, 2026, 04:00:49 am »
Hello everyone. I'm trying to upload code to my custom PCB equipped with an ESP32-S3 chip. I am using an Adafruit CP2102N to upload the code. It is uploading perfectly, but when I open the serial monitor, it just quits. It does not print "boot okay" or go through the setup functions like it should.

I'm using the Arduino framework in PlatformIO coding in C++. The monitor speed is 115200. I checked the wiring a million times. I have gnd to gnd, 3v3 to 3v3, PCB RX to TXD, PCB TX to RXD, PCB EN to RTS, PCB gpio0 to DTR.

If anyone has any tips or has experienced this before, any help is appreciated. Thank you!

(If any further information about my code or hardware is needed to help, please let me know.)
« Last Edit: January 30, 2026, 04:24:57 am by anthony_tech15 »
 

Offline eleguy

  • Regular Contributor
  • *
  • Posts: 158
  • Country: fi
Re: Serial Monitor Not Outputting with ESP32-S3 (PlatformIO)
« Reply #1 on: January 30, 2026, 09:56:45 am »
I would first make sure (with multimeter for example) that GPIO0 is really HIGH as otherwise system won't try to boot. Some ESP32's are "boot sensitive" to some other strapping pins as well. Next I would check if debug messages are enabled (GPIO46).
« Last Edit: January 30, 2026, 10:00:09 am by eleguy »
 
The following users thanked this post: tooki

Offline tooki

  • Super Contributor
  • ***
  • Posts: 15910
  • Country: ch
Re: Serial Monitor Not Outputting with ESP32-S3 (PlatformIO)
« Reply #2 on: January 30, 2026, 02:26:29 pm »
Could you share the PCB schematic as well as the contents of your PlatformIO project configuration file (platformio.ini)?
 

Offline anthony_tech15Topic starter

  • Contributor
  • Posts: 13
  • Country: us
Re: Serial Monitor Not Outputting with ESP32-S3 (PlatformIO)
« Reply #3 on: January 30, 2026, 02:55:56 pm »
Of course

In the schematic, J2 is the test points which I am using to flash the code.

I also attached my CP2102N corresponding J2 pins.

Thank you
 

Offline tooki

  • Super Contributor
  • ***
  • Posts: 15910
  • Country: ch
Re: Serial Monitor Not Outputting with ESP32-S3 (PlatformIO)
« Reply #4 on: January 30, 2026, 07:35:29 pm »
Of course

In the schematic, J2 is the test points which I am using to flash the code.

I also attached my CP2102N corresponding J2 pins.

Thank you
Thanks for the quick reply. The schematic is incomplete: what is the part number of the ESP32-S3 module? (It looks like probably a WROOM, but it’s best to be specific.)

Moreover, though, there’s a bit of basics missing, like how EN is floating. The EN pin must not be left floating, according to the datasheet. (I would not count on RTS to keep it pulled high.) In practice, it’s good to have a capacitor from EN to ground to give a clean power-on reset once power has stabilized. In older ESP32 models, it actually helped to have a substantially larger cap here than specified in the datasheet/dev board.

I’ve designed a handful of my own ESP32 boards, and IMHO it’s a wise starting point to start with the schematic of an existing Espressif development board (like the classic DEVKIT-C boards) and then add and subtract from that. Those show, for example, the auto-program logic (which isn’t just RTS to EN and IO0 to DTR).
 

Offline anthony_tech15Topic starter

  • Contributor
  • Posts: 13
  • Country: us
Re: Serial Monitor Not Outputting with ESP32-S3 (PlatformIO)
« Reply #5 on: January 30, 2026, 08:22:28 pm »
Thank you for the quick reply.

I apologize for the missing ESP32-S3 module part number. It’s an ESP32-S3-WROOM-1.

What you pointed out makes a lot of sense. I currently don’t have a pull-up or capacitor on EN, so it may be floating and causing inconsistent boot/reset behavior. Unfortunately, the PCBs have already been fabricated, so before updating the design for the next revision, I’ll try adding a temporary EN pull-up + capacitor using a breadboard/jig to confirm that it stabilizes boot and uploading. I’ll also reference an Espressif DevKit schematic for the next revision.

One last question: for the next revision, should the EN pull-up and EN capacitor (and IO0 pull-up / BOOT+RESET buttons) be placed on the PCB for the final product, or can those be kept external and only used during flashing?

Thanks again
 

Offline tooki

  • Super Contributor
  • ***
  • Posts: 15910
  • Country: ch
Re: Serial Monitor Not Outputting with ESP32-S3 (PlatformIO)
« Reply #6 on: January 30, 2026, 08:31:26 pm »
The pull-up and cap are required for reliable everyday operation, so they must be on the final PCB. The boot and reset buttons may be on the PCB, or on the programmer.

Bodging the cap and pull-up resistor onto the board will be just fine for determining whether that is all that is missing. Since EN isn’t some fast signal, it isn’t important that they be super close to the -S3 chip. Bodging them onto the programming connector, for example, should be fine.


Something to consider for your next version: JTAG for debugging. On the -S3, those are pins IO39-IO42. With that, you can do step-by-step debugging using the official ESP32 programmer, ESP-PROG, which is very inexpensive, around $11. (They just released a new version, ESP-PROG-2, but I haven’t tested it yet so I can’t say whether it works with PlatformIO, in case you’re not using ESP-IDF.)

The ESP-PROG boards use an FTDI chip to do both JTAG debugging and serial programming, and include boot and reset buttons. On my own ESP32 boards, I now use the miniature 1.27mm-pitch connectors of the ESP-PROG boards, so I can program them with that.
« Last Edit: February 05, 2026, 04:39:58 pm by tooki »
 
The following users thanked this post: thm_w, xvr

Offline ozkarah

  • Regular Contributor
  • *
  • Posts: 125
  • Country: tr
Re: Serial Monitor Not Outputting with ESP32-S3 (PlatformIO)
« Reply #7 on: February 05, 2026, 02:53:48 pm »
Check CDC on Boot parameter.
It should be 0 when you use UART through RX/TX pins; 1 if you use USB pins.

build_flags =
   -D ARDUINO_USB_CDC_ON_BOOT=0

 
 
The following users thanked this post: negativ3


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf