ESP8266 vs ESP32: when the little one is (not) worth it

Real differences between the ESP8266 and the ESP32, what each costs, where the 8266 still makes sense, and why today the ESP32-C3 beats it almost every time.

Also available in: EN, ES

Series Introduction to the ESP32 Part 9 View the series →
Comparison between the ESP8266 and the ESP32

The ESP8266 put cheap Wi-Fi in everyone’s hands. It was the chip that turned makers into people able to run a web server in their living room for two dollars. It still sells, it still gets used, and it still has an audience.

The honest question is: does it make sense to buy one today? Almost always no, and here is why.

The differences that matter

ESP8266ESP32 (classic)
Cores1 × Xtensa L106 @ 160 MHz2 × LX6 @ 240 MHz
Usable RAM~50 KB~320 KB
Wi-FiWi-Fi 4Wi-Fi 4
BluetoothBT 4.2 + BLE
Usable GPIOs~11~25
ADC1 channel, 10-bit18 channels, 12-bit
DAC
Native USB

It is not just “less powerful”: there is 10× less memory and very few pins. That constrains everything you can do.

Where the ESP8266 still shines

  • Pure price: under $2 on AliExpress.
  • Simplicity: to read a sensor and publish over Wi-Fi to one endpoint, it is plenty.
  • Legacy: tons of working code and tutorials.
  • Very low deep sleep current if the project is simple.

Where it falls short (and it hurts)

  1. Memory: a big JSON parser or TLS leaves you out of RAM and with random reboots.
  2. Single core: Wi-Fi and your code share the CPU, so any long task triggers watchdog resets.
  3. Pins: with the ADC and the flash, you are left with very few GPIOs.
  4. TLS: modern handshakes are expensive for this chip.
  5. Relevance: the ecosystem is now centred on the ESP32.

The comparison that actually matters today

If the ESP8266 tempts you on price, compare it with the ESP32-C3, not the classic:

ESP8266ESP32-C3
Price~$1.5~$2–3
CoreXtensaRISC-V @ 160 MHz
RAM~50 KB400 KB
BluetoothBLE 5
Native USBYes (Serial/JTAG)
ADC10-bit12-bit

The price gap is a few cents and the C3 is better at everything. That is why I recommend forgetting the 8266 for a new project.

When to use each

Use the ESP8266 if…

  • Price is the only thing that matters (volume production, toys).
  • You have old working code and do not want to touch it.
  • The project is a minimal sensor that will never grow.

Use an ESP32 (C3) if…

  • You need BLE, more pins or more memory.
  • You are doing TLS, OTA or non-trivial logic.
  • You want native USB and decent debugging.
  • You think the project might grow (and it always does).

Migrating from the 8266 to the ESP32-C3

If you are coming from the 8266 and jumping to the C3, watch out:

  • ESP8266WiFi.h becomes WiFi.h (and some APIs get renamed).
  • The ADC is different: on the 8266 it is A0 (10-bit); on the C3 you use ADC1 with 12 bits.
  • Deep sleep is more flexible: specific GPIOs can wake it.
  • Libraries for the 8266 do not always compile: look for the ESP32 equivalent.
  • The pin mapping is nothing alike: do not copy the wiring.

Summary

  • The ESP8266 was revolutionary, but today it is dated next to the C3.
  • It has ~50 KB RAM, one core and few pins: it runs out of room quickly.
  • It only wins when price is everything or the code is inherited.
  • For new projects, an ESP32-C3 costs about the same and is far superior.
  • If you migrate, expect changes in Wi-Fi, ADC and pins.

Next step: that closes the variants. Now it is time to choose a framework: Arduino, ESP-IDF, MicroPython or Rust. Or go back to the series hub.

Related posts

↑↓ navigate ↵ open Esc close