Quick summary
Choose an ESP32 if you need WiFi, Bluetooth and headroom for connected home automation projects. The ESP8266 is still useful for simple, existing WiFi projects. Choose Arduino when you prioritise simplicity, a huge number of examples or a project with no built-in connectivity; if you need networking, you will have to add a module.
They are not three equivalent boards. ESP32 and ESP8266 are families of Espressif microcontrollers; Arduino is a platform of boards, software and ecosystem that includes very different models.
General comparison
| Criterion | ESP32 | ESP8266 | Classic Arduino |
|---|---|---|---|
| Built-in WiFi | Yes | Yes | Depends on the model |
| Bluetooth | Yes, depending on the variant | Not as a standard option | Depends on the model |
| Processing power and memory | Generally higher | Enough for simple tasks | Highly variable |
| Learning curve | Medium | Low to medium | Low |
| Best use | IoT, sensors and Home Assistant | Existing WiFi devices | Simple sensors and local control |
| Power supply | Depends on the board | Depends on the board | Depends on the board |
The table is a guideline. Always check the exact model: a modern Arduino with connectivity can outperform a classic Arduino board, and an ESP32-C3 does not have exactly the same peripherals as a classic ESP32.
When to choose an ESP32
The ESP32 is the most balanced option for getting started in connected home automation. It has WiFi, variants with Bluetooth, several buses and enough capacity to read sensors, control actuators and talk to Home Assistant.
It also leaves headroom for projects that grow later. You can start with a sensor and add a display, a second bus or a local automation without immediately switching platform. The ESP32: what it is, what it’s for and how to start guide explains pinout, power supply and first steps.
Its main difficulty is that there are many compatible boards. The USB connector, the USB-serial chip, the boot pins and the memory can vary. Buy a board with clear documentation and keep the manufacturer’s link to hand.
When to choose an ESP8266
The ESP8266 fits in if you already own devices based on this family or you need a very simple WiFi node. There is a lot of code and documentation available, but some newer projects prefer the ESP32 for its peripherals, memory and support for more recent variants.
Do not swap an ESP8266 for an ESP32 automatically without reviewing the code. The GPIOs, pin names, boot levels and libraries are not interchangeable. A configuration that works on one family can boot badly or drive a different pin on the other.
When to choose Arduino
Arduino is a good entry point for learning inputs, outputs, sensors and programming logic without adding a network. An Arduino Uno, for example, can be enough to read a sensor, light an LED or drive a servo in a local project.
The drawback appears when you need to send data over WiFi, update firmware remotely or integrate with Home Assistant. You will have to pick an Arduino board with connectivity or add a module, and the architecture becomes more complex.
Consumption and power supply
Do not compare the consumption of the families using only the microcontroller datasheet. A development board includes a regulator, USB-serial chip, LEDs and other components. Real consumption depends on WiFi, read frequency, peripherals and sleep mode.
For a battery-powered sensor, calculate the consumption of the whole build and test the battery life. For a device running from a charger, prioritise a stable power supply and a safe installation. Do not power relays, motors or LED strips from a GPIO.
Software: Arduino IDE or ESPHome
Arduino IDE offers direct control and thousands of examples. ESPHome lets you create Home Assistant devices by describing the configuration in YAML. Neither option is universally better:
- Use Arduino if you need very specific logic or want to learn C++.
- Use ESPHome if you want to integrate sensors, entities and OTA updates with Home Assistant quickly.
- Document version, board and libraries so you can rebuild the project.
Mistakes when choosing a board
- Buying by the name without looking at the pinout.
- Assuming every USB cable carries data.
- Connecting 5 V signals to 3.3 V GPIOs.
- Ignoring boot pins.
- Picking a WiFi board for a place with no coverage.
- Leaving no way to recover the firmware over USB.
Recommendation
For a first smart home project I would choose a development ESP32 with USB, a manufacturer’s documentation and a known pinout. If you already have an ESP8266 working, there is no automatic reason to remove it. If the project does not need a network, Arduino may be easier to understand.
External sources
- Espressif: ESP32 documentation — SDK, pins, memory, WiFi, Bluetooth, security, ADC.
- Espressif: ESP32 datasheet — electrical characteristics, pins, memory, consumption, antenna, temperature.
- Espressif: ESP32-C3 datasheet — RISC-V, memory, consumption, WiFi 4, Bluetooth 5.
- Espressif: ESP32-S3 datasheet — dual core, vector extensions, USB OTG, PSRAM, security.
- Espressif: ESP32-C6 datasheet — RISC-V, WiFi 6, Bluetooth 5, Matter, Thread, Zigbee.
- Espressif: ESP8266 documentation — SDK, RTOS, WiFi, memory, pins.
- Arduino-ESP8266: documentation — core, libraries, pins, WiFi, OTA.
- Arduino: official documentation — boards, IDE, libraries, portability, examples.
- Arduino: hardware references — variants, pinout, power, memory, Shields.
- Espressif: ESP32 datasheet — electrical characteristics, pins, memory, consumption, antenna, temperature.
- Espressif: ESP32-C3 datasheet — RISC-V, memory, consumption, WiFi 4, Bluetooth 5.
- Espressif: ESP32-S3 datasheet — dual core, vector extensions, USB OTG, PSRAM, security.