Nodemcu ESP8266 Pinout, Features, and specifications
Nodemcu ESP8266 Description:
Nodemcu ESP8266 Pinout, Features, and specifications– in this basic getting started tutorial you will learn the very basic things about the NodeMCU ESP8266 Wifi Module.
NodeMCU is an open-source firmware for which open-source prototyping board designs are available. The name “NodeMCU” combines “node” and “MCU” (micro-controller unit). The term “NodeMCU” strictly speaking refers to the firmware rather than the associated development kits. Both the firmware and prototyping board designs are open source. Nodemcu ESP8266 and Nodemcu ESP32 are becoming very popular and are almost used in more then 50% IoT based projects today.
The firmware uses the Lua scripting language. The firmware is based on the eLua project and built on the Espressif Non-OS SDK for ESP8266. It uses many open source projects, such as lua-cjson and SPIFFS. Due to resource constraints, users need to select the modules relevant for their project and build a firmware tailored to their needs. Support for the 32-bit ESP32 has also been implemented.
The prototyping hardware typically used is a circuit board functioning as a dual in-line package (DIP) which integrates a USB controller with a smaller surface-mounted board containing the MCU and antenna. The choice of the DIP format allows for easy prototyping on breadboards. The design was initially was based on the ESP-12 module of the ESP8266, which is a Wi-Fi SoC integrated with a Tensilica Xtensa LX106 core, widely used in IoT applications.
The components and tools used in this tutorial can be purchased from Amazon, the components Purchase links are given below:
Other Tools and Components:
Super Starter kit for Beginners
PCB small portable drill machines
*Please Note: These are affiliate links. I may make a commission if you buy the components through these links. I would appreciate your support in this way!
About the Nodemcu ESP8266 Pinout:
NodeMCU ESP8266 Wifi Module is an open-source Lua based firmware and development board specially targeted for IoT based applications. It includes firmware that runs on the ESP8266 Wi-Fi SoC from Espressif Systems, and hardware which is based on the ESP-12 module.
Nodemcu ESP8266 Specifications & Features
Microcontroller: Tensilica 32-bit RISC CPU Xtensa LX106
Operating Voltage: 3.3V
Input Voltage: 7-12V
Digital I/O Pins (DIO): 16
Analog Input Pins (ADC): 1
UARTs: 1
SPIs: 1
I2Cs: 1
Flash Memory: 4 MB
SRAM: 64 KB
Clock Speed: 80 MHz
USB-TTL based on CP2102 is included onboard, Enabling Plug n Play
PCB Antenna
Small Sized module to fit smartly inside your IoT projects
Nodemcu ESP8266 Pinout:
For practical purposes ESP8266 NodeMCU V2 and V3 boards present identical pinouts. While working on the NodeMCU based projects we are interested in the following pins.
Power pins (3.3 V).
Ground pins (GND).
Analog pins (A0).
Digital pins (D0 – D8, SD2, SD3, RX, and TX – GPIO XX)
Most ESP8266 NodeMCU boards have one input voltage pin (Vin), three power pins (3.3v), four ground pins (GND), one analog pin (A0), and several digital pins (GPIO XX).
Pin Code Arduino alias
A0 A0 A0
D0 GPIO 16 16
D1 GPIO 5 5
D2 GPIO 4 4
D3 GPIO 0 0
D4 GPIO 2 2
D5 GPIO 14 14
D6 GPIO 12 12
D7 GPIO 13 13
D8 GPIO 15 15
SD2 GPIO 9 9
SD3 GPIO 10 10
RX GPIO 3 3
TX GPIO 1 1
Nodemcu ESP8266 PWM Pins:
Applications of Nodemcu
Prototyping of IoT devices
Low power battery operated applications
Network projects
Projects requiring multiple I/O interfaces with Wi-Fi and Bluetooth functionalities
Programming Nodemcu with Arduino IDE
The Nodemcu Development Board can be easily programmed using the Arduino IDE since it is easy to use. Programming Nodemcu with the Arduino IDE will hardly take 10-20 minutes. All you need is the latest version of the Arduino IDE, a USB cable, and the Nodemcu board itself. You can check this Getting Started Tutorial for NodeMCU to prepare your Arduino IDE for Nodemcu. You can also check my getting started tutorial for ESP32 Wifi + Bluetooth Module to prepare your Arduino IDE for the ESP32 module.
NodeMCU Getting Started Tutorials:
If you have never used the Nodemcu ESP8266 Wifi Module, then I highly recommend watching my previous getting started and basics video tutorials explaining how to get started with the Nodemcu ESP8266 Wifi module.
- Nodemcu wifi Module Basics, Board installation, Library, Blynk Application, Usb uart Drive
- Power Supply Designing and making for the Nodemcu
I hope you have learned something new from this article. If you have any questions regarding this article, or any other project based on the Nodemcu (ESP8266 or ESP32), let me know in a comment.
Once we give low input to pin 16 of NodeMCU ESP8266, it remains low, see my code below which is not able to switch off led because of this issue, can’t we use pin 16 as general purpose input, is it special?
enum LedStatus
{
LedOff = 0,
LedOn = 1
};
enum LedStatus curentLedStatus = LedOff;
#define BAUD_RATE 9600
// Pins of push buttons and led
#define pinPButtonLedOn 16
#define pinPButtonLedOff 5
#define pinLed 4
void setup()
{
Serial.begin(BAUD_RATE);
// put your setup code here, to run once:
pinMode(pinPButtonLedOn, INPUT_PULLUP); // set arduino pin to input pull-up mode
pinMode(pinPButtonLedOff, INPUT_PULLUP); // set arduino pin to input pull-up mode
pinMode(pinLed, OUTPUT); // set arduino pin to output mode
}
void loop()
{
// put your main code here, to run repeatedly:
Serial.printf(“\n \n \n On button state :”);
Serial.print(digitalRead(pinPButtonLedOn));
Serial.printf(“\n \n \n Off button state :”);
Serial.print(digitalRead(pinPButtonLedOff));
delay(1500);
if (digitalRead(pinPButtonLedOn) == LOW && curentLedStatus == LedOff)
{
digitalWrite(pinLed, HIGH);
curentLedStatus = LedOn;
Serial.printf(“\n \n \n Led turned On by Push Button”);
}
if (digitalRead(pinPButtonLedOff) == LOW && curentLedStatus == LedOn)
{
digitalWrite(pinLed, LOW);
curentLedStatus = LedOff;
Serial.printf(“\n \n \n Led turned Off by Push Button”);
}
}