Don't look at just the specs. You also need to look at the board design and programming environment. I've used the ESP32 native tools and they are a lot more complex than Arduino. But I'm an embedded firmware developer, so it's kind of what I expect. But I used an Arduino, with 5V tolerant outputs, to light up Halloween costumes for years. I do it in 1 page of code that's I write in their IDE. I don't have to set up an SDK. And the Arudino API hides all the details I don't care about. Especially if I'm really just slinging solder and wiring something up quick.
Trouble is, this kind of trivial throwaway application is all that Arduino is really good for. Because the framework is designed to support thousands of chips, it supports none of them well. Any arduino code you write is easily 5x more terse than any of the native libraries, but it's also 10x slower. If you don't care, you don't care. But if you do care, Arduino is the least appropriate way to make a microcontroller go.
Besides that, IMO hiding hardware details from the developer is the worst thing about Arduino. The hardware details matter and it's far too easy to get footgunned by some implementation detail hidden from you.
But really, esp-IDF isn't that much more complex, nor are most of the other native frameworks. It's a bit more verbose, but esp-IDF provides helper libraries that replace almost everything Arduino provides, but in a way that is actually designed for the hardware and doesn't have to do things like lookup pin numbers in a giant table for each and every gpio call.
On the other hand, their competitors haven't been sleeping either.
Companies like Adafruit and Sparkfun sell dozens of tailor-made dev board variants, and their I2C module system allows you to mix & match a whole bunch of peripherals.
The code? A handful of lines of Python, which you can drag&drop onto it like it's a flash drive. Or use a browser-based IDE if you want one-click library install and serial logging.
Arduino's IDE was groundbreaking in 2010, but these days there are easier (and cheaper!) alternatives for beginning hobbyists, and better alternatives for power users.
Even if you like the Arduino programming environment (and I do), there seems to be little reason to use Arduino hardware unless it’s for compatibility with other hardware you have? For example, there is a very nice unofficial port of Arduino for the Raspberry Pi Pico. There are also many fine Arduino-compatible single-board computers from Adafruit. The Arduino board form factor seems big and clunky in comparison.
I don’t even use the Ardiuino IDE anymore; I've switched to VS Code using PlatformIO.
It’s great that all these microcontroller boards and peripheral breakout boards can be programmed using the same basic API’s, but I don’t think it helps Arduino the company very much.
You can program the normal ESP32 Devboards with the Arduino IDE.
I'm an amateur with this stuff and honestly find the ESP experience significantly more pleasant than Arduino. I'm sure there are footguns I haven't encountered, but I get so much more bang for the buck out of random ESP builds + the incredible line of various bundled ESP devices that come with touchscreens, sensors, etc. for incredibly low prices.
I know a million people have replied to you, and while I don't want to be jumping on the dog pile, I just want to say that along with PlatformIO (which automates the setup of ESPIDF and/or Arduino for the ESP, (and it also does it for a ton of other micros)) and Expressif having their own Arduino Core for their chips with integrates into Arduino's IDE, Expressif have also released their own extensions for VSCode and Eclipse that greatly aid the end user in getting ESPIDF setup and configured.)
You no longer have to break your back going from zero to blinking an LED. I remember when I first got into espressif chips and it was a right pita back then. But no more!
Personally I'm a fan of PlatformIO because its not just because of the wide selection of platforms it supports and that it uses VSCode which is my IDE of choice.
I use arduino ide to build esp projects. I have not found it much different than the arduino as a beginner, except much cheaper and faster. I like not having to do all the shield stuff. But will admit, it was helpful to start on arduino as its built in pins helped me get going as I tried to avoid soldering and breadboarded everything. That only lasted a short time before I realized I had to solder some things if I wanted to grow the project. I still like the idea of breakout boards for specific things but I usually solder them in now.
You can make the argument that esp32 supports Arduino but you can quickly run into “here be dragons” which sends most people for a loop. Arduino has a fantastic reputation for a very good reason.
May I ask what your go-to battery is for light up wearables?
I had the same opinion several years ago but today it's just as easy PLUS you have a bonus of WiFi and all this for a fraction of the price.
What do you think about the Arduino professional line? They have industrial PLC equipments and other high end boards etc.
> I've used the ESP32 native tools and they are a lot more complex than Arduino.
How so? All of that is abstracted away from the users just like it is for Arduinos. In fact you can use the Arduino IDE to develop for most ESP32 chips.
If anything Arduino is holding back everyone with their horrible IDE. Their Board and Library managers are painfully slow and having no way to store configuration with your sketch means that you're taking a screenshot of a drop down menu if you have to make any changes.
Eventually people want to write their own libraries to make their code more manageable and the Arduino IDE makes it difficult for someone who knows what they're doing.
> But I used an Arduino, with 5V tolerant outputs, to light up Halloween costumes for years.
I have yet to encounter a piece of hardware that doesn't respect 3.3v as signal high. All of the neopixel variant's data pins work off 3.3v and most people have moved on to 12v and even 24v for larger projects while still raw dogging 3.3v on the data pin without issue.
Arduino's insistence on 5v logic levels is for maintaining backward compatibility which is honestly unnecessary.
ESP32 is also 5V tolerant for input pins.
What's hard about programming an ESP32?
I plug the USB in and its the same as an Arudino, can even use Arduino IDE, but I prefer VS Code with the PlatformIo extension. You can even use the Arduino Library (#import <Arduino.h>
And a ESP32C board with wifi/bluetooth is like $8 https://www.amazon.com/Seeed-Studio-XIAO-ESP32C3-Microcontro... (and thats from amazon, on alibaba its like couple bucks if that)
As a side note, you can power this with your IPhone's USB C which was surprisingly cool.