Skip to content

ESP32 C3 Supermini only boots when USB is connected and Serial is used. #9545

Closed
@satbeginner

Description

@satbeginner

Board

ESP32 C3 Supermini

Device Description

ESP32C3 Dev Module

Hardware Configuration

No pins connected, just the build-in LED is used.

Version

latest master (checkout manually)

IDE Name

Arduino IDE

Operating System

Windows-10

Flash frequency

80MHz

PSRAM enabled

yes

Upload speed

115200

Description

Hi all, I was used that when I use a Serial.begin(115200) in Setup() and I have USB CDC on Boot enabled I can see any Serial.print messages in the Serial Monitor of the IDE.
And yes, that works.
However, like since one week or so, when I flash the code that still works, but now the ESP32C3 no longer boots when the board is NOT connected to a usb port of my PC.
Even with the IDE not started it will not boot on pressing reset or at power on.
But, as soon as I start the IDE or open the serial port (COM12 in my case) eg. by using Putty on that serial port, at that moment YES, the board boots and will start to output the Serial.print messages.

I was used that a board would run anyway, even with no serial port connected.
If I flash with USB CDC on boot Disabled, it won't run either.

I can make it run only when I remove all Serial.xxxx statements from my code before flashing??

I have the feeling this started about a week ago, because I had code running that I flashed a week ago that was running fine when using an external 5V supply. (Yes, I checked the voltages)

I changed some small stuff in the code and flashed again this week, and now it won't boot anymore, only when connected to either the IDE or Putty using the proper COM-port, or commenting out ALL Serial.xxxx statements?
When I use Putty to see the output of the Serial.xxx statements the ESP32 stops working when I disconnect Putty...

Is this because the ESP32C3 always expects a serial-port active when declared as Serial.begin(115200)??

Is there a way of keeping the Serial.xxxx statements in there but setting the serial port to ignore when not there?

I am stumped, but it does reproduce 100%.

Un saludo,

Leo

Sketch

void setup() {
  // initialize digital pin LED_BUILTIN as an output.
  pinMode(8, OUTPUT);
  Serial.begin(115200);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(8, HIGH);  // turn the LED on (HIGH is the voltage level)
  delay(1000);                      // wait for a second
  digitalWrite(8, LOW);   // turn the LED off by making the voltage LOW
  delay(1000);                      // wait for a second
  Serial.println("ESP32 is running");

Debug Message

15:57:39.843 -> ESP32 is running
15:57:41.808 -> ESP32 is running
15:57:43.797 -> ESP32 is running
15:57:45.847 -> ESP32 is running
15:57:47.809 -> ESP32 is running
15:57:49.834 -> ESP32 is running
15:57:51.869 -> ESP32 is running
15:57:53.855 -> ESP32 is running
15:57:55.883 -> ESP32 is running

Other Steps to Reproduce

Flased without any Serial.xxxxx statements it will boot and run.
Also when flashed with the Serial- statements connected to PC, but with Putty active instead of the Arduino IDE, it will boot and run too.

I have checked existing issues, online documentation and the Troubleshooting Guide

  • I confirm I have checked existing issues, online documentation and Troubleshooting guide.

Metadata

Metadata

Assignees

Type

No type

Projects

Status

Done

Relationships

None yet

Development

No branches or pull requests

Issue actions