Issue getting Serial Monitor to print on ESP32-S3

This is my code right now;

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

void loop() {
  Serial.println("Hello, world!");
}

I am running a Linux Mint system, and using the official arduino cord so its not that. I have the IDE set to 9600 baud. the board I have selected is the ESP32S3 Dev Module, because thats the only one that would allow me to upload code. Despite this the Serial monitor isn't outputting anything. This is my second arduino since I also own a Uno, and I haven't had any issues until I used this one for the first time. Any help would be appreciated.

What is your question, and what is an official 'arduino cord' I have never heard of such a thing.
If you can only upload to an ESP32S3, you have bigger problems. Have you set the permisions that Linux needs for the IDE etc to work? If not try searching this forum, it's a common problem.

Perhaps a read through some of the following will help:

USB CDC and DFU Flashing -- Arduino ESP32 latest documentation

I need help getting the serial monitor to print stuff. Many people who had similar issues fixed it by switching to a cord that allowed data transfer, do I was just saying that that solution won't work for me since I am using the official USB to USB-C cord that arduino sells. I can connect to other boards, I was just confused earlier about what board to select in the board manager (many are called ESP32S3), and I eventually settled on the "ESP32S3 Dev Module" because that is the only one that allowed me to upload code to my board. for the permissions are you talking about making the IDE executable because I did that so it would open, or are you talking about allowing the IDE to read and write to my usb port, because i have done that too?

Ok, sounds good now that I know you call a cable a cord and that you picked the dev module. I think you need to study post #3.

Thank you so much! That totally fixed my problem for one upload, but the very next one returned this error message: "A fatal error occurred: Unable to verify flash chip connection (No serial data received.)."

Are you getting the serial message that the chip is ready to accept code ( can’t remember the actual wording ), then you close the serial monitor and upload .
Worth also turning an led on/off in your code to help identify the issue

Hi @robot12353695369.

This error might be caused by having the wrong port selected from the Tools > Port menu in Arduino IDE.

Please perform this experiment to verify that the port you have selected is your Arduino board:

  1. Connect the Arduino board to your computer with a USB cable (if it is not already).
  2. Select Tools > Port from the Arduino IDE menus. If one of the ports in the menu is labeled with the board name (e.g., "COM42 (Arduino Uno)"), that is the port of your Arduino board.

If you saw the port labeled with something related to ESP32 (e.g., "(ESP32 Family Device)") in the Tools > Port menu, select that port and try uploading again.

If this doesn't solve the problem, please reply here on this forum thread with the answers to the following question:

  • While following those instructions, did you see a port in the Tools > Port menu that was labeled with the board name?

I had the correct port selected. When I went to Tools > Port it had the name of the port and "(ESP32 Family Device)". This was the port I had already selected. Some more info on my issue. I previously could get code uploaded to my arduino, but the serial monitor wouldn't print anything, and then setting "USB CDC on Boot" to enabled allowed me to get an output. I saw this worked when I uploaded the code:

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

void loop() {
  Serial.println("Hello, world!");
}

and got the expected result. Immediately after that I uploaded code for the project I am doing to find bluetooth devices near by:

#include <NimBLEDevice.h>

void setup() {
    Serial.begin(115200);
    NimBLEDevice::init("");
    NimBLEScan* pBLEScan = NimBLEDevice::getScan();
    pBLEScan->setActiveScan(true);
    pBLEScan->start(5, false);  // Scan for 5 seconds
}

void loop() {
    NimBLEScan* pBLEScan = NimBLEDevice::getScan();
    NimBLEScanResults results = pBLEScan->getResults();
    Serial.println("Devices found:");
    for (int i = 0; i < results.getCount(); i++) {
        NimBLEAdvertisedDevice device = results.getDevice(i);
        Serial.print("Device ");
        Serial.print(i);
        Serial.print(": ");
        Serial.println(device.toString().c_str());
    }
    delay(10000);  // Wait a bit before rescanning
}

and now that upload and all following uploads have returned this output:

Sketch uses 297681 bytes (22%) of program storage space. Maximum is 1310720 bytes.
Global variables use 18520 bytes (5%) of dynamic memory, leaving 309160 bytes for local variables. Maximum is 327680 bytes.
esptool.py v4.6
Serial port /dev/ttyACM0
Connecting...
Chip is ESP32-S3 (revision v0.2)
Features: WiFi, BLE
Crystal is 40MHz
MAC: 74:4d:bd:a0:94:34
Uploading stub...
Running stub...
Stub running...

A fatal error occurred: Unable to verify flash chip connection (No serial data received.).

Thanks for the confirmation. Since we have now eliminated an incorrect port selection as the cause, we can move on to try something else.

Please try this:

  1. Select Sketch > Upload from the Arduino IDE menus.
  2. Watch the black output panel at the bottom of the Arduino IDE window until you see this text printed:
    Connecting...
    
  3. Press and hold the button on your ESP32 board.
    if your board has multiple buttons, you might have to do some trial and error to determine which is the one you need to press.
  4. Wait about one second.
  5. Release the button.

Hopefully the upload will now finish successfully.

When I do that I get this output the second I press the button (my model only has one button):

Sketch uses 297841 bytes (22%) of program storage space. Maximum is 1310720 bytes.
Global variables use 18520 bytes (5%) of dynamic memory, leaving 309160 bytes for local variables. Maximum is 327680 bytes.
esptool.py v4.6
Serial port /dev/ttyACM0
Connecting....
Chip is ESP32-S3 (revision v0.2)
Features: WiFi, BLE
Crystal is 40MHz
MAC: 74:4d:bd:a0:94:34
Uploading stub...
Running stub...
Stub running...

A serial exception error occurred: Could not configure port: (5, 'Input/output error')
Note: This error originates from pySerial. It is likely not a problem with esptool, but with the hardware connection or drivers.
For troubleshooting steps visit: Troubleshooting - ESP32 - — esptool.py latest documentation

The link says that insufficient power might be the issue, so I connected the VIN to a 9V battery, but it still wouldn't upload.

You should read further down the page. You only tried one of the remediation steps on the page and not one specified for the error you're seeing.

I checked the power because the issue I am having is that writing to the flash is failing (A fatal error occurred: Unable to verify flash chip connection (No serial data received.)). No other common issues seemed to apply to my situation.

This section seemed relevant to me based on you message in post #11:

A serial exception error occurred
esptool.py uses the pySerial Python module for accessing the serial port. If pySerial cannot operate normally, it raises an error and terminates.

An example of a pySerial error:

A serial exception error occurred: read failed: [Errno 6] Device not configured
Errors originating from pySerial are, therefore, not a problem with esptool.py, but are usually caused by a problem with hardware or drivers.

Some of the most common pySerial error causes are:

The port is being already used by other software.

The port doesn’t exist.

The device gets unexpectedly disconnected.

The necessary serial port drivers are not installed or are faulty.

You don’t have permission to access the port.

OK, we proceed to try something else:

The "Unable to verify flash chip connection" error might be caused by the communication lines between the computer and the microcontroller on the board not being able to support the rather high default upload speed. If so, the problem should be fixed by reducing the upload speed, which is configurable via a convenient menu.

Select Tools > Upload Speed > 115200 from the Arduino IDE menus and then try uploading the sketch again, just as you did before. Hopefully this time the upload will be successful. If not, add a reply here on the forum thread to let us know and we'll investigate further.

Optimizing Upload Speed

If the sketch upload no longer failed after reducing the upload speed, you will have determined that the board is not capable of managing uploads at the default 921600 baud, but is capable of them at 115200 baud.

Especially with more complex sketches, the upload will take a significant amount of time at 115200 baud. It is likely that the board is capable of managing uploads at some speed higher than 115200 baud, so it is worth doing some experimentation to determine the maximum speed at which you can reliably upload to the board. You can do this by repeating the "Configure Upload Speed" procedure above, but selecting different speeds each time. Then attempting an upload to see if the new speed is appropriate.

The upload speed for my arduino was already set to 115200. I tried uploading again, just to be sure, but I got the same result.
I would just like to thank everyone for helping me out with this. I can't imagine how difficult it is to troubleshoot an issue you can't directly interact with. I just wanted to let you know I appreciate it.

I am wondering if I should return it and get another. Do you think this would fix it, or is it probably my computer and not the board?

I just bought a second board, but I am having the exact same issue, so I think it is my computer.