Arduino Nano ESP32: Overview, Features and Applications
Arduino® Nano ESP32
The Arduino Nano ESP32 represents a significant evolution of the classic Arduino Nano board, upgrading it with WiFi and Bluetooth capabilities based on the ESP32-S3 chip.

Arduino with ESP32 MCU - Arduino Nano ESP32
Arduino Nano ESP32 Overview

The Arduino Nano ESP32 represents a significant evolution of the classic Arduino Nano board, upgrading it with WiFi and Bluetooth capabilities based on the ESP32-S3 chip. At its core is a dual-core 240MHz Xtensa LX7 microprocessor providing both processing power and wireless connectivity.
This compact board measures only 18 x 43 mm but packs full-featured WiFi 4 (802.11 b/g/n) and Bluetooth 5.0 LE thanks to the embedded antenna in the ESP32-S3 module. The microcontroller includes 384KB ROM and 512KB SRAM along with plentiful peripherals for system control.
Specifications of the ESP32-S3 chip
ESP32-S3 Specification | Description |
|---|---|
| CPU | Xtensa® dual-core 32-bit LX7 microprocessor; up to 240 MHz |
| RAM | 512 KB on-chip SRAM |
| Flash | Supports SPI flash, and supports extra QSPI flash/SRAM |
| Wi-Fi | 802.11 b/g/n (802.11n up to 150 Mbps); supports 20/40 MHz bandwidth in 2.4 GHz band |
| Bluetooth | Bluetooth v5.0 BR/EDR and BLE |
| Clock Speed | Up to 240 MHz |
| I/O Pins | 44 |
| ADC Channels | 20 |
| DAC Channels | 2 |
| Peripheral Interfaces | SPI, I2C, I2S, UART, ADC, DAC, PWM, LCD, Camera interface, RMII, and other interfaces |
| Operating Temperature Range | -40°C ~ +125°C |
| Power Supply | 2.3V to 3.6V |
| Package | 7 mm x 7 mm x 0.9 mm QFN package |
ESP32-S3 Datasheet: |
For interfacing, 14 GPIO pins are provided as well as 8 analog inputs, hardware SPI, I2C, UART, and more communication options. The familiar Nano board layout enables easy connection to breadboards or embedding into small spaces. USB-C handles both power supply and programming over a USB CDC serial connection.

*As the official partner of Arduino, Utmel provides you with official original Arduino products. Welcome to shop at the page dedicated to Arduino products.
Arduino Nano ESP32 Pinout

Arduino Nano ESP32 Features
Microcontroller: ESP32-S3 dual-core Xtensa LX7 running at up to 240MHz
WiFi: 802.11 b/g/n supporting up to 150 Mbps
Bluetooth: Bluetooth 5.0 LE
14 digital I/O pins, 8 analog input pins
USB-C connector for power and programming
Breadboard-friendly design
Ultra-low power modes
Arduino Nano ESP32 Alternatives
Here are some alternatives to the Arduino Nano ESP32:
NodeMCU ESP32: This is an open-source IoT platform that is programmed using Lua scripting language for quick prototyping.
ESP32-CAM: This is a small ESP32 development board with a 2 MP camera for IoT projects.
Wemos D1 R32: This development board is compatible with the Arduino Uno R3 interface, but comes with an ESP32 module for more powerful performance.
SparkFun ESP32 Thing: Designed to make ESP32 easier to use, this development board integrates ESP32 with a rich set of peripherals.
Adafruit HUZZAH32 - ESP32 Feather Board: This is Adafruit's version of the ESP32 development board and is compatible with the Feather family of peripherals, making it ideal for battery-powered IoT devices.
Arduino Nano ESP32 vs. ESP32 DevKitC
| Feature | Nano ESP32 | ESP32 DevKitC |
|---|---|---|
| Size (mm) | Width: 18, Length: 45 | Width: 27.9, Length: 54.4 |
| Microcontroller | u-blox® NORA-W106 (ESP32-S3) | ESP32-WROOM-32D |
| USB Connector | USB-C® | Micro-USB |
| Digital I/O Pins | 14 | 39 |
| Analog Input Pins | 8 | 18 |
| PWM Pins | 5 | All GPIO |
| Connectivity | Wi-Fi® u-blox® NORA-W106 (ESP32-S3), Bluetooth® u-blox® NORA-W106 (ESP32-S3) | Wi-Fi: 802.11 b/g/n, Bluetooth: v4.2 BR/EDR and BLE |
| Clock Speed | Processor up to 240 MHz | Processor up to 240 MHz |
| Memory | ROM: 384 kB, SRAM: 512 kB, External Flash: 128 Mbit (16 MB) | ROM: 384 kB, SRAM: 520 kB |
| Price | €18.00, $23.00 | $10.00, $11.00 |
Arduino Nano ESP32 Applications
Compact IoT devices and wireless sensors
Wearable electronics and small robots
Wireless home automation and controls
Battery-powered gadgets and remote sensing
Educational microcontroller projects with WiFi
Prototyping basic WiFi-connected systems
Getting Started with Arduino Nano ESP32
- Making a Time Lapse Camera using Arduino Nano ESP32
Components Needed:
Arduino Nano ESP32
Camera module - Something like an OV2640 or other mini camera module
MicroSD card module/shield
MicroSD card
Power supply - LiPo battery and charger or USB power bank
Circuit:
Connect the camera module to the Arduino using SPI or parallel bus. Verify the pinout in the camera datasheet.
Attach the microSD card module using SPI pins (D11-D13)
Power the board either using the LiPo connected to the Vin pin or a USB power bank to the USB-C port.
Software:
Install ESP32 board support in Arduino IDE
Install the Arduino SD library to communicate with the SD card
Install the Arduino FS library to save files to the SD card
Install the camera library to control the camera module (e.g. ArduCAM)
In the setup() function initialize the SD card and camera
Calculate the interval time between captures based on the total timelapse duration needed.
In the loop(), capture an image from the camera and save it to an SD card with the incremental file name
Use deep sleep between captures to conserve battery life
Calculate the total elapsed time and stop capture after the required duration
Retrieve the images/video from the SD card to the computer and compile them into a timelapse video using video editing software.

Software workflow
Additional functionality:
Add a real-time clock module to timestamp images
Use WiFi to upload images to cloud storage
Implement a web interface to configure timelapse parameters
Add a display to show system info/stats
Sample Code:
#include <WiFi.h>
#include <ESPAsyncWebServer.h>
#include <SPIFFS.h>
#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>
#include <SD.h>
#include <ArduinoJson.h>
#define CAMERA_PIN 4
#define INTERVAL_MS 5000 // Capture frame every 5 seconds
#define FILE_NAME "/image%04d.jpg" // File name format for captured frames
const char* ssid = "YourWiFiSSID";
const char* password = "YourWiFiPassword";
AsyncWebServer server(80);
Adafruit_BME280 bme;
void setup() {
Serial.begin(115200);
// Connect to Wi-Fi
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi...");
}
Serial.println("Connected to WiFi");
// Initialize SD card
if (!SD.begin()) {
Serial.println("Failed to initialize SD card");
return;
}
Serial.println("SD card initialized");
// Initialize camera module
pinMode(CAMERA_PIN, OUTPUT);
digitalWrite(CAMERA_PIN, LOW);
delay(1000);
// Initialize BME280 sensor
if (!bme.begin(0x76)) {
Serial.println("Failed to initialize BME280 sensor");
return;
}
Serial.println("BME280 sensor initialized");
// Start capturing frames periodically
setIntervalCapture();
// Start server
server.on("/", HTTP_GET, [](AsyncWebServerRequest *request){
String html = "<html><body><h1>Time-Lapse Camera</h1>";
html += "<p>Temperature: " + String(bme.readTemperature()) + " ℃</p>";
html += "<p>Humidity: " + String(bme.readHumidity()) + " %</p>";
html += "<p>Pressure: " + String(bme.readPressure() / 100.0F) + " hPa</p>";
html += "</body></html>";
request->send(200, "text/html", html);
});
server.begin();
}
void loop() {
// Handle server requests
server.handleClient();
}
void captureFrame() {
digitalWrite(CAMERA_PIN, HIGH); // Activate camera
delay(1000); // Allow time for camera to capture frame
digitalWrite(CAMERA_PIN, LOW); // Deactivate camera
}
void setIntervalCapture() {
unsigned long previousMillis = 0;
unsigned long currentMillis;
while (true) {
currentMillis = millis();
if (currentMillis - previousMillis >= INTERVAL_MS) {
previousMillis = currentMillis;
// Capture frame and save to SD card
captureFrame();
saveFrameToSDCard();
}
// Handle server requests
server.handleClient();
}
}
void saveFrameToSDCard() {
static int fileIndex = 1;
char fileName[20];
sprintf(fileName, FILE_NAME, fileIndex);
File file = SD.open(fileName, FILE_WRITE);
if (!file) {
Serial.println("Failed to open file");
return;
}
// Write captured frame to file
// Replace the following line with your camera module's code to capture the frame
file.print("Sample frame data");
file.close();
Serial.println("Frame saved to SD card: " + String(fileName));
fileIndex++;
}Resources for the Nano ESP32
| Type | Description | Link |
|---|---|---|
| Tutorial | Getting Started with Nano ESP32 | Arduino Documentation |
| Tutorial | Arduino Nano ESP32 Cheat Sheet | Arduino Documentation |
| Project | 160+ ESP32 Projects, Tutorials, and Guides with Arduino IDE | Random Nerd Tutorials |
| Project | How the New Arduino Nano ESP32 Makes IoT Projects a Breeze | MUO |
| Resource | Nano ESP32 Overview and Specifications | Arduino Documentation |
| Resource | MicroPython 101 with the Nano ESP32 | Arduino Documentation |
| Resource | Arduino Introduces the Nano ESP32, Bringing the Popular IoT Microcontroller into the Arduino Ecosystem | Benzinga |
| Resource | Nano ESP32 Official Store Page | Arduino Official Store |
Arduino Nano ESP32 Documentation
What microcontroller is used in the Nano ESP32?
It uses an ESP32-S3 dual-core Xtensa LX7 microcontroller running at 240MHz.
What is the wireless connectivity supported?
It has dual-mode WiFi 4 (802.11 b/g/n) and Bluetooth 5.0 LE.
How is the Nano ESP32 programmed?
It is programmed over USB-C using the Arduino IDE like other Arduino boards.
Does the board support Arduino IoT Cloud?
Yes, the Nano ESP32 works with Arduino IoT Cloud for easy IoT application development.
CD4071 Dual Input OR Gate IC: Datasheet, Pinout and Equivalents23 October 20216678
M16C/26A Group: Single-Chip 16-Bit CMOS Microcomputer Overview28 February 2024172
CSD18540Q5B, Pinout, Package21 March 20222159
AD202 2000V Isolation Amplifier: Datasheet, Pinout, and Performance Deep Dive03 March 2026339
MOC3041 TRIAC Driven Optocoupler: Datasheet, Application Circuit, Pinout23 October 202122336
Cypress CY8C4024LQI-S401: A Comprehensive Technical Overview29 February 2024139
TC4420CPA 6A High-Speed MOSFET Drivers: Datasheet, Pinout, and Applications07 March 20224970
AOD482:circuit, pinout and specifications11 March 2022347
Foreign Media Burst Samsung: DRAM, Foundry and Chip Defeat on All Fronts20 April 20223197
SEMI: Semiconductor Materials Market to Exceed US$70 Billion By 202327 September 20222665
Advantages of Single-Phase Liquid Immersion Cooling Technology13 November 20232873
How to Understand the Oscilloscope Bandwidth?13 December 202110849
Top 10 Technology Trends in the Global Semiconductor Industry in 202208 January 20229274
High-Capacity HDDs in the AI Era: Sourcing Massive Storage for Cold Data04 July 2026191
What is a Thyristor?11 December 202012243
The Introduction to USB Type-C Pin Signal and PCB Layout03 December 202126937
Arduino
In Stock: 58
Minimum: 1 Multiples: 1
Qty
Unit Price
Ext Price
1
$14.701473
$14.70
10
$13.869314
$138.69
100
$13.084259
$1,308.43
500
$12.343640
$6,171.82
1000
$11.644944
$11,644.94
Not the price you want? Send RFQ Now and we'll contact you ASAP.
Inquire for More Quantity


Product
Brand
Articles
Tools












