콘텐츠로 이동

XM10 Extension Module SDK v2.4.0

릴리즈 날짜: 2026-07-21 | 대상 HW: Rev 2.0 전용 | KIT H10 FW: v2.3.0+


한눈에 보기

USB 시리얼 사용성을 크게 개선한 Rev 2.0 릴리즈입니다. 일반 시리얼 터미널에서 예제의 텍스트 출력이 보이지 않던 문제를 근본적으로 해결했고, 그 과정에서 USB 통신 모드 API를 더 단순한 형태로 정리했습니다.

  • 일반 터미널에서 텍스트 예제가 바로 보입니다 — 이전에는 Ex.07~09 같은 텍스트 예제를 Tera Term · VS Code Serial Monitor · PuTTY 로 열면, 보드가 PhAI Studio 용 실시간 데이터를 계속 내보내 텍스트가 묻혀 보이지 않았습니다(터미널 설정을 직접 바꿔야 했음). 이제 텍스트 예제가 터미널 프로파일을 자동 지정해, 별도 조작 없이 깨끗한 텍스트만 출력합니다.
  • USB 통신 모드 API 단순화 — 새 함수 XM_USB_SetHostProfile() 하나로 "PhAI Studio 로 쓸지 / 일반 터미널로 쓸지"만 고르면 됩니다. (아래 ⚠️ API 변경 참고 — 기존 XM_USB_SetMode() 계열은 제거되었습니다.)
  • 부트로더 디버그 안내 보강 — 디버그 설정에서 벡터 테이블 주소(0x08040400)를 명시하도록 문서를 보강했고, 디버그 시작 시 main() 에서 멈추는 것이 정상 동작임을 안내했습니다.
  • 안정성·빌드 개선 — GRF 센서 모듈 안정성 추가 개선, 의도하지 않은 리셋 방지, CubeIDE 빌드 안정화.

⚠️ API 변경 — USB 통신 모드 (Rev 2.0)

USB-CDC 통신 모드를 다루는 API가 더 단순한 프로파일 방식으로 교체되었습니다.

제거된 API (Rev 2.0 헤더에서 삭제):

  • 함수: XM_USB_GetMode() · XM_USB_SetMode() · XM_USB_RegisterModeChangeCallback()
  • 타입: XM_USB_Mode_e · XM_USB_ModeChangeCb_t

대체 API:

void XM_USB_SetHostProfile(XM_USB_HostProfile_e profile);

typedef enum {
    XM_USB_HOST_PHAI_STUDIO = 0,  // 기본값 — PhAI Studio 실시간 스트리밍
    XM_USB_HOST_TERMINAL    = 1,  // 일반 터미널 / 커스텀 프로그램 (Total Data 자동 전송 OFF)
} XM_USB_HostProfile_e;

마이그레이션 — 이전에 터미널 용도로 모드를 직접 바꾸던 코드가 있다면 아래처럼 한 줄만 바꿔주세요:

// 이전 (v2.3.1)
XM_USB_SetMode(XM_USB_MODE_TERMINAL);

// 이후 (v2.4.0)
XM_USB_SetHostProfile(XM_USB_HOST_TERMINAL);
  • 미호출 시 기본값은 XM_USB_HOST_PHAI_STUDIO 이므로, 모드를 따로 만지지 않던 코드는 변경 없이 그대로 동작합니다(기존 PhAI Studio 스트리밍 유지).
  • 선택한 프로파일은 케이블을 다시 연결하거나 PC 프로그램이 포트를 다시 열어도 유지됩니다.

다운로드

파일 대상 보드
Rev2.0.zip 🆕 XM10 Rev 2.0 (Ethernet / RTC 포함 최신 보드) — v2.4.0 신규
Rev1.1.zip XM10 Rev 1.1 (초기 개발용 보드) — v2.3.1 과 동일

본인 보드 리비전과 같은 ZIP 을 받아주세요. RJ45 Ethernet 포트가 있으면 Rev 2.0, 없으면 Rev 1.1 입니다.

Rev 1.1 사용자 안내: 이번 v2.4.0 개선(USB 사용성·API 정리)은 Rev 2.0 전용입니다. Rev 1.1 SDK 는 v2.3.1 에서 바뀐 내용이 없어, Rev1.1.zip 은 v2.3.1 과 동일한 파일을 그대로 첨부했습니다. Rev 1.1 을 쓰신다면 추가로 받으실 것이 없습니다.

Release 첨부 파일

부트로더 · KIT H10 펌웨어 · 컨텐츠 파일은 v2.3.0 과 동일하며, 편의를 위해 v2.4.0 릴리즈에도 같은 파일을 그대로 첨부했습니다 (AGR_Bootloader.bin / SUIT_H10_Binary_20260716.zip / SUIT_ContentsFiles.zip). 이미 v2.3.0/v2.3.1 기준으로 설치·업데이트하셨다면 추가 작업이 없습니다.

준비물 안내

빌드 마무리 단계(업로드용 .bin 생성)가 Python 을 사용합니다. 아직 설치하지 않았다면 개발 환경 구축 의 안내대로 Python 3.10+ 를 설치해 주세요 (PATH 등록 필수).


개선 상세

USB 시리얼 (핵심)

  • 텍스트 예제 자동 정리 — Ex.07 (07_CDC_Basic_Print) · Ex.08 (08_CDC_Sensor_Print) 이 Control_Setup() 에서 호스트 프로파일을 TERMINAL 로 지정합니다. 1kHz 실시간 데이터 자동 전송이 꺼져, 일반 시리얼 터미널에 깨끗한 텍스트만 나옵니다. 터미널 설정을 따로 바꿀 필요가 없습니다.
  • USB 모드 선택 단순화 — 사용자에게는 프로파일 2가지(PhAI Studio / 터미널)만 보입니다.

부트로더 디버그 문서

  • 디버그 설정에서 벡터 테이블 주소 0x08040400 를 지정하도록 문서를 보강했습니다. 이 값을 비워두면 디버거가 엉뚱한 곳에서 멈추는 증상이 있었습니다.
  • 디버그 시작 시 main() 에서 자동 정지하는 것은 정상(CubeIDE 기본 동작)이며, Resume(F8) 로 진행하면 됨을 안내했습니다.

안정성 · 빌드

  • GRF 센서 모듈 안정성 추가 개선 — 불필요한 리셋 반복을 줄였습니다. (v2.3.1 의 GRF 부팅 안정화에 이은 후속 개선)
  • 의도하지 않은 리셋 방지 — MCU 리셋 핀 처리를 정리해, 외부 요인으로 보드가 리셋될 여지를 없앴습니다.
  • CubeIDE 빌드 안정화 — CubeMX 로 코드를 다시 생성해도 빌드가 깨지지 않도록 정리했습니다.

호환성 안내

항목 영향
사용자 코드 (Control_Setup / Control_Loop) 대부분 변경 없음 — 단, XM_USB_SetMode() 계열을 직접 쓰던 코드는 위 ⚠️ API 변경 의 마이그레이션 참고
XM_USB_SetMode / GetMode / Mode_e 계열 제거 — XM_USB_SetHostProfile() 로 대체
그 외 API 시그니처 변경 없음
Rev 1.1 SDK v2.3.1 그대로 — 이번 릴리즈 대상 아님
KIT H10 펌웨어·컨텐츠 파일 v2.3.0 그대로 — 추가 업데이트 불필요
부트로더 v1.1.0 그대로 — 재설치 불필요
사용자 데이터 (USB 메모리 로그 등) 변경 없음 — 데이터 포맷 호환

관련 자료