Xylolabs 지식 베이스¶
Xylolabs IoT 오디오 및 센서 모니터링 플랫폼의 색인 참조 문서이다. XAP와 XMBP는 Xylolabs Inc.의 특허 출원 중인 독점 기술이다.
핵심 프로토콜 (특허 출원 중)¶
아래 두 프로토콜은 Xylolabs 데이터 파이프라인의 근간이다. 모든 디바이스 펌웨어, SDK 코드, 서버 수집 로직은 이 프로토콜을 기반으로 구성된다.
XAP — Xylolabs Audio Protocol¶
XAP는 자원이 제한된 IoT 및 산업용 모니터링 하드웨어에서 실시간 다채널 오디오를 압축하기 위한 Xylolabs의 독점 MDCT 기반 스펙트럼 오디오 코덱이다. XMBP 코덱 ID는 0x03이다.
| 속성 | 값 |
|---|---|
| 변환 방식 | MDCT |
| 샘플링 레이트 | 8, 16, 24, 32, 48, 96 kHz |
| 채널 수 | 1–4 |
| 프레임 길이 | 7.5 ms, 10 ms |
| 압축률 | 8:1–10:1 |
| 비트레이트 범위 | 채널당 16–320 kbps |
| CPU 요구량 | ~10 MIPS/채널 (DSP 가속 시) |
| 채널당 RAM | ~8 KB 인코더 상태 |
- XAP 사양서 (English) — 완전한 프로토콜 사양: MDCT 신호 흐름, 인코더 아키텍처, 프레임 와이어 포맷, 설정, 플랫폼 호환성 매트릭스, SDK 통합, IMA-ADPCM 비교
- XAP 사양서 (한국어)
XMBP — Xylolabs Metadata Binary Protocol¶
XMBP는 IoT 센서 및 모터 텔레메트리를 위한 소형 바이너리 프레이밍 프로토콜이다. Xylolabs SDK를 탑재한 모든 디바이스와 수집 서버 사이의 온-와이어 포맷이다. 매직 바이트: 0x58 0x4D 0x42 0x50 ("XMBP").
| 속성 | 값 |
|---|---|
| 바이트 순서 | 빅엔디안 (네트워크 바이트 순서) |
| 타임스탬프 | u64 마이크로초 |
| 최소 배치 크기 | 10바이트 (device ID 없음, 스트림 없음) |
| 메모리 할당 | 없음 — 호출자 제공 버퍼에 직접 기록 |
| 저장 포맷 | XMCH (서버 측) |
- XMBP 사양서 (English) — 와이어 포맷, 배치 엔벨로프, 스트림 블록 레이아웃, 샘플 레이아웃, 값 타입 레지스트리, 오디오 코덱 식별자, 인코딩/디코딩 API, 기능 플래그, 전송, XMCH 저장 포맷, 와이어 포맷 예제
- XMBP 사양서 (한국어)
코덱 분석 및 성능¶
XAP 및 평가된 모든 경쟁 코덱에 대한 MCU 타겟별 분석 및 벤치마크 데이터이다.
- 코덱 분석 (English) — 16개 코덱 비교표, MCU 실현 가능성 매트릭스, LTE-M1 대역폭 예산 분석, XAP 설계 근거
- 코덱 분석 (한국어)
- 성능 평가 (English) — 벤치마크 결과: 프레임당 인코딩 시간, 채널 스케일링, 다채널 CPU 예산, 코사인 테이블 임계값 관찰 (32 kHz→48 kHz 불연속 현상), 서버 동시성 벤치마크
- 성능 평가 (한국어)
- 성능 프로파일 (English) — 플랫폼별 DSP 가속 매트릭스, MIPS 분석, ARMv8-M / Xtensa SIMD 명령어 분석, 플랫폼별 XAP 및 ADPCM 속도 향상 비율
- 성능 프로파일 (한국어)
- RP2350 실현 가능성 분석 (English) — RP2350에서 4ch @ 96 kHz XAP 실현 가능성: 입력 데이터 사양, 리소스 분석, CPU 예산 분해, 메모리 레이아웃, LTE-M1 대역폭 모델, 트레이드오프 매트릭스를 포함한 세 가지 배포 옵션 (A/B/C)
- RP2350 실현 가능성 분석 (한국어)
아키텍처 다이어그램¶
시각적 참조 자료는 diagrams/ 디렉토리에 위치한다.
| 다이어그램 | 파일 |
|---|---|
| 시스템 아키텍처 개요 | diagrams/architecture.svg |
| 수집 파이프라인 | diagrams/ingest-pipeline.svg |
| 코덱 비교 차트 | diagrams/codec-comparison.svg |
| SDK 플랫폼 맵 | diagrams/sdk-platforms.svg |
| 실현 가능성 옵션 A | diagrams/feasibility-option-a.svg |
| 실현 가능성 옵션 B | diagrams/feasibility-option-b.svg |
| 실현 가능성 옵션 C | diagrams/feasibility-option-c.svg |
| 시간 동기화 다이어그램 | diagrams/feasibility-time-sync.svg |
| 윈도우 정렬 다이어그램 | diagrams/feasibility-window-align.svg |
플랫폼 가이드¶
하드웨어 설정, 핀 배정, 코덱 지원 여부, SDK 연동을 다루는 MCU별 통합 가이드이다.
RP2350 / Pico 2 W (주요 타겟)¶
기본 참조 타겟이다. 듀얼 Cortex-M33 @ 150 MHz, 520 KB SRAM, PIO 기반 I2S, CYW43 WiFi/BT, ARMv8-M DSP 확장 명령어 지원. 96 kHz/24-bit 오디오를 위해 외부 I2S ADC가 필요하다.
- RP2350 / Pico 2 W 플랫폼 가이드 (English) — 사양, I2S ADC 배선, LTE-M1 모뎀 배선, 핀 배정, SDK 통합, 코덱 지원 (4ch XAP @ 96 kHz)
- RP2350 / Pico 2 W 플랫폼 가이드 (한국어)
ESP32-S3 / ESP32-C3¶
외부 LTE 모뎀 없이 네이티브 WiFi를 사용한다. ESP32-S3는 128-bit Xtensa SIMD를 통해 4ch XAP @ 96 kHz를 지원한다. ESP32-C3 (RISC-V)는 센서 전용 노드이다.
- ESP32 플랫폼 가이드 (English) — 지원 타겟 표, I2S MEMS 마이크 배선, WiFi 네이티브 스택 설명, 코덱 지원 매트릭스
- ESP32 플랫폼 가이드 (한국어)
STM32 (F103, F411, WB55, WBA55)¶
Cortex-M3/M4F/M33 타겟이다. F411, WB55, WBA55는 XAP를 지원한다 (FPU + DSP). WB55는 4ch ADC 48kHz, WBA55는 96kHz로 BLE 전송을 지원한다. F103은 FPU가 없어 센서 전용이다.
- STM32 플랫폼 가이드 (English) — 지원 타겟 표 (F103 / F411 / WB55 / WBA55), I2S ADC 배선, BLE 타겟 내장 ADC, HAL 기반 CubeMX 호환 예제, 변형별 코덱 지원
- STM32 플랫폼 가이드 (한국어)
nRF52840 / nRF9160¶
Nordic Cortex-M4F / Cortex-M33 타겟이다. nRF52840은 BLE 5.0으로, nRF9160은 LTE-M / NB-IoT로 전송한다.
- nRF 플랫폼 가이드 (English) — 지원 타겟 표, SPI 센서 배선 (LIS2DH12), Zephyr RTOS 통합, 이중 전송 (BLE GATT / LTE 모뎀) 아키텍처
- nRF 플랫폼 가이드 (한국어)
RP2040 / Pico (ADPCM 전용)¶
듀얼 Cortex-M0+ @ 133 MHz, 264 KB SRAM이다. FPU 및 DSP가 없어 XAP 사용이 불가하다. ADPCM만 지원하는 비용 효율적인 센서 노드이다.
- RP2040 / Pico 플랫폼 가이드 (English) — 사양, RP2350과의 주요 차이점, ADPCM 전용 코덱 제한, 센서 노드 활용 사례
- RP2040 / Pico 플랫폼 가이드 (한국어)
하드웨어¶
Xylolabs RP2350 풀 센서 노드용 하드웨어 참조 문서이다.
- 하드웨어 BOM (English) — 전체 부품 목록: MCU (RP2350), 오디오 ADC (PCM1860QDBTRQ1), 마이크 (WM-61A), 환경 센서 (SEN0385/CHT832X), 가속도계 (ADXL345), LTE 모뎀 (BG770A), 수동 소자, 커넥터, 구매 링크
- 하드웨어 BOM (한국어)
펌웨어 및 OTA¶
- 펌웨어 릴리스는 S3에 업로드되며
firmware_releases테이블에 기록된다 - 배포는
firmware_deployments테이블을 통해 특정 디바이스를 대상으로 하며 상태 추적이 이루어진다 (pending → downloading → verified → applied) - 디바이스는
/api/v1/ota/check에 hardware_target을 포함해 폴링하여 업데이트를 감지한다 - 진행 상황은
/api/v1/ota/deployments/{id}/progress를 통해 보고된다 - 관리자는 대시보드의 Firmware 페이지에서 릴리스와 배포를 관리한다
API 레퍼런스¶
Xylolabs 서버용 REST API 문서이다.
- API 문서 (English) — 전체 REST API 레퍼런스: 인증, 시설, 사용자, API 키, 디바이스, 오디오 업로드, 오디오 스트리밍, 트랜스코드 작업, 태그, 메타데이터 수집, 메타데이터 쿼리, 시스템 설정, 대시보드 통계, 헬스, XMBP 프로토콜 레퍼런스, RBAC, 오류 응답, 데이터 모델, 페이지네이션, 예제 워크플로우
- API 문서 (한국어)
SDK — Rust 크레이트¶
Rust SDK는 모든 신규 펌웨어 개발에 권장되는 경로이다. 모든 크레이트는 no_std 호환이다.
핵심 SDK¶
crates/xylolabs-sdk/— 메인 SDK 크레이트.XylolabsClient<P, AUDIO_RING, XMBP_BUF>상태 머신,SessionManager,HttpTransport,RingBuffer, XAP 코덱, ADPCM 코덱,Platform트레이트 추상화. 힙 할당 없음.- xylolabs-sdk (한국어)
crates/xylolabs-protocol/— 디바이스 펌웨어와 서버 간에 공유되는no_stdXMBP 와이어 포맷 구현체. XMBP 인코딩 및 디코딩의 단일 진실 공급원이다.- xylolabs-protocol (한국어)
HAL 크레이트 (플랫폼 구현체)¶
| 크레이트 | 타겟 | 전송 방식 | 코덱 |
|---|---|---|---|
xylolabs-hal-rp |
RP2350 (Pico 2) | UART 경유 LTE-M1 모뎀 | XAP |
xylolabs-hal-esp |
ESP32-S3, ESP32-C3 | 네이티브 WiFi (esp-wifi) |
XAP / ADPCM |
xylolabs-hal-stm32 |
STM32F103, F411, WB55, WBA55 | UART 경유 LTE-M1 모뎀 / BLE GATT | XAP / ADPCM |
xylolabs-hal-nrf |
nRF52840, nRF9160 | BLE GATT / LTE-M | XAP / ADPCM |
한국어 버전: hal-rp · hal-esp · hal-stm32 · hal-nrf
코드 예제¶
레거시 C 참조 예제이다. 신규 개발에는 Rust SDK를 사용한다.
| 플랫폼 | 예제 | 설명 |
|---|---|---|
| RP2350 | docs/examples/pico/ | C 예제: 연속 센서 스트리밍, 주기적 샘플링, I2S + 청크 HTTP를 통한 오디오 업로드 |
| RP2350 풀 하드웨어 | docs/examples/rp2350-full-hardware/ | 현장 배포 노드: PCM1860 + WM-61A + CHT832X + ADXL345 + BSS84 + BG770A을 RP2350에 연결 |
| ESP32 | docs/examples/esp32/ | C 예제: ESP32-S3 풀 오디오 + 센서 (XAP, WiFi), ESP32-C3 경량 센서 전용 (WiFi 경유 XMBP) |
| STM32 | docs/examples/stm32/ | C 예제: F411 오디오 + 센서 (XAP, LTE-M1), F103 센서 전용 (ADPCM, LTE-M1), WB55 BLE 센서 노드 |
| nRF | docs/examples/nrf/ | C 예제: nRF52840 BLE 센서 비콘 (XMBP), 초저전력 슬립 |
한국어 버전: pico · rp2350-full-hardware · esp32 · stm32 · nrf
빠른 참조¶
플랫폼별 코덱 선택¶
| 플랫폼 | XAP | ADPCM | 비고 |
|---|---|---|---|
| RP2350 (Pico 2) | 지원 — 4ch @ 96 kHz | 지원 | 주요 타겟 |
| ESP32-S3 | 지원 — 4ch @ 96 kHz | 지원 | 네이티브 WiFi |
| ESP32-C3 | 미지원 (FPU 없음) | 지원 | 센서 노드 전용 |
| STM32F411 | 지원 — 4ch @ 48 kHz | 지원 | |
| STM32WB55 | 지원 — 2ch @ 48 kHz | 지원 | BLE 오프로드 |
| STM32F103 | 미지원 (FPU 없음) | 선택 | 센서 노드 전용 |
| nRF52840 | 지원 — 2ch @ 48 kHz | 지원 | BLE 게이트웨이 경유 |
| nRF9160 | 미지원 | 지원 | 센서 노드 전용 |
| RP2040 (Pico) | 미지원 (FPU 없음) | 지원 | 센서 노드 전용 |
XMBP 값 타입 레지스트리 (빠른 조회)¶
전체 레지스트리는 XMBP 사양서 §5를 참조한다. XAP 0x03을 포함한 오디오 코덱 식별자는 §6에 정의되어 있다.
개정: 2026-03-27