There are quite a few microcontroller options on the market, from Arduino and Raspberry Pi to Espressif’s ESP32 platform. Personally, I’m not too fussed about Arduino or Raspberry Pi—here’s why my next microcontroller will be an ESP32.
It’s one of the most-used pieces of smart home tech in existence
When it comes to building DIY smart home projects, it’s hard to deny the popularity and capability of the ESP32. Not only is it popular among DIY smart home users, with projects like ESPHome being extremely well established, but the ESP32 platform itself is used by most major companies to power their smart home products.
Since there are so many ESP32 projects and users in the communities, you’re extremely likely to find at least one person, if not a bunch of people, who have done the very project you’re wanting to do. I love this because I know that I can find documentation, walkthroughs, examples, and even sample code to use for just about any project that I want to do.
ESP32s come in so many shapes and sizes
There’s one to fit any project I’m working on
There’s really just one size of the Raspberry Pi Pico, and it’s not all that small. Sure, it’s smaller than, say, an Arduino or full-size Raspberry Pi, but it’s still way too big for smaller projects.
On the other hand, the ESP32 comes in more shapes and sizes than I can count. For starters, you have models that resemble the Raspberry Pi Pico, with tons of GPIO pins available to do all sorts of projects.
However, there are quite a few smaller ESP32 modules, and you can custom-design your own ESP32 boards if you want to get into custom PCB design, too. The ESP32 module is actually very versatile and can be put on just about any form factor of a board. Technically, the Pi Pico can too, but it’s a much less supported module when compared to the ESP32.
I just love that I can go to Amazon, Seeed Studio, Adafruit, or any number of other retailers and buy pre-made ESP32 boards in both large and small sizes, and everything in between.
ESP32 offers way more capabilities than Raspberry Pi Pico ever will
Thread, Matter, Zigbee, and more—all natively supported
The original Pi Pico was an offline-only microcontroller more akin to an Arduino than anything else. Now, we have a few wireless models of the Pi Pico, but their capabilities pale in comparison to the ESP32.
For example, you can get the ESP32-C6, which comes with Wi-Fi 6, Thread, Matter, and Zigbee built in. Then, there’s the LoRa versions of the ESP32, which are designed for long-range communication.
There are so many variants of the ESP32 that you’re bound to find one that fits your connectivity needs. The Raspberry Pi Pico comes in just two flavors—wireless or non-wireless.
Even with all the added hardware and capabilities they come with
Technically, most ESP32 boards cost about the same as what a Pi Pico costs—around $4 to $5 depending on where you purchase them from. The difference is, the ESP32 is just so much more capable for the money.
When you consider that there doesn’t even exist a Pi Pico that’s Matter-native, there’s really no comparison. Or, the fact that the ESP32-C6 comes with a built-in charging circuit for $5, when you’d have to buy the Pi Pico with headers for $8 and then add a charging circuit on for a few bucks more to even come close to feature parity, but still not touch the built-in connectivity options that the ESP32-C6 offers.
It’s just hard to argue with the value of the ESP32 for everything that it brings to the table. To get started with ESP32 programming, I picked up a 3-pack of ESP32-S3 boards on Amazon for $18, which comes out to $6 each with the headers included. For comparison, a 2-pack of Pi Pico W’s on Amazon costs $20.
ESP32 just has a way better low power mode for battery-powered projects
Microamps vs milliamps puts ESP32 light years ahead of Raspberry Pi Pico
Depending on the project that I plan to build, power draw could be a major factor. For example, I’m considering building my own presence detection and temperature sensors to integrate with Home Assistant. A Pi Pico bottoms out at around 0.8mA, which is a fairly low power draw, all things considered.
However, when you compare that to the 5 to 10 µA that most ESP32 boards draw when in deep sleep mode, there’s no comparison. To put that into perspective, a Pi Pico will draw around 800 µA in sleep, vs the 5 to 10 that an ESP32 draws in deep sleep.
The other difference is that the ESP32 can wake from a multitude of sources, including a timer, GPIO, touch sensor, and much more. On the other hand, the Pi Pico can really only wake from an RTC alarm or through a GPIO pin. This feature of the ESP32 is available thanks to its ULP (ultra low power) coprocessor that can keep running sensor reads when the main cores are completely off, something the Pi Pico can’t do, making the ESP32 a much better option for battery-powered IoT projects.
The Raspberry Pi Pico has its place—it’s just not in my house
I can definitely see a place for Raspberry Pi Pico boards. They’re great as a replacement for an Arduino, for example. If you’re building servo-based projects and need a lot of GPIO pins with a larger and easier to use form-factor, then the Pi Pico is a great option.
However, for me, I value all of the other benefits that ESP32 brings to the table far more than the ecosystem Raspberry Pi has built up, and that’s why I’ll be sticking to ESP32 boards for my microcontroller needs.
