Arduino Nano ESP32 Survival Guide

I recently acquired an Arduino Nano ESP32 thinking it supports both Classic Bluetooth (BT - BR/EDR) and Bluetooth Low Energy (BLE) which would be a step up from Arduino Nano BLE. However it turns out the ESP32-S3 SoC that board is based on only does BLE after all. I've had some experience dealing with Arduino in the past but I'm completely new to the world of ESP32. Here are notes about my experience using that board both with the Arduino stack and the ESP-IDF stack.

Basic ESP-IDF setup

I did setup my ESP-IDF environment through Visual Studio Code extension installer. You can then create your first ESP-IDF project and make sure you add a dependency to that Arduino board base port. Note that this board is based on an ESP32-S3 chip.

ESP-IDF flash errors

Having my board running the most basic Arduino Blink example I could not flash it from Visual Studio ESP-IDF Terminal.
Running -p COM3 flash monitor would result in the following error message:
Flash error:
A serial exception error occurred: Cannot configure port, something went wrong. Original message: PermissionError(13, 'A device attached to the system is not functioning.', None, 31)

To get it working I had to reset the bootloader run the above flash command with the proper COM port, as shown in the Arduino IDE, and hit the board's reset button again as soon as the terminal shows waiting for download.

You will need to reset the bootloader again if you want to switch back to the Arduino stack.
Last edited: