First of all, thanks for doing such a great software, as I noticed we’re running bit low on program memory currently so I was just thinking out loud whether it would have any idea to rewrite core directly to ESP-IDF to allow using FreeRTOS tasks (which can be statically allocated to flash nowadays too), proper prioritizing and queues meanwhile running Arduino dependant not-so-mission-critical frontend stuff on own little sandbox task. I know it would sacrifice portability a little, but I believe most people use ESP32’s and architecturally split would benefiticial in a long run considering how interested people would be adding features. Just food for a thought. <3
Hi, I am very glad that you like WLED
Porting to IDF would be cool to make the tasks more independent of each other by running them on separate threads and even save a bit more memory. Of course it couldn’t happen overnight as WLED makes use of a lot of great features of a few arduino libraries and the arduino core itself. For example, while ESPAsyncWebserver does has quite a significant memory overhead, it is quite a bit easier to use then for example httpd in my opinion. On the other hand, features like Secure Flash are exclusive to IDF, so it could indeed be good in the long run.
For now though, my audience is mostly DIY makers and the familiarity of the Arduino Framework makes it easier to integrate WLED into their projects effectively. That’s why I’m planning to build out the feature set of WLED first and once we have a 1.0 release we can look into porting it to native IDF or even other platforms like Raspberry