Ever since I got involved with Espressif's ESP32/ESP8266 chips, I haven't even thought about arduinos, except to download the UI, but you don't even need to do that with the right VSCode extensions to make your life better.
I do keep meaning to try this though - https://platformio.org/
Last time I used Arduino was probably the late 2000s, as a kid/teenager,student their prices always felt too high to me, so I moved to "compatibles" or "clones" for a while.
Once ESP8266 and ESP32 came along (with a detour thanks to Raspberry Pi coming along in the 2010s), there was really no need nor desire to use Arduino anymore and like you I forget about them.
Maybe they have a place in education, and maybe in industrial applications, but outside of that, I wouldn't even consider Arduino anymore.
PlatformIO by the way is excellent, and I've used it for all ESP8266/ESP32 development in VSCode for some time now, though increasingly I just use ESPHome, as my desire to program microcontrollers at a low level wanes and my desire to simply achieve the task quickly grows.
I also really appreciate how routine ESPHome has made building sensor networks in my home. Really just incredibly useful software.
As a hacker and tinkerer I hate ESPHome. Yes it's super cool to have a turnkey "I want these sensors, give me firmware" but all of the code is hidden away and you can't easily modify or add to it.
If I want to run custom logic, I have to bundle a custom component into the esphome thing. Not bad I guess but I still don't like the lack of control
You can definitely override existing and create custom C++ components in ESPHome without too much hassle. It allows lambdas in the YAML itself.
my custom logic runs as something in home assistant usually, haven’t yet had a need to add stuff in the esphome config yet (although I could imagine many situations where it’s necessary)
Yeah, for sure. My more... uhh.. creative toys are definitely not ESPhome, but it's super cool that I can solder on a few wires to a DHT-11 and throw it in a closet with the weakest USB power plug I own, and end up with a great sensor.
Arduino’s sweet spot was always in education and learning.
I think most people should graduate into PlatformIO or vendor tools if they’ve used Arduino to learn basics.
I think it’s great that the Arduino ecosystem became so large and capable, but it had the side effect of leading many beginners into thinking that Arduino was synonymous with microcontroller.
I even took a contract once updating a company’s internal tooling because their first contractor tried to do it all with Arduino. The same scenario happens with Raspberry Pi in the world of Linux embedded systems development.
Are there good ESP32-based starter kits with manual books which a kid can learn from? I was looking for an Arduino-like kit as a Christmas gift, and it seems that Arduino kits are unbeatable. The starter kit is available in 10 languages and comes with a project booklet. All ESP32-based products seem to be better suited for more advanced users and seem to have a steeper learning curve.
No, not like there are with Arduino. Arduino is definitely the best I know of for embedded programming, and it has its place there, but I stopped trying to do real work with it.
I use a combination of Adafruit Ampy to copy files, esptool to reflash, picocom for the REPL, and VSCode. Some of those might be redundant and it did take a bit to figure out the syntax. But once that’s determined it’s cake, and all saved in my CLI history. I just Ctrl+R and bring it back.
For ESP32? You just install the VS Code extension and it does all the toolchain setup and you can flash with a button.
I don’t think that was available when I was starting and now I am set in my ways lol
I use the command line tool arduino-cli (with plain Makefile) to compile and upload the code (obviously usable in any editor). It has also a --verbose mode to show exactly what is getting executed. But I heard a lot about platformio, so I am wondering what is its benefits (beside the integration in vscode; as an emacs user vscode is not working for me)
I think platformio's selling point is multiple target boards via ts config. That and you can use an actual editor instead of the arduino "IDE", although I'm not a fan of vscode anymore either.
I also think they have some testing features built in, though i never delved too deep.
> That and you can use an actual editor instead of the arduino "IDE"
Note that the Arduino IDE has a setting to edit files using any random program instead.
What do you think of PlatformIo on these chips compared to the official ESP IDF?
Personally, I am not convinced we should (continue) conflating the IDE with the build+flash tools; the former should be associated with the programming language and developer preferences, and the latter with the MCU being programmed.
It's not an either/or. You can use platformio with esp-IDF or arduino for ESP chips.
PIO + esp-IDF is the only way I write ESP firmware.
I switched to platformio in vscode (and command line) a few months ago after using arduino ide for over a decade.
Can’t recommend it enough. Faster startup. Repeatable builds. The abilty to save your image and then flash on many devices. Build time parameters. Also allows access to some functionality that is not possible using arduino build process due to how arduino compiles and processes sketches.
Yeah. There is no reason to even touch the Arduino IDE anymore now that PlatformIO is so good.