코딩게시판

ESPHome ESP32-C6 wifi 로 인스톨후 버전이름 업데이트 안될때 구성 방법

작성자 정보

  • 최고관리자 작성
  • 192.♡.0.1 아이피
  • 작성일

컨텐츠 정보


  • 링크

  • 첨부


  • 본문

    ESPHome ESP32-C6 / ESP32-S3 OTA allow_partition_access 설정 정리

    1. 목적

    ESPHome에서 ESP32-C6, ESP32-S3 등의 장치를 Wi-Fi OTA로 업데이트할 때 Partition Table 및 Bootloader 영역에 대한 OTA 접근을 허용하기 위한 설정이다.

    특히 다음과 같은 경우 참고한다.

    • ESP32-C6 사용

    • ESP32-S3 사용

    • 사용자 정의 partitions.csv 사용

    • Zigbee용 partitions_zb.csv 사용

    • USB 설치는 정상인데 Wi-Fi OTA 후 이전 펌웨어로 돌아가는 경우

    • 파티션 구조를 변경한 장치

    • OTA 업데이트 후 ESPHome 버전이 변경되지 않는 경우


    2. 기본 설정

    ota:
      - platform: esphome
        password: "OTA_PASSWORD"
    
        # Partition Table / Bootloader OTA 접근 허용
        allow_partition_access: true
    

    실제 사용할 때 OTA_PASSWORD에는 해당 장치의 OTA 비밀번호를 입력한다.


    3. allow_partition_access의 의미

    allow_partition_access: true
    

    설정은 ESPHome OTA에서 ESP32의 다음 영역에 대한 접근을 허용한다.

    ESP32 Flash
    │
    ├── Bootloader
    │
    ├── Partition Table
    │
    ├── NVS
    │
    ├── OTA Data
    │
    ├── APP0
    │
    ├── APP1
    │
    └── 기타 사용자 파티션
    

    일반적인 Wi-Fi OTA에서는 주로 새로운 APP 펌웨어를 OTA 파티션에 기록한다.

    새 ESPHome 펌웨어
           ↓
    Wi-Fi OTA
           ↓
    OTA APP 파티션
           ↓
    ESP32 재부팅
           ↓
    새 펌웨어 실행
    

    allow_partition_access: true는 OTA 작업에서 Partition Table 및 Bootloader 관련 영역에 접근할 수 있도록 허용하는 옵션이다.


    4. 중요한 주의사항

    다음 설정을 추가했다고 해서

    allow_partition_access: true
    

    일반적인 펌웨어 OTA를 할 때마다 Partition Table이나 Bootloader가 자동으로 업데이트된다는 의미는 아니다.

    즉,

    allow_partition_access: true
    
            ≠
    
    일반 OTA 때 Partition Table 자동 업데이트
    

    정확한 의미는 다음과 같다.

    allow_partition_access: true
    
            ↓
    
    OTA를 통한 Partition Table /
    Bootloader 영역 접근을 허용
    

    따라서 파티션 구조 자체를 변경한 경우에는 별도의 파티션 업데이트 절차 또는 USB 전체 설치가 필요할 수 있다.


    5. ESP32-C6 사용

    ESP32-C6에서도 사용할 수 있다.

    특히 Zigbee/Thread 관련 사용자 정의 파티션을 사용하는 경우 유용하다.

    예:

    esp32:
      board: esp32-c6-devkitc-1
      partitions: partitions_zb.csv
    
      framework:
        type: esp-idf
    
    
    ota:
      - platform: esphome
        password: "OTA_PASSWORD"
    
        # Partition Table / Bootloader OTA 접근 허용
        allow_partition_access: true
    

    예를 들어 현재 장치가 다음과 같이 구성되어 있다면

    esp32:
      board: esp32-c6-devkitc-1
      partitions: partitions_zb.csv
    

    ESPHome에서 컴파일하는 partitions_zb.csv와 ESP32-C6 Flash에 실제 기록되어 있는 Partition Table이 서로 같은지 확인하는 것이 중요하다.


    6. ESP32-C6에서 발생할 수 있는 증상

    대표적인 증상:

    ESPHome 최신 버전으로 컴파일
              ↓
    Wi-Fi OTA 전송
              ↓
    OTA 성공
              ↓
    ESP32-C6 재부팅
              ↓
    새 펌웨어 부팅 문제
              ↓
    OTA Rollback
              ↓
    이전 펌웨어 실행
    

    사용자 입장에서는 다음과 같이 보일 수 있다.

    Wi-Fi OTA
    → ESPHome 버전 업데이트 안 됨
    
    USB Install
    → ESPHome 최신 버전 정상 적용
    

    이 경우 단순 Wi-Fi 통신 문제뿐만 아니라 다음 항목을 확인한다.

    1. Partition Table

    2. OTA APP 크기

    3. APP0 / APP1 파티션 크기

    4. Bootloader

    5. OTA rollback

    6. 사용자 정의 partitions_zb.csv


    7. ESP32-S3에서도 사용 가능

    allow_partition_access는 ESP32-C6 전용 설정이 아니다.

    ESP32-S3에서도 사용할 수 있다.

    예:

    esp32:
      board: esp32-s3-devkitc-1
    
      framework:
        type: esp-idf
    
    
    ota:
      - platform: esphome
        password: "OTA_PASSWORD"
    
        # Partition Table / Bootloader OTA 접근 허용
        allow_partition_access: true
    

    따라서 ESP32-S3 장치에서도 동일한 OTA 설정을 사용할 수 있다.


    8. ESP32-S3 + 사용자 정의 Partition

    ESP32-S3에서 사용자 정의 Partition Table을 사용하는 경우에는 더욱 확인할 필요가 있다.

    예:

    esp32:
      board: esp32-s3-devkitc-1
      partitions: partitions.csv
    
      framework:
        type: esp-idf
    
    
    ota:
      - platform: esphome
        password: "OTA_PASSWORD"
        allow_partition_access: true
    

    구조는 다음과 같다.

    ESP32-S3
       │
       ├── Bootloader
       │
       ├── partitions.csv
       │
       ├── OTA Data
       │
       ├── APP0
       │
       ├── APP1
       │
       └── NVS
    

    ESP32-S3에서 기본 Partition Table만 사용하고 Wi-Fi OTA가 정상적으로 동작한다면 allow_partition_access: true는 반드시 필요한 설정은 아니다.

    하지만 사용자 정의 파티션을 사용하거나 OTA 관련 문제가 발생하는 장치에서는 사용할 수 있다.


    9. C6 / S3 적용 기준

    장치 및 구성설정 권장
    ESP32-C6 + partitions_zb.csv권장
    ESP32-C6 + 사용자 정의 Partition권장
    ESP32-C6 + OTA 문제 발생권장
    ESP32-S3 + 사용자 정의 Partition권장
    ESP32-S3 + OTA 문제 발생권장
    ESP32-S3 + 기본 Partition + 정상 OTA선택
    일반 ESP32 + 기본 Partition + 정상 OTA선택

    10. 권장 공통 OTA 설정

    ESP32-C6와 ESP32-S3에서 공통으로 다음 형태로 사용할 수 있다.

    api:
      reboot_timeout: 3min
    
    
    ota:
      - platform: esphome
        password: "OTA_PASSWORD"
    
        # ESP32 Partition Table / Bootloader OTA 접근 허용
        allow_partition_access: true
    
    
    wifi:
      ssid: !secret wifi_ssid
      password: !secret wifi_password
    
      power_save_mode: none
      reboot_timeout: 3min
    

    11. 사용자 정의 Partition을 변경한 경우

    partitions.csv 또는 partitions_zb.csv 내용을 변경했다면 처음 한 번은 USB 설치를 사용하는 것이 가장 확실하다.

    권장 순서:

    YAML 수정
         ↓
    partitions.csv
    또는
    partitions_zb.csv 수정
         ↓
    Clean Build
         ↓
    USB 전체 설치
         ↓
    정상 부팅 확인
         ↓
    Wi-Fi 연결 확인
         ↓
    이후 Wi-Fi OTA 사용
    

    USB 설치를 통해 실제 ESP32 Flash의 Partition Table과 현재 ESPHome 프로젝트에서 사용하는 Partition Table을 일치시켜 놓는 방법이다.


    12. OTA 이후 버전 확인

    OTA가 실제 적용됐는지 확인하려면 ESPHome Version 센서를 추가해 두면 편리하다.

    text_sensor:
      - platform: version
        name: "ESPHome Firmware Version"
        id: esphome_firmware_version
        entity_category: diagnostic
    
        hide_timestamp: false
        hide_hash: false
    

    이를 통해 Home Assistant에서 실제 장치가 실행하고 있는 ESPHome 펌웨어 버전을 확인할 수 있다.

    예:

    ESPHome Firmware Version
    
    2026.8.x
    

    OTA 후에도 이전 버전이 계속 표시된다면 OTA 전송 성공 여부뿐 아니라 재부팅 이후 rollback 여부도 확인한다.


    13. 최종 권장 구성

    ESP32-C6

    esp32:
      board: esp32-c6-devkitc-1
      partitions: partitions_zb.csv
    
      framework:
        type: esp-idf
    
    
    ota:
      - platform: esphome
        password: "OTA_PASSWORD"
    
        # Partition Table / Bootloader OTA 접근 허용
        allow_partition_access: true
    

    ESP32-S3

    esp32:
      board: esp32-s3-devkitc-1
    
      framework:
        type: esp-idf
    
    
    ota:
      - platform: esphome
        password: "OTA_PASSWORD"
    
        # Partition Table / Bootloader OTA 접근 허용
        allow_partition_access: true
    

    ESP32-S3에서 사용자 정의 파티션을 사용한다면:

    esp32:
      board: esp32-s3-devkitc-1
      partitions: partitions.csv
    
      framework:
        type: esp-idf
    
    
    ota:
      - platform: esphome
        password: "OTA_PASSWORD"
        allow_partition_access: true
    

    14. 핵심 요약

    ESP32-C6 / ESP32-S3
            │
            ├── 기본 Partition
            │       ↓
            │   정상 OTA라면 선택 사항
            │
            └── 사용자 정의 Partition
                    ↓
           partitions.csv
           partitions_zb.csv
                    ↓
          allow_partition_access: true
                    ↓
           OTA Partition 접근 허용
    

    최종 정리

    allow_partition_access: true는 ESP32-C6뿐 아니라 ESP32-S3에서도 사용할 수 있다.

    특히 partitions.csv, partitions_zb.csv 같은 사용자 정의 Partition Table을 사용하는 장치에서는 OTA 관리 목적으로 권장할 수 있다.

    단,

    allow_partition_access: true = Partition Table 자동 업데이트

    는 아니다.

    파티션 구조를 실제로 변경했다면 USB로 한 번 전체 설치한 후 Wi-Fi OTA를 사용하는 방법이 가장 확실하다.


    첨부 파일을 스킨보드에 구성 PDF보기( W:\g5\skin\board\BS4-Basic-Webzine_11q_pdf_php82\view.skin.php + view_pdf.php구성)



    관련자료

    댓글 0
    등록된 댓글이 없습니다.

    최근글


    새댓글