ESP-01 Wi-Fi Module
Minimal ESP8266 breakout for adding Wi-Fi to any microcontroller.
Wiring & code for
ESP 01 practical reference
A bare-bones ESP8266 Wi-Fi module controllable via AT commands, a cheap way to bolt Wi-Fi connectivity onto non-networked microcontrollers. The ESP-01 exposes just enough pins — power, UART, and two GPIO — to run the module in its simplest mode: forward AT commands over serial from an existing microcontroller like an Arduino Uno, and let the ESP-01 handle all the Wi-Fi networking, making it a low-cost bridge for otherwise offline projects that just need occasional connectivity (sending sensor data to the cloud, receiving simple remote commands).
Key specifications
- Wi-Fi chipset: ESP8266 SoC, 802.11 b/g/n 2.4GHz Wi-Fi
- Operating voltage: 3.3V DC only (NOT 5V tolerant on any pin)
- Operating current: ~80 mA average, spikes to 200-300 mA during Wi-Fi transmit bursts
- Flash memory: Typically 1MB onboard SPI flash on standard ESP-01 boards (ESP-01S variants may have more)
- GPIO: Only 2 usable GPIO pins broken out (GPIO0, GPIO2) — the most limiting factor of this module
- Programming interface: UART (TX/RX), controlled via AT command firmware by default, or reflashed with custom Arduino-core firmware
- Form factor: Very small 8-pin module, the smallest and cheapest of the common ESP8266 breakout family
Pinout and connection notes
All ESP-01 pins are strictly 3.3V — connecting directly to a 5V Arduino's logic pins without a level shifter or resistor divider will damage the chip. The module also draws current spikes during Wi-Fi transmission that a microcontroller's onboard 3.3V regulator often can't supply reliably, so a separate 3.3V regulator capable of a few hundred mA is strongly recommended rather than powering it from an Arduino's 3.3V pin.
- VCC: Power, 3.3V DC only — do not supply 5V
- GND: Ground
- TX: UART transmit — connect to microcontroller RX
- RX: UART receive — connect to microcontroller TX (3.3V logic, level-shift from 5V boards)
- GPIO0: General I/O; must be pulled LOW at boot to enter flashing mode, HIGH for normal AT-command 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
Integration checklist
- Confirm the exact part number and breakout-board revision.
- Verify supply voltage, current demand, logic levels, and signal direction against the datasheet.
- Check controller pin assignments and bus address or interface mode against the example code.
- Power up with external loads disconnected, then test signals before full integration.
- 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.