THE ULTIMATE GUIDE TO THE ESP8266-01 PINOUT

The ESP8266-01 is the tiniest, most affordable Wi-Fi microcontroller module in the ESP8266 family. Its minimalist design and ultra-small footprint make it perfect for embedding wireless connectivity into compact devices. Despite having only 8 pins, the ESP-01 can power robust smart home solutions, basic sensors, relays, and automation — all at an unbeatable price. This guide gives you the clearest, most complete reference to the ESP8266-01 pinout, with pro tips for flawless integration.

What is the ESP8266-01?

System-on-Chip (SoC)

Like all ESP8266 modules, the ESP-01 is built around Espressif’s legendary SoC: a single-core Tensilica L106 running at 80 or 160 MHz, integrated Wi-Fi (802.11 b/g/n), and ample flash/RAM for small IoT tasks.

ESP-01 Module

The ESP8266-01 module is famous for its compact, 8-pin DIP form factor. It includes:

  • The ESP8266 chip,
  • On-board PCB antenna,
  • 512 KB or 1 MB flash memory,
  • Crystal oscillator,
  • Minimal passives.

This is not a development board — just the bare essentials for embedding Wi-Fi in your project.

Why Choose the ESP8266-01?

  • Ultra-low cost
  • Tiny size — only 24.8 × 14.3 mm!
  • Breadboard friendly (with an 8-pin header)
  • Wi-Fi ready
  • Low-power, perfect for battery IoT
  • Ideal for relays, switches, sensors, serial-to-Wi-Fi bridges

Limitations:
Only 2 usable GPIOs, no built-in USB, and limited flash/RAM. It’s minimal — and that’s the point.

ESP8266-01 Pinout Diagram High Resolution

You can download a high-resolution ESP8266-01 pinout at the end of this post — for free!

ESP8266-01 Pinout – GPIO & Function Overview

The ESP8266-01 exposes just 8 pins. Here’s what each does:

PinLabelFunction
1GNDGround
2TXUART TX (GPIO1)
3GPIO2Digital I/O, Boot Mode related
4CH_PDChip Enable (HIGH = On)
5RSTReset (LOW to reset)
6GPIO0Digital I/O, Boot Mode related
7VCC3.3V Power Input
8RXUART RX (GPIO3)

GPIO Details: What You Can and Can’t Do

  • GPIO0 (Pin 6): Digital I/O, also used to set boot mode.
    • LOW at boot = Programming mode
    • HIGH at boot = Run program
  • GPIO2 (Pin 3): Digital I/O, must be HIGH at boot.
    • LOW at boot = Boot fails!
  • CH_PD (EN, Pin 4): Must be tied HIGH (3.3V) for the chip to run.
  • TX (GPIO1, Pin 2): UART TX, can be used as output in some firmware.
  • RX (GPIO3, Pin 8): UART RX, can be used as input in some firmware.

Note:

  • ADC (Analog input) is not available on ESP-01.
  • PWM is available on GPIO0 and GPIO2 (firmware dependent).
  • I2C (bit-banged) is possible using GPIO0 and GPIO2.
  • SPI is not available on ESP-01 (need more pins).

Boot Modes — Critical for ESP-01!

Boot mode is set by the state of GPIO0 and GPIO2 at power-up/reset:

GPIO0GPIO2ModeUse
HIGHHIGHRun applicationNormal operation
LOWHIGHFlashing modeProgramming via UART
HIGHLOWInvalidWill not boot
LOWLOWInvalidWill not boot

Pro Tip:

  • For programming: Hold GPIO0 LOW while resetting or powering on.
  • GPIO2 must always be HIGH at boot (pull-up resistor recommended).

ESP8266-01 Power and Programming

Power Requirements

  • VCC: 3.0 – 3.6V (3.3V recommended)
  • Current: Can draw up to 300 mA during Wi-Fi transmission — use a solid 3.3V regulator!
  • DO NOT use 5V directly — it will kill the chip.

Programming

  • Serial adapter required! (3.3V logic only, not 5V)
  • Connect UART TX/RX from your USB-serial adapter to ESP-01 TX/RX
  • Pull CH_PD and GPIO2 HIGH
  • Pull GPIO0 LOW to enter programming mode, then pulse RST LOW

ESP8266-01 Quick Reference Table

PinNameDirectionDefault at BootPull-up Needed?Notes
1GNDNoGround
2TXOutputNoUART TX (GPIO1)
3GPIO2I/OHIGHYESMust be HIGH on boot
4CH_PDInputHIGHYESTie HIGH to enable chip
5RSTInputHIGHPull-up (10kΩ)LOW to reset
6GPIO0I/OHIGH (run)YES (10kΩ)LOW to flash, else I/O
7VCC3.3VPower (3.3V)
8RXInputNoUART RX (GPIO3)

Best Practices and Common Mistakes

  • Always use pull-ups (10kΩ) on CH_PD, GPIO0, GPIO2, and RST for stability.
  • Don’t use 5V! All signals and power must be 3.3V.
  • Never exceed GPIO current limits (~12mA max per pin).
  • Program carefully: GPIO0 LOW and GPIO2 HIGH at reset to flash.
  • No ADC! — don’t try to connect analog sensors.
  • Only 2 usable GPIOs (GPIO0, GPIO2). Plan accordingly!
  • Avoid boot pin conflicts: Don’t connect buttons, LEDs, or relays directly to GPIO0/2 without pull-ups and current limiting resistors.
  • Stable Power: Provide enough current — brownouts cause random resets.

How to Program the ESP8266-01

Development Environments

  • Arduino IDE (using Generic ESP8266 board)
  • PlatformIO (with ESP8266 package)
  • AT Command firmware (factory default, for Wi-Fi to Serial)

Steps

  1. Connect ESP-01 to USB-serial adapter (3.3V logic)
  2. Tie CH_PD, GPIO2 HIGH (3.3V, with 10kΩ pull-up)
  3. Pull GPIO0 LOW to enter flash mode
  4. Pulse RST LOW to reset, then upload code via Arduino IDE/PlatformIO
  5. After flashing, set GPIO0 HIGH and reset to run user code

Conclusion: Tiny, Mighty, Legendary

The ESP8266-01 proves that great things come in small packages. With just 8 pins and 2 usable GPIOs, it’s not a powerhouse — but it’s perfect for compact, Wi-Fi-enabled projects where cost, size, and simplicity are key. Master the ESP-01 pinout, and you’ll have a rock-solid foundation for smart relays, wireless sensors, and low-cost automation.

Download the ESP32 pinout here in high resolution – for free*!

Free to use under the MIT license — attribution is required.

Scroll to Top