ESP-01 Pinout Its Specs and Programming

Introduction

ESP-01 is a wifi module which is based on ESP8266 which is a Wi-Fi microcontroller chip. It is a low-cost wifi module with the help of which we can connect wifi to our microcontroller boards. As stated earlier ESP-01 is a low-cost wifi module hence it is widely used in IoT-related projects.

The ESP-01 is itself a system on a chip having Transmission Control Protocol/ Internet Protocol support which helps it to establish a connection with several devices on the internet. 

In today’s article, we are going to discuss ESP-01 Specifications, detailed pin description, and its programming. So without further ado let us see ESP-01 board components:

Board Components

esp-01 onboard components
  • ESP8266 Microcontroller – As mentioned earlier the ESP-01 is based on the ESP8266 microcontroller chip which is a highly integrated wifi chip which supports TCP/IP protocol for internet connectivity. It also has General Purpose Input/Output(GPIO) pins for connecting with other devices and a 32-bit Reduced Instruction Set Computer(RISC) CPU as well.  
  • Inbuilt Antenna – The ESP-01 has an integrated Printed Circuit Board(PCB) antenna for establishing wifi connection. 
  • Flash Memory – The most common size of flash memory found in ESP-01 is about 512 kb or 1 Mb. Flash memory is used for storing the program and firmware.
  • GPIO Pins – There are a limited number of GPIO pins available in the ESP-01 wifi module which makes it favorable for simple projects too however the number of GPIO pins may vary according to the version of the ESP-01 module.
  • Power LED – There is an inbuilt power led in the ESP – 01 module which is red in color and it will start blinking when the board is connected to a power supply.

That is all in the board components. Lets us have a look at the specifications of the ESP-01:

Board Features

Features of the ESP-01 board are as follows:

BoardESP-01
MicrocontrollerESP8266
PCB Antenna1
Flash Memory512 kb, 1 mb
External QSPI flash memory8Mb
Board Dimension14.3 x 24.8mm
Weight Of the board1.5g
I/O Port2

Power Consumption OF ESP – 01

The power consumption of the ESP-01 is as follows:

Power Supply+3.3V 
Current Consumption100mA
I/O Voltage3.6 v(max)
I/O source current12mA (max)
Modem Sleep 20 mA
Light Sleep2 mA
Deep Sleep0.02 mA

Pinout OF ESP-01

Pin NamePin Function
VCCPower Supply – 3.3V only
GNDGround
TXUART TX
RXUART RX
RSTReset
CH_PDChip Enable
GPIO 0General Purpose IO 
GPIO 2General Purpose IO 

VCC :

The VCC pin in the ESP-01 module is responsible for a power supply of 3.3 volts. The nature of the supply of this pin is positive.

GND :

This pin is also known as a ground pin. It is used for connecting the board to the ground. The nature of the supply of this pin is negative.

TX :

This pin is also known as GPIO 1 pin. This pin can be used as a serial output or normal input output pin. TX pin is used for transmitting the data.

RX :

This pin is also known as GPIO 3 pin. It is a serial input or normal input output pin. The main work of the RX pin is to receive the data.

RST :

The RESET pin is used to reset the board. It is an active low pin and for resetting the board we need to pull this pin to low. 

CH_PD :

This pin is also known as Chip Power Down or Chip Enable pin. This pin is used for enabling the chip. It is an active high pin so for enabling the chip we need to pull this pin to high. 

GPIO 0 :

It is the general-purpose input-output pin.

GPIO 2 :

It is the general-purpose input-output pin.

Programming OF Esp 01

To Program ESP-01 using Arduino ide first you have to install the ESP board into your Arduino IDE software. The esp-01 board doesn’t have an onboard FTDI program like esp-8266 or any upper variant. So, either use an Arduino board to program it or use a USB FTDI Programmer.

Programing esp-01 Using Arduino Board

Connection

The instructions for connecting ESP 01 and the Arduino board are as follows:-

Programing esp-01 Using Arduino Board

Connection For Programming

  1. Connect the Ground pin of ESP 01 to the Ground pin of Arduino.
  2. GPIO 0 of ESP 01 to Ground Pin of Arduino.
  3. RXD of ESP 01 to RX of Arduino
  4. TXD of ESP 01 to TX of Arduino
  5. CHPD of ESP 01 to 3.3V of Arduino
  6. VCC of ESP 01 to
  7. 3.3V of ESP 01 to 3.3V of Arduino
  8. GPIO-2 and RST will be not connected

Now before uploading the code we have to make GPIO 0 to ground and after it connect RST to ground. Now remove RST after half a second and then click on upload. Now you can see that the blue flashes once and then blink till it gets uploaded.

Connection After Programming

  1. After programming, remove the serial Arduino cable and then plug it again
  2. Take out GPIO-0 from GND
  3. Connect GND of ESP 01 of GND of Arduino
  4. GPIO 0, GPIO 2, and RST remains not connected
  5. Connect RXD of ESP 01 to TX of Arduino
  6. Connect TXD of ESP 01 to RX of Arduino
  7. Connect CHPD of ESP 01 to 3.3V of Arduino
  8. Connect VCC of ESP 01 to 3.3V of Arduino

Code

Open Arduino IDE -> go to files -> go to preferences.

Head to Additional Boards Manager URLs and paste the URL given –

https://dl.espressif.com/dl/package_esp32_index.json, http://arduino.esp8266.com/stable/package_esp8266com_index.json

Then Go to Tools > Board > Boards Manager.

Now search for ESP8266 and install it.

Then select the Generic ESP8266 module from there.

The code is as follows

#define BLYNK_PRINT Serial
#include <ESP8266_Lib.h>
#include <BlynkSimpleShieldEsp8266.h>
#include <SoftwareSerial.h>
#define ESP8266_BAUD 9600

char auth[] = "6bae2d0e7bfa4b6096feeaffa2030e4f";
char ssid[] = "Enter wiFi Name"; //You can replace the wifi name to your wifi 

char pass[] = "Password";  //Type password of your wifi.

SoftwareSerial EspSerial(2, 3); // RX, TX
WidgetLCD lcd(V0);

ESP8266 wifi(&EspSerial);

void setup()
{

  Serial.begin(9600);
  EspSerial.begin(ESP8266_BAUD);
  Blynk.begin(auth, wifi, ssid, pass);
   lcd.clear();
 lcd.print(1, 1, "IoT");
}

void loop()
{
  Blynk.run();
}

Programing esp-01 Using FTDI programmer

Connection

The instructions for connecting ESP 01 and FTDI are as follows:-

Programing esp-01 Using FTDI programmer
  1. Connect VCC of FTDI to VCC of ESP 01
  2. Connect CH_PD of FTDI to GPIO 0 of ESP 01
  3. Connect GND of FTDI to GND of ESP 01
  4. Connect TX of FTDI to RX of ESP 01
  5. Connect RX of FTDI to TX of ESP 01
  6. Ground the GPIO 0 to enter into the programming mode of ESP 01.
  7. Connect the FTDI cable to the USB port

That is all in connection of the FTDI and ESP 01.

Code

Before uploading the code let’s select the required board in Arduino IDE before uploading the code

  1. Start the Arduino IDE
  2. Go to File > Preferences
  3. Go to additional board manage URLs and paste the following link there – http://arduino.esp8266.com/stable/package_esp8266com_index.json
  4. Go to Tools > Boards > Boards Manager
  5. Search ESP8266
  6. Click the Install button to install the ESP8266 Board
  7. Now select the Generic ESP8266 Module from the board selection list.

Now upload the code given below

void setup() {
  // initialize LED_BUILTIN as an output pin.
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
  digitalWrite(LED_BUILTIN, HIGH);   // turn the LED on
  delay(1000);
  digitalWrite(LED_BUILTIN, LOW);    // turn the LED off
  delay(1000);
}

After the uploading of the Blink LED program is completed, connect the LED to the GPIO_2 Pin of ESP8266. 

Frequently Asked Questions:

  1. What is the esp 01 baud rate?

The baud rate of the Esp 01 module is 115200 bps.

  1. Does esp-01 have Bluetooth?

No, the ESP 01 does not have Bluetooth.

  1. What is the difference between esp 01 and esp 12e?

Both of the boards are wifi modules but esp 01 is a smaller board with less number of pins while the esp 12e has more pins which makes it versatile for a wider range of products.

Leave a Comment