-
-
Notifications
You must be signed in to change notification settings - Fork 651
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support Arduino ESP32 v3.0 based on ESP-IDF v5.1 #1225
Comments
I've been trying this with following config: ; see https://docs.espressif.com/projects/arduino-esp32/en/latest/installing.html#how-to-update-to-the-latest-code
[env:arduino-latest]
platform = https://github.com/platformio/platform-espressif32.git
board = az-delivery-devkit-v4
framework = arduino
platform_packages =
framework-arduinoespressif32 @ https://github.com/espressif/arduino-esp32#master but the build fails with
|
See the updated comment #1225 (comment) |
Adding Arduino 3.0.0 support is the only way to make the ESP32-C6 available for Arduino projects. |
@ivankravets Does this mean that Espressif has dropped any support? Looking in current Arduino 3.0.0 code (branch master) everything regarding Platformio support is there. |
Hello all, I do work in Arduino Core ESP32 project as a Project Manager so I would like to clarify this from our Team point of view. Please take a look on this comment in original Pull request. We also update a warning note in our documentation which should be a bit confusing. To not duplicate what is written in original PR, we will be glad if PlatformIO supports our latest version and we are open to any contributions. @ivankravets Feel free to contact us any time directly, we will be happy to discuss this if you see any points we can do differently. Thanks |
@Jason2866 |
@ivankravets I think a reason why many users use PIO is also to keep some of the arduinoesp32 APIs while having the possibility to modify the IDF SDK configuration (menuconfig) which is necessary in many cases and not possible in arduino, unless using the libbuilder (buggy and not convenient). Maybe it would be wise for PIO to directly use arduinoesp32 core as is, and just focus on allowing users to run arduinoesp32 core along with IDF to keep access to menuconfig. |
I am concerned about the viability of this repo long-term as folks like @Jason2866 have started to roll their own and this repo not catching up I am currently using his https://github.com/tasmota/platform-espressif32/tree/Arduino/IDF5 branch and it works mostly great for me - even if I feel uneasy about relying on a private effort with unclear future - how do you see the longer-term perspective of your fork? This fork has diverged from this repo massively - not sure this can brought back here easily the other issue I have is the abysmal debugging experience esp32/pio/arduino compared to using straight IDF |
@mhaberler i did the same yesterday and used https://github.com/tasmota/platform-espressif32/tree/Arduino/IDF5
But then when building it complained of missing SPIFFS, i added it manually from previous version (in components directory) but then i get a dependancy error with esp_partition.h, despite it is well present in "components".
Did you met this issue too? |
@0x0fe @mhaberler My fork has not the goal to be compatible to anything official. Since project Tasmota is always in first row for new stuff, and is active in contributing to espressif Arduino Core, there was the need to have the development version of Arduino Core available with Platformio. The needed changes for Arduino 3.0 in Platformio are not many. A small job for @valeros |
@Jason2866 oh, i see, that explains the error with SPIFFS |
alpha stage - fair enough. Now assume Core 3.0.0 gets released - does this have any bearing on the debugging situation? who has the ticket to make that work? I'm talking about openocd + gdb versions and matching debug configs which work - at least somewhat like Nordic Connect and Segger I admit I am slightly confused about players and the who-does-what-and-why-not - I might be barking up the wrong tree (or repo) for that matter |
@mhaberler Does debugging work in espressif IDF env setup? If yes imho Platformio has the job for the devices which are currently supported with IDF 5.1. Not saying it will be easy to solve or it will be done soon. The debug issue for the C6 is known and there is an open issue. |
@0x0fe yes, same here `Failed to resolve component 'spiffs' |
you mean like command line/shell? yes, repeatably |
@mhaberler It makes sense, well SPIFFS yo ucan add it manually from previous version but then you will get an error with esp_partition, and i am not sure where to re-enable the SPIFFS module and dependencies correctly. |
https://github.com/platformio/platform-espressif32 isn't a core itself. It's a software piece that makes the PlatformIO Build API work seamlessly with Espressif 32 products within the PlatformIO ecosystem. If you check the source code of this repository, you'll find other integrations, like ESP-IDF. If we support Zephyr/ESP32, it'll also be found here.
We do use it directly (https://registry.platformio.org/tools/platformio/framework-arduinoespressif32). There's no common ground between Arduino IDE and PlatformIO. The "arduino" in PlatformIO is just a framework. PlatformIO supports over 10+ different frameworks. The reason many developers see PlatformIO as a "replacement for Arduino IDE" is due to source code compatibility and advanced project management with lots of configuration and collaboration features based on PlatformIO's unique declarative principles. If you've tried another framework besides "arduino", you'd notice there's no difference in the configuration aspect. You and your team can focus on project development without wrestling with bootstrapping and collaboration issues. Lastly, for a VSCode-based solution with native ESP32/Arduino core support, I recommend the Arduino IDE for VSCode extension backed by Microsoft. It's similar to Arduino IDE 2.0 but uses VSCode as the editor. Both leverage "arduino-cli", so the build system and workflows are the same. |
@ivankravets I see, glue logic layer. the totally different versioning between these platforms and the cores they implement is rather annoying, though. |
@ivankravets make me understand what your recommendation means - are you saying: When I prefer to use VSCode, I should take the Microsoft Arduino extension for VSCode and drop Platformio? |
@mhaberler, we value openness in our community and aim to give you the freedom to choose. If there's a newer version of the software not yet supported by PlatformIO, we won't hide it. The current supported version is Arduino Core v2.x for ESP32. Our collaboration with Espressif, including discussions about renewal, is ongoing. It's worth noting that we have @VojtechBartoska, a project manager from Espressif, in this thread. We're all working together to ensure you receive the best features and support. We'll keep everyone posted on any updates to ensure a smooth continuation of our services. |
I can see there's a bit of political project stuff happening, but as an end-user, all I want to do is be able to use the latest Arduino framework. Consider this a vote of support for making that happen, however it needs to be. |
PlatformIO is a commercial open-source project. In the past, it used to be a paid service before 2020, following a business-to-consumer (B2C) model. Unexpectedly, PlatformIO gained widespread popularity among millions of developers globally. Consequently, we shifted our strategy to make powerful tools for professional embedded development freely accessible to everyone. The active development and maintenance of PlatformIO, along with its infrastructure, are now supported by technology partners dedicated to delivering an excellent developer experience. Espressif was one such partner, and we appreciate their long-standing collaboration. Currently, Espressif has ceased support for new products in PlatformIO, but rest assured, we are committed to providing support for existing Espressif products integrated before this change, as per our technology licensing policy. Your projects won't face disruptions, and services will continue as usual. If there's significant interest from Espressif customers in PlatformIO, we'll reach out to Espressif and explore the possibility of continuing our collaboration. If you have any questions or need clarification, feel free to ask. We're here to provide all the answers you need. |
ok, so Espressif jumped ship @ivankravets what does that mean for the subject topic - Arduino3? your wording would suggest to me "no new Espressif releases - be it Arduino or ESP-IDF, existing releases go on life support" are you saying this repo stops at ESP-IDF 5.1.1/Arduino2 until Espressif changes its mind ? |
@mhaberler Looks like: as long there is not enough feedback from Platformio users wanting actual espressif framework support, there is no good position from Platformio side to argument why espressif should invest money having Platformio support. |
@0x0fe , do you mean this extension? Reading the latest reviews gives us a better understanding of why there is so much interest in the PlatformIO/ESP-IDF integration. Next year, we will focus more on this integration and work on adding new features. In the meantime, if anyone wants to get started with PlatformIO/ESP-IDF, we recommend checking out our PlatformIO/ESP-IDF Configuration Guide. Happy New Year! 🎄 |
Hehe. These reviews are hilarious. Idf extension is still a mess. With platformio or now with pioarduino I just install the extension and it works. |
So lets get this straight.
So this package is still being maintained but not for the Arduino framework. Correct? |
@FlavioZanoni I'd say that's a pretty solid summary of the situation, at least from my perspective 👍 |
|
@FlavioZanoni You missed one point: PlatformIO uses a business model where they charge the platform providers to be included and the PlatformIO users get it for free. So I'd assume that the PlatformIO wanted to have a little money chat with the Espressif folks who weren't interested in forking over money when they'd really prefer developers use the ESP-IDF they provide. |
PlatformIO always has had costs to operate its business, so I really can't imagine they were not being paid before by Espressif et.al. Having devs on the payrole and buying bandwidth does cost money. |
Because of this situation, I use Arduino more as a utility library rather than a framework, and for many things I already had to use ESP-IDF directly. |
@genemars : PlatformIO is tooling, you usually do not chose a framework or development base depending on a tooling, which is more about user preference. I.e. you could go CLI, with 3 different vscode extensions (pioarduino, plaformio, esp-idf), Arduino IDE, etc Each having pros and cons. PlatformIO as it is right now is a valid option for esp8266, esp32 arduino 2, esp-idf, and other platforms. They just stopped supporting Arduino platform but their tooling also supports other languages and platforms. Tooling should not be the main driver decision for your project ;-) |
As mentioned by several people before, you can try pioarduino. |
From my side I can tell only one thing. It remains to be proven whether pioarduino will be the free answer to PlatformIO on esp32. I have a lot of confidence in the pioarduino team, but it is clear that, being a project without a solid business model, it is more susceptible to the wind than PlatformIO has been. I sincerely can't wait to find another reason to abandon Espressif. |
@TD-er, I already did and my project also works with pioarduino, but I'd prefer to stay on an official solution and I don't know if the pioarduino project is going to be active in the long term. @mathieucarbou, I know it's just tooling but this is the first thing you choose when you start a project. And after lot of research (back in 2019) I choosed platformio because of the existsing codebase and examples I could reuse from |
The part of breaking changes I do understand as that's something that is unavoidable if you want to move forward. I'm not sure if for pioarduino a financial businessmodel is required. If it were only a single person maintaining an important tool you depend on, then I would also have my doubts. |
@sblantipodi, Espressif SoCs are the most versatile, cheap and powerful solution out there. All ESP products have been amazing since the very beginning. I don't see a reason to back out. |
Actually I find it somewhat confusing that espressif seems to be quite proud of the high number of esp-based projects on github, I guess that more than half of these "115K+" have a |
PlatformIO is a tooling, not a platform. To use PlatformIO tooling, someone needs to develop the glue (integration) between the framework (arduino core, esp-idf, etc) and the tooling (vscode extension, CLI, etc). So what has been stopped since Arduino Core 3 is that PlatformIO does not take care of this "glue" anymore. But pioarduino does, with the help of Espressif Arduino Core devs. Making a parallel with other languages, Nebeans and JetBrains are not paid by Oracle or Azure to add support for Java in their IDE. Pyhon does not pay vscode or others to have support for their languages in vscode or other IDE. Maven and Gradle tooling for Java projects are not paid by the different things they integrate to support them. So this is normal that Espressif does not pay any third party to add support for their platform. What Espressif can do though, but not obligatad to, is help building (or, even more build) the glue between existing tooling and their stuff, existing tooling being PlatformIO, IDEs, etc. But most of this stuff, in other languages ecosystem, comes from the community, like pioarduino. The more people get involved with and in pioarduino, the more it has chances to survive and be resilient. |
esphome is using pioarduino since a while now too. There are enough skilled developers in background of pioarduino to keep it alive as long espressif MCUs are widely used. |
You'll "abandon" espressif SoCs because a third party package manager drops the support of arduino core, alright, sounds perfectly reasonable.
guess != facts, not sure how one can assume these projects are only possible thanks to PIO. It is just a package manager, the editor is microsoft VSCode, the toolchain is Espressif IDF. the majority of commercial projects are not using pio but just the official IDF with eclipse IDE, or IDF with VScode or even arduino with its IDE. I wonder how all these peoples so disturbed and concerned about a third party package manager dropping support of Arduino, another third party SDK, can work on actual commercial projects with exotic SoCs or MCU where there is only one possible IDE (often Eclipse based) and toolchain, no "libraries", no chatgpt, or when you can only work on keil UV5 (no syntax highlight, no code browse etc). Come on guys, its just a package manager, there are plenty of options to not use it and still work on IDF, and even vscode, even if you want to use Arduino core, and contrary to what has been said the official VScode extension works perfectly well, there is like 700 closed tickets and 20 open, and if you have a problem you just need to reach out to Espressif by email or with your allocated FAE. If PIO has so much value, they can sell it and peoples will buy, i guess ;) I think the lesson to be learned here is to not thrust third parties that pretend to be "open source" and "community", because as you can see, if there is no money to make, then the "community" part will vanish very fast, lol. |
@0x0fe , I'm sorry, but I don't know how to help you. It's important to enjoy life, not live in anger because others use PlatformIO. Focus on what matters - family, friends, and creating meaningful projects. Every few months, you revisit this thread and seem disappointed. If PlatformIO is such a concern, I suggest setting this page as your browser's homepage. It will notify you if PlatformIO ever goes offline, and you can finally relax.
It seems you're stuck in the past! Eclipse IDE is no longer the go-to choice for engineers. Even VSCode is evolving as AI-powered editors rise in popularity. Check out Google Trends for the current reality.
PlatformIO already offers significant value. Parts of our technology were open-sourced under the permissive Apache 2.0 license, thanks to companies like Western Digital and SiFive. Businesses and educators can now use PlatformIO for free without needing our permission. For example, the RVfpga course is powered by PlatformIO, showing its value in education and innovation.
PlatformIO isn't just a tool or an IDE - it's a technology that solves far bigger problems than just setting up SDKs or managing dependencies. Over 5,000,000 developers use PlatformIO because it empowers them to build amazing projects. I encourage you to explore it yourself. Once you understand its capabilities, you'll see why it's so widely adopted. Regarding Espressif and PlatformIO, this is a great example of how PlatformIO technology supports the semiconductor industry. Companies can use it to build strong communities, launch new products faster, and minimize risks related to tools and editor trends. We're thankful to Espressif for the past collaboration and proud to have contributed to their success. While some things may not be possible today, that doesn't mean they'll remain impossible forever. |
This is unfortunate. PlatformIO, integrated with vscode, offers much better overall developer experience than the Arduino IDE (at least in my opinion). Arduino ecosystem seems to be much more mature than esp-idf (more contributors, more availability of OSS libraries). Obviously a big part of this is the fact that Arduino driver and library code is generally portable, whereas isp-idf is an Espressif silo. It's obvious that library authors will prioritize for an ecosystem with broader impact. I am not quite sure what is the Espressif's game here, but if they are hoping to strong-arm developers to switch to the esp-idf framework, I don't think it will succeed, because the reasons above are fundamental. Even if the official PlatformIO support won't be continued, devs will find a way to keep developing in vscode, or use community-managed solutions. All it does, really, is upsetting the developer base. Kudos to PlatformIO for their great work, and I hope that some solution can still be found to allow continued support of the Arduino framework for Espressif products in PlatformIO! |
these upgrade issues forced me to deal with esp-idf. And you know, it turned out that there is no difference for me, in some ways it is even more convenient for esp-idf than platformio. the only downside is that you can't install the Arduino library there with a single button. But this is solved by manually downloading the necessary library from github and copying it to the "components" folder of the project. Otherwise, everything is the same, the same vscode. And now, I think if the esp/platformio problem is solved, I won't go back, I like esp-idf better. The bad thing is that there is no complete clear instructions for switching from the platformio/Arduino to esp-idf/Arduino. |
The ESP32 Core for Arduino 2.x is the most recent major version currently recommended for use with PlatformIO. The decision to discontinue support was made by the Espressif company, as indicated in their official statement: espressif/arduino-esp32#8606
If you're an Espressif user who relies on PlatformIO for your projects, kindly share your thoughts in the comments below and cast your vote on this matter. Once we gather enough interest from the Espressif community, we plan to reach out to the Espressif company and request a reconsideration of support for PlatformIO.
The text was updated successfully, but these errors were encountered: