Field Guide · term

Also known as: FACCH, fast associated control channel

The NXDN Fast Associated Control Channel (FACCH) is the in-band signalling variant that carries an urgent control message on a traffic channel by stealing a frame’s 144-dibit information field — the field that would otherwise hold voice or data — and using it for signalling instead.1 Where the SACCH trickles a message out fragment by fragment across a superframe, the FACCH delivers a complete message in a single frame, at the cost of one frame’s worth of audio.2 It is NXDN’s answer to the times when signalling cannot wait for the slow channel: call setup and teardown, emergency indication, and other events that must land immediately.

voice FACCH voice FSW · LICH · SACCH stay put in every frame; only the info field is stolen one frame of signalling replaces one frame of audio
On a traffic channel the FACCH borrows a single frame's information field for a control message; the frame sync word, LICH, and SACCH remain in place, so the receiver stays synchronised and simply routes that frame's payload to the signalling decoder instead of the vocoder.

Fast versus slow

NXDN carries two associated control channels on a traffic link, and the split is a classic latency-versus-overhead trade. The SACCH is always present but tiny (26 payload bits per frame) and slow: a full message takes a superframe to arrive, but it never interrupts the audio because it lives in its own dedicated slot. The FACCH is the opposite: it appears only when needed, and when it does it takes the entire 288-bit information field for one frame, so it can carry a whole message at once — fast — but it costs that frame’s voice. A system uses the SACCH for continuous background state and reaches for the FACCH when an event (a grant, a disconnect, an emergency) must be signalled without a superframe of delay.

Crucially, bit-stealing touches only the information field. The FSW, LICH, and SACCH are present and coded identically whether the frame carries voice or a FACCH message, so the receiver never loses frame sync during a steal — it recognises the frame as FACCH (from the LICH function bits and context) and hands the stolen information field to the signalling decoder rather than the vocoder.

Relevance to SDR

In GopherTrunk, internal/radio/nxdn/frame.go names FACCH as one of the payload types the 144-dibit information field can carry — alongside CAC on the control channel and VCH/UDCH voice and data on traffic — and the Frame.Info() accessor returns exactly that field for whichever decoder the context selects. The frame geometry, sync, LICH, and SACCH decode identically regardless, so recognising a stolen frame is a routing decision on top of an already-locked frame rather than a separate sync problem. The dedicated FACCH channel-coder (its own FEC and CRC over the stolen field) follows the same convolution/puncture/interleave family as the CAC; GopherTrunk’s current NXDN surface focuses the structured decode on the control-channel CAC path and the frame/LICH/SACCH machinery, with the traffic-side voice and FACCH extraction called out as follow-on work. Getting the distinction right matters because a FACCH frame mistaken for voice produces a burst of vocoder noise, while a voice frame mistaken for FACCH drops audio — the LICH and frame context are what keep the two apart.

Sources

  1. NXDN — Wikipedia, on the NXDN standard and its logical channels. 

  2. Associated Control Channel — Wikipedia, on the fast/slow associated-control-channel concept shared across digital land-mobile standards. 

See also