Three platforms, three names that constantly appear together in tutorials and forum posts. But they're not variants of the same thing. They're fundamentally different — and the choice between them determines how your project works, how much power it consumes, and what's possible.

Arduino: microcontroller, simple and direct

An Arduino-type board runs one program, continuously, from start to finish. No operating system, no memory management, no processes. You write: when pin 3 goes high, do X. And it does, every time, reliably and fast.

That makes Arduino-type boards the best choice for anything where timing matters: driving a motor, debouncing a button, reading a sensor every 10 ms, positioning a servo precisely. The delay between event and response is predictable — that's called deterministic real-time control.

The limitation is also its strength: there's no easy way to simultaneously maintain a Wi-Fi connection, update a display and read a sensor without careful planning.

Raspberry Pi: small computer, big capability

A Raspberry Pi runs Linux. That means: filesystem, multiple simultaneous processes, Python scripts, networking, SSH, camera, web server. You can run a complete application that also talks to hardware via the GPIO pins.

But Linux is not real-time. There are processes running in the background, memory being swapped, system updates starting. For an LED blinking every second that doesn't matter. For a servo that needs microsecond precision, it does.

Project table with Arduino, Raspberry Pi and ESP32 side by side and a laptop

The Raspberry Pi shines as the "brain" of a larger system: processing data, making decisions, communicating with the outside world, and delegating hard real-time tasks to an underlying microcontroller.

ESP32: microcontroller with built-in Wi-Fi and Bluetooth

The ESP32 is a microcontroller — not a computer — but with wireless communication as a standard feature. That makes it interesting for anything involving sending sensor data, remote control, or integration into a larger network.

Two things to watch out for. First: the ESP32 uses 3.3 V logic. A 5 V signal directly on a GPIO pin causes damage. Second: during Wi-Fi activity the chip draws current spikes up to 500 mA. That requires solid decoupling close to the power pins — a 100 μF capacitor in parallel with a 100 nF ceramic is a proven combination.

Which do you choose?

Hard real-time control, simple inputs and outputs, battery-friendly: Arduino-type board.
Processing, networking, display, mature software: Raspberry Pi.
Combining wireless communication with direct hardware control: ESP32.

They're not mutually exclusive either. A common combination is a Raspberry Pi managing the logic and communicating via I2C or UART with an Arduino or ESP32 handling the direct hardware.

Practical note

Never connect a 5 V signal directly to a 3.3 V input. Check supply voltage, GPIO voltage levels and maximum current per pin before connecting components. A cheap level shifter or a simple voltage divider with two resistors — like the CRG0805F10K — prevents a lot of damage.