'MATTER'에 해당되는 글 6건

  1. [MATTER] ESP32-H2 Matter ICD-LIT 전류 측정
  2. [MATTER] ESP32 User Factory Data
  3. [MATTER] ESP32 OpenThread RF Tx Power 조절
  4. [MATTER] ESP32-H2 Matter ICD 전류 소모 측정
  5. [MATTER] ESP32-C6 Matter ICD 전류 소모 측정
  6. [MATTER] Thread 주파수 설정

[MATTER] ESP32-H2 Matter ICD-LIT 전류 측정

 

이번에는 RX Tx Power을 조절 하면서 ICD-LIT ESP32-H2 3.3V 전류 측정.

LDO 출력 쪽에서 전류 측정을 했기 때문에 LDO 효율이나 Iq는 일단 생각 하지 않음.

측정 데이터를 확인 해보면 ICD-LIT 모드로 빈번한 RF TX/RX가 없기 때문에 base 전류가 영향을 많이 주는 걸 알 수 있다.

 

# 측정 : J5 에서 측정

 

# 소스 : https://github.com/espressif/esp-matter/tree/main/examples/icd_app

 

esp-matter/examples/icd_app at main · espressif/esp-matter

Espressif's SDK for Matter. Contribute to espressif/esp-matter development by creating an account on GitHub.

github.com

 

# 디바이스 : ESP32-H2-DevKitM
https://ko.aliexpress.com/item/1005008785703440.html?spm=a2g0o.order_list.order_list_main.20.6e83140fFyeYQ7&gatewayAdapt=glo2kor)

 

# 측정 : Nordic PPK2
(https://www.nordicsemi.com/Products/Development-hardware/Power-Profiler-Kit-2)

 

# HA + OBTR : SLZB-07 RCP (https://smlight.tech/product/slzb-07)

 

# 참고 자료 : ESP32 RX Tx Power 조절

2025.10.27 - [MATTER] - [MATTER] ESP32 OpenThread RF Tx Power 조절

 

#ICD-LIT 설정값

ParameterValue

ICD Fast Polling Interval 500ms
ICD Slow Polling Interval 20000ms
ICD Active Mode Duration 1000ms
ICD Idle Mode Duration 600s
ICD Active Mode Threshold 5000ms

 

ESP32-H2/ICD-LIT/3dB

RF Tx Power 3dB : 3시간20분 평균 56.36uA/3.3V 

 

 

 

ESP32-H2/ICD-LIT/8dB

RF Tx Power 8dB : 3시간20분 평균 52.48uA/3.3V

 

 

ESP32-H2/ICD-LIT/20dB

RF Tx Power 20dB : 3시간 평균 60.97uA/3.3V

[MATTER] ESP32 User Factory Data

chmod +x factory_flash.sh
./factory_flash.sh

esp32 matter 예제로 여러 디바이스를 커미셔닝 하면 HA 에서 동일한 디바이스로 인식하여 구분이 안된다.

Default 설정으로 컴파일 하면 동일한 factory 데이터를 사용해서 그렇다.

여러 디바이스를 커미셔닝 하여 원할하게 구분하여 사용 하고 싶으면 espressif에서 제공하는
"esp-matter-mfg-tool" 프로그램으로 각각의 고유의 factory 데이터를 생성하여 디바이스 별로 factory 파티션에 기입한다.

일반적인 프로그램 수정 후 업데이트는 NVS영역을 따로 업데이트 하지 않기 때문에 flash erase외에는 안전하게 factory 영역과 NVS영역에 커미셔닝 관련 데이터들이 보관된다.

 

# 참고 자료 : https://docs.espressif.com/projects/esp-matter/en/latest/esp32/developing.html

 

2. Developing with the SDK - ESP32 - — Espressif's SDK for Matter latest documentation

A host-based chip-tool can be used as a commissioner to commission and control a Matter device. During the previous install.sh step, the chip-tool is generated under the folder: Note macOS Users: To use chip-tool with BLE commissioning on macOS, you must i

docs.espressif.com

 

 

# user factory data 을 사용 하기 위해서 sdkconfig.defaults을 아래와 같이 수정.

# sdkconfig.defaults
# Use Factory Data
CONFIG_ENABLE_ESP32_FACTORY_DATA_PROVIDER=y
CONFIG_ENABLE_ESP32_DEVICE_INSTANCE_INFO_PROVIDER=y
CONFIG_CHIP_FACTORY_NAMESPACE_PARTITION_LABEL="fctry"
CONFIG_FACTORY_PARTITION_DAC_PROVIDER=y
CONFIG_FACTORY_COMMISSIONABLE_DATA_PROVIDER=y
CONFIG_FACTORY_DEVICE_INSTANCE_INFO_PROVIDER=y

 

 

# factory data을 생성하는 배치 파일 작성.

   -n 5 설정으로 총 5개의 데이터 생성.

  인증서는 matter sdk 기본 인증서 그대로 사용.

#!/bin/bash
echo "Generate Factory Data"

export MATTER_SDK_PATH=$ESP_MATTER_PATH/connectedhomeip/connectedhomeip

esp-matter-mfg-tool -n 5 -cn "SensorBasic" -v 0xFFF2 -p 0x8001 --pai \
    --vendor-name "test" --product-name "TempHumidity" \
    -k $MATTER_SDK_PATH/credentials/test/attestation/Chip-Test-PAI-FFF2-8001-Key.pem \
    -c $MATTER_SDK_PATH/credentials/test/attestation/Chip-Test-PAI-FFF2-8001-Cert.pem \
    -cd $MATTER_SDK_PATH/credentials/test/certification-declaration/Chip-Test-CD-FFF2-8001.der

 

 

# 그림과 같이 총 5개의 데이터 생성 확인

  xxx.bin 파티션 binary가 생성되고, 디마이스 커미셔닝시 필요한 qrcode도 각각 생성 된다.

factory partition data 생성

 

 

# 파티션 정보 ( factory 데이터는 "fctry" Label로 0x3E0000 번지에 할당 되어 있음.)

# Name,   Type, SubType, Offset,  Size, Flags
# Note: Firmware partition offset needs to be 64K aligned, initial 36K (9 sectors) are reserved for bootloader and partition table
esp_secure_cert,  0x3F, ,0xd000,    0x2000, encrypted
nvs,      data, nvs,     0x10000,   0xC000,
nvs_keys, data, nvs_keys,,          0x1000, encrypted
otadata,  data, ota,     ,          0x2000
phy_init, data, phy,     ,          0x1000,
ota_0,    app,  ota_0,   0x20000,   0x1E0000,
ota_1,    app,  ota_1,   0x200000,  0x1E0000,
fctry,    data, nvs,     0x3E0000,  0x6000

 

 

# 생성된 factory 파티션 정보를 write 하는 배치 파일 작성.(디바이스 별로 관리 하기 쉽게 1,2,3으로 분리)

#!/bin/bash
echo "Write Factory Data"

# 파라미터 체크
if [ $# -eq 0 ]; then
    echo "Usage: $0 <1|2|3>"
    exit 1
fi

# case문으로 분기
case "$1" in
    1)
        echo "write case1"
        esptool.py write_flash 0x3E0000 out/fff2_8001/63a899fa-e5c7-4cd4-bc01-131629fd35cb/63a899fa-e5c7-4cd4-bc01-131629fd35cb-partition.bin
        ;;
    2)
        echo "write case2"
        esptool.py write_flash 0x3E0000 out/fff2_8001/69e615b0-5f41-4ed9-9add-0e1c4869468f/69e615b0-5f41-4ed9-9add-0e1c4869468f-partition.bin
        ;;
    3)
        echo "write case3"
        esptool.py write_flash 0x3E0000 out/fff2_8001/0546a175-e721-433d-a854-6c07dce844a7/0546a175-e721-433d-a854-6c07dce844a7-partition.bin
        ;;
    *)
        echo "Error: Invalid parameter '$1'"
        echo "Available options: 1, 2, 3"
        exit 1
        ;;
esac    

echo "Flash write completed!"

 

 

# 스크립트 실행 방법
스크립트 권항 부여 후 몇번 factory data을 기입할지 결정

chmod +x factory_flash.sh
./factory_flash.sh 1

[MATTER] ESP32 OpenThread RF Tx Power 조절

 

ESP32 OpenThread RF Tx Power 조절 API.

 

matter task 시작 후 사용 한다.

 

/* for set_tx_power() */
#include "esp_openthread.h"
#include <openthread/platform/radio.h>


void set_tx_power( int8_t power ) {
  otInstance *ins = esp_openthread_get_instance();
  otPlatRadioSetTransmitPower(ins, power); // dBm
}

extern "C" void app_main()
{
    ~~~~~~~~~~~~~~~~~~

  /* Matter start */
  err = esp_matter::start(app_event_cb);
  ABORT_APP_ON_FAILURE(err == ESP_OK, ESP_LOGE(TAG, "Failed to start Matter, err:%d", err));

  /* Matter와 OpenThread가 완전히 시작된 후 잠시 대기 */
  vTaskDelay(pdMS_TO_TICKS(1000)); 
  set_tx_power(8);  /* 8dBm으로 설정 */
}

 

[MATTER] ESP32-H2 Matter ICD 전류 소모 측정

ESP32-H2 Matter ICD 전류 소모 측정

 

# 소스 : https://github.com/espressif/esp-matter/tree/main/examples/icd_app

 

esp-matter/examples/icd_app at main · espressif/esp-matter

Espressif's SDK for Matter. Contribute to espressif/esp-matter development by creating an account on GitHub.

github.com

# 디바이스 : ESP32-H2-DevKitM
https://ko.aliexpress.com/item/1005008785703440.html?spm=a2g0o.order_list.order_list_main.20.6e83140fFyeYQ7&gatewayAdapt=glo2kor)

 

# 측정 : Nordic PPK2
(https://www.nordicsemi.com/Products/Development-hardware/Power-Profiler-Kit-2)

 

# HA + OBTR : SLZB-07 RCP (https://smlight.tech/product/slzb-07)

 

# 비교 자료 : ESP32-C6 전류 측정 자료

2025.10.24 - [MATTER] - [MATTER] ESP32-C6 Matter ICD 전류 소모 측정

 

 

ICD-SIT 설정값

ParameterValue

ICD Fast Polling Interval 500ms
ICD Slow Polling Interval 5000ms
ICD Active Mode Duration 1000ms
ICD Idle Mode Duration 60s
ICD Active Mode Threshold 1000ms

 

ICD-LIT 설정값

ParameterValue

ICD Fast Polling Interval 500ms
ICD Slow Polling Interval 20000ms
ICD Active Mode Duration 1000ms
ICD Idle Mode Duration 600s
ICD Active Mode Threshold 5000ms

 

ESP32-H2 / ICD-SIT / +20dB

ESP32-C6기준 +20dB 시 피크 전류가 250mA까지  측정 되지만, H2에서는 100mA 언더로 측정 확인.

약 2분 평균 151uA/3.3V 측정 확인. 단순 비교로는 C6 대비 대충 50% 저게 소모.

 

 

ESP32-H2 / ICD-SIT / +8dB

tx power +8dB 조절 후 피크 전류는 약 50% 이하 낮아 지는 걸 확인.

재밌는건 +20dB 대비 똑같은 조건에서 tx power을낮춰 피크 전류는 줄였지만, 같은 시간대 측정 전류는 좀 더 크게 측정 됨.

스샷으로는 구분 안되는 결국 RF 통신 횟수가 중요 하다는거.

 

ESP32-H2 / ICD-LIT / +8dB

SIT에서 LIT 전환시 약 1/3 이하로 전류 소모 감소.

TX 피크 전류도 중요하지만, RF 통신 횟구 감소가 절대적으로 평균 소모 전류에 영향을 준다는걸 확인.

[MATTER] ESP32-C6 Matter ICD 전류 소모 측정

ESP32-C6 Matter ICD 전류 소모 측정.

전류 측정

 

# 소스 : https://github.com/espressif/esp-matter/tree/main/examples/icd_app

 

esp-matter/examples/icd_app at main · espressif/esp-matter

Espressif's SDK for Matter. Contribute to espressif/esp-matter development by creating an account on GitHub.

github.com

 

# 디바이스 : ESP32-C6-DevKitC-1
(https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32c6/esp32-c6-devkitc-1/user_guide.html)

 

# 측정 : Nordic PPK2
(https://www.nordicsemi.com/Products/Development-hardware/Power-Profiler-Kit-2)

 

# HA + OBTR : SLZB-07 RCP (https://smlight.tech/product/slzb-07)

 

 

ICD-SIT 설정값

ParameterValue

ICD Fast Polling Interval 500ms
ICD Slow Polling Interval 5000ms
ICD Active Mode Duration 1000ms
ICD Idle Mode Duration 60s
ICD Active Mode Threshold 1000ms

 

ICD-LIT 설정값

ParameterValue

ICD Fast Polling Interval 500ms
ICD Slow Polling Interval 20000ms
ICD Active Mode Duration 1000ms
ICD Idle Mode Duration 600s
ICD Active Mode Threshold 5000ms

 

 

ESP32-C6 / ICD-SIT / +20dB

 

Default tx power가 +20dB 상태에서 피크 전류가 250mA 까지 소모 확인.
60sec Idle Mode Duration 확인. 이후 1sec Active Mode Threshomd 확인.

2분 평균 291uA/3.3V

 

 

ESP32-C6 / ICD-SIT / +8dB

tx power +8dB 낮춰서 피크 전류가 200mA 낮아 지는 걸 확인.
평균 전류는 미비하게 낮아 지는걸 확인.

2분 평균 274uA/3.3V

 

 

ESP32-C6 / ICD-LIT / +8dB

LIT 모드 전환시 SIT 대비 50% 이하 확인.
600sec Idle Mode Duration 확인. 이후 5sec Active Mode Threshold 확인.

10분 평균 132uA/3.3V

[MATTER] Thread 주파수 설정

HA에서 OTBR add on 후 15번 채널이 default 선택 됩니다.

각자의 주변 환경에 맞게 알맞게 변경 해서 사용 하면 될것 같습니다.

 

1순위 25번 채널이 객관적으로 좋아 보이기는 합니다.

2순위 26번 채널은 BLE ADV 채널과 정확히 일치해서, 주변에 페어링 되지 않은 BLE 장치가 많으면 주기적으로

Advertising하기 때문에 오히려 더 안 좋을 수도 있을 것 같습니다.

 

 

테이블 작성은 gpt 가 활용 되었습니다.

 

구분 채널 번호 중심 주파수 (MHz) 비교

Wi-Fi 1 2412 BLE 2~3, Thread 11~13과 겹침
  6 2437 BLE 17~18, Thread 16~18과 겹침
  11 2462 BLE 32~33, Thread 21~23과 겹침
Thread 11 2405 BLE 0~1 인접
  12 2410 BLE 3 근처
  13 2415 BLE 4~5 부근
  14 2420 BLE 6~7 사이
  15 2425 ✅ BLE 8~9 인접 / Wi-Fi 간섭 적음
  16 2430 BLE 10~11
  17 2435 BLE 12~13 / Wi-Fi 6 인접
  18 2440 BLE 14~15
  19 2445 BLE 16~17
  20 2450 ✅ BLE 18~19 / Wi-Fi 8~9 사이
  21 2455 BLE 20~21
  22 2460 BLE 22~23 / Wi-Fi 10~11 근처
  23 2465 BLE 24~25
  24 2470 BLE 26~27
  25 2475 ✅ BLE 28~29 / Wi-Fi 대역 거의 벗어남
  26 2480 ✅ BLE 39(광고채널)와 인접, Wi-Fi 완전 분리
BLE (Bluetooth Low Energy) 0 2402 Thread 11 인접
  37 (Adv) 2402 Thread 11 인접 (광고채널)
  38 (Adv) 2426 Thread 15 근처 (광고채널)
  39 (Adv) 2480 Thread 26 동일 (광고채널)
  1~36 2404~2478 2MHz 간격, 주로 Thread와 여러 구간 중첩

 

구간 주요 기술 간섭 가능성 설명

2400~2420 MHz Wi-Fi 1~2, BLE 0~8, Thread 11~14 🔥 높음 BLE 광고채널 37 포함
2420~2445 MHz Wi-Fi 3~6, BLE 9~17, Thread 15~19 ⚠️ 중간 BLE 광고채널 38 포함
2445~2475 MHz Wi-Fi 7~11, BLE 18~29, Thread 20~25 ⚠️ 중간~높음 실내 간섭이 가장 많음
2475~2480 MHz Thread 25~26, BLE 광고채널 39 ✅ 낮음 Wi-Fi 대역 밖, Thread 안정적

 

추천 우선순위 Thread 채널 이유

🌟 1순위 25 Wi-Fi 대역 밖, BLE 광고채널과 간섭 적음
🌟 2순위 26 Wi-Fi 완전 분리, 단 BLE 39와 살짝 인접 (간섭 거의 없음)
👍 3순위 15 Wi-Fi 3~4 사이, BLE 8~9 인접 → 안정적
👍 4순위 20 Wi-Fi 8~9 사이, BLE 18~19 인접 → 비교적 안전