
EPS32C6는 Arduino IDE환경에서는 지원이 되지만 PIO(PlatformIO) 환경에서는 espidf 만 지원하고 Arduino는 지원이 않는다. Arduino IDE는 다양한 라이브러리를 지원하지만 다양한 보드를 지원하기 위해 라이브러리가 복잡해지면 컴파일 속도가 너무 느려지는 단점이 있다.
PIO(PlatformIO) 환경에서 ESP32C6를 컴파일 할 수 있는 환경을 구성해 보자.
우선 VScode에서 PIO 프로젝트를 생성하고 platformio.ini 파일을 ESP32-C6에 맞도록 수정해 준다.

board 는 새로운 형태로 json 파일로 만들어 boards 폴더에 등록 해 주어야 한다.

이렇게 설정하고 컴파일 하면 ESP32C6로 정상적으로 컴파일 되는것을 확인 할 수 있다.
디폴트로 USB2Serial이 활성화 되어 있지 않아 USB2Serial 메시지를 받을수 없었는데..
ESP32C6의 USB2Serial을 디폴트로 설정하려면 extra_flags를 설정해 주면 된다.
"extra_flags": "-DARDUINO_USB_CDC_ON_BOOT=1 -DARDUINO_USB_MODE=1"
{
"build": {
"core": "esp32",
"f_cpu": "160000000L",
"f_flash": "80000000L",
"flash_mode": "qio",
"mcu": "esp32c6",
"variant": "esp32c6",
"extra_flags": "-DARDUINO_USB_CDC_ON_BOOT=1 -DARDUINO_USB_MODE=1"
},
"connectivity": [
"bluetooth",
"wifi"
],
"debug": {
"openocd_target": "esp32c6.cfg"
},
"frameworks": [
"arduino",
"espidf"
],
"name": "ESP32-C6_SSM",
"upload": {
"flash_size": "4MB",
"maximum_ram_size": 327680,
"maximum_size": 4194304,
"require_upload_port": true,
"speed": 460800
},
"vendor": "Espressif"
}
ESP32-C6에서 PIO로 간단한 Arduino 코드를 테스트 해보자. ESP32C6-SSM 보드의 LED를 깜박이고 USB2Serial 포트로 메시지를 전송하는 코드를 작성했다.
#include <Arduino.h>
#define LED1_PIN 14
#define LED2_PIN 15
#define Led1On() digitalWrite(LED1_PIN, 0)
#define Led1Off() digitalWrite(LED1_PIN, 1)
#define Led2On() digitalWrite(LED2_PIN, 0)
#define Led2Off() digitalWrite(LED2_PIN, 1)
void setup() {
pinMode(LED1_PIN, OUTPUT);
pinMode(LED2_PIN, OUTPUT);
Led1On();
Led2Off();
Serial.begin(115200);
Serial1.println("Serial Test++");
Serial1.begin(115200);
}
void loop() {
Led1On();
Led2Off();
delay(500);
Led1Off();
Led2On();
delay(500);
Serial.println("Serial");
Serial1.println("Serial1");
}
반응형