콘텐츠로 이동

하드웨어 스펙

XM10 보드의 외부 인터페이스를 한 곳에 모았습니다. 보드에 뭐가 몇 개 있는지, 어디에 꽂으면 되는지 처음 시작할 때 가장 먼저 보게 되는 페이지입니다.

보드 외관 사진과 리비전별 GPIO 헤더 사진은 assets/img/ 에서 관리합니다.


한눈에

분류 개수 / 종류 비고
보드 LED 3 개 LED 1 (좌) · LED 2 (중) · LED 3 (우)
채널 LED 7 개 RGB EMG / FES / IMU / HMMG / GRF_L / GRF_R / USB (모듈 상태 표시용)
버튼 3 개 BTN 1 (좌) · BTN 2 (중) · BTN 3 (우)
외부 GPIO DIO 8 + ADC 4 (+ 동적 ADC 8) Rev 별 핀맵 참조
CAN-FD 포트 2 개 KIT H10 연결 + 센서 허브 확장
USB-C 1 개 시리얼 통신 (CDC) — PC 실시간 연결. Rev 2.0 은 USB 메모리에 저장할 수도 있습니다 (PC 와는 한 번에 하나만). (보드 확인 전)
외부 UART 1 개 (Rev 2.0 만) 외부 장비와 직렬 통신 — 범용 Serial API. Rev 1.1 에는 이 포트가 없습니다
SWD 디버그 4-pin ST-Link 펌웨어 업로드·디버깅
메인 커넥터 1 개 KIT H10 본체 연결 (24V 전원 + CAN-FD)

각 인터페이스의 정확한 위치는 아래 보드 외관 사진을 참고하세요.


보드 외관

XM10 보드 외관 — 인터페이스 위치

LED 3 개 / 버튼 3 개 / 메인 커넥터 / SWD / USB-C / CAN-FD / 외부 GPIO 헤더 / 외부 UART 의 물리적 위치를 한눈에 보여주는 사진입니다. 리비전별 외부 GPIO 헤더 핀맵은 Rev 1.1 / Rev 2.0 페이지를 따로 참조하세요.


외부 인터페이스

메인 커넥터 (KIT H10 연결)

XM10 의 전원 + 통신을 한 가닥으로 받습니다. Molex 1053081206 6-pin 커넥터.

핀 기능
1 NC
2 24 V (전원)
3 GND
4 GND
5 CAN HIGH
6 CAN LOW

연결 절차: Getting Started — 01 하드웨어 연결

CAN-FD 포트

총 2 개. 하나는 메인 커넥터로 KIT H10 과 통신, 다른 하나는 센서 허브 (EMG/GRF/FSR 등) 확장용.

포트 용도
CAN-FD #1 KIT H10 외골격 ↔ XM10 (메인 커넥터에 포함)
CAN-FD #2 센서 허브 모듈 확장

EMG Hub 는 내부에서 개발 중인 모듈입니다. 사용하려면 https://huphailab.com/contact 로 문의해 주세요.

USB-C 포트

USB 시리얼 통신 (CDC) 로 실시간 데이터 스트리밍과 디버그 메시지를 주고받습니다. Rev 2.0 은 같은 포트에 USB 메모리를 꽂아 저장할 수도 있습니다. 포트가 하나라서 PC 와 USB 메모리는 한 번에 하나만 씁니다.

모드 용도 사용하는 함수
시리얼 (CDC) PC 터미널(텍스트 디버그) / xm10 도구(사용자 구조체)로 전송. PhAI Studio 는 Total Data(0x20)를 표시 XM_SendUsbDebugMessage, XM_SendUsbDataWithId
USB 메모리 저장 🟢 Rev 2.0 전용 USB 메모리에 구조체 하나를 정한 주기로 저장하고, 저장한 폴더를 PC 에서 풂 (USB 메모리 저장). 꽂아 두는 동안에는 PC 와 USB 로 연결되지 않습니다. (보드 확인 전) XM_SetUsbLogSource, XM_StartUsbDataLog, XM_StopUsbDataLog

외부 UART 포트 🟢 Rev 2.0 전용

외부 장비와 직렬(UART)로 통신하는 포트입니다. 상대는 다른 XM10, 아두이노, PC, 다른 MCU — 무엇이든 됩니다.

항목 값
페리페럴 / 핀 USART2, TX = PD5(EXT_UART_TX) / RX = PD6(EXT_UART_RX)
로직 레벨 3.3 V — 5 V 장비 직결 금지(레벨 시프터 필요)
기본 설정 921600 8N1, 흐름 제어 없음 (속도만 변경 가능, 8N1 은 고정)
1 회 송신 상한 128 바이트

배선할 때 TX ↔ RX 를 교차하고 GND 를 반드시 연결하세요. 가장 많이 틀리는 부분입니다.

소프트웨어: v2.7.0 부터 XM_AttachExternalUart() · XM_SetExternalUartBaudrate() · XM_SendExternalUartData() · XM_SendExternalUartDataBlocking() · XM_EnsureExternalUartRxArmed() 5 개 함수로 씁니다 — API 레퍼런스 · Ex.43 External UART Ping-Pong.

XSENS MTi 같은 특정 IMU 를 이 포트에 붙이는 전용 드라이버도 있지만, 그건 범용 Serial API 와 동시에 쓸 수 없어 빌드 설정으로 하나만 고릅니다(기본은 범용 Serial). 자세한 내용은 위 API 레퍼런스의 5 번 절을 보세요.

🛑 Rev 1.1 에는 이 포트가 없습니다. 시리얼 포트는 발바닥 센서(GRF)용 UART7/UART8 뿐이고, Rev 1.1 의 PD6 은 USB_PWR_ON — USB 전원을 켜고 끄는 출력 핀입니다. Rev 2.0 배선을 Rev 1.1 보드에 그대로 적용하면 상대 보드의 TX 와 출력끼리 맞부딪칩니다. 본인 보드 리비전을 먼저 확인하세요.

SWD 디버그 포트

ST-Link V2/V3 디버거 연결용 4-pin 헤더. 펌웨어를 처음 올릴 때 + 디버깅할 때 사용.

핀 배치: Getting Started — 01 하드웨어 연결


보드 입력·출력

버튼

버튼 위치 API MCU 핀 (Rev 1.1) MCU 핀 (Rev 2.0)
BTN 1 좌측 XM_GetButtonEvent(XM_BTN_1) PC10 PC11
BTN 2 중앙 XM_GetButtonEvent(XM_BTN_2) PC11 PC12
BTN 3 우측 XM_GetButtonEvent(XM_BTN_3) PC12 PC13

지원 이벤트: 눌림 (XM_BTN_PRESSED), 떼짐 (XM_BTN_RELEASED), 클릭 (XM_BTN_CLICK), 1 초 이상 길게 누름 (XM_BTN_LONG_PRESS).

⚠️ Rev 1.1 → Rev 2.0 으로 가면서 내장 버튼 3 개가 한 핀씩 옮겨졌습니다 (PC10 자리는 Rev 2.0 에서 외장 SRAM (PSRAM) 용으로 빠졌습니다). API 이름 (XM_BTN_1/2/3) 은 양쪽에서 그대로 좌·중·우 의미를 유지하므로, 본인 보드와 같은 Rev 의 SDK ZIP 만 쓰면 신경 쓸 필요 없습니다. 다른 Rev 의 ZIP 을 올리면 버튼 매핑이 한 칸씩 어긋납니다.

LED

LED 위치 API
LED 1 좌측 XM_SetLedState(XM_LED_1, XM_ON) 등
LED 2 중앙 XM_SetLedState(XM_LED_2, ...)
LED 3 우측 XM_SetLedState(XM_LED_3, ...)

지원 효과: 켜기·끄기 (XM_LED_SOLID/OFF), 깜빡이기 (BLINK), 두근두근 (HEARTBEAT), 한 번만 (ONESHOT).

채널 LED (RGB 7 개)

각 센서 모듈의 연결 상태를 색으로 표시하는 RGB LED. 시스템이 자동으로 제어하지만, 필요하면 XM_SetChannelLedRGB() 로 사용자가 직접 색을 지정할 수도 있습니다.

채널 LED 표시 모듈
XM_CH_LED_EMG EMG 모듈
XM_CH_LED_FES FES 모듈
XM_CH_LED_IMU IMU 모듈
XM_CH_LED_HMMG HMMG 모듈
XM_CH_LED_GRF_L / _GRF_R 좌·우 GRF 슈즈
XM_CH_LED_USB USB 연결 상태

LED + 버튼 API 전체: LED & 버튼


외부 GPIO 핀맵

외부 GPIO 헤더는 사용자가 가장 자주 들여다보게 되는 부분입니다. 보드 리비전에 따라 커넥터 위치·라벨이 다르므로 사용 중인 보드에 맞는 페이지를 보세요.

보드 리비전 핀맵 페이지
Rev 1.1 external-gpio-rev1.1.md
Rev 2.0 external-gpio-rev2.0.md

핀 자체의 사용법 (어떻게 입출력 함수를 호출하는지) 은 외부 IO API 에 정리되어 있습니다.


보드 리비전 비교

본인 보드가 어느 리비전인지부터 확인하세요. 보드 라벨에 Rev 1.1 / Rev 2.0 표기가 있고, 외관상 가장 쉽게 구별되는 차이는 RJ45 Ethernet 포트의 유무 (Rev 2.0 만 있음) 입니다.

항목 Rev 1.1 Rev 2.0
RJ45 Ethernet 포트 없음 있음 (외관 식별의 가장 빠른 지표)
채널 LED (RGB 7 개) 없음 (내장 LED 3 개만) 있음 (PCA9957, XM_SetChannelLedRGB API)
외장 SRAM (PSRAM) 없음 있음 (MCU 핀 PC10 사용)
외부 UART 포트 없음 (PD6 은 USB_PWR_ON 출력) 있음 — USART2, PD5/PD6, 범용 Serial API
내장 버튼 MCU 핀 PC10 / PC11 / PC12 PC11 / PC12 / PC13 (한 핀 시프트)
외부 GPIO 커넥터 위치/라벨 Rev 1.1 핀맵 Rev 2.0 핀맵
배포 ZIP Rev1.1.zip Rev2.0.zip

본인 보드의 Rev 와 다른 ZIP 을 풀어 빌드하면 — 빌드 자체는 통과하지만 — 내장 버튼/LED 의 MCU 핀 매핑이 한 칸씩 어긋나 동작하지 않습니다. 보드 라벨을 먼저 확인하세요.


관련 문서