If you build software that touches Link 16, sooner or later you stop talking about waveforms and start talking about messages. The waveform gets you a time slot; the J-series is what you put in it. The J-message catalog is the part of Link 16 that an engineering team actually implements, tests, and debugs at three in the morning when a track is not appearing on the picture. This is a field guide to that catalog: the structure of a J-word, the series that matter, and the codec patterns that keep the protocol from poisoning your domain model.
1. what the J-series is
The J-series is the fixed-format binary message catalog of Link 16, defined in MIL-STD-6016 and mirrored in NATO by STANAG 5516. "TADIL-J" is the older US designation for the same thing — Tactical Digital Information Link, J-series — and you will still see it in older interface specs and program documentation. When people say a platform is "J-capable," they mean it can encode and decode this catalog.
The catalog is organized into series numbered J2 through J31, each grouping messages by function: location, surveillance, information management, weapons, control, status, and free text. Every message is a fixed bit layout — no length prefixes, no field tags, no self-description. The encoder and decoder both hold the MIL-STD-6016 field map in code, and the bits on the wire mean nothing without it. That rigidity is the point: it removes per-message overhead, which matters when your transport budget is a fraction of a TDMA slot. If you are new to the bearer underneath the catalog, our explainer on Link 16 tactical data links covers the waveform, TDMA timing, and net architecture that the J-series rides on.
2. word structure
The atomic unit of the J-series is the 70-bit word. Each word carries 70 bits of message content plus parity and the bits the terminal adds for the slot — but at the message layer, you reason in 70-bit words. A J-message is a sequence of these words in a defined order: an initial word, zero or more extension words, and zero or more continuation words.
The initial word carries the message label — the pair of fields that identifies the message as, say, J3.2 — plus the first block of payload. The first five bits of the initial word are the word format and label structure; the label (a 5-bit Label and a 3-bit Sub-Label) tells the decoder which series and message it is reading, and therefore how to interpret every bit that follows. Extension words carry mandatory additional fields that did not fit in the initial word. Continuation words carry optional fields, each tagged with a Continuation Word Format Number so the decoder knows which optional block it is parsing.
Words are packed into TDMA slots according to the packing structure in use — Standard Double Pulse, Packed-2, or Packed-4 — which trade jam resistance for capacity by fitting 3, 6, or 12 words per slot respectively. Spare bits are common: where MIL-STD-6016 reserves a field for future use, it must be transmitted as zero and ignored on receipt. Mishandling spare and "no statement" values is one of the most common sources of false decodes.
3. J2 series
The J2 series is PPLI — Precise Participant Location and Identification — and it is the heartbeat of a Link 16 network. Every active participant broadcasts its own PPLI on a recurring basis so that everyone else knows where it is, who it is, and what it can do. PPLI is how the network self-organizes: relative navigation, identification, and net management all lean on it.
The J2 messages are split by platform domain. J2.0 is the indirect-interface PPLI used by units relayed onto the net; J2.2 is the air PPLI; J2.3 is the surface (maritime) PPLI; J2.5 is the land PPLI. Each carries the participant's position, velocity, identity, and capability fields appropriate to its domain. The reason every unit broadcasts its own PPLI rather than being tracked by others is integrity: a participant is the authoritative source for its own position and identity, which removes a whole class of correlation ambiguity. When a unit drops off the picture, the first thing an operator checks is whether its PPLI is still arriving.
4. J3 series
The J3 series carries surveillance — the tracks that make up the tactical picture of things that are not reporting their own PPLI. Where J2 is "here I am," J3 is "here is something I see." The series is split by track domain: J3.2 is air tracks, J3.3 is surface (maritime) tracks, J3.5 is land point and land track. There are also J3.0 (reference point), J3.1 (emergency point), J3.4 (subsurface), J3.6 (space track), and J3.7 (electronic warfare product).
Each surveillance message carries a track number, position, course and speed, and the identity and track-quality fields that drive operator decisions. Track Quality is a small integer that summarizes positional confidence; identity fields encode the standard taxonomy — Pending, Unknown, Assumed Friend, Friend, Neutral, Suspect, Hostile — alongside platform and activity codes. The decoding subtlety here is reporting responsibility: two units may report the same physical object with different track numbers, and the network's correlation and de-confliction logic, not the J3 message itself, decides which report wins.
Key insight: The J-series has no concept of "no value" beyond explicit "no statement" codes baked into each field. A latitude field is not nullable — it is always 25 bits of something. If your codec maps a "no statement" course or an all-zeros spare field into a real 0.0 in your domain model, you will paint a track sitting at the equator doing zero knots. Treat every field's "no statement" encoding as a first-class case, not an afterthought.
5. J7/J9 series
Once you have position (J2) and surveillance (J3), the network needs to manage that information: that is the J7 series. J7.0 is the pointer / correlation message — it lets one unit point another unit at a specific track, or assert that two track numbers refer to the same object. J7.1 is IFF/SIF management, J7.2 is a track-management handover, and J7.3 is a correlation/de-correlation directive. The J7 series is what turns a pile of independent reports into a coherent, de-conflicted shared picture.
The J9 series is command and weapons coordination. J9.0 is the command message — the formal mechanism by which a controlling unit issues a directive to a controlled unit. This is where Link 16 stops being a passive broadcast bus and becomes a command channel: assignment, engagement direction, and the supporting coordination flow through J9 in concert with the J12 control series. Engineering teams that treat Link 16 as read-only telemetry are always surprised the first time they have to originate a J9.0.
6. J10/J12/J13
The J10 series is weapons coordination and management. It carries engagement status, the pairing of weapons to targets, hand-over of an engagement between units, and the in-flight reporting that an air-defense network needs to deconflict shooters. J10.2 (engagement status) and J10.5 (weapon directive) are the workhorses; getting them wrong does not mean a missing icon, it means two units engaging the same threat or neither engaging it.
The J12 series is control: vectoring, mission assignment, and target sorting. J12.0 is the mission assignment message that hands a controlled aircraft its tasking; J12.6 is the target-sorting message. J12 is the series that makes Link 16 a fighter-control medium rather than a situational-awareness feed. The J13 series is platform and system status — J13.2 air platform, J13.3 surface platform, J13.4 subsurface, J13.5 land platform — reporting fuel, weapons inventory, and system readiness so a controller knows not just where a unit is but what it can still do.
7. free text and the long pole
The J28 series is free text and related messages — J28.0 is the text message that carries human-readable strings when no structured message fits. It is the escape hatch, and like every escape hatch it gets overused; a network that leans on J28 free text for things that should be structured J-messages is a network whose automation has given up. J31 is the management series — J31.0 covers over-the-air rekeying and time-slot reallocation housekeeping that keeps the cryptographic net healthy.
The long pole in any J-series implementation is not the common messages — J2 and J3 are well-trodden. It is the pitfalls. Bit endianness inside a word trips up nearly every first implementation: MIL-STD-6016 numbers bits in a specific order, and reading a field most-significant-bit-first when the standard packs it least-significant-bit-first yields plausible-looking garbage. Disused and reserved fields are the second trap: standards evolve, fields get deprecated, and an old emitter may set bits that a strict new decoder rejects. Build tolerance for reserved bits and rigor for spare ones.
8. building a J-series codec
The architecture that survives contact is the dual-stack adapter pattern. Your combat system or C2 application maintains its tactical picture in an internal domain model — tracks, participants, engagements — that knows nothing about Link 16. A protocol-adapter layer sits between that model and the terminal, translating the domain model to and from J-series words on the wire. The cardinal rule: never let the protocol leak into the domain model. A track in your core should not carry a "J3.2 word 2 bit 14" field; it should carry a position and an identity, and the adapter owns the mapping. The same discipline applies across every protocol you bridge, which is the heart of practical NATO interoperability — VMF, Link 22, JREAP-tunnelled J-series all become adapters against one canonical model.
Test the codec against vectors, not against a live net. MIL-STD-6016 and its test suites provide reference bit patterns for each message; encode a known domain object, compare the bytes against the vector, then decode the vector back and compare the object. Round-trip every message you support, and assert that "no statement" fields survive the trip as "no statement" rather than collapsing to zero. When you add support for a new J-message, you add an adapter and its vectors — you do not touch the domain model or the rest of the stack. That isolation is what lets you absorb a Link 16 block upgrade by swapping one adapter instead of regression-testing an entire combat system.