본문 바로가기

ESP327

ESP-IDF를 이용한 펌웨어 빌드(with CMake), 플래싱, 모니터링 ESP-IDF를 이용한 펌웨어 빌드(with CMake), 플래싱, 모니터링임베디드 개발을 하다 보면, 펌웨어를 빌드하고 보드에 업로드(플래싱)하며, 실행 로그를 모니터링하는 과정이 필수적입니다.ESP32 개발에서는 ESP-IDF를 사용하여 이를 손쉽게 진행할 수 있으며, 빌드 시스템으로 CMake를 활용합니다.이번 글에서는 ESP-IDF에서 CMake가 어떤 역할을 하는지 설명하고, 펌웨어를 빌드, 플래싱, 모니터링하는 방법을 소개합니다.1️⃣ CMake란? ESP-IDF에서 CMake가 하는 역할CMake란?CMake는 소프트웨어 빌드를 자동화하는 도구입니다.ESP-IDF에서는 CMake를 통해 프로젝트의 빌드 과정과 설정을 정의합니다.ESP-IDF에서 CMake의 역할소스 코드와 라이브러리를 어떻게.. 2025. 4. 19.
ESP32에서 I2C 통신 핀 (GPIO21 & GPIO22) 정리 ESP32에서 I2C 통신을 설정할 때 기본적으로 GPIO21과 GPIO22가 사용된다. 하지만, 왜 이 핀들이 기본 I2C 핀으로 지정되었는지 궁금할 수 있다. ESP32의 하드웨어 및 소프트웨어적인 관점에서 이를 분석해보자.💡 이런 경우 I2C 핀이 필요해요!✅ I2C 기반 센서 (예: MPU6050, BME280, OLED 디스플레이)와 ESP32를 연결할 때✅ 여러 개의 I2C 장치를 하나의 통신선에서 사용해야 할 때✅ ESP32의 기본 I2C 설정을 이해하고, 필요 시 다른 핀으로 변경할 때🔍 I2C 통신이란?I2C(Inter-Integrated Circuit)는 2개의 신호선(SDA, SCL)만으로 여러 개의 장치를 연결할 수 있는 직렬 통신 방식이다.✅ I2C 통신의 주요 특징마스터-슬레.. 2025. 4. 17.
ESP32 플래시 완전 정복! esptool 실전 활용법, read_flash, write_flash (Feat : "무선 업데이트의 모든 것: OTA 프로토타입 제작기") 🏷️ 배경: ESP32의 펌웨어를 업로드하거나 데이터를 읽고 쓰기 위해서는 esptool.py를 효과적으로 활용해야 한다. 플래시 메모리의 특정 영역을 확인하거나, 직접 데이터를 수정할 때 필수적인 도구다. 💡 이런 경우 esptool.py가 필요해요!✅ ESP32의 특정 플래시 영역(예: OTA 데이터, 버전 정보) 확인 및 백업✅ 새로운 펌웨어를 직접 플래싱하고 실행 상태 확인✅ ESP32가 현재 어떤 파티션을 실행 중인지 분석✅ 버전 정보를 확인하고 수동으로 업데이트 적용🔍 esptool 기본 개념esptool.py는 ESP32의 플래시 메모리를 직접 읽고, 쓰고, 지울 수 있는 CLI 기반의 강력한 도구다. ESP32 보드와 USB 연결 후 다양한 명령어를 활용할 수 있다.아래 환경 변수, .. 2025. 4. 15.
ESP32 내장 플래시(SPI Flash)에 커스텀 파티션 적용하기, Arduino IDE Partition Scheme를 이용한 Custom partition 업데이트하기 (Feat: "무선 업데이트의 모든 것: OTA 프로토타입 제작기") 배경: ESP32에서 펌웨어 업데이트(OTA), 데이터 저장, 파일 시스템(FATFS, SPIFFS) 등을 최적화하려면, 기본 제공되는 파티션 테이블 대신 커스텀 파티션을 만들어 적용하는 과정이 필요하다. Arduino IDE에서는 Partition Scheme을 선택할 수 있으며, 직접 설정할 수도 있다.✅Arduino IDE의 Partition Scheme 설명Arduino IDE에서 ESP32를 플래싱할 때, Tools → Partition Scheme에서 여러 가지 기본 파티션 옵션을 선택할 수 있다. 주요 옵션은 다음과 같다.Custom Partition을 적용하기 위해선 Tools → Partition Scheme →Custom을 선택한다.Default 4MB with spiffs기본적인 4M.. 2025. 4. 13.
ESP32의 현재 존재하는 파티션 확인하기 ESP32에서 펌웨어 업데이트(OTA)나 커스텀 파티션을 설정하려면, 현재 존재하는 파티션 정보를 확인하는 과정이 필수적이다. 펌웨어가 어디에 저장되고, 어떤 영역이 사용 중인지 정확히 파악해야 안정적인 업데이트 및 디버깅이 가능하다. 이를 위해 ESP32의 플래시 메모리를 분석하는 명령어를 활용할 수 있다.🔍 ESP32의 파티션 확인 과정ESP32의 현재 존재하는 파티션을 확인하는 방법은 여러 가지가 있지만, 가장 확실한 방법은 esptool.py와 Arduino IDE의 Serial Monitor를 활용하는 것이다.✅ 방법 1: esptool로 플래시 데이터 직접 확인ESP32의 플래시 메모리에 저장된 파티션 테이블을 읽어 분석할 수 있다. esptool에서 오류가 난다면 아래의 링크에 접속해서 해.. 2025. 4. 11.
ESP32 esptool 환경 변수 등록 과정 요약 🏷️ 배경: 아두이노 IDE로 ESP32 개발 시 esptool.py를 자동으로 사용하여 펌웨어를 플래싱한다. 하지만, 일부 환경에서는 esptool.py가 환경 변수에 등록되지 않아 직접 실행할 수 없는 문제가 발생할 수 있다. 이를 해결하기 위해 esptool.py의 위치를 찾고, 환경 변수에 등록하는 과정이 필요하다.🔍 문제 상황which esptool.py 또는 python -m site --user-site 명령어를 실행했을 때, esptool.py의 위치가 나오지 않음.하지만 아두이노 IDE에서 자동으로 설치된 esptool.py가 존재하는 것으로 보임..arduino 관련 디렉터리에서 실행 파일을 찾았던 경험이 있음.✅ 해결 과정1️⃣ esptool.py 파일이 어디에 있는지 직접 검색아.. 2025. 4. 9.