I think i have searched through every single forum on the web, but i don't seem to be able to find a single answer sadly... it seems like such a simple question but i can't wrap my head around it.
I see many cool projects on github for esp32 for example. But most of these are not the traditional .ino projects that we use in arduino IDE. They seem to be a complete firmware or something that seems very hard to install/flash/use.
Why are these not made with traditional .ino projects inside the arduino IDE. Is there maybe some limitations for .ino projects that forces them to use these weird programs with cmake.. and such advanced tools.
here is an example: GitHub - martin-ger/esp_wifi_repeater: A full functional WiFi Repeater (correctly: a WiFi NAT Router), which i would like to test but it's completly different from the arduino projects we write. There is no .ino project file, no setup() or loop() functions.
So what is going on with these, any ideas?
Why are these not made with traditional .ino projects inside the arduino IDE.
Its simple, there are other code development platforms, different to the Arduino IDE, that some programmers prefer to use.
Expressif produce the ESP32 and support their own comprehensive development environment.
And the ESP32 is not an Arduino.
It's partly historical. When the Arduino was developed, the range of suitable processors was narrower than now. The core functions were designed to be portable, but stopped short of a full hardware abstraction layer. Gradually, the core platform was ported to more and more processors, but at the same time, those processors became more and more powerful. As this happened, the standard core appears to be relatively less able to support all the features that are available in the new chips. Of course some people want to use those features that are not supported in the core, so they sidestep it by using a different tool chain.
Often, such as in the case of Espressif and STM, the Arduino core is actually a layer constructed in their own proprietary development environment. Because those must support commercial enterprises, they have to be more robust and also more device specific.
Also, I'm not aware of any ESP32 board manufactured by Arduino, the ESP32 boards you see around are marketed with the suggestion of Arduino compatibility, which is the case, however it is just a seller's ploy to assuage any doubts that a potential Arduino might have about using it for that purpose. Arduino is making some very advanced boards now, but many of those can also be supported by alternate and much more powerful tool chains. Such tools are not suitable for beginners.