[SOLVED] Arduino Nano ESP32 upload issues

Hi all,
I need help to clarify how I can upload a firmware to Arduino Nano ESP32 (Now I am using Windows 11 but I tested it on Linux as well).

TLDR
Using another board (not Arduino brand) I can upload my firmware and start the MCU without pressing reset buttons or re-plugging the board to switch modes from Arduino IDE 2.x
Using Arduino Nano ESP32 the upload process and switching to running mode is very complicated.

TTGO ESP32 T-Display board
Normally my workflow is the following:

  • connecting the board (it starts running)
  • changing the code
  • building it
  • uploading it
  • automatically it starts running at the end of the uploading
  • serial port shows the debug messages
    I don't have to press any button and re-connect the board, that's why I have chosen the Arduino system.

Recently I bought an Arduino Nano ESP32 for an ArduCam Mini project and this board has different behaviour that I had experienced before with different boards.

Here is my experience after connection to laptop:
Arduino Nano ESP32

  • connecting to laptop, board appears on COM 5, green light can be seen, Serial Monitor works
  • changing the code
  • building it
  • uploading is not working because of this error message:

No DFU capable USB device available
Failed uploading: uploading error: exit status 74

  • I have to press the reset button twice quickly
  • blinking RGB LED with green colour
  • board appears on COM6
  • I can upload the firmware
  • Serial monitor is not working, it seems that this mode is not compatible with Serial Monitor (RGB is BLINKING, no serial port)
    Reset button doesn't take the board to normal mode (first mode)
  • I have to unplug the board and plug it again
  • Now Serial Monitor works again

I really hope that it can make the upload much more easily, I don't want to connect and disconnect many times when I change the code.

I use Arduino IDE 2.3.2, I installed Arduino board and I selected Arduino Nano ESP32

Here is the test code:

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

void loop() {
  delay(1000);
  Serial.println("Hello");
}

I appreciate any suggestion how to fix the upload procedure.

Well, after two weeks struggling, I solved it: I had to burn the bootloader!
Now it operates as other boards, no reset button or re-connecting is needed.

1 Like

BUT, is the board still usable as a NANO AND as an ESP32-S3. I suspect not. Did you ever see the following
https://docs.arduino.cc/tutorials/nano-esp32/cheat-sheet/

It is a ESP32-S3 board with some extra: e.g. HW debugger.
The bootloader was missing or it was outdated and I fixed it.
Sure, I checked the cheat sheet, that is very useful.