The ESP8266 is the chip that made cheap Wi-Fi normal. Released by Espressif in 2014, it put a whole Wi-Fi microcontroller on a part that costs about a dollar, and it set off the wave of hobbyist connected projects that the ESP32 later carried forward. It is still useful, still cheap, and still a fine choice for one simple Wi-Fi sensor. For a new build, though, the ESP32-C3 usually wins.
What it is.
Like the ESP32, the ESP8266 is a microcontroller with Wi-Fi built in: a single processor, a little memory, a handful of pins, and a 2.4 GHz radio, all on one chip. It runs one program from power-on, with no operating system. What it lacks is everything the ESP32 added later. There is one processor core, not two. There is no Bluetooth at all. There are far fewer usable pins, and only one analog input. For a single sensor pushing a reading over Wi-Fi, none of that matters. For anything more, the limits show up fast.
On its own, or part of a system.
On its own, an ESP8266 does one job well: read a sensor, then send the reading to an endpoint you choose, such as a webhook or a small script you run. That is often all a single Wi-Fi sensor needs.
As part of a system, it reports into something larger that gathers every reading and runs the rules. The system we embrace here is Home Assistant with ESPHome, and ESPHome supports the ESP8266 directly: describe the board in a short config file, and it appears in Home Assistant, with the data yours to keep. That is one good option, not the only one. The same board will report to an MQTT broker or a service you run, because it sends wherever you point it.
The common boards.
You buy the ESP8266 as a small board, not as the bare chip. Three show up most often:
For a first build, pick the NodeMCU or the D1 Mini. Both have a USB socket and enough pins to be comfortable.
ESP8266 or ESP32-C3.
This is the decision that matters most, because the two cost about the same. The ESP32-C3 is the newer chip and does more: it adds Bluetooth, native USB, more pins, more memory, and more analog inputs. Reach for the ESP8266 when you already have one in a drawer, or when a project calls for the smallest, cheapest Wi-Fi part and nothing else. For anything new, the C3 is the safer default.
| Spec | ESP8266 | ESP32-C3Open Agriculture Technology pick |
|---|---|---|
| Released | 2014 | 2021 |
| CPU | Xtensa L106 | RISC-V |
| Cores × clock | 1 × 80 | 1 × 160 |
| Usable RAM | ≈80 KB | 400 KB |
| Wi-Fi | Wi-Fi 4 | Wi-Fi 4 |
| Bluetooth | None | BLE 5 |
| Native USB | No | Serial / JTAG |
| Usable GPIO | ≈9 | ≈22 |
| Analog inputs | 1 (0–1 V) | 6 |
| Best for | One cheap Wi-Fi sensor | Everyday sensor nodes |
Clocks are in MHz; both chips can run faster than their base clock. The ESP8266’s single analog pin reads 0 to 1 V on the bare chip, though NodeMCU and D1 Mini boards add a divider so it reads 0 to 3.3 V.
What’s inside.
The same shape as any microcontroller, with a shorter list than the ESP32: one core, a little memory, a Wi-Fi radio (and no Bluetooth), an external flash chip for the program, and a small set of pins with a single analog input.
Where it fits, and where it doesn’t.
Where it fits
- One Wi-Fi sensor pushing a single reading.
- The cheapest possible connected node.
- Boards you already own from an earlier project.
- Reporting to Home Assistant through ESPHome.
Where it doesn’t
- Anything that needs Bluetooth. It has none; use an ESP32.
- Builds with several sensors or many pins.
- More than one analog reading.
- A new project, when an ESP32-C3 costs about the same.
How you program it.
The ESP8266 is well supported by the same free tools as the ESP32:
- ESPHome: describe the board in a short config file and bridge it into Home Assistant. No code.
- Arduino core for ESP8266: open, edit, and flash a sketch in the Arduino IDE.
- MicroPython: Python directly on the board.
- NodeMCU (Lua): the scripting firmware that gave the popular dev board its name.
Buying and gotchas.
- Get a NodeMCU or D1 Mini, not an ESP-01, for your first build. The ESP-01 needs an external adapter to flash and breaks out only a couple of pins.
- No Bluetooth. If a project mentions BLE, the ESP8266 cannot do it.
- Watch the boot pins. A few GPIOs (0, 2, and 15) must sit at the right level at power-on, or the board will not start. Plan your wiring around them.
- One analog input, and a small range. The bare chip reads 0 to 1 V; the popular boards add a divider for 0 to 3.3 V. There is only the one.
- 3.3 V logic. The pins are not 5 V tolerant, the same as the ESP32.
- Use a data USB cable and, on some boards, expect a one-time CH340 or CP2102 driver.
Official resources.
These open in a new tab:
Espressif: ESP8266 product page Arduino core for ESP8266 ESPHome (for Home Assistant)
Frequently asked questions.
What is the ESP8266 used for?
It is a low-cost Wi-Fi microcontroller, most often used to read a single sensor and send the reading over Wi-Fi. It powered the first wave of cheap connected hobby projects and is still fine for a simple Wi-Fi node.
What is the difference between the ESP8266 and the ESP32?
The ESP32 is the newer, more capable chip. It adds Bluetooth, a second processor core on most variants, native USB, far more pins, and more memory. The ESP8266 has Wi-Fi only, one core, and fewer pins. For a new build the ESP32-C3 costs about the same and does more.
Does the ESP8266 have Bluetooth?
No. The ESP8266 has Wi-Fi only. If your project needs Bluetooth, use an ESP32 instead.
Can the ESP8266 work with Home Assistant?
Yes. ESPHome supports the ESP8266, so you can describe the board in a short config file and it will show up in Home Assistant with history and automations, and the data stays yours to keep and export.
Which ESP8266 board should I buy?
For a first build, a NodeMCU (ESP-12E) or a Wemos D1 Mini. Both have a USB socket on board and enough pins to be comfortable. The tiny ESP-01 is cheaper but harder to program and breaks out only a couple of pins.
How many analog inputs does the ESP8266 have?
Just one. On the bare chip it reads 0 to 1 volt; the common dev boards add a divider so the same pin reads 0 to 3.3 volts. If you need several analog readings, choose an ESP32.