NodeMCU-32S Development Board

Code name: NodeMCU_32S

NodeMCU-32S development board is based on esp32 microcontroller and uses xtensa architecture. This board has a maximum CPU frequency of 240 MHz and a flash size of 4MB.

About NodeMCU-32S



The NodeMCU-32S is a feature-rich development board based on the Espressif ESP32-WROOM-32 module. With integrated Wi-Fi 802.11 b/g/n and Bluetooth 4.2 (BR/EDR + BLE), itโ€™s ready for IoT projects that demand robust wireless connectivity. ๐Ÿ“ก

Its breadboard-friendly form factor pairs with an on-board CP2102 USB-to-UART converter, so you can plug in, program, and prototype in secondsโ€”no extra hardware required. ๐Ÿ”Œ

For convenient development, the board comes with an EN (reset) button ๐Ÿ” and a BOOT (IO0) button, making flashing firmware and entering download mode a breeze. ๐Ÿš€

A built-in PCB antenna delivers stable RF performance without the need for external antennas, keeping your setup compact. ๐Ÿ“ถ

Exposing 30+ versatile GPIOs that support ADC, DAC, PWM, IยฒC, SPI, UART, capacitive touch, and more, the NodeMCU-32S empowers you to interface with a wide range of sensors, displays, and actuators. โš™๏ธ

๐Ÿค” Curious how the NodeMCU-32S stacks up against other ESP32 boards? Dive into our detailed comparison guide to choose the best fit for your next project.

Where to Buy

NodeMCU-32S

Starting from

8$ per unit

Amazon com
Amazon.com Ships worldwide
View Price
Amazon de
Amazon.de Ships to EU
View Price
Aliexpress
AliExpress Best value
View Price

Prices are subject to change. We earn from qualifying purchases as an Amazon Associate.

Technical Specifications

๐Ÿ›ฐ๏ธ Connectivity

WiFi 802.11 b/g/n (2.4 GHz)
Bluetooth 4.2
BLE 4.2

๐Ÿง  Microcontroller

Model esp32
Clock Speed 240 MHz
Flash Size 4MB
Architecture xtensa

โœจ Features

  • 40 digital IO pins
  • 16 external interrupt pins
  • 16 analog input pins
  • 19 PWM pins

NodeMCU-32S Dimensions

Width 22.86 mm
Length 48.26 mm
Pin Gap 2.54 mm

NodeMCU-32S Pinout

The NodeMCU-32S pinout gives you nearly every feature of the ESP32-WROOM-32 module in a breadboard-friendly format. Key power railsโ€”VIN (5 V), 3V3, and multiple GND pinsโ€”let you power the board itself or feed external sensors and actuators with ease.

For serial communication the board breaks out RX0 and TX0 (UART0, connected to the on-board CP2102 for USB programming) plus an extra pair, RX2 (GPIO16) and TX2 (GPIO17), for a second hardware UART. Default IยฒC lines are SDA (GPIO21) and SCL (GPIO22), while the default VSPI port maps to MOSI (GPIO23), MISO (GPIO19), SCK (GPIO18), and CS (GPIO5). An alternate HSPI bus (GPIO12-15) is available when you need multiple SPI devices.

On the analog side, GPIO32 โ€“ GPIO39 expose ADC1 channels, and several ADC2 channels appear on GPIO0, GPIO2, GPIO4, GPIO12-15, and GPIO25-27 (ADC2 is not usable while Wi-Fi is running). Two 8-bit DAC outputs live on GPIO25 and GPIO26, perfect for audio or reference-voltage generation. Many of these pads double as capacitive-touch inputs for sleek, button-free interfaces.

Every GPIO supports PWM for LED dimming or motor control, and special-function pins such as EN (reset) and BOOT (IO0) make flashing easy. Take note of bootstrapping pins GPIO0, GPIO2, and GPIO15; keep them in the proper state (usually pulled HIGH) during reset to ensure normal startup.

With plentiful digital I/O, rich analog capabilities, and multiple high-speed buses, the NodeMCU-32S pinout delivers the versatility needed for everything from simple sensor nodes to complex connected gadgetsโ€”all while staying compact enough for quick prototyping.

โœ… Safe Pins to Use

For general GPIO usage, these are the safest and most flexible choices:

๐Ÿ”น LED_BUILTIN
๐Ÿ”น IO21
๐Ÿ”น IO22
๐Ÿ”น IO23
๐Ÿ”น IO19
๐Ÿ”น IO18
๐Ÿ”น IO32
๐Ÿ”น IO33
๐Ÿ”น IO25
๐Ÿ”น IO26
๐Ÿ”น IO27

Why Are These Pins Safe?

  • Not involved in bootstrapping โ†’ No impact on device boot mode or system startup
  • Not linked to flash memory or PSRAM โ†’ Won't interfere with storage or memory access
  • Not dedicated to USB or JTAG โ†’ Free for general use without affecting debugging
  • No special hardware connections โ†’ Freely assignable without internal conflicts

โš ๏ธ Pins to Avoid or Use with Caution

Some pins are reserved for critical functions like bootstrapping, JTAG debugging, USB communication, and flash memory operations. Misusing these pins may lead to boot failures, programming issues, USB conflicts, or disruptions in flash storage.

Critical Pin Categories:

  • ๐Ÿ› ๏ธ Strapping Pins: Control boot behavior and flash voltage selection
  • ๐Ÿ”— JTAG Debugging Pins: Required for low-level debugging
  • ๐Ÿ”Œ USB Communication Pins: Used for USB Serial/JTAG communication
  • โšก Flash Memory & SPI Pins: Connected to SPI flash memory and PSRAM
  • ๐Ÿ“ก UART Serial Communication Pins: Used for debugging and firmware uploads
PINLabelReasonFunction
IO3U0RXD (GPIO3)Used for receiving data from USB-UART (programming); also pulled HIGH at boot for console communication, so using as GPIO can disrupt uploads.๐Ÿ”Œ USB
IO1U0TXD (GPIO1)Connected to on-board USB-UART for uploading and logs; drives serial output at boot, so using as GPIO can disrupt programming or console.๐Ÿ”Œ USB
IO5GPIO5Must be HIGH during boot; if pulled LOW at reset, alters SDIO slave timing and may prevent normal boot.๐Ÿ› ๏ธ Strapping
IO36GPIO36 (SENSOR_VP)Cannot be used as output; only suitable for input (e.g., analog read).๐Ÿช› Other
IO39GPIO39 (SENSOR_VN)Cannot be used as output; only suitable for input.๐Ÿช› Other

NodeMCU-32S Pin Mappings

This development board provides 40 digital IO pins, out of which 16 can be used as external interrupt pins , 16 as analog input pins and 19 pins have Pulse-Width Modulation (PWM) .

PinFunctionESP PinInput/OutputDescription
1LED_BUILTINGPIO2outputOn-board user LED (active-LOW)
2IO3GPIO3inputUART0 RX (USB serial)
3IO1GPIO1outputUART0 TX (USB serial)
4IO21GPIO21bidirectionalIยฒC SDA
5IO22GPIO22bidirectionalIยฒC SCL
6IO5GPIO5bidirectionalVSPI CS / SS
7IO23GPIO23bidirectionalVSPI MOSI
8IO19GPIO19bidirectionalVSPI MISO
9IO18GPIO18bidirectionalVSPI SCK
10IO36GPIO36inputADC1 Channel 0 (SVP)
11IO39GPIO39inputADC1 Channel 3 (SVN)
12IO32GPIO32inputADC1 Channel 4 / Touch 9
13IO33GPIO33inputADC1 Channel 5 / Touch 8
14IO25GPIO25outputDAC1
15IO26GPIO26outputDAC2
16IO27GPIO27bidirectionalADC2 Channel 7 / Touch 7
17IO14GPIO14bidirectionalHSPI SCK / Touch 6
18IO12GPIO12bidirectionalHSPI MISO / Touch 5
19IO13GPIO13bidirectionalHSPI MOSI / Touch 4
20IO15GPIO15bidirectionalMTDO / ADC2 Channel 3
21IO4GPIO4bidirectionalTouch 0 / ADC2 Channel 0
22IO16GPIO16bidirectionalUART2 RX / CLK_OUT
23IO17GPIO17bidirectionalUART2 TX
24IO0GPIO0bidirectionalBOOT-strap / Touch 1 (keep HIGH at reset)
25IO34GPIO34inputADC1 Channel 6
26IO35GPIO35inputADC1 Channel 7
Function Pin Function
ESP Pin Pin on ESP32
I/O Input/Output Pin
Description Pin Description

NodeMCU-32S Pins Mapping Arduino IDE

Below you can find the NodeMCU-32S pinout. This development board provides 40 digital IO pins, out of which 16 can be used as external interrupt pins, 16 as analog input pins and 19 pins have Pulse-Width Modulation (PWM).

PinAnalogTouchPWMOther
0A11T1KEY_BUILTIN
1PWMTX
2A12T2PWMLED_BUILTIN
3PWMRX
4A10T0PWM
5PWMSS
12A15T5PWM
13A14T4PWM
14A16T6PWM
15A13T3PWM
18PWMSCK
19PWMMISO
21PWMSDA
22PWMSCL
23PWMMOSI
25A18PWMDAC1
26A19PWMDAC2
27A17T7PWM
32A4T9PWM
33A5T8PWM
34A6
35A7
36A0
39A3
Analog Analog input pins
Touch Touch pins
Function Function pins
RX / TX Receive/Transmit
LED_BUILTIN Built-in LED
PWM Pulse-Width Modulation

Default Tools

Bootloader toolesptool_py
Uploader toolesptool_py
Network uploader toolesp_ota
Bootloader address0x1000
Flash modedio
Boot modedio
Maximum upload size
1280 Kb
(1310720 B)
Maximum data size
320 Kb
(327680 B)

The NodeMCU-32S development board by default uses esptool_py uploader tool, esp_ota network uploader tool for Over-the-air (OTA) uploads and esptool_py bootloader tool. The bootloader starts at address "0x1000". Flash mode and boot mode for NodeMCU-32S development board by default is dio and dio respectively.