-
-
Notifications
You must be signed in to change notification settings - Fork 647
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. |
See platformio/platform-espressif32#1225 for drama and/or details.
A year has passed, and I can't believe we still don't have a solution. We really need support for the ESP32-C6, as it is blocking further progress with the meshtastic project for this particular target. |
[env:esp32-s3-devkitc-1]
platform = espressif32
platform_packages =
platformio/framework-arduinoespressif32 @ https://github.com/espressif/arduino-esp32.git#3.0.7
platformio/framework-arduinoespressif32-libs @ https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.1/esp32-arduino-libs-idf-release_v5.1-632e0c2a.zip
framework = arduino Currently (espressif32 @ 6.9.0) if you want to use the official build the config above works. |
Hi! i always get |
@italocjs [env:stable]
platform = https://github.com/pioarduino/platform-espressif32/releases/download/stable/platform-espressif32.zip
framework = arduino and if necessary, maybe add platform_packages =
platformio/framework-arduinoespressif32-libs @ https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.1/esp32-arduino-libs-idf-release_v5.1-632e0c2a.zip but I'm not sure that this is needed. |
FYI Configs like this will not work anymore with released espressif32 Arduino core 3.1.0 (or trying to use a branch)
It is not possible anymore to reference actual framework with |
Hi all, just swooping over from #1463 to try to understand the situation a little bit better.
@Vigeant I'm not sure I understand. Can you explain to me why Espressif dropping platformio support means that we can't proceed anyway? Did they stop paying platformio developers? If so, then perhaps the community can contribute - I'd be happy to. Other than Espressif's support, what are the technical blockers for using the latest version of espressif/arduino-esp32? @Jason2866 in the comment you linked me to above, @kylefmohr recommends pulling in https://github.com/pioarduino/platform-espressif32, which is a fork of this repo. So what's preventing us from merging the community contributed code in this fork back into this repo? |
@jeremiahrose As far as I understood is that there is a business disagreement between Espressif and PlatformIO. That's the sole reason why PioArduino was started. |
Thanks @TD-er for the context. TL;DRPlatformIO and Espressif are no longer friends, and PlatformIO is refusing to merge community PRs for new Espressif devices. Community development is now happening at https://github.com/pioarduino/platform-espressif32, and PRs can be submitted there to add new boards :) |
@jeremiahrose also, the way it works this is not only one repository but a complete set of repos which work together. Merging back will just transform platformio to pioarduino, so useless. They work differently and source their artifact at different locations. There are also several things that are added to pioarduino and works well like hybrid compilation which allows to add some esp-idf compile flag and exclude esp-idf modules through the platformio.ini file. |
While this thread focuses on technical aspects, we are in discussions with Espressif about the business value of the Arduino framework for their goals. Recently, Espressif shared that they don't see significant business value in the ESP32/Arduino solution. As a result, they have decided that Arduino IDE will remain the only official tool for starting with their products. The reason behind this approach is straightforward: they aim to guide users towards ESP-IDF. For silicon vendors, business priorities like revenue often outweigh the developer experience.
If the PlatformIO/Arduino community isn't a priority for Espressif, why should it be for PlatformIO Labs? Supporting Espressif's customers requires significant effort and investment from us. You might argue: "This could cost you some developers". However, our success isn't measured by the number of users; this is not a key performance indicator (KPI) for us. Our mission is to change how modern embedded systems are developed. Since 2014, we have introduced new ideas like declarative principles and test-driven development to the semiconductor industry. Initially, many silicon vendors ignored or dismissed us, but today these ideas have become industry standards. For example, Arm recently introduced support for multi-toolchains and dependencies in their CMSIS solution for VS Code - something we pioneered years ago.
Yes, we received an email from Espressif last week. They have decided to remove all mentions of PlatformIO from their website and documentation. Their stated reason is that "Arduino IDE is the only official tool for working with the ESP32/Arduino framework".
This development platform is still active. We continue to provide support for the ESP-IDF framework, which is widely used by businesses. In fact, the number of businesses depending on PlatformIO/ESP-IDF is growing every month.
We are closely monitoring the situation with multiple forks of this development platform. Unfortunately, the results so far have been negative. Contributors to these forks are aware of the challenges and are ready to deal with them, but many end users are confused. They don't realize these forks are unofficial and unrelated to Espressif or PlatformIO. As a result, we have been receiving complaints about instability and bug reports in our repositories, even though these issues originate from the forked platforms. For example, see platformio/platformio-core#5055 We kindly ask the authors of these forks to add a clear NOTICE/WARNING to their dev-platforms Wishing you a wonderful holiday season! 🎄🎉 |
Lol -- Both Arduino IDE and ESP-IDF is so abysmally horrible compared to PlatformIO + VS code + arduino, you'd think Espressif would want to keep the PlatformIO/Arduino thing going. As I'm working on products and have the future in mind, I must ask: Is platformio/platform-espressif32 being no longer developed from here on? or Is platformio/platform-espressif32 under continuing development and expected to continue into the future; but espressif/arduino-esp32 is not being continued by PlatformIO (so we would have to rely on other groups' versions of it)? |
@b314b do you work on commercial products? |
Its very sad to see that this will be the outcome of an previously awesome toolchain. Unfortunately i can't keep using outdated or arduino community stuff as they are not being supported by espidf. the only way forward seems to be using espidf directly, none of the attempts to run the pioarduino or other suggested methods have worked for me, every time i add something (like an component) i get an hell of undefined or broken stuff coming from apparently nowhere. |
Indeed, came to the same conclusion...
…On Mon, Dec 30, 2024, 6:33 p.m. Italo Soares ***@***.***> wrote:
Its very sad to see that this will be the outcome of an previously awesome
toolchain. Unfortunately i can't keep using outdated or arduino community
stuff as they are not being supported by espidf. the only way forward seems
to be using espidf directly, none of the attempts to run the pioarduino or
other suggested methods have worked for me, every time i add something
(like an component) i get an hell of undefined or broken stuff coming from
apparently nowhere.
—
Reply to this email directly, view it on GitHub
<#1225 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ABIRPKZP7DY6UHWYOEAUWVL2IHJ6HAVCNFSM6AAAAAA65MARK6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDKNRWGAYDONRZGQ>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
same here
From: Guil-T ***@***.***>
Date: Tuesday, 31 December 2024 at 11:08
To: platformio/platform-espressif32 ***@***.***>
Cc: mars000 ***@***.***>, Manual ***@***.***>
Subject: Re: [platformio/platform-espressif32] Support Arduino ESP32 v3.0 based on ESP-IDF v5.1 (Issue #1225)
Indeed, came to the same conclusion...
On Mon, Dec 30, 2024, 6:33 p.m. Italo Soares ***@***.***> wrote:
Its very sad to see that this will be the outcome of an previously awesome
toolchain. Unfortunately i can't keep using outdated or arduino community
stuff as they are not being supported by espidf. the only way forward seems
to be using espidf directly, none of the attempts to run the pioarduino or
other suggested methods have worked for me, every time i add something
(like an component) i get an hell of undefined or broken stuff coming from
apparently nowhere.
—
Reply to this email directly, view it on GitHub
<#1225 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ABIRPKZP7DY6UHWYOEAUWVL2IHJ6HAVCNFSM6AAAAAA65MARK6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDKNRWGAYDONRZGQ>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
—
Reply to this email directly, view it on GitHub<#1225 (comment)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/AEURLDYLUIYGRG2IXGUAGP32IHN6PAVCNFSM6AAAAAA65MARK6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDKNRWGAZDGMJTGM>.
You are receiving this because you are subscribed to this thread.Message ID: ***@***.***>
|
@b314b but...IDF uses VSCODE as IDE. |
@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. |
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: