Skip to content

STE register stub

Channel grid#

This page is a static summary, not the interactive grid

An earlier interactive version of this page read a live device catalog. That generator (docs-site/tools/gen_channel_grid_page.py) stayed in Nucleus, the machine repo, because it parses that machine's own device catalog. Rebuilding an interactive grid on the protocol side (reading a hub-agnostic catalog instead of one machine's) is a parked work item.

Full detail lives in spec/CHANNEL-GRID.md, alongside this directory in this repository. This page is a summary of it.

The convention#

A device-defined channel id (0x0080-0x7FFF) reads as four hex digits: class, domain, family, member.

Digit Name Meaning
C class 1 STATE, 2 STREAM, 3 INTENT, 4 EVENT, 5 STORE
D domain the device subsystem (motion, machine, pattern, and so on)
F family a related cluster of channels in that domain
M member one channel in that family

0x2101 reads as STREAM, domain 1, family 0, member 1.

The mirror rule#

A STATE channel and its INTENT writer share domain, family, and member. Only the class digit differs. 0x1120 and 0x3120 are the same domain/family/member pair, read and write.

Family and member#

Member 0 is the family's own STATE or roster channel, or its one INTENT verb. Every other member is a related channel: a tuning card, a modifier lane, a preset slot. Every family reserves 15 unused members. Every domain reserves unused families.

Family 0xF#

Family 0xF is the admin family in every domain. A domain's 0x_F0 slot holds that domain's clear fault, save, and scan operations.

Reserved domains#

Domains 3, 4, and 5 wait for future subsystem categories. Domains 8 through F wait for a future multi-axis convention. Range 0x7000-0x7FFF is experimental and vendor space. A shipped catalog must never use it.

Core channels#

0x0001 through 0x000E are fixed and spec-governed. No hub allocates them. See Channels for the generated, authoritative list.

Worked example#

This repository holds no single hub's device map. Each hub publishes its own. Nucleus's CHANNEL-MAP.md, in its own repository, is the worked example.