Field Guide · technology

Also known as: multimon-ng, multimon

multimon-ng is an open-source, command-line decoder for a grab-bag of legacy digital signalling modes carried in audio, most famously the POCSAG and FLEX pager protocols, along with AFSK packet, DTMF, and several others.1 It takes demodulated audio — typically FM discriminator or receiver audio — and prints the decoded messages as text, making it the usual back end for pager and low-speed data monitoring on an SDR.

demod audio(pipe / .wav) POCSAG FLEX AFSK / DTMF decoded text
multimon-ng runs several selectable decoders on one demodulated audio stream and prints the recovered messages as text.

How it works

multimon-ng expects demodulated audio, not raw IQ: a stream of 22050 Hz samples fed from a pipe (commonly from an FM demodulator such as rtl_fm or an SDR application’s audio output), a WAV file, or the sound card. The user selects one or more decoders on the command line, and each runs on the same audio in parallel.

Each decoder implements its mode’s low-level recovery. For POCSAG it tracks the two-level FSK at 512, 1200, or 2400 bit/s, finds the preamble and frame-sync word, groups the interleaved code words, applies the BCH error-correcting code, and reassembles numeric or alphanumeric pages. FLEX decoding handles its 1600/3200/6400 bit/s multi-level FSK framing similarly. The AFSK decoders recover 1200-baud (Bell 202) and related tones and hand off frames that can be AX.25/APRS packets, and there are decoders for DTMF, ZVEI and other selective-calling tones, and more. Output is plain text lines, one per decoded message, easily logged or piped into other programs.

Because it works from audio, multimon-ng is front-end agnostic — anything that can produce the right demodulated audio can feed it, which is why it pairs naturally with cheap SDR dongles.

Relevance to SDR

multimon-ng is a mainstay for monitoring pagers and simple data bursts on an SDR: a common recipe pipes rtl_fm audio straight into multimon-ng to read POCSAG/FLEX traffic in real time. Its breadth of legacy modes makes it a handy utility for utility-signal hunting and for teaching how these older FSK/AFSK protocols are framed and error-corrected. It is strictly a decoder of the payload once a signal is demodulated; tuning, filtering, and demodulation are the SDR front end’s job.

GopherTrunk is a separate project with different scope. GopherTrunk decodes IQ directly and concentrates on trunked-radio and digital-voice systems (P25, DMR, NXDN, TETRA, and more), handling its own channelization and demodulation rather than consuming pre-demodulated audio. Their coverage overlaps only at the edges — GopherTrunk’s protocol list does include some of the data/paging modes multimon-ng handles (such as POCSAG) — but the tools take different inputs and serve different workflows: multimon-ng is a lightweight audio-in, text-out decoder for legacy signalling, while GopherTrunk is an integrated IQ scanner. They can share hardware, and multimon-ng remains the simplest route to reading classic pager traffic.

Sources

  1. multimon-ng — the source repository listing the supported decoders and audio input methods; background on the flagship mode is in the POCSAG Wikipedia article

See also