Hi all, I'm working on a project that uses an ESP32 feather as a devboard. In the process of just getting everything setup I was trying to run a simple blink sketch with some Serial prints just to check everything was working. It does not work.
The behavior is this:
I plug my esp32 into my Windows laptop (running W11). It gets recognized as COM8. I am able to upload my sketch to the board and it runs correctly. When I open the serial monitor, it seems to connect but nothing is printed.
Using a Mac laptop running IDE v1.8.16, I uploaded THE EXACT SAME sketch. It runs it correctly and on the Mac if I open the serial monitor, the output can be seen. Now where it gets strange is that if I take the board after it's been flashed by the Mac and plug it into my laptop I'm able to see the Serial monitor output under COM5 (this is plugged into the same port that was previously COM8 with the same cable). If I try to flash the board from this COM5 port, I get this error:
A fatal error occurred: Could not open COM5, the port doesn't exist
Failed uploading: uploading error: exit status 2
Hitting the reset button restarts the code and the COM port remains 5. Putting the board into bootloader mode manually by hitting Boot and Reset buttons puts the board onto COM port 8 and I'm no longer able to see the Serial monitor output, but can now upload code.
Things I've Tried:
- Installing CP210x Driver for USB UART bridge
- Restating computer
- Forcing a static COM port in device manager
- Using the Legacy IDE
- Using separate serial monitor (Putty)
Info About My Setup:
- Board: Adafruit ESP32-S3 Feather with 4MB Flash 2MB PSRAM - STEMMA QT / Qwiic
- IDE Version: 2.3.2
- Laptop OS: MS Windows 11 Home
- Updated board and SW libraries
Here's the code:
// the setup function runs once when you press reset or power the board
void setup() {
// initialize built in LED pin as an output.
pinMode(LED_BUILTIN, OUTPUT);
// initialize USB serial converter so we have a port created
Serial.begin();
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
Serial.write("LED ON");
delay(1000); // wait for a second
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
Serial.write("LED OFF");
delay(1000); // wait for a second
}
yes, I know there is no Baud rate. It defaults to 9600.
Thank you in advance for your help ![]()
@ptillisch , I've seen you solve a lot of issues like this. Please save me
I can generate logs for you if you'd like.