말투는 신경쓰지 말고 그냥 읽으세요!
ESP32-S31은 Espressif의 최신 (2026) 고성능 듀얼 코어 RISC-V SoC로서, ESP32 라인업에서 강력한 업그레이드로 자리잡고 있어. 하나의 고성능 RISC-V 코어(320 MHz까지 FPU, SIMD, 넓은 128비트 데이터 경로 지원)와 낮은 소비 전력 코어, 512 KB SRAM, 고속 DDR PSRAM 지원(250 MHz 8비트까지), 60개의 GPIO, Wi-Fi 6, Bluetooth 5.4 (LE + Classic), 802.15.4 (Thread/Zigbee/Matter), 기가비트 이더넷 MAC, 풍부한 HMI 주변장치(카메라, LCD 인터페이스, 터치) 및 멀티미디어/AI를 위한 하드웨어 가속기를 특징으로 해.
ESP32-S31은 아키텍처적으로 ESP32-S3와 매우 유사하지만, RISC-V 코어(대신 Xtensa), 더 나은 무선 성능, 더 많은 GPIO, 개선된 성능/메모리 옵션이 있어. 펌웨어 개발은 다른 최신 ESP32 칩들과 동일한 생태계를 따라가.
1. 기본 펌웨어 개발 프레임워크: ESP-IDF
ESP-IDF (Espressif IoT Development Framework)는 ESP32-S31에 대한 생산 품질 펌웨어를 개발하는 공식 추천 방식이야. FreeRTOS 기반의 C 기반 프레임워크(일부 C++ 지원)로, 빌드를 위해 CMake/Ninja를 사용해.
- 공식 시작 가이드 (ESP32-S31용): 여기에서 시작해 — https://docs.espressif.com/projects/esp-idf/en/latest/esp32s31/get-started/index.html
- 최신 ESP-IDF 버전(v5.x / v6.x+)을 지원해 (2026년 기준).
- 설치 옵션: ESP-IDF 설치 관리자 (EIM) 또는 Git + 도구를 통한 수동 방식으로 설치할 수 있어. Windows, Linux, macOS에서 작동해.
- 추천 IDE: 공식 ESP-IDF 확장 기능이 있는 VS Code(디버깅, 플래싱, 모니터링에 최상) 또는 Eclipse/CDT.
- 주요 명령어: idf.py set-target esp32s31, idf.py menuconfig, idf.py build, idf.py flash, idf.py monitor.
ESP32-S31과 ESP32-S3는 아키텍처적으로 상당히 다르다, 비슷한 이름에도 불구하고. S31은 S3의 사소한 수정이 아니라 상당한 세대 전환을 의미해 (어떤 면에서는 S3 → P4 수준에 가까워).
1. 코어 아키텍처 차이점
| 기능 | ESP32-S3 | ESP32-S31 | 영향 |
| CPU | 듀얼코어 Xtensa LX7 (240 MHz) | 듀얼코어 32비트 RISC-V (320 MHz까지) | 주요 |
| 코어 기능 | SIMD/벡터 확장 (AI용) | 128비트 데이터 경로 + SIMD + FPU의 HP 코어; LP 코어 | S31이 DSP/AI/센서 융합에 강해 |
| 메모리 | 512 KB SRAM, Octal SPI PSRAM (~80-120 MHz 일반) | 512 KB SRAM, 고속 250 MHz 8비트 DDR PSRAM | S31의 외부 RAM 대역폭이 훨씬 우수해 |
| GPIO 수 | 45개 사용 가능 | 60 GPIO (일부 출처는 62-63개까지 가능하다고 해) | 훨씬 더 많은 I/O |
| 무선 | Wi-Fi 4 (802.11b/g/n), BT 5 LE | Wi-Fi 6, BT 5.4 (LE + Classic), 802.15.4 | 주요 업그레이드 |
| 이더넷 | 10/100 Mbps RMII MAC | 기가비트 이더넷 MAC | 유선 애플리케이션에 중요해 |
| HMI 주변 장치 | 병렬 카메라/LCD, 터치 | 개선됨 (JPEG 코덱, 더 나은 병렬 I/O 등) | 멀티미디어 성능이 더 좋음 |
- 명령어 세트 & ABI: 완전히 다름. Xtensa 코드는 재컴파일 없이는 RISC-V에서 실행되지 않아 (대개 소스 변경이 필요해).
- 주변 장치 레지스터 맵 & 저수준 드라이버: 크게 다름. 주변 장치 유형이 비슷하더라도 (I2C, SPI, UART 등), 기본 주소, 레지스터 레이아웃, 일부 동작이 달라.
- 인터럽트 시스템, 전원 관리, 클럭: 새로운 코어와 아키텍처로 인해 다름.
아키텍처에 대한 결론: 직접 바이너리 이식은 불가능해. 저수준 코드의 소스 레벨 이식에는 작업이 필요해.
2. 핀 아웃 및 GPIO 차이
- ESP32-S3: 45개 GPIO (GPIO0–21 + 26–48). 많은 제한사항 (플래시/PSRAM 핀, GPIO0/3/45/46 같은 스트래핑 핀, USB 핀).
- ESP32-S31: ~60개 GPIO — 더 높은 수치이며 다른 물리적 핀 배치/패키지가 있을 가능성이 있어.
주요 결과:
- 핀 다중화(IO MUX + GPIO 매트릭스)는 두 제품 모두에 존재하지만, 핀당 사용 가능한 기능과 기본 매핑이 다름.
- 스트래핑 핀, 플래시/PSRAM 할당 및 부트 모드 핀은 일치하지 않을 것이야.
- S3 보드에서 S31 보드로 동일한 회로도 또는 정확한 핀 할당을 사용할 수 없어. 데이터시트를 검토해야 해.
센서(GPS는 UART, I2C 나침반/조도 센서)는 GPIO 매트릭스 덕분에 두 보드 모두에서 유연하지만, 코드와 하드웨어에서 핀을 다시 할당해야 해.
정확한 핀 기능을 위해 항상 ESP32-S31 데이터시트와 기술 참고 매뉴얼을 참고해.
두 보드는 ESP32-S31에 대한 공식 Espressif 개발 키트이다. 잘 문서화되어 있으며, 센서 프로젝트 시작에 훌륭한 기반을 제공해.
1. ESP32-S31-Function-CoreBoard-1
이것은 일반 용도 / IoT 중심 보드로, ESP32-S31-WROOM-3 모듈(16 MB 플래시 + 16 MB PSRAM)를 기반으로 해.
주요 특징:
- 기가비트 이더넷 (RJ45 + PHY).
- USB 2.0 OTG 고속 (Type-A 포트, ESP32-S31 호스트 역할).
- 온보드 모노 오디오 코덱 (ES8311) + PA + 스피커 출력 + 마이크.
- GPIO60에 RGB LED.
- 대부분의 사용 가능한 GPIO를 노출하는 40핀 헤더 J2.
- 여러 개의 USB-C 포트(하나는 UART/디버그용, 다른 하나는 USB OTG용).
- 리셋 + 부트 버튼.
GPIO 노출 (J2 헤더) - 문서에서 일부 목록:
GND, TX0 (GPIO58), RXD (GPIO59), GPIO61 (부트), GPIO60 (RGB), GPIO23, GPIO0, GPIO3, GPIO49, GPIO1, GPIO47, GPIO48, GPIO45, GPIO46, GPIO43, GPIO44, GPIO40, GPIO42, GPIO39 등.
더 많은 GPIO가 사용 가능해 (칩에서 최대 ~60개). 보드는 많은 수를 깔끔하게 분리해. 항상 전체 회로도를 참조해: 링크 전체회로도
https://dl.espressif.com/schematics/esp32-s31-function-coreboard-1-schematics.pdf
이 보드는 센서 프로젝트에 이상적이야 (UART에서 GPS, I2C 센서에서 나침반/조도 등) 깨끗한 GPIO 헤더와 일반 용도 설계 덕분에.
2. ESP32-S31-Korvo-1 V1.1
이것은 멀티미디어 / HMI 중심 보드야.
주요 특징:
- 이중 아날로그 마이크 + 스테레오 오디오 코덱 (ES8389) + 이중 스피커 출력.
- 카메라 커넥터(전용 전원 LDO: 2.8V / 1.5V) — OV3660 같은 모듈을 지원해.
- LCD 확장 커넥터.
- microSD 카드 슬롯 (4비트 SDIO).
- 기능 버튼 (PLAY, SET, VOL±).
- GPIO8에 RGB LED.
- 동일한 ESP32-S31-WROOM-3 모듈.
이 보드는 나중에 디스플레이/카메라를 추가할 계획이라면 더 나은 선택이지만, 더 많은 주변 장치가 미리 할당되어 있어 (오디오, SD, 카메라), 이는 남는 GPIO 수를 줄이거나 핀 선택을 신중하게 요구할 수 있어.
비교 및 포팅 영향(S31 vs S3)
- GPIO 번호 지정: ESP32-S31은 많은 경우 더 높은 GPIO 번호를 사용해 (예: GPIO58/59에서 UART0, 전형적인 S3 기본값 대신). GPIO 매트릭스는 여전히 매우 유연해 — 대부분의 주변 장치(I2C, SPI, UART 등)를 거의 모든 핀에 연결할 수 있어.
- 핀 충돌: S3 보드와 다름. S3 핀 할당을 맹목적으로 복사하지 마. 보드 회로도 + ESP32-S31 기술 참고 매뉴얼에서 IO MUX 기능을 확인해.
- 모듈: 두 보드 모두 WROOM-3 모듈을 사용해, 이는 플래시/PSRAM/안테나를 표준화하지만 전형적인 S3 모듈보다 더 많은 GPIO를 노출해.
회로도를 여기에서 확인해: 위 보드의 가이드 링크
이 튜토리얼 기사를 참고하고 아래 댓글 바바. 주옥같은 내용이 많다.

'ESP32' 카테고리의 다른 글
| ESP32-S31 차세대 AIoT 마이크로컨트롤러 (0) | 2026.08.04 |
|---|---|
| ESP32-S31 AIoT 마이크로컨트롤러 설명만 (0) | 2026.07.31 |
| INDUSBOARD V2 사용 방법: 예제, 핀 배치 및 사양 (0) | 2026.07.29 |
| ESP32-S31 최신 2026 고성능 듀얼 코어 RISC-V SoC 3 (0) | 2026.07.29 |
| ESP32-S31 최신 2026 고성능 듀얼 코어 RISC-V SoC 1 (0) | 2026.07.29 |
| ESP32 제품군 비교 ESP32 vs S2 vs S3 vs C3 vs C6 vs P4 (0) | 2026.07.28 |
| ESP32의 AM 라디오 기능 (0) | 2026.07.23 |
| ESP32 제대로 활용하지 못하는 숨겨진 기능 10가지 (0) | 2026.07.23 |
캐어랩