Skip to content

XM10 Extension Module SDK v2.5.0

Release date: 2026-07-24 | Target HW: Rev 1.1 · Rev 2.0 (both) | KIT H10 FW: v2.3.0+


At a Glance

This release removes the feature that saved data to a USB memory stick (USB-MSC logging). Data is now sent to a PC in real time over the USB cable for viewing and saving. This applies to both Rev 1.1 and Rev 2.0.

  • USB memory saving has been removed — because it was slow enough that data could quietly go missing (see the simple explanation below).
  • Data now streams live over the USB cable — view graphs in PhAI Studio and save straight to CSV. It is faster, and nothing gets dropped.
  • Examples tidied up — the 5 USB-memory-only examples were removed. Data collection is now taught with the CDC examples (Ex.07–09).

Why remove it? (the simple version)

Think of a USB memory stick as a friend who writes slowly.

The board produces data very fast — 1000 times per second — and the USB stick simply can't write it all down that quickly. So while it's busy writing, it pauses for a brief moment (2–3 ms, sometimes longer), and a few of the data points made during that pause never get written down and are lost.

What makes it worse: when you open the saved file, the loop count (1, 2, 3, …) looks perfectly continuous, so everything appears fine — even though data went missing in between. This kind of silent data loss is bad for research and learning that relies on trustworthy data.

So we removed this feature and switched to a method that doesn't drop data (live streaming over the USB cable).


So how do I collect data now?

Stream it to a PC in real time over the USB cable (USB-CDC). Two ways:

  1. PhAI Studio (easiest) — connect the board over USB and a live graph appears. Press Record, and export to CSV afterwards.
  2. Roll your own in Python (optional) — if you want to write your own code, the PythonDecoder/CDC/ Python samples in the repo receive the stream and auto-save CSV.

To learn the flow, follow examples Ex.07 → 08 → 09 (USB serial → sensor printout → high-speed streaming).

PhAI Studio is still under development, so for now use the xm10 tool to view and save your own (custom) data structs. (PC data tool guide)

On-board (direct-to-board) storage is not supported.


What changed

Removed

  • 5 USB-memory logging examples — 10_MSC_Manual_log, 10a_MSC_Basic_Log, 10b_MSC_Custom_Struct, 10c_MSC_Advanced_Log, 34_MSC_GaitAnalysis_Log.
  • USB-memory logging APIs hidden — file-logging functions such as XM_SetUsbLogSource / XM_StartUsbDataLog / XM_StopUsbDataLog are no longer provided.
  • Docs tidied — the "USB memory logging" page was removed and data-collection guidance was unified around USB-CDC.

Changed

  • Examples 11 · 12 · 17 — their data-recording part switched from USB-memory saving to USB-CDC live streaming. They are just as good for learning the behavior.
  • Example count — Rev 2.0 now has 45, Rev 1.1 now has 42.

Unchanged

  • All CDC (live streaming) APIs kept — XM_SendUsbDataWithId, XM_SetUsbCustomMeta, XM_SendUsbDebugMessage, and more.
  • Control, sensor, LED, button, and other APIs are unchanged — just rebuild your Control_Setup / Control_Loop code (only switch to CDC if you were using the file-logging functions).

Downloads

File Target board
Rev2.0.zip XM10 Rev 2.0 (newer board with an RJ45 Ethernet port)
Rev1.1.zip XM10 Rev 1.1 (early development board)

Download the ZIP that matches your board revision. RJ45 Ethernet port = Rev 2.0; no Ethernet port = Rev 1.1.

Release Attachments

This release also includes the files below. You need one RevX.X.zip for your board revision, plus the following 3 files if you use KIT H10.

File Purpose
AGR_Bootloader.bin XM10 bootloader (flash once via SWD; afterwards upload FW over USB in PhAI Studio)
SUIT_H10_Binary_20260716.zip KIT H10 (CM · MD · ESP32) firmware — update via USB stick
SUIT_ContentsFiles.zip KIT H10 content files (motions · sounds, etc.) — on the same USB stick

The bootloader, KIT H10 firmware, and content files are identical to a previous release (v2.3.0). They are re-attached to v2.5.0 for convenience, so if you already installed/updated them since v2.3.0 there is nothing more to do. See the Bootloader upload and KIT H10 firmware docs for installation.

Prerequisites

The final build step (generating the uploadable .bin) uses Python. If you haven't installed it yet, follow Software Setup to install Python 3.10+ (make sure it's on your PATH).


Compatibility

Item Impact
Your code (Control_Setup / Control_Loop) Only switch to CDC if you were using the file-logging functions (XM_SetUsbLogSource, etc.). Otherwise just rebuild
CDC (live streaming) API No change
USB memory (MSC) file logging Removed — collect data via USB-CDC
On-board (SD card) storage Not supported
KIT H10 firmware / content files Unchanged — no extra update needed
Bootloader Unchanged — no reinstall needed