the biggest issue with the esp32 is the ide and build system..
Posted: Fri May 21, 2021 6:50 am
I've been using the esp32 since it came out, and have put it into a commercial product. I'm currently doing software for another commercial product that will probably be using it.
The trouble is the IDE and build system (ie cmake).
Nobody can write complex software in the ardunio ide, most of the people I know use the sloeber eclipse plugin. This vastly simplifies managing multiple directories for a project - and you never have to edit a make file by hand. Even if you aren't using the ardunio libraries - and I moved away from them some years ago as quite a few things they do aren't suitable for what I'm writing - it makes it easy to use the IDF.
The problem is, now that I'm back to doing a esp32 project, sloeber doesn't support idf>4. And too many bug fixes are now in idf>4!
So what does? I tried the vscode extension first, and rapidly gave up. If you want to write a program that's all in one file, or just a few files that belong to one project, it's probably usable. If you have over 100 files and a complex project structure shared between projects, don't even try...
Next was the (now) official eclipse plug-in. It wasn't hard to get working (under windows) - but soon as you start adding extra directories and editing cmake files the problems start... I've ended up with project.cmake permanently open in one window so I can look and try and figure what is going on. I mean, you should be able to include things like in a component and have it auto found. Nope. It's found in the main.c, but not in the components...
Why is this all so tricky? - ie why do we have to spend more time on the build system than writing code? Have any of the expressiff guys looked at sloeber and seen how the interface should work? On the official one you have to even get out of a connected terminal to upload new firmware - in sloeber it disconnects and reconnects for you... And what was this idea of breaking things into 'components' for anyway? Why should it matter what a sub or external directory is called?
I'm finding it very frustrating, and am wonder if I do this project with the esp32 - which means I probably have to completely go through the build system and write a plugin for it - or use something else..
Which is a shame, as the hardware is great. But please please please do something about the IDE.
The trouble is the IDE and build system (ie cmake).
Nobody can write complex software in the ardunio ide, most of the people I know use the sloeber eclipse plugin. This vastly simplifies managing multiple directories for a project - and you never have to edit a make file by hand. Even if you aren't using the ardunio libraries - and I moved away from them some years ago as quite a few things they do aren't suitable for what I'm writing - it makes it easy to use the IDF.
The problem is, now that I'm back to doing a esp32 project, sloeber doesn't support idf>4. And too many bug fixes are now in idf>4!
So what does? I tried the vscode extension first, and rapidly gave up. If you want to write a program that's all in one file, or just a few files that belong to one project, it's probably usable. If you have over 100 files and a complex project structure shared between projects, don't even try...
Next was the (now) official eclipse plug-in. It wasn't hard to get working (under windows) - but soon as you start adding extra directories and editing cmake files the problems start... I've ended up with project.cmake permanently open in one window so I can look and try and figure what is going on. I mean, you should be able to include things like
Code: Select all
#include "esp_log.h"
Why is this all so tricky? - ie why do we have to spend more time on the build system than writing code? Have any of the expressiff guys looked at sloeber and seen how the interface should work? On the official one you have to even get out of a connected terminal to upload new firmware - in sloeber it disconnects and reconnects for you... And what was this idea of breaking things into 'components' for anyway? Why should it matter what a sub or external directory is called?
I'm finding it very frustrating, and am wonder if I do this project with the esp32 - which means I probably have to completely go through the build system and write a plugin for it - or use something else..
Which is a shame, as the hardware is great. But please please please do something about the IDE.