Skip to content
CommunicationWi-Fi

ESP8266 Wi-Fi Serial Transceiver Module

General-purpose ESP8266 breakout with more accessible GPIO.

ESP8266 Module practical reference

A more fully-broken-out ESP8266 module than the ESP-01, exposing extra GPIO pins alongside its Wi-Fi radio. It packages the same ESP8266 Wi-Fi SoC used across the ESP-01 through ESP-12 family, but on a board layout that surfaces more of the chip's usable GPIO, ADC, and control pins, making it easier to wire directly into a breadboard project without the limited 2-GPIO constraint of the ESP-01.

Key specifications

  • Wi-Fi chipset: ESP8266 SoC, 802.11 b/g/n 2.4GHz Wi-Fi
  • CPU: Tensilica L106 32-bit RISC, up to 80/160 MHz
  • Operating voltage: 3.3V DC (NOT 5V tolerant on GPIO or power input)
  • Operating current: ~80 mA average, spikes to 200-300 mA during Wi-Fi transmit bursts
  • Flash memory: Typically 1MB–4MB onboard SPI flash, depending on module variant
  • GPIO: Multiple usable GPIO pins broken out (varies by exact module, typically 8-9), plus one analog input (ADC)
  • ADC: 1 analog input, 0-1V range (some breakouts add a resistor divider for 0-3.3V)
  • Programming interface: UART (TX/RX) for flashing via esptool or the Arduino IDE, requires GPIO0 pulled LOW to enter flash mode

Pinout and connection notes

All ESP8266 GPIO and power pins are strictly 3.3V — connecting 5V logic or supply will damage the chip, so use a logic-level shifter or a 5V-to-3.3V regulator when interfacing with 5V boards like the Arduino Uno. GPIO0 and GPIO2 have boot-mode roles (LOW/HIGH respectively for normal run) that must be respected or the module will fail to start correctly.

  • VCC: Power, 3.3V DC only — do not supply 5V
  • GND: Ground
  • TX / RXD: UART transmit/receive for programming and serial communication
  • GPIO0: General I/O; must be pulled LOW at boot to enter flashing mode, HIGH for normal run mode
  • GPIO2: General I/O; must be pulled HIGH at boot for normal operation
  • CH_PD / EN: Chip enable — must be pulled HIGH for the module to run
  • RST: Active-LOW reset pin
  • A0 (ADC): Analog input, present on modules that expose it (e.g. ESP-12 based boards)

Integration checklist

  1. Confirm the exact part number and breakout-board revision.
  2. Verify supply voltage, current demand, logic levels, and signal direction against the datasheet.
  3. Check controller pin assignments and bus address or interface mode against the example code.
  4. Power up with external loads disconnected, then test signals before full integration.
  5. If readings or communication fail, check power and ground first, then pin mapping, interface settings, and library initialization.

Troubleshooting and reproducibility

Record the board used, wiring, library/version, supply arrangement, and measured behavior. Use the selected board-specific wiring example as the source of truth. Never assume visually similar modules share identical voltage tolerance or pin order.

Board Integration

Library

—

AT-command firmware — no Arduino library needed, just SoftwareSerial

Wiring

Component pinArduino Uno pinNote
VCC3.3V (NOT the 5V pin)Module is not 5V tolerant on power or GPIO
GNDGND
TXD2 (Uno RX)
RXD3 (Uno TX, through a divider)Uno TX is 5V logic into a 3.3V-only RX pin
CH_PD / EN3.3VMust be pulled HIGH for the module to run at all
GPIO03.3VHIGH for normal run mode — only pulled LOW when reflashing firmware

Swipe sideways to see every column →

C++
  • CH_PD/EN and GPIO0 both need to be pulled HIGH for normal run mode — GPIO0 only goes LOW when you specifically want to reflash the module's firmware.
  • The Uno's onboard 3.3V regulator is only rated for around 50mA, well under this module's 200-300mA Wi-Fi transmit spikes — brownout resets during transmission are a common symptom of powering it from there instead of a dedicated 3.3V supply.
  • Baud rate varies by firmware — many AT-firmware modules default to 9600 or 115200; if "AT" doesn't get an "OK" response back over Serial, try the other common rate before assuming it's wired wrong.
View full Arduino Uno guide