Adaptive-Redundancy TDMA for Small-Group PTT Voice Mesh

A protocol design for team communications in constrained operational environments


Abstract

This article describes a TDMA (Time Division Multiple Access) protocol design for push-to-talk voice communication in small, known groups operating over sub-GHz ISM/SRD spectrum. By exploiting the heavily asymmetric traffic pattern inherent to PTT — where one or two speakers address a group of mostly-silent listeners — the protocol repurposes idle TDMA capacity as spatial-diversity redundancy with zero coordination overhead. Each node makes a purely local per-slot priority decision, resulting in a system where voice reliability increases as the number of active speakers decreases, which is precisely when reliable delivery matters most.

The design targets two primary application domains: professional cycling team communications and offshore industrial operations. Both are characterised by small groups (8–20 nodes), pre-known membership, hierarchical priority structures, and the need for reliable, low-latency voice over distances of 1–6 km in challenging RF environments.


1. Problem Statement

Current PTT radio systems used in professional cycling and offshore operations rely on analog FM or DMR on licensed UHF frequencies. These systems suffer from:

A mesh network addresses the range limitation through multi-hop relay, but introduces a new problem: how to share a single half-duplex radio channel among multiple nodes for real-time voice with bounded latency.


2. Operating Environment

2.1 Regulatory

The protocol operates in the 869.700–870.000 MHz sub-band (ETSI EN 300 220, CEPT ERC Recommendation 70-03, Annex 1 Band 48), which permits:

2.2 Physical Layer

ParameterValue
ModulationGFSK (BT=0.5)
Bitrate100 kbps
Frequency deviation±25 kHz
Occupied bandwidth~150 kHz
RX sensitivity–105 dBm (at 100 kbps)
TX power14 dBm (25 mW)
Link budget~120 dB
Per-hop range1–2 km (typical), 3+ km (line-of-sight)
HardwareSTM32WLE5 (ARM Cortex-M4 + SX126X radio, single chip)

2.3 Voice Codec

ParameterValue
CodecOpus (SILK mode)
Bitrate6 kbps
Frame duration20 ms
Frame size~15 bytes

2.4 Traffic Characteristics

PTT voice has a distinctive traffic pattern:

In a 12-node network, the common case is 1 active transmitter and 11 listeners. The worst case is 3 simultaneous transmitters and 9 listeners. This asymmetry is the key insight the protocol exploits.


3. Protocol Design

3.1 Pre-Known Network Configuration

Unlike general-purpose mesh networks, the group membership is fully known before the network starts. In cycling, the team sheet defines the participants for each race stage. In offshore operations, the permit-to-work system defines each shift's working parties.

A configuration file is generated per event and loaded onto every node:

This eliminates the need for runtime discovery, association, or slot negotiation protocols.

3.2 TDMA Frame Structure

Time is divided into repeating frames. Each frame contains N slots. Each slot is assigned to at most one node.

ParameterValue
Frame duration60 ms
Slot duration3 ms
Slots per frame20
Assigned to nodesSlots 0–11 (12 nodes)
Overflow/relaySlots 12–19 (8 spare slots)

Each 3 ms slot contains:

ComponentDuration
Guard interval200 µs
TX ramp40 µs
Preamble + sync320 µs (4 bytes at 100 kbps)
Packet payload~1.8 ms (23 bytes: 15 voice + 8 header)
CRC160 µs (2 bytes)
TX→RX turnaround100 µs
Guard interval200 µs

Time synchronisation across nodes is achieved via GPS PPS (pulse per second), providing sub-microsecond alignment.

3.3 Packet Header

Each voice packet carries a minimal header:

FieldSizePurpose
Source ID1 byteOriginating node
Sequence number2 bytesDeduplication (wrapping)
Group tag1 byteLogical channel for selective playback
Priority1 byteSpeaker priority (from config)
Hop count1 byteIncremented at each relay
Reserved2 bytesFuture use
Total header8 bytes

3.4 Broadcast Flooding with Duplicate Suppression

Voice traffic is broadcast, not routed. Every node that receives a voice frame it has not seen before will retransmit it. Duplicate suppression uses the (source_id, sequence_number) tuple: each node maintains a small table of recently seen pairs and discards duplicates. Table entries expire after 1 second.

There is no routing protocol for voice traffic. No OLSR, no AODV, no route tables. The flooding approach is viable because:

3.5 The Priority Decision: Adaptive Slot Usage

This is the core contribution of the protocol. Each node makes a purely local decision about what to transmit in its assigned slot, using a fixed priority ordering:

1. SPEAK:      I am actively speaking → transmit my voice frame
2. RELAY:      I received new voice frame(s) earlier in this frame
               that I have not yet relayed → relay using coverage-
               weighted selection (see §3.5.1)
3. REDUNDANCY: I have already relayed a voice frame, but have a copy
               I could retransmit for spatial diversity → retransmit
               using coverage-weighted selection
4. TELEMETRY:  No voice activity → transmit GPS position, link quality,
               battery status, or other non-voice data
5. SILENT:     Nothing to send → do not transmit (save power)

No coordination, no signalling, no negotiation. Each node independently follows the same priority logic. The emergent behaviour adapts to traffic load:

One speaker (common case): The speaker transmits in their home slot. Hop-1 neighbours relay in their home slots. Hop-2 and hop-3 neighbours relay in theirs. Remaining nodes — having already received the frame — retransmit it again under priority 3 (redundancy). The same voice frame may be transmitted 10+ times across the frame by different nodes at different physical locations. A receiving node at the mesh edge may hear the frame from multiple relayers via different spatial paths. This provides massive spatial diversity — even if several copies are lost to fading or shadowing, the receiver only needs one clean copy.

Three simultaneous speakers (worst case): Home slots carry origin and relay traffic. Overflow relay slots (12–19) absorb additional relay hops. Redundancy transmissions are suppressed by higher-priority relay and voice traffic. The system degrades gracefully — redundancy decreases as load increases, but the primary relay chain is preserved.

No speakers (silence): All slots carry telemetry. GPS positions, neighbour link quality tables, and mesh state updates propagate across the network, maintaining situational awareness even during voice silence.

3.6 Relay Propagation Within a Single Frame

Because relay is performed in home slots, and home slots are sequenced across the frame, a voice frame propagates outward through the mesh within a single frame period:

Time →

Slot 0:  DS car speaks (origin)
Slot 1:  Node 1 relays DS frame (hop 1)  
Slot 2:  Node 2 relays DS frame (hop 1, different spatial path)
Slot 3:  Node 3 relays (hop 2 — received from node 1 or 2)
Slot 4:  Node 4 relays (hop 2)
Slot 5:  Node 5 relays (hop 3 — received from node 3 or 4)
Slots 6-11: Remaining nodes retransmit for redundancy

The voice frame reaches every node within 3 hops in under 18 ms (6 slot durations), well within the 60 ms frame period. This is not a scheduled relay chain — it emerges naturally from the sequential slot ordering and the local priority decision. A node simply relays the newest voice frame it has received, in the earliest available opportunity (its own slot).

3.6.1 Coverage-Weighted Relay Selection

The sequential nature of TDMA slot ordering creates an information advantage: by the time a node's slot arrives, it has directly observed every transmission in all preceding slots. This observation is exploited to balance relay coverage across multiple simultaneous voice streams without any coordination.

When a node has multiple voice frames it could relay or retransmit, it selects the frame that has received the least coverage so far in the current frame. The calculation is trivial and purely local:

For each voice frame I hold:
    relay_count = number of times I observed this frame transmitted
                  in slots preceding mine in this frame
    score = frame.priority × (1 / (relay_count + 1))

Transmit the frame with the highest score.

Speaker priority still dominates when relay counts are equal, but a lower-priority frame that has not yet been relayed will score higher than a high-priority frame that has already been retransmitted many times. The mesh self-balances coverage across all active voice streams.

Example: The DS speaks in slot 0, a rider speaks in slot 5. By slot 8, node 8 has observed the DS frame relayed six times (by nodes 1, 2, 3, 4, 6, 7) but the rider's frame relayed only twice (by nodes 6, 7). Node 8 relays the rider's frame, because it needs the coverage more.

This produces an emergent property: later slots in the frame make better relay decisions than earlier slots, because they have observed more of the frame's history. The system's intelligence increases as the frame progresses. Early slots provide fast initial propagation; later slots fill coverage gaps.

No node needs to know the network topology or communicate its relay intentions. Each node observes the same shared medium (the TDMA frame) and independently converges on a relay strategy that distributes coverage evenly — a form of implicit coordination through shared observation.

3.7 Logical Groups (Software Channels)

Nodes are assigned to one or more logical groups via the configuration file. The group tag in each voice packet determines which nodes play the audio through their speaker:

This enables multiple simultaneous "channels" on a single frequency and TDMA frame. For example, a team director can address a breakaway group while a second director addresses the main group, sharing the same mesh infrastructure.

3.8 Overflow Relay Slots

The 8 unassigned slots (12–19) handle contention when a node's home slot is needed for its own voice but it also has frames to relay. Overflow relay slots are statically assigned in the configuration file (e.g., node 3 has home slot 3 and overflow slot 14). The priority decision applies identically in overflow slots.

In the worst case of 3 speakers at 3 hops:

UsageSlots consumed
Origin transmissions3 (home slots of speakers)
Hop-1 relay3 (home slots of hop-1 neighbours)
Hop-2 relay3 (home slots of hop-2 neighbours)
Hop-3 relay3 (overflow slots if home slots are occupied, or home slots of further nodes)
Total12 of 20 slots

This leaves 8 slots for redundancy and telemetry even at maximum voice load.


4. Properties of the Design

4.1 Reliability Inversely Proportional to Load

The protocol's key property: voice reliability increases as the number of active speakers decreases. This is the opposite of contention-based protocols (CSMA, ALOHA) where reliability degrades under load. In a PTT system where the critical traffic pattern is one speaker addressing the group, this property aligns perfectly with operational needs.

4.2 Zero Coordination Overhead

No slot negotiation, no RTS/CTS, no token passing, no control channel. The configuration is static and pre-loaded. The per-slot priority decision is purely local. This eliminates an entire class of protocol failure modes and reduces firmware complexity.

4.3 Bounded Latency

Worst-case voice latency is one frame period (60 ms) for 3-hop delivery. Typical latency for nearby nodes is under 10 ms. This is deterministic and independent of network load — a property of TDMA that contention-based protocols cannot guarantee.

4.4 Graceful Degradation

As hop count increases or the number of speakers increases, redundancy decreases before voice delivery fails. The system provides progressively less spatial diversity before losing connectivity entirely, giving a smooth degradation curve rather than a cliff edge.

4.5 Spatial Diversity Without Coordination

The redundant retransmissions from idle nodes create spatial diversity — the same voice frame arrives at each receiver via multiple physical paths from multiple transmitters. This provides resilience against localised fading, body shadowing, and transient obstructions without any explicit diversity protocol.

4.6 Implicit Coordination Through Shared Observation

When multiple voice streams are active simultaneously, relay coverage is balanced across streams without any signalling or negotiation. Each node observes the preceding slots in the frame and selects the least-covered frame to relay. Because all nodes observe the same shared medium, they independently converge on complementary relay decisions. This is a form of stigmergic coordination — nodes communicate their relay choices implicitly through the act of relaying, and later nodes adapt accordingly.


5. Capacity Analysis

5.1 Worst-Case Voice Capacity

With 20 slots per frame, 12 assigned nodes, and 3 ms slots at 100 kbps:

ScenarioVoice slots usedRedundancy slots availableFeasible?
1 speaker, 1 hop119Trivially yes
1 speaker, 3 hops416Yes, massive redundancy
3 speakers, 1 hop317Yes
3 speakers, 2 hops911Yes, good redundancy
3 speakers, 3 hops128Yes, adequate headroom

5.2 Mesh Diameter

At 1.5–2 km per hop with 3 hops maximum, the mesh supports a total diameter of 4.5–6 km. This covers:


6. Target Applications

6.1 Professional Cycling

Team director to rider communication during races. 8 riders + 2 team cars. Pre-race configuration from team sheet. Replaced or supplemented by this system: analog PMR446 radios with no relay capability.

6.2 Offshore Industrial Operations

Crew communication on platforms, FPSOs, and between nearby installations. 8–20 workers per shift party. Pre-shift configuration from permit-to-work system. Operates in the same licence-free spectrum across UK and EU continental shelf jurisdictions.

6.3 Defence and Security

Small-unit communications in dismounted operations. The pre-known group structure and priority hierarchy map directly to military section/platoon organisation. The licence-free ISM operation may be relevant for covert or expeditionary use where licensed spectrum coordination is impractical.


7. Implementation Status

Hardware development is underway using STM32WLE5 Nucleo-64 development boards. The firmware is implemented in Rust using the Embassy async embedded framework. An NS-3 simulation is being iteritively developed to validate the protocol design under realistic mobility conditions using GPS trace data from professional cycling races.


8. Future Work