ESP32 vs Arduino vs Raspberry Pi: which board for your project
By Polar Parts · Published · 6 min read
These three boards get compared all the time, but they're different kinds of device. An Arduino Uno and an ESP32 are microcontrollers: they run one program, start almost instantly and control hardware directly. A Raspberry Pi 5 is a small Linux computer with a desktop, USB ports and storage. Picking the right one comes down to what your project has to do.
The short answer
- Arduino Uno: learning electronics, simple sensor and motor projects, and anything that has to connect to 5 V parts.
- ESP32: projects that need Wi-Fi or Bluetooth, low-power battery operation, or more speed and memory than an Uno.
- Raspberry Pi: projects that need an operating system, such as a camera with image processing, a web server or dashboard, Python with large libraries, a desktop on a monitor, or local machine learning.
- Many good projects use two: a Pi for the heavy thinking and an Arduino or ESP32 for real-time control of motors and sensors.
Side by side
| Spec | Arduino Uno R3 | ESP32 | Raspberry Pi 5 |
|---|---|---|---|
| Type | Microcontroller board | Microcontroller with Wi-Fi and Bluetooth | Single-board computer |
| Processor | ATmega328P, 8-bit, 16 MHz | Two Xtensa LX6 cores, up to 240 MHz | Four Arm Cortex-A76 cores, 2.4 GHz |
| Memory | 32 KB flash, 2 KB SRAM | 520 KB SRAM, 4 MB flash on the module | 1 to 16 GB RAM, plus a microSD card or NVMe drive |
| Logic level | 5 V | 3.3 V | 3.3 V |
| Wireless | None | Wi-Fi 802.11 b/g/n, Bluetooth 4.2 | Dual-band Wi-Fi 802.11ac, Bluetooth 5.0 |
| Power | USB, or an external supply on the barrel jack | USB or 3.3 V, with deep-sleep modes | 5 V at 5 A over USB-C |
| Programmed with | Arduino IDE (C++) | Arduino IDE, ESP-IDF or MicroPython | Python, C and anything else that runs on Linux |
When an Arduino makes sense
The Uno has been the standard first board for years, so tutorials, example code and add-on shields assume it. Its 5 V pins connect directly to most older modules, relay boards and character LCDs. A sketch starts running the moment power is applied, and there's no operating system to corrupt.
It's also limited. 2 KB of RAM fills quickly once you add a display or much text handling, and there's no networking. When a project outgrows the Uno, the Mega 2560 adds more pins and memory, and the Arduino Nano ESP32 puts an ESP32-S3 in the small Nano footprint with Wi-Fi and Bluetooth.
Uno-compatible boards are made by many companies. Many of them use a CH340 USB-to-serial chip instead of the ATmega16U2 on Arduino's own board, so some computers need a CH340 driver before the Arduino IDE can see the board. Browse the Arduino collection or pair a board with a breadboard kit.
When an ESP32 makes sense
An ESP32 gives you Wi-Fi, Bluetooth, two fast cores and far more memory than an Uno, which makes it a common choice for home automation, wireless sensors and anything you control from a phone. The original ESP32 has two Xtensa LX6 cores running at up to 240 MHz and 520 KB of SRAM.
There are several ESP32 families. The ESP32-C3 has a single RISC-V core at up to 160 MHz with Wi-Fi and Bluetooth LE 5, a good fit for small, low-cost sensors. The ESP32-S3 has two Xtensa LX7 cores at up to 240 MHz, native USB, and vector instructions that speed up signal processing and small machine-learning models. Check which chip a board uses before copying someone else's pin numbers.
Two details catch people out. ESP32 pins are 3.3 V, and the datasheet doesn't support 5 V inputs, so use a level shifter or a voltage divider with 5 V modules. And on the original ESP32, the ADC2 analog pins can't be read reliably while Wi-Fi is running; Espressif recommends ADC1 pins for analog readings in Wi-Fi projects. See the ESP32 boards we list, or everything in Computing.
When a Raspberry Pi makes sense
A Raspberry Pi runs a full Linux operating system, so it can do what a microcontroller can't: run a web server, process camera images, drive a desktop display, or use Python libraries for computer vision and machine learning. The Pi 5 has four Arm Cortex-A76 cores at 2.4 GHz, 1 to 16 GB of RAM, two micro HDMI outputs, USB 3.0 ports and a PCIe connection for a fast NVMe drive through an adapter.
A working Pi costs more than the board. Plan for:
- A power supply. Raspberry Pi specifies 5 V at 5 A for the Pi 5; on a 5 V, 3 A supply, the Pi 5 limits its USB ports to 600 mA in total. The Pi 4 uses 5 V at 3 A.
- A microSD card for the operating system, or an NVMe drive and adapter.
- Cooling if it will work hard for long periods, because the Pi slows itself down when it gets too hot.
- A micro HDMI cable or adapter if you'll use a monitor.
The Pi's GPIO pins are 3.3 V and aren't 5 V tolerant. Linux isn't a real-time system either, so precise timing, such as stepper pulses, is better handed to a microcontroller or a driver board. And pulling the power without shutting down can corrupt the microSD card, so battery projects need a clean way to shut down. Browse the Raspberry Pi collection.
Which board for common projects
- Blinking LEDs, reading buttons and moving a servo on a school desk: an Arduino Uno or compatible.
- A temperature or soil sensor that reports to your phone: an ESP32 or ESP32-C3.
- A battery-powered sensor that wakes up every few minutes: an ESP32 using deep sleep.
- A Wi-Fi controlled rover or robot arm: an ESP32 with a servo or motor driver board.
- A security camera, time-lapse or object detection: a Raspberry Pi with a camera module.
- A home server, dashboard or media player: a Raspberry Pi.
- A robot with vision and precise motor control: a Raspberry Pi for vision, plus an Arduino or ESP32 for the motors, talking over a USB or UART serial link.
- Classroom kits for younger students: a BBC micro:bit V2 or an Arduino starter kit.
What else to order with your board
- A USB cable that carries data, not just charge, with the right connector for your board: USB-C, micro USB or USB-B.
- A breadboard and jumper wires for building circuits without soldering.
- Header pins if your board ships without them fitted, and a soldering iron to attach them.
- Level shifters if you're mixing 5 V modules with a 3.3 V board.
- Sensors and displays that list your board's logic voltage and interface, such as I2C, SPI or analog.
Shop the parts in this guide
Prices in Canadian dollars. Product pages show a delivery estimate when one is available.
More buying guides
- Choosing a servo for robotics: SG90 vs MG90S vs MG996R vs serial bus servos
Compare SG90, MG90S, MG996R and serial bus servos by torque, size, gears and power, and work out how much torque a joint actually needs.
- Stepper motors and drivers: NEMA 17, A4988, DRV8825 and TMC2209 explained
What NEMA 17 does and doesn't tell you, how to wire a stepper and set a driver's current limit, and how the A4988, DRV8825 and TMC2209 compare.
- Sourcing parts for FIRST, FTC, VEX and school robotics teams in Canada
Plan a season's parts order: what the FTC, FRC and VEX rules allow, which spares to stock, how to allow for delivery times, and how to request a bulk quote.
Sources
The facts in this guide come from these sources. Specifications and rules change, so check the current version before you rely on a figure.
