I have spent a few hours trying to work out what the position is on using the ESP32-C6 for my Arduino based code ( the code does run on ESP32-C3 and compiles using Platform.IO with arduino set as the compiler).
Searching the internet, i find many thoughts, ideas, questions, going back a few years, but no clear answer about whether the C6 can or can’t be used in Platform.IO ?
So in 2025, can i use code written in Arduino code in Platform.IO ?
and have all the problems been sorted ?
I have found this, but it makes me more confused
Getting started hello world examples for ESP32-C6 in PlatformIO both in ESP-IDF and Arduino.md
# Congratulations starting out on Your ESP32-C6!
When I started working with the ESP32-C6, I quickly realized how confusing it could be to find simple, working examples for getting started in PlatformIO. I needed basic, functional repositories to understand the differences between using Arduino and ESP-IDF, and how to work with features like the Ultra-Low Power (ULP) core. After spending countless hours piecing together information from various sources, I decided to create my own set of examples.
This gist will not go into details on why to choose one approach over the other. That can be found elsewhere. But for those who wants to use PlatformIO its a good starting point for working code.
This gist provides an overview of five working repositories I’ve built, each focused on a **simple blink program**. These examples are designed to be easy to understand and get you started without unnecessary complexity. Each repo is ready to clone and run in PlatformIO, covering the different ways to program the ESP32-C6:
1. Pure Arduino framework
2. Arduino as a component in ESP-IDF
This file has been truncated. show original
Thanks
The ESP32-C6 is supported since Espressif Arduino 3.x.
To get the latest Espressif Arduino 3.2 in PlatformIO you can use the pioarduino fork of the espressif32 platform:
platform = https://github.com/pioarduino/platform-espressif32/releases/download/54.03.20/platform-espressif32.zip
Thanks, can i just check with you that i change as below and nothing else ?
[env:ESP32_C3_env]
platform = espressif32
board = esp32-c3-devkitm-1
framework = arduino
upload_port = /dev/ttyACM0
build_flags =
-D ARDUINO_USB_MODE=1
-D ARDUINO_USB_CDC_ON_BOOT=1
-D ESP32_C3_env
to
[env:ESP32_C6_env]
platform = https://github.com/pioarduino/platform-espressif32/releases/download/54.03.20/platform-espressif32.zip
board = esp32-c6-devkitm-1
framework = arduino
upload_port = /dev/ttyACM0
build_flags =
-D ARDUINO_USB_MODE=1
-D ARDUINO_USB_CDC_ON_BOOT=1
-D ESP32_C6_env
Yes, that is correct.
This change the Arduino version from 2.x to 3.x
Please see the migration guide: Migration from 2.x to 3.0 - - — Arduino ESP32 latest documentation
Also note that some 3rd party libraries still rely on 2.x and may not compatible to 3.x yet.
1 Like
…which means that you should help update those libraries to run on the modern chip that you need.
Anything still stuckin on Arduino2 is pretty much abaondonware at this point…