platform-espressif32 fork to enable PlatformIO support for ESP32-C6, ESP32-C5, ESP32-H2, and ESP32-P4 SoCs

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.

PlatformIO ESP32-C6 ESP32-C5 ESP32-P4 ESP32-H2

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.

PlatformIO IDE Visual Studio Code

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:


Installing the python3-venv package and clicking on “Try again” fixed the issue:


I could then create a project selecting an ESP32-C3 board…

PlatformIO create project

… and change the platformio.ini configuration file to use the pioarduino fork:


platformio arduino ESP32 core 3.0.4

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.

PlatformIO ESP32-C6-DevKitC-1 board

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.

Share this:
FacebookTwitterHacker NewsSlashdotRedditLinkedInPinterestFlipboardMeWeLineEmailShare

Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress

ROCK 5 ITX RK3588 mini-ITX motherboard

8 Replies to “platform-espressif32 fork to enable PlatformIO support for ESP32-C6, ESP32-C5, ESP32-H2, and ESP32-P4 SoCs”

    1. 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.

    2. 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.

    3. 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.

      1. 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.

  1. 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.

    1. 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 used, but also a lot has changed like IPv6 support, network interfaces (e.g. SPI Ethernet for nearly all ESP32-variants), PPP, etc.
      A few libraries might need some attention, like the older libraries for “NeoPixel” LEDs will no longer work. (and some more)

      It may need some work to make the changes to have your project work with the latest Arduino 3.0.4 (soon 3.0.5) code, but it really is worth it.

Leave a Reply

Your email address will not be published. Required fields are marked *

Khadas VIM4 SBC
Khadas VIM4 SBC