Skip to content

Compatibility matrix

This page summarizes interop expectations for the Base Interoperability Profile. See Wire status labels for definitions.

Feature / payloadBase ProfileOptionalDesign target
TEXT_UTF8 (0x01)Required
POSITION_CORE (0x02)Required
TELEMETRY_BASIC (0x03)Required (Standard + Sensor Clients)
ACK_BASIC (0x06)Required
NODE_ADVERT (0x0A)Required
NODE_INFO_REQ / NODE_INFO_RSPNormative optional
PAYLOAD_BODY_V2 (0x04)Normative optional
FRAG_NACK (0x07)Normative optional
GPS_FIX (0x51)Normative optional
GPS_SCHEDULE (0x52)Normative optional (admin/user-authorized only)
Bulletin (0x710x75)Normative optional
ADMIN_CMD / ADMIN_RSP (0x91 / 0x92)Normative optional
MIC_MODE = 01 (CCM-8)Normative optional (SEC_CAP_CCM8)
Signed ADMIN_CMDNormative optional (SEC_CAP_ADMIN_SIG)
IOT_UPLINK / IOT_ACKDesign target
ATAK / TAK bridgeInformative (companion only)

Profile notes

  • Behavior profiles (Standard Client, IoT/Sensor) are presets, not wire-incompatible protocol versions.
  • Standard Client Profile is the default Client behavior on the wire defined by the Base Profile.
  • IoT Client Profile / Sensor Profile is optional; the Base Profile SHOULD use TELEMETRY_BASIC + ACK_BASIC for sensor uplink/ack.
  • Base Profile devices MUST implement dynamic 16-byte minimum header parsing (20 with HAS_DST_ID), mandatory sessionId, 16-bit channelHash, MIC_MODE = 00 (AES-256-CCM-4) on 0x0000, stateless flood relay, and the Required payloads above.
  • Optional payloads and features use stable wire layouts in their linked pages; peers MAY ignore unknown types but MUST NOT assume cross-vendor behavior until both sides enable the feature.
  • CCM-8 is backward compatible by safe rejection — CCM-4-only devices drop MIC_MODE != 00; they cannot decrypt CCM-8.
  • Design target payloads are documented for planning; early firmware SHOULD use TELEMETRY_BASIC + ACK_BASIC (IoT) or vendor / PAYLOAD_BODY_V2 experiments instead.

See also

LowMeshOS — always open-source mesh protocol documentation