Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Not having to deal with the monstrosity that is ESP-IDF is a huge benefit.



I find this so confusing - I’m working on a fairly large project using ESP-IDF and find it an absolute joy to use. Far better than any other microcontroller framework.


That's the main problem with it - it's a framework.

I don't want a framework that takes over an entire project and mandates the use of a given build system, configuration system, source code structure, etc. This tends to break apart when you want to have more complex build steps; eg. matrix builds, subsequent build actions on artifacts, integration with codegen like string interning, multiple target platforms which are likely not an ESP32 (like a simulation target running on the host), integration with linters/checkers, integration with test frameworks, etc.

And the technology choices ESP-IDF made are also... controversial (CMake and Kconfig! Plus a whole bunch of Python glue to actually make it work together).

Just give me libraries that I can build/link against and let me bring my own build system - or pick a build system that is actually extensible and will scale to more complex scenarios.


If you're targeting multiple platforms, you're already in framework territory no? I'd use Zephyr in that case, even more KConfig and CMake!


That's what Big Framework wants you to think so that they can sell you more Framework! :)


On the contrary, I LOVE using esp-idf via vscode in my hobby project. I was a lifelong Arduino IDE person but I find it clunky after this.


Why monstrosity? I've not had any issues and their docker container is quite convenient.


If you find it acceptable to use Docker to develop/build projects then you probably have different standards than I do. But see my reply on another subthread for some of my issues with ESP-IDF.


I've been using esp-idf (both professionally and as a hobby) for almost a decade by now and I have not once used Docker.

They even provide you with a fully offline SDK. Extract it and open a terminal and build things. No dependencies, no docker, no nothing.

Your criticism regarding their usage of cmake and the kconfig language hold a bit more water. I've never had any issue with the kconfig system (at least not since they've reimplemented the menu system in python instead of whatever it was) but I have hit CMake limitations a few times.


How else do you ensure somewhat consistent CI...? VM images?


A good, hermetic build system. Nix or Bazel or ...




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: