

The NMCU-ESP32, manufactured by na ich, is a powerful microcontroller unit (MCU) designed for Internet of Things (IoT) applications. It integrates both Wi-Fi and Bluetooth capabilities, making it a versatile choice for connected devices. With its dual-core processor, extensive GPIO pins, and support for multiple communication protocols, the NMCU-ESP32 is ideal for projects requiring wireless communication, real-time processing, and efficient power management.








The NMCU-ESP32 offers robust performance and flexibility. Below are its key technical details:
| Parameter | Specification |
|---|---|
| Processor | Dual-core Xtensa® 32-bit LX6 CPU |
| Clock Speed | Up to 240 MHz |
| Flash Memory | 4 MB (varies by model) |
| SRAM | 520 KB |
| Wi-Fi | 802.11 b/g/n (2.4 GHz) |
| Bluetooth | v4.2 BR/EDR and BLE |
| Operating Voltage | 3.3 V |
| GPIO Pins | 34 |
| Communication Protocols | UART, SPI, I2C, I2S, CAN, PWM |
| ADC Channels | 18 (12-bit resolution) |
| DAC Channels | 2 |
| Power Consumption | Ultra-low power modes available |
| Operating Temperature | -40°C to 85°C |
The NMCU-ESP32 has a total of 38 pins, with 34 GPIO pins that can be configured for various functions. Below is a summary of the pin configuration:
| Pin Number | Pin Name | Description |
|---|---|---|
| 1 | EN | Enable pin (active high) |
| 2 | IO0 | GPIO0, used for boot mode selection |
| 3 | IO1 (TX0) | GPIO1, UART0 TX |
| 4 | IO3 (RX0) | GPIO3, UART0 RX |
| 5 | IO4 | GPIO4, PWM, ADC |
| 6 | IO5 | GPIO5, PWM, ADC |
| ... | ... | ... (Refer to the full datasheet) |
| 37 | 3V3 | 3.3V power supply |
| 38 | GND | Ground |
Note: Some GPIO pins have specific functions or limitations. Refer to the full datasheet for detailed pin mappings.
The NMCU-ESP32 is easy to integrate into a variety of projects. Below are the steps and best practices for using it effectively.
3V3 pin. Avoid exceeding the voltage limit to prevent damage.Below is an example of how to use the NMCU-ESP32 with the Arduino IDE to connect to a Wi-Fi network:
#include <WiFi.h> // Include the Wi-Fi library
// Replace with your network credentials
const char* ssid = "Your_SSID";
const char* password = "Your_PASSWORD";
void setup() {
Serial.begin(115200); // Initialize serial communication
delay(1000); // Wait for the serial monitor to initialize
Serial.println("Connecting to Wi-Fi...");
WiFi.begin(ssid, password); // Start Wi-Fi connection
// Wait until the ESP32 connects to Wi-Fi
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("\nConnected to Wi-Fi!");
Serial.print("IP Address: ");
Serial.println(WiFi.localIP()); // Print the assigned IP address
}
void loop() {
// Add your main code here
}
Note: Replace
Your_SSIDandYour_PASSWORDwith your Wi-Fi network credentials.
Issue: The NMCU-ESP32 does not connect to Wi-Fi.
Issue: The board is not detected by the computer.
Issue: GPIO pins are not functioning as expected.
Issue: The ESP32 resets unexpectedly.
Q: Can the NMCU-ESP32 be powered via USB?
A: Yes, the board can be powered via the USB port, which provides 5V. The onboard regulator converts it to 3.3V.
Q: How do I update the firmware?
A: Use the ESP-IDF or Arduino IDE to upload new firmware. Ensure the board is in boot mode during the upload process.
Q: Can I use the NMCU-ESP32 for Bluetooth audio applications?
A: Yes, the ESP32 supports Bluetooth audio via the I2S interface and A2DP profile.
By following this documentation, you can effectively utilize the NMCU-ESP32 for a wide range of IoT and embedded applications.