Field Guide · term

Also known as: OSW, outbound status word, Motorola OSW

The Motorola OSW (Outbound Status Word) is the 32-bit control-channel signalling block of Motorola Type II trunking — the SmartNet / SmartZone systems that dominate US public-safety radio.1 Each OSW rides the outbound control channel after sync, BCH error correction, and de-interleaving, and announces one piece of system business: a voice or data channel grant, a system-ID broadcast, an adjacent-site pointer, an affiliation, or an idle heartbeat. The 32 information bits are carried by two BCH(64,16,11) codewords so the word survives a noisy channel.2

sync · 24 BCH(64,16,11) #1 BCH(64,16,11) #2 Address 16 opcode 12 LCN 4 Command = opcode (Command >> 4) · LCN (Command & 0xF)
Each Motorola control frame carries two BCH(64,16,11) codewords whose 16-bit info fields combine into the 32-bit OSW: a 16-bit address plus a command that splits into a 12-bit opcode and a 4-bit logical channel number.

Field layout

The OSW is 32 bits: the upper 16 carry an Address (a talkgroup or radio ID, depending on the opcode), and the lower 16 carry a Command that combines a 12-bit opcode with a 4-bit per-opcode parameter. For voice and data grants that nibble is the LCN — the logical channel number that indexes the operator’s band plan. GopherTrunk derives the opcode as Command >> 4 and the LCN as Command & 0xF.

Opcodes

The Motorola opcode space is large and vendor-extended; GopherTrunk models the SmartZone subset most useful for trunk-following:

Opcode Value Meaning
GroupVoiceChannelGrant 0x308 Group voice channel grant
GroupVoiceChannelGrantUpdate 0x309 Grant continuation / update
PrivateCallGrant 0x30B Unit-to-unit call grant
DataChannelGrant 0x310 Data channel grant
AffiliationResponse 0x320 Unit affiliation response
AdjacentSiteStatus 0x31B Neighbour-site announcement
SystemIDExtended 0x080 Extended system-ID broadcast
Encryption 0x140 Encryption signalling
Emergency 0x300 Emergency call
Idle 0x28D / 0x290 Control-channel idle / heartbeat

A voice grant carries the talkgroup in the Address field and the LCN in the Command nibble; the follower maps that LCN through the band plan and retunes. A SystemIDExtended OSW puts the system identifier in the Address field, with the Command nibble carrying a system-ID variant. Strict-mode operators reject any OSW whose opcode is outside the recognised set — an unknown opcode signals bit errors or a misaligned codeword pair.

Forward error correction

Each OSW frame carries two BCH(64,16,11) codewords back-to-back. A BCH(64,16,11) codeword is the 63-bit BCH(63,16,11) codeword — 16 information bits, correcting up to 11 errors — plus a trailing overall-even-parity bit, giving 64 wire bits. GopherTrunk’s BCHDecode64_16 splits off the parity bit, runs the inner BCH(63,16,11) decoder over the top 63 bits, then recomputes the parity over the corrected codeword and folds any mismatch into the error count. The two codewords’ 16-bit info fields combine into the OSW’s 32-bit {Address, Command} field. The 24-bit outbound sync is 0xA4D7AA (binary 1010 0100 1101 0111 1010 1010); a sliding detector locks onto it before the adapter slices the post-sync codewords.

In practice

The field-position and opcode assignments follow the most-cited public reference (sdrtrunk), not a paywalled Motorola specification, so they are best-effort — cross-check against a fresh live capture before trusting an unusual opcode. Because Motorola systems continuously re-announce active calls, a monitor recovers most activity even under marginal signal: the BCH pair repairs typical bit hits, and the redundant grant stream fills gaps a dropped frame would otherwise leave.

Relevance to SDR

internal/radio/motorola/osw.go holds the OSW packing (ParseOSW, OSWFromBits); opcodes.go interprets the Command field into structured grants, system IDs, and adjacent-site descriptors; and internal/radio/framing/bch.go (BCHDecode64_16) implements the FEC. These let GopherTrunk follow a Motorola Type II / SmartZone system — read the grant OSWs, map each LCN through the band plan, and retune to the assigned voice channel in step with the radios.

Sources

  1. Trunked radio system — Wikipedia, on trunking and the Motorola Type II / SmartNet family. 

  2. BCH code — Wikipedia, on the error-correcting code that protects each OSW codeword. 

See also