Skip to content

Glossary (acronyms & abbreviations)

This page defines common acronyms used throughout the LowMesh documentation. Expand a term for more context.

fragmentWord — Packed mesh fragment block

The 2-byte optional fragment block when HAS_FRAGMENT is set. Used in CCM nonce construction and duplicate/replay keys as (channelHash, srcId, sessionId, messageId, fragmentWord). 0 when not fragmented.

innerBodyLen — Plaintext application payload length

After decrypt, innerBodyLen = cipherLen = appTailLen − micLen, where appTailLen = rxPhyLen − prefixBytes. See Channels & security.

prefixBytes — Parsed plaintext header size

prefixBytes = base + region + fragment + route — everything before the AES-CCM application tail. Used to derive appTailLen and cipherLen.

sessionId — On-wire transport session

Mandatory 4-byte LE field in the base header at offset 0x09. Persisted in NVM; included in CCM nonce and duplicate/replay suppression. MUST change after reboot before messageId reuse under the same psk32.

TOFU / UNVERIFIED / VERIFIED — DM trust states

UNVERIFIED, TOFU (trust-on-first-use), and VERIFIED classify how strongly a peer’s Ed25519 key is trusted for 1:1 DMs — see Crypto keys.

ACK — Acknowledgement

An application or transport response indicating a message (or fragment) was received and accepted.

AD — Associated Data (AAD in CCM)

In AEAD, bytes that are authenticated but not encrypted. LowMesh AES-256-CCM-4 uses a dynamic Additional Authenticated Data (AAD) buffer built from the plaintext prefix on the wire: base header, optional region block, and optional fragment block — see Channels & security. The routing block is outside AAD so repeaters can grow breadcrumbs without re-encrypting. The application tail is encrypted and covered by the 4-byte CCM MIC (the AEAD authentication tag for that region).

AEAD — Authenticated Encryption with Associated Data

A crypto mode that encrypts a payload, authenticates it with a tag, and also authenticates extra associated data without encrypting it. LowMesh uses AES-256-CCM-4 for all channelHash values (including 0x0000): the prefix blocks feed AAD, the application tail is ciphertext || 4-byte MIC, and the MIC is the normative AEAD authentication tag for the inner body. See Packet layout and Channels & security.

API — Application Programming Interface

The defined way software components communicate (e.g. the USB/BLE hex API used to inject or observe frames).

ATAK — Android Team Awareness Kit

A situational-awareness application stack (often with WinTAK, iTAK, and related clients) that commonly exchanges CoT events. LowMesh specifies integration via a companion tethered to a Client node (BLE/USB), not CoT on the LoRa PHY and not via a Gateway mesh tap. See ATAK / TAK compatibility.

ATT — Attribute Protocol (BLE)

The BLE protocol that transports GATT attributes. MTU limits here can affect how quickly you can stream frames over BLE, even though on-air packets have their own limits.

BLE — Bluetooth Low Energy

Short-range wireless used for provisioning, companion apps, and in this spec’s “0-hop remote maintenance” helper model.

BW — Bandwidth

Typically refers to LoRa bandwidth (e.g. 125 kHz, 500 kHz). It strongly affects airtime, sensitivity, and regulatory considerations.

CRC — Cyclic Redundancy Check

A fast error-detecting code used to catch accidental corruption (not forgery). LoRa PHY often provides CRC16; firmware can also use CRC32 for NVM integrity.

CoT — Cursor on Target

An XML-oriented event format used by ATAK / TAK ecosystems for tracks, markers, and related data, typically carried over UDP/TCP. LowMesh maps mesh position payloads to CoT in a Client-tethered companion, not on-air. See ATAK / TAK compatibility.

DAC — Digital-to-Analog Converter

Hardware block sometimes present on MCUs; not central to LowMesh, but may appear in hardware capability discussions.

DFU — Device Firmware Update

A firmware update process (often over USB/BLE). Mentioned for supported bootloaders / update workflows.

EIRP — Equivalent Isotropically Radiated Power

The effective radiated power including antenna gain. Often what regulators constrain (vs conducted power alone).

EUI-64 — Extended Unique Identifier (64-bit)

A common 8-byte globally unique identifier format. LowMesh stores a stable nodeIdentity64 in NVM (EUI-64-like or provisioning-random). The on-air mesh header uses a compact nodeId32 (4-byte srcId / dstId), which is not the same field as nodeIdentity64. See Node identity.

nodeId32 — On-air node address (32-bit)

The 4-byte little-endian srcId / dstId in the mesh base header. Used for routing, duplicate suppression, and ACK matching. MUST NOT be assumed globally unique outside the active channel/domain — see collision policy in Node identity.

nodeIdentity64 — Stable node identity (64-bit)

Persistent 8-byte identity in NVM (may be EUI-64-like or randomly assigned at provisioning). Canonical nodeId32 is read_u32_le(SHA256(pkEd)[0..3]); nodeIdentity64 is not the default on-air address source. See Node identity.

hopControl — Hop / route control byte

Human-readable name for the 1-byte mesh header field at offset 0x04, called ttlRaw in firmware and parsers. Bit 7 = HAS_ROUTE_BLOCK; bits 5–0 = HOP_LIMIT. See Packet layout.

EWMA — Exponentially Weighted Moving Average

A smoothing technique for noisy metrics (like SNR) that emphasizes recent samples while keeping stability.

FCS — Frame Check Sequence

A checksum field used to detect corruption. LoRa PHY CRC applies to the whole over-the-air payload, separate from AES-CCM-4 inner MICs (including on channelHash == 0x0000).

FCC — Federal Communications Commission (USA)

The regulator for RF devices in the United States. Mentioned in context of US915 profiles and compliance guidance.

FEC — Forward Error Correction

Error correction coding at the PHY (e.g. LoRa coding rate) that improves robustness but increases airtime.

FS — Filesystem

Persistent storage abstraction on devices that have one. The spec also uses “NVM” more generally for persistent configuration.

GATT — Generic Attribute Profile (BLE)

The BLE profile structure built on ATT. Used for device services, characteristics, and notifications.

GNSS — Global Navigation Satellite System

Satellite navigation systems (GPS, Galileo, GLONASS, etc.). “GPS” is commonly used as a shorthand.

GPS — Global Positioning System

A GNSS. LowMesh uses GPS fields/payloads for location sharing and time correlation.

HKDF — HMAC-based Key Derivation Function

Used to derive per-channel AES keys from a Network Master Key (NMK) while keeping channels cryptographically separated.

HMAC — Hash-based Message Authentication Code

An integrity/authentication construction used for local storage validation (e.g. HMAC over an NVM blob) or other authenticated metadata.

IoT — Internet of Things

Low-power devices like sensors/actuators. LowMesh includes IoT-aware ACK timing and hop budgets.

IV — Initialization Vector

A per-message value used by many crypto schemes. For AEAD, this is often called a nonce. It must not repeat under the same key.

KDF — Key Derivation Function

Transforms a root secret (e.g. passphrase or NMK) into one or more derived keys with separation between contexts (channels).

LE — Little-endian

Byte order where the least significant byte comes first. LowMesh docs generally use little-endian for multi-byte integers unless stated otherwise.

LNA — Low-Noise Amplifier

RF front-end component that can improve receive sensitivity (depending on design and noise figure).

LoRa — Long Range (Semtech modulation)

The spread-spectrum modulation family often used for sub-GHz ISM mesh links. Not the same as “LoRaWAN.”

MAC — Medium Access Control

The link-layer scheduling/access part of a radio stack. Separately, “MAC” can also mean Message Authentication Code in cryptography; this glossary uses MAC mainly in the networking sense.

MTU — Maximum Transmission Unit

The largest payload you can send in a single transport unit (e.g. BLE ATT MTU). Not the same as the LoRa PHY 255-byte limit.

NMK — Network Master Key

A 32-byte root secret used to derive per-channel keys (HKDF) unless a channel PSK override is configured.

NVM — Non-Volatile Memory

Persistent storage that survives power loss (flash, EEPROM, FRAM, etc.). LowMesh stores identities, keys, and channel preferences in NVM so devices reboot into the same configuration.

OTA — Over-the-Air

Updating or transferring data over the radio link (as opposed to USB/BLE). May be mentioned for firmware updates or file transfers.

PHY — Physical layer

The radio modulation and packet framing level (preamble, headers, CRC). In LowMesh, PHY limits drive maximum on-air frame sizes.

PSK — Pre-Shared Key

A symmetric key shared among members of a channel/group. In LowMesh, each private virtual wire is identified on-air by a channelHash derived from (channelNameUtf8, psk32) (see Channels & security).

QoS — Quality of Service

Policy knobs (priority, retries, ack requirements) that bias traffic handling under congestion or low link quality.

QR — Quick Response (code)

A 2D barcode commonly used for provisioning keys/channels and sharing configuration out-of-band.

RAM — Random Access Memory

Volatile working memory (lost on power-off). Used for neighbor tables, routes, caches, and runtime state.

REPL — Read–Eval–Print Loop

An interactive command shell loop. Used as an example capability behind 0-hop maintenance sessions.

RF — Radio Frequency

The radio link itself, including path loss, interference, and regulatory constraints.

RSSI — Received Signal Strength Indicator

An approximate received power measurement (often negative dBm). Useful but imperfect; should be used together with SNR and margin.

RX — Receive

The receive direction/state/path.

SNR — Signal-to-Noise Ratio

Ratio of signal power to noise power, commonly reported by LoRa demodulators. A key indicator for link margin and packet success.

SF — Spreading Factor

LoRa parameter controlling symbol rate and sensitivity. Higher SF increases range at the cost of airtime.

SX1261 / SX1262 — Semtech LoRa transceivers

Common LoRa radio chips referenced for payload sizing constraints (e.g. 255-byte maximum PHY payload).

TAK — Team Awareness Kit (ecosystem)

The broader family of ATAK-compatible clients and tooling. In LowMesh, TAK compatibility means CoT produced on the companion host from frames observed through a session to a Client node. See ATAK / TAK compatibility.

TCXO — Temperature-Compensated Crystal Oscillator

Improves frequency stability over temperature; relevant for narrowband RF performance and long-range reliability.

TLV — Type–Length–Value

A flexible encoding format where each field carries its own type and length, enabling forward-compatible extensions.

TTL — Time To Live (hop limit)

In LowMesh, the per-frame hop budget decremented by relays. When it reaches 0, the frame is not forwarded.

TX — Transmit

The transmit direction/state/path.

UF2 — USB Flashing Format

A file-based firmware update format (drag-and-drop) used by some bootloaders (commonly on RP2040 and some nRF52 setups).

LowMeshOS — always open-source mesh protocol documentation