I keep bouncing off Arduino stuff just because I find their IDE to be astonishingly awful (at least on Linux, running inside a dwm window manager)
I’d be 100% on board if I could write the code in vim and ideally compile/upload from the command line. Maybe a nice makefile. And I did set that up for a few arduino devices in the past, but it was just too much jumping through hoops for me to really bother with longterm. Much easier to just grab a RPi Zero and install a compiler or python on it and then just code directly on the device, over ssh.
If there’s a better approach to handle the coding side of things than the standard Arduino IDE, I’d be super interested to learn about it!
Yes. The ESP8266 is too. I drive several of both chips through Arduino or ESPHome. I’m no programmer but have been very pleased by what I could achieve through the Arduino IDE (on a Mac).
Being able to drop into REPL and rewrite it is a super power. And while MicroPython doesn't tend to come with every library that Python does, you can generally install them via pip.
A cold boot is slower, and takes a couple seconds, but after that most of the latency is comparable to if you were doing it with the SDK.
MicroPython is heavily optimised, and doesn't supply a lot of the mutable madness that makes CPython so slow. (For example, a for loop in CPython is slower than a list expression. In MicroPython, they're the same speed.)
Back in the day (about four years ago) I used a similar setup with with Sublime Text and an Arduino plugin.
For a more official alternative there's also the new (electron based) Arduino Pro IDE: https://www.arduino.cc/pro/arduino-pro-ide
Or you could try other boards such as STM32.
Please check out platformio. It made a whole world of difference to me.
By the way if you are looking for something like Arduino but less awful, Mbed is the most promising option. Their boards and API have been far superior for years, but unfortunately they relied on a mediocre online IDE. However they have finally seen the error of their ways and have a proper offline IDE, based on Theia, which is based on VSCode.
Documentation for getting it up and running can be found here: https://docs.espressif.com/projects/esp-idf/en/latest/esp32/...
I even submitted a PR to fix one of the areas that caused me a lot of headache (it had to do with an assumption about the Python environment), and it was rejected because the ESP-IDF is meant to be opinionated about its choices.
What's even worse is Amazon's ESP32 FreeRTOS distribution. Stay away from that with a 10ft pole. Sure, it sounds nice to have some integration with AWS (GreenGrass, IoT Core, OTA via MQTT via AWS, etc), but half the ESP32 won't work (eg multicore) and modules that you find for ESP-IDF are not inherently cross compatible.
Adafruit sells one of these: https://www.adafruit.com/product/4653
Arduino is both a cpp framework AND a really bad IDE. Using tools like PlatformIO or just your favorite toolchain, you can still use the Arduino libraries and skip their IDE.
With the ESP8622/ESP32 you can also skip arduino and use MicroPython, or push c/cpp code.
* Official Espressif SDKs (C): https://github.com/espressif
* NodeMCU (Lua): https://nodemcu.readthedocs.io/en/release/
* MicroPython: http://docs.micropython.org/en/latest/esp32/quickref.html
I haven't used the official SDK in several years and frankly the current state of their Github org confuses me (why are there so many options now?), so I won't say much about that. They do have a large library of examples however.
NodeMCU is a Lua firmware that abstracts away much of the ugliness you'll encounter trying to learn the C SDK. After the initial Lua learning curve and figuring out what it means to build and flash firmware, it's quite pleasant to use. I find the development iteration cycle much quicker than with the C SDK.
MicroPython is of course a Python firmware along those same lines. I personally haven't had much success with this one, and NodeMCU worked well enough that I didn't try much harder.
I too would like to see a nice straightforward solution to BYO editor to the Arduino IDE, everything I've looked at has been a set of strange hacks. (EDIT: I now see the link to vim-arduino, thanks mollusk)