Almost every home-made sensor, relay or LED controller starts with the same question: which Wi-Fi microcontroller board should it be built on? The four most common choices are the veteran ESP8266, the classic ESP32, the smaller RISC-V-based ESP32-C3 and the Raspberry Pi Pico 2 W. They overlap a lot, but the differences matter once you look at memory, peripherals, power use and long-term support.
This comparison is based on the manufacturers' datasheets (linked at the end). All numbers below refer to the chips themselves; individual development boards add their own regulators, USB converters and LEDs, which change things like sleep current.
The numbers side by side
| ESP8266EX | ESP32 | ESP32-C3 | Pico 2 W (RP2350) | |
|---|---|---|---|---|
| CPU | 1 × Tensilica L106, up to 160 MHz | 1 or 2 × Xtensa LX6, up to 240 MHz | 1 × RISC-V, up to 160 MHz | 2 × Cortex-M33 or RISC-V Hazard3, up to 150 MHz |
| RAM | about 50 kB available to programs in station mode | 520 KB SRAM | 400 KB SRAM | 520 kB SRAM |
| Wi-Fi | 802.11 b/g/n, 2.4 GHz | 802.11 b/g/n, 2.4 GHz | 802.11 b/g/n, 2.4 GHz | 802.11n, 2.4 GHz (Infineon CYW43439) |
| Bluetooth | none | Bluetooth 4.2 Classic and LE | Bluetooth 5 (LE only) | Bluetooth 5.2, LE and Classic |
| GPIO | 17 | 34 | 22 (16 on some variants) | 26 on the board header |
| ADC | one 10-bit input | two 12-bit ADCs, up to 18 channels | two 12-bit ADCs, up to 6 channels | 12-bit, 3 inputs on the header |
| Deep sleep (chip) | 20 µA | 10 µA (RTC timer and RTC memory) | 5 µA | not given in the board datasheet |
| Native USB | no | no | USB Serial/JTAG | USB 1.1, device and host |
ESP8266: cheap and proven, but at the end of the road
The ESP8266EX made Wi-Fi microcontrollers mainstream, and countless smart plugs and boards still use it. For new projects, however, two facts weigh against it.
- Espressif now marks the ESP8266EX datasheet as NRND, "not recommended for new designs". The chip is still sold, but it is not where development is heading.
- Memory is tight. According to the datasheet, when the chip is connected to a router in station mode, the space left for program heap and data is around 50 kB. That is enough for a simple sensor, but a web server, TLS connections or a larger display quickly fill it.
It also has only one analogue input, with 10-bit resolution, and no Bluetooth. An ESP8266 board still makes sense if you already own a few or want to reflash an existing ESP8266-based device. ESPHome and MicroPython both still support it.
ESP32: the all-rounder
The classic ESP32 is the default choice for a reason. It has two cores at up to 240 MHz, 520 KB of SRAM, 34 GPIO pins, two 12-bit ADCs with up to 18 channels, 10 capacitive touch inputs, and both Bluetooth Classic and Bluetooth LE. That combination means a single board can read several sensors, drive LEDs and act as a Bluetooth LE listener at the same time.
Some details worth knowing:
- The chip has no USB controller of its own (the datasheet lists none), so development boards add a USB-to-serial converter for flashing and logs.
- Deep sleep draws 10 µA at the chip with only the RTC timer and RTC memory running, or about 150 µA with the ULP coprocessor powered on. On a typical development board, the regulator and USB converter usually draw far more than that, so for battery projects the board design matters as much as the chip.
- Watch the exact chip variant. Espressif has marked some older versions, such as ESP32-D0WD and ESP32-S0WD, as not recommended for new designs. That matters to product designers more than to hobbyists buying a finished board.
ESP32-C3: smaller, newer and frugal
The ESP32-C3 replaces the Xtensa cores with a single 32-bit RISC-V core at up to 160 MHz and keeps 400 KB of SRAM. Its advantages over the classic ESP32 are mostly practical:
- Built-in USB Serial/JTAG, so a board can be flashed and debugged without a separate USB-to-serial chip.
- Lower deep-sleep current: the datasheet gives 5 µA.
- Bluetooth 5 (LE) with Bluetooth mesh support, instead of Bluetooth 4.2.
The trade-offs are fewer pins (22, or 16 on variants with in-package flash such as ESP32-C3FH4X), a single core and fewer analogue channels (up to 6). Classic Bluetooth is not supported, which only matters for audio-type projects. For a sensor, relay or Bluetooth LE proxy, the C3 is often all you need.
Raspberry Pi Pico 2 W: a different family
The Pico 2 W is built around Raspberry Pi's own RP2350 chip, with the wireless part handled by a separate Infineon CYW43439 chip connected over SPI. The RP2350 has two cores which can run either as Arm Cortex-M33 or as RISC-V Hazard3, at up to 150 MHz, and 520 kB of SRAM. The feature list in the board datasheet gives 4 MB of flash.
What sets it apart:
- Programmable I/O (PIO). Three PIO blocks with 12 state machines in total can implement custom digital protocols in hardware, which is useful for unusual LED strips, displays or sensors.
- A very easy flashing method. You can drag and drop a firmware file onto the board, which appears as a USB drive. The SWD debug port is also exposed.
- A wide input range. The on-board buck-boost converter produces 3.3 V from anything between about 1.8 and 5.5 V on VSYS, so the board can run directly from two or three AA cells or a lithium cell.
- Bluetooth 5.2 with both LE and Classic support.
The board datasheet gives no deep-sleep figure comparable to the ESP chips, so check measurements for your own use case before choosing it for a battery project. Software support is broad but younger than on the ESP chips: MicroPython has a Pico 2 W build, and ESPHome lists RP2350 boards such as the Pico 2 W as supported on its RP2 platform. Note that ESPHome explicitly does not support Pico W clones that use an ESP-based radio module instead of the CYW43439.
Which one for which job
- A simple Wi-Fi sensor or relay, mains powered: ESP32-C3 or classic ESP32. Both are well supported by ESPHome, MicroPython and the Arduino environment.
- Many inputs, analogue readings, touch buttons or a Bluetooth LE listener: classic ESP32.
- Battery-powered sensor: ESP32-C3 has the lowest chip sleep current of the ESP family here, but pick a board designed for low power, and measure.
- Unusual timing-critical protocols, or if you want to learn Arm or RISC-V development: Pico 2 W.
- Reusing hardware you already have: ESP8266 is fine for simple tasks, but avoid it for new designs.
Whichever you choose, plan for 3.3 V logic. The Pico 2 W's GPIO is fixed at 3.3 V, and the I/O supply of the ESP chips is specified at no more than 3.6 V, so sensors with 5 V outputs need a level shifter or a voltage divider.