Appearance
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).