Appearance
Visual examples and simulations
This page “connects the dots” by showing how LowMesh frames map from raw PHY bytes to parsed fields.
Wire status: The current mesh header layout uses
verFlags(LEuint16) with VERSION bits 15–14, a dynamic ≥16-byte base (20 withHAS_DST_ID), mandatorysessionId, 16-bitchannelHash/messageId, optional Region / Fragment / Routing blocks, and nopayloadLenfield — see Packet layout.payloadTypestill selects the inner application tail — see Payloads.
Live hex stream (auto-scrolling demo)
This component cycles sample Mesh PDUs and parses them using the current modular layout (see reference parseBaseHeader / parseModularPdu in firmware).
Maintainers: Update
HexStreamSimulatorwhenverFlags/ block order changes; do not resurrect the legacy 23-byte +payloadLenwalkthrough.
Network roles in one picture
Animated roles and traffic
Use this as your mental model:
- Gateway: repeats + optional internet backhaul, can provide services (when those payload types exist).
- Repeater: stable backbone node, forwards, can host services (when those payload types exist).
- Client: not always-on infrastructure. Standard Clients have Dynamic Repeater Mode enabled by default and may temporarily relay third-party traffic when no stable Repeater or Gateway is available.
Worked bytes
Normative field tables and PHY sizing (255-byte ceiling, prefixBytes, appTailLen, cipherLen) live in Packet layout and Payload limits. Host-side JavaScript parsers SHOULD mirror the C++ modular parser (dynamic offsets), not a single fixed HDR = 23 slice.
What to add next (when the payload registry ships)
- A Mermaid sequence diagram for fragmented messages (transport layer): fragments, ACK, retransmits
- A Mermaid sequence diagram for IoT sleep/ACK (once
IOT_UPLINK/IOT_ACKbodies are normative again)