Hardware Matrix

ESP32 vs ESP8266 for ESPHome: Which Board?

Published · figures computed from the dataset, last updated

Every wired pairing in this index names a host board, and the choice is nearly always between some ESP32 variant and the ten-year-old ESP8266. Both run ESPHome well — 106 of our curated configs target an ESP32-family board and 10 target the ESP8266 — so the honest comparison is not "which works" but "which runs out of hardware first for your build".

The numbers that decide it

Capability ESP32ESP8266
Usable GPIO pins 269
Hardware UARTs available 21
Usable analog inputs 61
Analog caveat ADC1 only (GPIO32-39). ADC2 is unusable while Wi-Fi is on, which is always here.One ADC pin (A0), 0-1.0V range — most boards add a divider for 3.3V.

Same table the conflict planner uses when it checks whether your parts list physically fits a board.

Where the ESP8266 still wins

  • Price and availability. D1 Mini clones cost pocket change and are everywhere.
  • Single-job nodes. One I2C climate sensor, one relay, one PIR — the 10 ESP8266 pairings documented here are almost all of exactly this shape.
  • Maturity. A decade of community wiring guides, and every mainstream ESPHome component supports it.

Where it runs out

  • One usable analog pin, with a 0–1.0V range that most boards stretch with a divider. A second analog sensor means a second board or an external ADC.
  • One full UART. A CO2 sensor and a particulate sensor both want serial; on an ESP8266 one of them loses.
  • Nine usable GPIOs, several with boot-strapping duties that bite you at reset — the classic "relay clicks on every power cycle" complaint is a strapping-pin story.
  • No Bluetooth, so no BLE presence or proxy work, and no camera interface.

The ESP32 trap worth knowing before you wire anything

The classic ESP32 advertises more analog pins than you can use: everything on ADC2 stops converting while Wi-Fi is active, and on an ESPHome node Wi-Fi is always active. Plan analog sensors onto ADC1 (GPIO32–39) from the start. The planner flags this automatically when you add analog parts, and each variant's page in the ESPHome hub notes its own version of the constraint.

Which ESP32, then?

  • Classic ESP32 — the default: most pins, two UARTs, the reference target for nearly every config in this index.
  • ESP32-C3 — RISC-V, small and cheap, one UART; the modern replacement for the ESP8266's niche.
  • ESP32-S3 — cameras, USB-OTG, big displays and voice work.

Whatever the host, the peripheral decides the wiring: browse I²C parts, UART devices or the function categories and each page names its pins, bus and an ESPHome config where one is verified.

Frequently Asked Questions

Is the ESP8266 obsolete?
No — it is finished, which is different. ESPHome still supports it, it still costs less than an ESP32, and for a single I2C sensor or a relay it does the whole job. Obsolete would mean unable to do the work; the ESP8266 is merely unable to grow with it.
Why do my analog readings break when Wi-Fi connects on an ESP32?
The pin is on ADC2, which the ESP32 shares with the Wi-Fi radio — the moment Wi-Fi is active, ADC2 conversions fail. Since every ESPHome node has Wi-Fi up essentially always, only the ADC1 pins (GPIO32-39 on the classic ESP32) are usable in practice. Move the sensor to an ADC1 pin.
Which variant should a new project default to?
An ESP32-class board. The classic ESP32 for breadth of pins and peripherals, the C3 for small battery projects, the S3 when you need camera, USB or larger displays. Choose the ESP8266 only when its constraints are known to fit — one bus, one job, lowest cost.

More guides