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 메모리 로그 등) | 변경 없음 — 데이터 포맷 호환 |