Page 1 of 2
IDF version incompatibility making trouble
Posted: Thu Jul 25, 2024 1:48 pm
by slh_binary
The ESP-IDF library actually should save the time and make the programming easy, but it is wasting the developer time with its versions incompatibility and not be able to use some older IDF versions in their IDE.
I see a lot of changes between versions in a short time that make the question for me that they can’t publish a stable API like many other companies at all? Or they can’t do their changes in non-user layer?
Re: IDF version incompatibility making trouble
Posted: Fri Jul 26, 2024 12:26 am
by ESP_Sprite
Generally, we use semantic versioning, as in a project that uses e.g. some ESP-IDF 5 version should be able to compile with any ESP-IDF 5 version (that has all the features you're using). Our API is stable in that sense. We can't keep APIs stable forever, though: it would mean we're tied down to all the design decisions that we made when the original ESP32, so we use major version changes to do those API changes.
If you're complaining about the changes between major versions, then yeah, sorry, those can't be helped as we need that to support new hardware. The alternative would be a very krusty API that has all the new features 'bolted on' to the old API in a hacky way. That's no fun for us to support or our users to use.
Re: IDF version incompatibility making trouble
Posted: Mon Jul 29, 2024 1:30 pm
by slh_binary
If you have a project that you have done it e.g 2-3 years ago, and want to add a small feature to it, this is not possible to work with the same IDF version which you have worked.
I even tried to compile my project written with IDF-V4.2 with the same major version (4.4.8), but it dosn’t compile. So you have to waste your time to find where are problems. Compiling with same IDF version as I said is not possible, even if you try to compile the standard “hello_world” example from that version!! You will get the message not supported!
we need that to support new hardware
I don't know how much new hardware was produced in the time between IDF versions 5.2.2 and version 5.3, but when I compare them specially the folder “components”, I see almost everything is red
- compare.png (155.01 KiB) Viewed 1832 times
Yeah this is necessary to make changes and updates, but the Espressif does it like that “so today we don’t like this syntax for that function, let’s do it more beautiful…”.
You can also consider some changes in NON-USER-LAYER.
So I can't write a stable library for myself to e.g scan the wifi access points and send it to the host, because for every new version I face with errors and the worse thing is that if this is older 2-3 years, then I can not compile it at least with that old IDF version anymore! So in this way for me it makes no sense to work with IDF libraries in terms of time.
Re: IDF version incompatibility making trouble
Posted: Mon Jul 29, 2024 3:10 pm
by srjasz
It's even worse than that. The installation done by the Online Installer is different than for the Offline Installer for the same version. Make sure you save the Offline Installer for each version you use as you may need it in the future.
Re: IDF version incompatibility making trouble
Posted: Tue Jul 30, 2024 8:50 pm
by MicroController
AFAICT you should be able to just
clone and install any IDF version from the github repo at any time.
And yes, you always have to decide if you want to build an 'old' application as-is with a legacy IDF or if/when you want to migrate it to a current version.
Re: IDF version incompatibility making trouble
Posted: Wed Jul 31, 2024 10:24 am
by slh_binary
Clone is successful, compile is not successful as I said even the standard example e.g. blink.
I leave ESP-IDF because it's not suitable for my work and it's good for the projects which don't need maintenance like students projects. Do it once, get a grade and put it in trash.
Re: IDF version incompatibility making trouble
Posted: Wed Jul 31, 2024 11:28 am
by MicroController
slh_binary wrote: ↑Wed Jul 31, 2024 10:24 am
Clone is successful, compile is not successful as I said even the standard example e.g. blink.
I have about 5 different IDF versions cloned and installed a.t.m., and I can switch between them as desired. Setting up may not be as straight-forward as it could be (some manual editing of a config file needed, IIRC), but it is possible.
Re: IDF version incompatibility making trouble
Posted: Wed Jul 31, 2024 12:00 pm
by slh_binary
Nope. It is only possible for versions 4.4.8 and above, not older versions like 4.2 that I worked. I don't waste my time for IDF anymore.
Re: IDF version incompatibility making trouble
Posted: Wed Jul 31, 2024 4:24 pm
by eriksl
So... What's your alternative then? Ditching all of IDF and create your own SDK upon the HAL? Looks to me like the medicine is worse than the cure. Keep in mind you can't even work around some parts of the HAL/LL/IDF because some of the hardware is NDA/proprietary so access isn't documented.
Or throw in the towel and switch to some environment meant for newbies, like Arduino?
Re: IDF version incompatibility making trouble
Posted: Wed Jul 31, 2024 4:56 pm
by slh_binary
I'm not sure ESP ATCommands meet my needs, but I'm thinking about company "Nordic Semiconductor" with their SDK & tools.