When Espressif Systems released Arduino ESP32 Core 3.0.0 we noted that PlatformIO support was in doubt due to business issues between Espressif and Platform IO developers. There has been no progress since then, and PlatformIO is not even reviewing or merging community contributions to their platform-espressif32 library.
So if you want software that’s officially supported by Espressif, you should stick to the Arduino ESP32 Core. But if you are a fan of PlatformIO for ESP32, there’s hope even for the newer chips like ESP32-C6, ESP32-H2, and ESP32-P4 among others, as pioarduino community members have now forked the platform-espressif32 library to keep the project alive.
Users can still rely on the official PlatformIO repository for existing ESP32 boards and microcontrollers, but new ESP32-C6, ESP32-H2, ESP32-C5, ESP32-H4, and ESP32-P4 SoC will only be supported by the fork.
pioarduino which stands for “people initiated optimized arduino” will maintain the fork, and currently, Arduino ESP32 Core 3.0.4 and the ESP-IDF 5.1.4 are supported. Jason2866 notes the team is really small (and started as a one-person initiative) so support is limited. Indeed, the documentation section is more or less nonexistent since it only points to the test for an Apache 2.0 license, so for now, we’re told to use the relevant documentation on PlatformIO website.
To use the fork, you’ll first need to download and install Microsoft Visual Studio Code before installing the official PlatformIO IDE extension through the extension manager.
I did that on Ubuntu 22.04 and PlatformIO complained about the lack of the Python 3.6+ interpreter although I have a recent version of Python already:
1 2 |
python --version Python 3.10.12 |
Installing the python3-venv package and clicking on “Try again” fixed the issue:
1 |
sudo apt install python3-venv |
I could then create a project selecting an ESP32-C3 board…
… and change the platformio.ini configuration file to use the pioarduino fork:
1 |
platform = https://github.com/pioarduino/platform-espressif32/releases/download/51.03.04/platform-espressif32.zip |
After saving the file, the PlatformIO IDE will automatically download the required files. Since this worked, I also changed the config file to use one of the ESP32-C6 boards from the list of supported boards and could successfully build code for the ESP32-C6-DevKitC-1 board, something that’s not possible with the official PlatformIO ESP32 port.
The fork directly impacts at least one popular project, as I’ve been told the Tasmota open-source firmware project has moved to use pioarduino’s fork instead, although I don’t see any direct announcement or reference about that in the GitHub repository. [Update: it’s actually pioarduino that’s based on the forked Tasmota platform. See comments section:
Tasmota will not move to pioarduino, not because the fork is not well working. Tasmota uses very different sdkconfig settings for compiling the Arduino libs. BUT the platform pioarduino is based on the forked Tasmota platform.
]
Thanks to Hedda for the tip.
Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011.
Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress
“between Espressif and Platform IO developers”
the developers are not to blame
the bureaucracy at Espressif has become too much…
Let’s just formulate it as a business-disagreement between PlatformIO and Espressif.
No need to point fingers here, the most important part to focus on is to make sure the community can continue using these chips in a way they are used to.
Espressif has no fault. Regarded PlatformIO maintainers have been ghosting pull requests from the community for months. Trying to strongarm Espressif, they will soon lose their business to a better fork with sane maintainers. Hopefully.
Still, it is shortsighted and petty of PlatformIO to not even review and/or merge pull requests with patches from community members. Why PlatformIO has made the choice to totally ignore its community and make patch reviews suffer because PlatformIO has an ongoing disagreement with Espressif. That will make valued community members abandoned PlatformIO.
I mean, reviewing and merging is developer time. Time is money. Then there is the fact that merging this stuff in officials repos implies maintenance.
Now if Platformio was a pure community project then those issues might be more applicable. Though as shown by this project, the community has stepped up to fix this deficiency.
Tasmota will not move to pioarduino, not because the fork is not well working. Tasmota uses very different sdkconfig settings for compiling the Arduino libs. BUT the platform pioarduino is based on the forked Tasmota platform.
The same for ESPEasy. I have been working with Jason for over a year on implementing support of IDF5.x/Arduino 3.x via the platform packages he built. The sdkconfig used in those platform packages has a number of features stripped which neither Tasmota, nor ESPEasy uses. However this might be too limited for others and thus there is pioarduino for those who just need all the Arduino code they can get 🙂 So hopefully other projects will follow as there has been a lot of improvements in the code structure and many issues fixed. Not only newer chips can now be… Read more »
esphome should use this fork for relevant boards.
esphome is using pioarduino since a while