Arduino Nano ESP32 USB problems

I just recently started playing with an alarm clock, based on my Arduino Nano ESP32. It was working great (except for light sleep...grumble grumble) and I thought I'd see how it worked if it wasn't plugged into my laptop. Instead, I plugged it into a USB-C charging station I have that a few other things are plugged into.

I may have heard a tiny popping sound, or maybe that was just in my head, but it didn't work. The board booted (fun rainbow LED at startup), but the display (Adafruit HT16K33 clone) was off. I tried another USB-C charging block, and bingo! Clock is working.

I wanted to continue development so I plugged it back into my laptop, and I get a "USB device not recognized" in Windows 11. Hmmm. Checked device manager, and I see an "Unknown USB Device (Device Descriptor Request Failed)" that lists Code 43 as the error. Lots of googling leads me to believe that the USB Serial adapter on the board (?) is dead, but I don't understand how just plugging into a working USB-C charging station would kill it. I plugged it back into the charging station (damage already done) and tested the voltage on VBUS and it was 9.25V. Isn't that voltage regulator there for a reason? I took a closer look at the port on the charging station that I used and it is a Power Deliver (PD) port, but I thought there would be some negotiation with the Nano to set the voltage. I guess not....

No matter what I try (uninstall Arduino IDE, remove drivers, reboot, incantations, etc), I can't get it to connect, so I'm hoping I can get an external FTDI USB serial adapter to salvage this thing. But can someone help me understand what is going on? And can I switch to an external serial adapter to program this, or is it basically useless now...?

Sounds like PD negotiated a voltage higher than 5V and destroyed the USB circuit. I would investigate that first charger and make sure it isn't about to damage more devices.

If you had something else connected, it's possible that "something" negotiated that 9V. Another possibility is that the PD is failing (be careful with other devices!).
Since the USB port doesn't have a voltage regulator, you fed 9V to the board. You're lucky that only the serial chip was ruined.

Since you've verified that the micro works, yes, a USB to TTL adapter is a possible solution.

Regards

Hi @spamacon

You probably found information on the classic Nano. It is impossible for the USB Serial adapter on the Nano ESP32 to be dead because, unlike the classic Nano, the Nano ESP32 doesn't have a USB Serial adapter. The reason it doesn't have one is that the primary ESP32-S3 microcontroller on the board has native USB capabilities so it can be connected directly to the computer via the USB interface.

This means that the "Unknown USB Device (Device Descriptor Request Failed)" is either indicating a problem with the ESP32-S3, or with the sketch program running on that chip.

To check whether the problem is only with the sketch program, please try this experiment and then report back with the results:

  1. Connect the Nano ESP32 board to your computer with the USB cable.
  2. Press and release the button on the board marked "RST".
  3. Wait for the RGB LED near the "RST" button to turn on.
    It does this almost immediately, but you do need to wait for it.
  4. While the RGB LED is still on (it only stays on for a second so you need to be somewhat quick), press and release the "RST" button again.
    The green LED of the RGB LED should now start pulsing. If not, repeat the process in case you didn't get the timing quite right.
  5. If it is already open, close the Tools > Port menu in Arduino IDE.
  6. Open the Tools > Port menu in Arduino IDE.

Now please reply here on the forum thread with the answers to the following questions:

  • Do you now see the green LED pulsing?
  • Do you see a port for the Nano ESP32 board in the Tools > Port menu?

Assuming the ESP32-S3 is functional, it looks like it is possible:

https://docs.espressif.com/projects/esptool/en/latest/esp32s3/advanced-topics/serial-protocol.html

https://docs.espressif.com/projects/esptool/en/latest/esp32s3/esptool/serial-connection.html

I appreciate everyone's helpful comments. Ultimately, something on the board is damaged as I can't connect it directly to the USB port on my laptop, Windows just doesn't see anything has been connected. Instead, I got a cheap FTDI clone from Amazon that I was able to use to program the board. The Nano ESP32 is low power enough that the FTDI board was able to power it, so I wired it on a breadboard like this:

  • Power jumper on the 3.3V side (probably 5V would be fine but this works so I'm sticking with it)
  • RX connected to TX on Nano ESP32
  • TX connected to RX on Nano ESP32
  • GND to GND
  • VCC (3.3V) to VIN on Nano ESP32

I added a little momentary switch on the breadboard to connect B0 to GND on the Nano ESP32, so I have to: plug in the FTDI board, connect the USB cable, hold the B0 button, press the Reset button on Nano, then release the B0 button (which puts the Nano into bootloader mode). Then I was able to use the Arduino IDE to "Upload Using Programmer", making sure "esptool" is the selected programmer. Upload the program, wait for the IDE to state that it is done uploading and performing a hard reset, unplug the FTDI board and then power the Nano from its USB port.

Hopefully this might help someone else, and yes, I've stopped trying to use that USB charging station to power my Arduinos, but other devices plugged into it seem fine, so I'm not sure what happened initially....

1 Like

A post was split to a new topic: IDE says the the com port does not exist when uploading to ESP32