Skip to content
IoT Crest

Choosing a microcontroller for an IoT project: ESP32, Arduino or Raspberry Pi Pico

Updated , 7 min read

Choosing a microcontroller for an IoT project: how ESP32, Arduino boards and the Raspberry Pi Pico compare on radio, power, pins and toolchain.

This article covers what an IoT project needs from its board, how the three common families compare, and how to pick one for a first project. It does not cover single-board Linux computers as controllers, or industrial PLCs; those are different tools for different jobs.

Three names come up whenever someone starts a connected project: ESP32, Arduino and Raspberry Pi Pico. They overlap enough that beginners assume they are interchangeable, and differ enough that picking the wrong one costs a weekend. The difference comes down to three questions: does it have a radio, how much power does it need, and how comfortable is the toolchain for the kind of project you are building.

What an IoT project asks of a microcontroller

A microcontroller is a small computer on one chip: a processor, some memory, and a set of pins that can read voltages, drive outputs and talk to sensors over standard buses. It runs one program from the moment power arrives, with no operating system in the way. That is what makes it suitable for a sensor node: it starts instantly, draws little power, and does exactly one job.

An IoT project adds a requirement that older hobby projects did not have: the reading has to leave the board. That means either a radio on the board, a radio module attached to it, or a wired connection to something that has one. The radio decision drives most of the rest, because a radio costs power, memory and complexity, and the IoT protocols article explains what each radio commits you to above it.

The other things to weigh are: how many and what kind of pins you need (analog inputs, I2C and SPI buses for digital sensors, PWM outputs), how much memory your code and any network stack will need, how the board will be powered, and how you will program it. For a first project the last one matters most.

microcontroller core + RAM + flash GPIO, ADC, I2C, SPI, UART timers, sleep modes sensor (I2C) sensor (analog) relay / LED radio on-chip (ESP32) or a module power USB, battery, regulator
Diagram: an IoT node is a microcontroller with sensors on its input pins, an output or two, a radio (built into the chip or attached as a module) and a power source.

ESP32: Wi-Fi and Bluetooth built in

The ESP32 is a family of chips from one manufacturer (documented in the ESP-IDF programming guide), sold on many inexpensive development boards, with Wi-Fi and Bluetooth on the chip. That single fact is why it dominates hobby and small-scale IoT: a reading can go straight from the board to your network with no extra module.

The chips have a capable processor (dual-core on the classic parts, with single-core and RISC-V variants in the newer members of the family), enough memory for a full TCP/IP stack plus your application, and a generous set of peripherals. Newer variants such as the ESP32-C6 add Thread and Zigbee radios, which makes them a natural fit for Matter devices.

Power is the trade-off. With the radio active the chip draws far more than a microcontroller without one, and a board running continuously will not last on a small battery. The family has deep sleep modes that bring the draw down to a very small standby current, and a node that wakes, measures, sends and sleeps can run for a long time; the powering article explains how to budget that. Development boards also often include components (a USB-to-serial chip, an LED, a regulator) that draw current regardless, so a bare module on a custom board sleeps far better than a development board does.

The toolchain is broad. You can program an ESP32 with the Arduino environment and its libraries, with the manufacturer’s own framework in C, with MicroPython, or with a firmware project that needs no code at all and is configured from a text file. That last option is how a great many home sensors are built by people who never write a line.

Choose an ESP32 when the project needs Wi-Fi or Bluetooth, is mains powered or can sleep most of the time, and you want the widest range of examples to copy from.

Arduino boards: the simplest path

“Arduino” names both a company’s boards and the programming environment that runs on many boards, including the ESP32. Here it means the classic Arduino boards: simple 8-bit microcontrollers with a modest clock speed, a small amount of memory, and a beginner-friendly layout with clearly labeled pins.

Their virtue is that nothing is hidden. The program you write is close to the hardware, the board does exactly what the code says, and the sheer number of tutorials means almost any sensor has a wiring diagram and a sketch ready to copy. For learning how a sensor works, or for a project with no network at all, they remain the easiest start.

The limits are memory and connectivity. The classic boards have no radio; adding one means a shield or module and a library, and the small memory can struggle with a network stack. Newer boards from the same company include Wi-Fi and use more capable chips, which narrows the gap with the ESP32, at a higher price. Power draw at rest is low, and the simpler chips can be very frugal with careful code, but the development boards again include parts that undo some of that.

Choose a classic Arduino when the project is about sensing and control with no radio, when you are learning, or when you have a specific shield or library that only exists for it.

Raspberry Pi Pico: a fast core with flexible pins

The Pico is a small board built on a microcontroller designed by the Raspberry Pi organization (official documentation). It has a fast dual-core processor, more memory than the classic Arduino boards, and an unusual feature called programmable I/O: small state machines that can implement custom interfaces in hardware, which is valuable when you need to talk to something with an awkward protocol or drive many outputs with precise timing.

The base Pico has no radio. The wireless version adds Wi-Fi and Bluetooth through a separate module on the board, which brings it close to an ESP32 in capability, with a different toolchain and a different power profile. Later versions of the board added a more capable chip.

Programming is by C with the official SDK, or by MicroPython, which the board supports well and which makes it an easy first board for someone who already knows Python. The Arduino environment also supports it. Power draw at rest is moderate; the sleep modes are usable but the ecosystem for very low-power operation is less mature than the ESP32’s.

Choose a Pico when you want a fast, well-documented board with unusual I/O flexibility, when you prefer Python, or when the project is wired and the radio is not the point.

How to choose

QuestionESP32Classic ArduinoRaspberry Pi Pico
Radio on the boardWi-Fi, Bluetooth; Thread or Zigbee on some variantsNone (newer boards: Wi-Fi)None; Wi-Fi and Bluetooth on the wireless version
Processor and memoryFast, ampleSlow, smallFast, ample
Battery operationGood with deep sleep; poor if always onGood, especially with a bare chipModerate
ToolchainArduino, C framework, MicroPython, no-code firmwareArduinoC SDK, MicroPython, Arduino
Special strengthsRadio built in, huge example baseSimplicity, learningProgrammable I/O, Python
Best first projectWi-Fi sensor that reports to a controllerSensor and display with no networkTiming-critical or Python-first project

Two rules of thumb. If the reading has to leave the board over Wi-Fi, start with an ESP32 unless you have a reason not to. If there is no radio in the project, pick whichever board’s examples most closely match what you are building, because the tutorial you can follow is worth more than the specification you cannot use.

For a first project buy two boards, not one. Boards die from a wrong wire, a wrong voltage or a bad USB cable, and a second one turns a lost week into a lost hour.

When a microcontroller is the wrong tool

A microcontroller runs one program without an operating system. That is a strength for a sensor node and a weakness for anything that needs to store a lot of data, run several programs, serve a web interface with any complexity, or talk to a camera. Those jobs belong to a small Linux computer: a single-board computer with an operating system, storage and a proper network stack. The usual pattern is microcontrollers at the edge, doing the sensing on batteries, and one Linux box in the middle, doing the collecting, storing and displaying.

The other case is industrial. Where a device controls machinery, must meet safety requirements, or lives in a harsh environment, the answer is a PLC or an industrial controller with the certifications and the ruggedness that a hobby board does not have. A development board is for prototypes and for the many small jobs where nothing dangerous depends on it.

the usual pattern: microcontrollers at the edge, one Linux box in the middle microcontroller sensing, on battery microcontroller sensing, on battery microcontroller sensing, on battery one program, no operating system, starts instantly small Linux computer a single-board computer with an operating system, storage and a proper network stack collects, stores, displays; also a web interface with any complexity, or a camera PLC, industrial controller controls machinery meets safety requirements, or lives in a harsh environment: certified, rugged a development board is for prototypes and for jobs where nothing dangerous depends on it
Diagram: where a microcontroller stops being the right tool. Microcontrollers do the sensing at the edge on batteries and a small Linux computer in the middle collects, stores and displays; machinery, safety requirements and harsh environments call for a PLC or an industrial controller instead.

Within those limits, any of the three boards will carry a first IoT project to a working sensor on your network. The best one is the one whose tutorial you can finish this weekend.

Written by the IoT Crest editorial team. Facts in this article follow the editorial policy: only well-established behavior is stated and no figures are invented.

More from Sensors and hardware

  1. Hall effect sensor: how it works, types and uses

    How a Hall effect sensor works, its switch, latch, linear and 3D types, wiring to a microcontroller, common uses, and how it compares with a reed switch.

  2. Ambient IoT: battery-free devices explained

    Ambient IoT explained: devices that run on harvested energy with no battery, how backscatter works, the 3GPP and Bluetooth approaches, uses and real limits.

  3. ESP32-C6 explained: Wi-Fi 6, Thread and Zigbee

    ESP32-C6 explained: its RISC-V cores, Wi-Fi 6, Bluetooth LE and Thread or Zigbee radio, how it compares with ESP32, C3, S3, H2 and C5, and when to choose it.

  4. I2C vs SPI: which sensor bus to use

    I2C vs SPI compared for sensor projects: wires and pull-ups, addresses against chip selects, speed, distance, power, and which bus suits each kind of part.

  5. mmWave sensor vs PIR: how presence and motion detection differ

    An mmWave sensor is a small radar that can detect a person sitting still, where a PIR sensor sees only movement. How each works, false triggers and placement.

  6. What is an IoT device? Parts, examples and how they connect

    What is an IoT device: the parts inside one, examples at home, at work and in cities, how IoT devices connect, and how they differ from a phone or a laptop.

  7. IoT sensors: the main types and how to choose one

    IoT sensors explained: the main sensor types by what they measure, how analog, digital and wireless outputs differ, and how to choose one for a project.

  8. Temperature and humidity sensors compared: DHT22 vs SHT31 vs BME280

    DHT22 vs SHT31 vs BME280 compared: interface, accuracy class, response time, self-heating, and which temperature and humidity sensor suits each project.

  9. Powering IoT sensors: batteries, solar and deep sleep

    Powering IoT sensors: how to estimate a power budget, choose between mains, batteries and solar, and use deep sleep so a node runs for months.

All sensors and hardware articles

Sponsor an article in this topic

Sponsored articles and in-article link placements for IoT vendors, agencies and SEO buyers. Every sponsored piece is labeled, edited to the same standard as the rest of the site, and placed in the hub its readers already visit. Rates on request.

Ask a question

Ask a question

Spotted an error, or want a topic covered? It goes straight to the editors, who reply by email, WhatsApp or SMS.