When you’re starting out with microcontrollers, you may read about ESP32 vs. Arduino Uno. One is a fancy board filled with functionality to the brim. The other is an iconic tool that’s inspired countless roboticists around the world. Here we look at both ESP32 and Arduino Uno to see which one you should choose.
What Is a Microcontroller?
A microcontroller is a tiny computer on a chip. That computer connects to pins, plugs, and/or other pieces of metal called “peripherals” that give and receive inputs and outputs.
Both the Arduino Uno and ESP32 have bits of metal on them that do just that. But the Arduino has female header pins that bite on the metal ends of male header pins. On the other hand, the ESP32 typically has male header pins that do the opposite.
What Is an Arduino Uno?
For many hobbyists, the Arduino Uno (or any of its cheaper Chinese knockoffs) is their first introduction to microcontrollers and embedded systems. It’s a cheap machine, reliable enough to run 24/7 and durable enough to stay usable in the hands of most clumsy, inexperienced students.
The Arduino Uno is the most iconic of all the Arduino products. It’s meant as a learning aid for electronics students. Nowadays, the Arduino Uno you see in stores should be the R3 version or third revision to the original Arduino Uno.
- Removable microcontroller chip: the Arduino Uno comes with a removable ATmega328P microcontroller chip. With just a pair of tweezers, you can literally just pull the chip off the board. That’s useful for when you’ve worn down the chip after 10,000 memory writes.
- Has plenty of shields: a shield is a separate board that fits on top of the Arduino board to give it more functionality. You can have a motor shield that acts as a driver for multiple motors, for instance, or wireless connectivity with the Wi-Fi shield.
- There’s a community behind it: because it’s made by the first company to make the first educational development boards, there’s already a large community around the Arduino Uno. There are industries, companies, and even individual hobbyists centered around this board and the whole concept of Arduino.
- It’s power inefficient: while Arduino Uno is good for beginners, it eats up too much power. Most of it goes to the stuff that makes it durable for students. It’s not particularly the best board to run off a battery, even if it does get the job done.
- Not enough pins: anyone who’s made larger projects on the Arduino knows the pain. With only 14 digital I/O pins, there’s only so much to work with after you add in a 16×2 LCD display.
- Hard to remove broken male header pins: It’s not a universal problem but is when it becomes one. When a male header pin breaks and gets stuck, it’s going to be a pain to take it out. Sure, it’s a rare occurrence, but the chances of it happening tend to go up in a classroom with more of these boards being passed between students’ hands.
What Is an ESP32?
The ESP32 may be the next step to studying embedded systems and has everything – as long as you know how to use it. The board has Wi-Fi connectivity, Bluetooth, and over 30 I/O pins to fit as many modules as it can. It’s a beast among hobbyist boards and small enough to fit in a tiny box.
Actually, the ESP32 is not just a single board. It’s a series of boards developed by Espressif. For the most part, the kind of board you get doesn’t matter much because they’re more or less the same, especially for beginners. But here we are talking about the NodeMCU32S, built on top of the NodeMCU framework.
- More I/O pins: compared to the Arduino Uno, the ESP32 can fit more sensors and modules because it has more GPIO pins. This also means that it has more PWM and analog pins.
- Much cheaper: the ESP32 is also much cheaper – in fact, it’s about five times cheaper than the Arduino Uno, even if you don’t include the price for the Wi-Fi shield. For a board with twice the number of GPIO pins, that’s quite impressive.
- Built-in Wi-Fi and Bluetooth support: it’s perhaps the main reason to switch to the ESP32. With the built-in interconnectivity support, you can send information wirelessly without having to buy shields. This way, you could save on hardware costs and battery life on your ESP32-based IoT projects.
- The boot button: unfortunately, the ESP32 isn’t perfect. You have to press the boot button every time you upload code. While that shouldn’t be much of a deal-breaker, it’s definitely a hassle, especially when you’re still learning how to code.
- It uses 3.3v logic: Having 3.3v logic means that each pin registers a “1” or “high” when it reaches 3.3 volts. It also means that 5 volts on a pin will kill it. Unfortunately, some modules won’t work right on 3.3 volts, shrinking your choice of modules, despite the larger number of pins.
- Pinout changes depending on the board: to be accurate, the ESP32 is just a chip. The pinout can change depending on which design you have. Some don’t even have programmable internal LEDs, for instance, and others might not even have mounting holes.
What They Have in Common
With knowledge of the differences between the ESP32 and Arduino Uno, let’s talk about what they have in common.
First of all, the Arduino IDE supports both boards. You could upload the same Blink code to each board, and there wouldn’t be anything different on the output side.
Perhaps the best thing about these boards is that they’ll work with any language as long as the IDE supports it. Whether you use OpenMV or PlatformIO, both boards can run MicroPython right off the bat!
Next up, both boards will support the same hardware as long as they:
- Support both 3.3v and 5v logic
- Are not dedicated shields
LEDs, potentiometers, and resistors are good examples of hardware that don’t care whether it’s 3.3v or 5v. They’ll work as long as there’s electricity running through them.
On the other hand, many sensors won’t mind the voltage difference. This includes the common ones you’d find in sensor bundle kits. Some do, though, so you’re better off checking the schematics if they use 3.3v, 5v, or both.
Lastly, and probably the most critical, is the power supply. Both boards can handle 5 volts and 500 mA from a USB port power supply and slightly more – that is, as long as they’re through the regulated ports.
For the Arduino Uno, that’s the Type-B USB port. And for the ESP32, that’s the micro-USB port. There’s a regulator in these ports that only allows what their respective boards need.
Both also support unregulated power supply sources. The “Vin” pin in each board is meant to take up as much electricity as it needs, but you’ll have to regulate the electricity in that pin or risk breaking the board.
How Can You Know What You Really Need?
We’re at the important part now. Should it be the Arduino Uno? Or should it be the ESP32?
Despite its price and lack of extra pins and features, every electronics student should at least invest in an Arduino Uno. It’s a board meant for students who’d probably break something along the way.
On the other hand, the more experienced ones should try the ESP32 for its extra features. It shouldn’t be read by those who can’t read schematics, let alone a freshman who doesn’t know how Ohm’s law works.
Frequently Asked Questions
Why am I seeing so many Arduino clones?
How do you test whether each board works?
The quickest way to test any new microcontroller board is to make it blink its internal LED (if it has one). For most Arduino-based boards, that’s setting D13 to “HIGH.” But for the ESP32, that’s going to depend on the hardware. For instance, the NodeMCU32S uses GPIO 2, but the ESP32-DevkitC has none. In that case, you can try making it send a message through the serial monitor, instead.
There's a black, tape-like thing at the back of my ESP32, can I remove it?
DO NOT! Never remove that black, tape-like thing at the back unless you’re 100% sure of what you’re doing. It protects the built-in antenna from corrosion.
Our latest tutorials delivered straight to your inbox