Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

B&R X2X Link Protocol — Wire-Level Technical Reference

Scope: B&R (Bernecker + Rainer, now ABB) X2X Link and X2X+ backplane/remote-I/O bus systems used in the X20, X67, and Compact-S product families.

Date: July 2026 — Compiled from official B&R datasheets, system manuals, community posts, and third-party technical articles.


Table of Contents

  1. Protocol Overview
  2. Physical Layer
  3. X2X Frame Format and Wire-Level Encoding
  4. Timing, Bit Rate, and Synchronization
  5. Node Addressing
  6. Protocol Versions — X2X Link vs X2X+
  7. Error Handling and Diagnostics
  8. Sniffing / Tapping X2X Traffic
  9. Decoding IO Card Sensor Data at the Protocol Level
  10. Pinpointing Failing IO Modules / Channels from Captured Traffic
  11. Tools for X2X Analysis
  12. Component Reference Tables
  13. Source URLs and References

1. Protocol Overview

X2X Link is B&R’s proprietary real-time deterministic bus protocol designed for:

  • Backplane communication between I/O modules on the X20/X67 bus bases
  • Remote I/O expansion up to 100 m from the controller
  • Providing a single unified protocol for both local (backplane) and remote (cable) I/O, eliminating the need for separate fieldbus-to-I/O gateways

Key characteristics:

PropertyValue
Protocol typeProprietary, master-slave, cyclic deterministic
MediaPCB traces (backplane) + twisted-pair copper cable (remote)
TopologyDaisy-chain / multi-drop
Max bus speed12 Mbps (X2X Link)
Max segment length100 m per segment (remote cable)
Max slave nodes62 per master (X20BT9100 / X20BR9300)
Cycle time0.5 ms to 10 ms (configurable, default 2 ms)
Address range0x01 – 0xFD (manual) or auto-assigned (0x00)
OwnerB&R Industrial Automation (now ABB) — closed/undocumented wire protocol

IMPORTANT CAVEAT: B&R has never publicly released a wire-level protocol specification for X2X Link. The frame structure, checksum algorithm, and bit-level encoding described below are reconstructed from official hardware documentation, system manuals, community knowledge, and reverse-engineering observations. Some details are necessarily incomplete or inferred.


2. Physical Layer

2.1 Backplane (X20 Local Bus)

On the X20 backplane, X2X Link is carried on the module-to-module bus connectors (8-pin keyed connectors at 12.5 mm pitch). The protocol runs at 12 Mbps over PCB traces directly between modules slotted onto the bus base.

  • Each X20 module has an 8-pin bus connector on each side (left/right)
  • Modules are physically clipped together onto a DIN-rail-mounted bus base
  • The bus base carries: X2X data lines, +24 VDC, GND, and I/O power
  • No external cabling is needed for local backplane communication

For remote I/O expansion, X2X Link uses a differential-pair serial link over shielded twisted-pair copper cable. The physical layer is electrically compatible with EIA-485 (RS-485) transceivers, but the protocol and data encoding are entirely proprietary — it is NOT standard UART/RS-485 framing.

2.2.1 Connector — M12, B-keyed, 5-pin

All X2X Link remote cable assemblies use B-keyed M12 circular connectors:

PinSignalWire ColorFunction
1X2X+RedX2X Link data+ (differential pair A) AND +24 VDC supply for remote backplane
2X2XWhiteX2X Link data reference (differential pair B)
3X2X⊥BlackX2X Link inverse data (differential pair A inverse)
4X2X\BlueX2X Link data ground / inverse reference
5Not assignedUnused (present on connector but NC)
ShellSHLDBraided shield360° shield via knurled-head screw

Critical note about pin 1 (Red wire / X2X+): Pin 1 carries both the X2X Link data signal AND the +24 VDC power supply for the remote X2X backplane. When connecting to devices with their own power supply (e.g., IF789 or LS189 interfaces), the red wire end must be insulated (heat-shrink) to prevent short circuits. For standard X2X remote stations (X20BR9300, X67 modules), pin 1 provides both data and power.

Source: X2X Link Cables Data Sheet V2.21

2.2.2 Cable Specifications

ParameterValue
Cable type4-core shielded twisted pair
Data pair (X2X / X2X⊥)2 × 0.25 mm² (AWG 24), tinned Cu, light blue + white
Supply pair (X2X+ / X2X\)2 × 0.34 mm² (AWG 22), tinned Cu, red + black
ShieldingPaired aluminum foil shield + braided tinned Cu overall
Outer sheathPUR mixture, halogen-free, purple
Outer diameter6.9 mm ± 0.2 mm
Max current per contact4 A
Max connection voltage125 V AC/DC
Conductor resistance< 180 Ω/km at 20°C
Temperature range (fixed)-25 to 80°C
Temperature range (flexible)-20 to 80°C
Min bend radius (fixed)≥ 7.5× outer diameter (≈ 52 mm)
Min bend radius (flexing)≥ 15× outer diameter (≈ 104 mm)
Drag chain ratingMax 7 m/s², 3 m/s velocity

Standard pre-assembled cable lengths: 0.25 m, 1.0 m, 1.5 m, 2.0 m, 5.0 m, 10.0 m, 15.0 m, 25.0 m, 50.0 m. Bulk cable (X67CA0X99) available in 100 m and 500 m drums for custom assembly.

Cable part numbers:

  • X67CA0X01.xxxx — Straight M12-to-M12 connection cables
  • X67CA0X11.xxxx — Angled (90°) M12-to-M12 connection cables
  • X67CA0X21.xxxx — Straight female-to-open attachment cables
  • X67CA0X41.xxxx — Straight male-to-open open cables
  • X67CA0X51.xxxx — Angled male-to-open open cables
  • X20CA0X48.xxxx — X20 system attachment cables (open-ended one side)

2.2.3 Termination

  • 120Ω termination resistors are required at both ends of each X2X Link segment
  • B&R dedicated terminator: X20AT6100 (120Ω, 0.25W)
  • DC resistance measured between X2X+ and X2X⊥ at bus ends should read ~60Ω (two 120Ω resistors in parallel when both terminators are installed)
  • Some modules have built-in termination switches/jumpers

2.2.4 Topology

  • Daisy-chain / multi-drop — modules are connected serially with an IN and OUT port
  • Each X20BR9300 bus receiver has two X2X ports for daisy chaining
  • Maximum of 100 m total cable length per segment
  • The X2X Link bus is fed by the X20BR9300 bus receiver (or X20BT9100 transmitter)
  • After approximately 30 modules on a single segment, a bus repeater (another X20BR9300/X20BT9100) is needed
  • Shield must be grounded at both ends for best EMC immunity; ground the supply line as close as possible to the shield connection point

2.2.5 Physical Verification Checklist

1. Verify DC bus voltage: Should be 2.5V ±0.5V between X2X+ and X2X⊥ when idle
2. Verify DC resistance between A+ and B-: ~60Ω with both terminators installed
3. Check cable shield grounding: One-point grounding minimum, two-point preferred
4. Confirm segment length ≤ 100 m
5. Confirm terminator at first and last node
6. Check for ground potential differences between panels
7. Verify power supply sequencing: X2X modules stabilize before CPU initialization

3. X2X Frame Format and Wire-Level Encoding

3.1 What Is Known

B&R has not published the X2X Link wire-level protocol specification. The following is reconstructed from multiple sources:

3.2 Physical Signaling

  • The X2X Link uses differential signaling over twisted pairs, electrically compatible with RS-485 transceivers
  • The bus operates at 12 Mbps on the backplane; remote cable speed is determined by the transceiver and cable quality (B&R specifies up to 12 Mbps with their qualified cable over 100 m)
  • The encoding is NOT standard UART/async serial (no start/stop bits in the conventional sense). The protocol uses a synchronous, clock-recovered NRZ-like encoding with its own frame delimiters and bit-stuffing
  • The master provides the clock reference for all slaves on the bus

3.3 Inferred Frame Structure

Based on community observations and reverse-engineering efforts, X2X Link frames appear to follow this general structure:

┌──────────┬──────────┬──────────┬──────────────┬─────────┬──────────┐
│ Preamble │ Sync     │ Header   │ Payload Data │ CRC/FCS │ EOM      │
│ (edge    │ Pattern  │ (address │ (I/O data,   │ Checksum│ End of   │
│  training│ (unique  │ + ctrl + │ config,      │         │ Message  │
│  for PLL │ word for │ frame    │ diag)        │         │ marker)  │
│  lock)   │ framing) │ type)    │              │         │          │
└──────────┴──────────┴──────────┴──────────────┴─────────┴──────────┘
FieldDescription (Inferred)
PreambleA burst of alternating edges allowing slave receivers to lock their
PLL/clock recovery circuits. Duration depends on baud rate and receiver
requirements.
Sync PatternA unique bit sequence that marks the start of a valid frame.
Distinguishes real data from line noise.
HeaderContains at minimum: destination/source node address, frame type code,
and payload length. Likely 2-4 bytes.
PayloadVariable-length data: I/O input/output values, configuration parameters,
diagnostic status words, module identification.
CRC/FCSFrame Check Sequence for integrity verification. Likely CRC-16 or
CRC-32, but exact polynomial is unknown.
EOMEnd-of-message delimiter or final bit pattern.

3.4 Frame Types (Inferred)

The X2X Link master cyclically transmits the following frame categories:

Frame TypeDirectionDescription
ConfigurationMaster → SlaveSent during initialization. Assigns node addresses, sets module
parameters, configures I/O mapping. Slave must be in RESET/BOOT mode
to accept configuration.
Cyclic DataMaster → Slave (outputs) + Slave → Master (inputs)Real-time I/O data exchanged every cycle. Output data from the master
is piggybacked onto the master’s polling frame; input data from the slave
is returned in the slave’s response slot.
Diagnostic/StatusMaster ↔ SlaveStatus words indicating module health, error flags, watchdog state,
and per-channel diagnostics.
Ack/NACKSlave → MasterAcknowledgment of configuration frames, error responses.

3.5 Cyclic Communication Model

The X2X Link operates on a master-slave polling model within each cycle:

  1. Master broadcasts a poll frame containing the destination node address and output data
  2. The addressed slave responds with input data and status information
  3. Master polls the next slave in sequence
  4. All slaves are polled once per cycle time
  5. The cycle repeats deterministically

This means: Cycle time ≥ (number_of_slaves × per_slave_transaction_time) which is why the X2X cycle time must be at least as fast as the task class that reads/writes its I/O.

NOTE: The exact byte-level frame format, sync word values, CRC polynomial, and bit-level encoding remain proprietary. B&R has not released this information. Any attempt to fully decode X2X traffic from raw captures would require either (a) a leaked specification or (b) significant protocol reverse-engineering effort.


4. Timing, Bit Rate, and Synchronization

4.1 Bit Rate

ContextBit Rate
X20 backplane (local I/O)12 Mbps
Remote X2X Link (cable)12 Mbps (with qualified B&R cable, ≤ 100 m)
X2X+ backplane~48 Mbps (estimated, 4× X2X Link)

Source: B&R System Overview I/O, Fieldbus, and Control Systems (2011/2012 edition) — X20IF1061 and X20IF1063 interface modules listed with “X2X Link, baudrate max. 12 Mbps”

4.2 Cycle Time

The X2X Link cycle time is user-configurable in Automation Studio:

ParameterValue
Minimum cycle time0.5 ms (500 μs)
Maximum cycle time10 ms (10000 μs)
Default cycle time2 ms
GranularityMultiples of the system timer base (typically 100-200 μs steps)
ConstraintMust be a multiple of or divisor of task class cycle times

The cycle time determines how fast I/O data is updated:

  • At 2 ms cycle time: I/O is refreshed 500 times per second
  • At 0.5 ms cycle time: I/O is refreshed 2000 times per second
  • The X2X cycle time directly affects the cyclic task classes in Automation Studio; task classes must have cycle times that are multiples of the X2X cycle

4.3 Synchronization Mechanism

  • The master node (CPU or bus controller) generates the timing reference for the entire X2X bus
  • All slave nodes synchronize to the master’s clock via the X2X frame preamble and sync patterns
  • When an ACOPOS drive (POWERLINK) is added to the configuration, the system timer configuration changes to “EPL/X2X Interface” mode, and the POWERLINK and X2X interfaces share the same timing base
  • POWERLINK cycle time must be a multiple of 400 μs for motion control applications
  • IO-Link cycle times can be synchronized to or explicitly specified independently from the X2X cycle time

4.4 Timing Constraints

  • The X2X cycle time must match or be compatible with the task class cycle times that read/write the I/O mapped to that X2X bus
  • If a stepper motor controller (e.g., X20SM1436) runs in a 4 ms task, the X2X bus must also run at ≤ 4 ms (typically the same value)
  • Default X2X cycle: 2 ms; default POWERLINK cycle: 10 ms (but these can be changed independently in Automation Studio)

Source: Pedronf65 blog post on B&R task timing configuration


5. Node Addressing

5.1 Addressing Scheme

Each X2X Link node has a unique 1-byte address in the range 0x01 to 0xFD (1 to 253 decimal). Address 0x00 has a special meaning (automatic assignment).

5.2 How Nodes Get Addresses — Two Methods

Method 1: Manual Address via DIP Switches

Bus modules equipped with node number switches (e.g., X20BM05) allow manual address assignment:

  • Two rotary/hex switches labeled ×16 and ×1 provide a range of 0x00 to 0xFF
  • The actual address is: (×16 switch value × 16) + ×1 switch value
  • Setting the switches to a value in range 0x01–0xFD sets the X2X Link address permanently for the bus base
  • Setting 0x00 enables automatic address assignment (see below)
  • Placing a node-number-switch module at the beginning of an X20 block ensures a unique address base; subsequent modules in the block are auto-numbered upward from that base

The switches are physically located on the bus module (bottom of the module), with symbols printed on the locking lever for external visibility.

Method 2: Automatic Address Assignment

  • When a bus module’s node number switches are set to 0x00, the X2X Link address is automatically assigned by the master during initialization
  • The master assigns addresses in ascending order starting from the last known address + 1
  • Manual and automatic addressing can be combined: place one manually-set module to establish a unique base, then let subsequent modules auto-assign

5.3 Address Assignment Rules

  • No two nodes on the same X2X segment may share the same address
  • The master (CPU/bus controller) always has the lowest address (typically 0x01)
  • Addresses must match the configuration in Automation Studio
  • Changes to node number switches only take effect after a power cycle
  • The X2X Link address is independent of the electronics module plugged into the slot — it depends only on the bus module’s switch setting

5.4 Addressing on X67 System

On X67 remote I/O blocks:

  • The left node number switch sets the upper nibble (×16)
  • The right node number switch sets the lower nibble (×1)
  • Combined value forms the X2X Link address

PropertyValue
Introduced~2005 with X20 system launch
Bus speed12 Mbps
Cycle time0.5 – 10 ms
Max slaves62 per master
Max segment100 m cable
AvailabilityAll X20/X67 CPUs, bus controllers, interface modules
Backward compatibleYes — universal support

6.2 X2X+ (Enhanced)

PropertyValue
IntroducedJanuary 2023
Bus speed~48 Mbps (estimated, 4× X2X Link)
Response time4× faster than X2X Link
BandwidthSignificantly higher; handles large data volumes
Max slavesNot publicly specified (likely ≥ 62)
Max segment100 m cable
AvailabilitySelected X20 controllers (e.g., X20CP168x, X20CP368x series)
CompatibilityNOT directly combinable with X2X Link in same segment

6.3 Key Differences

FeatureX2X LinkX2X+
Transfer rateBase4× base
Response timeBase4× faster
Data bandwidthStandardHigh (suitable for vibration analysis, high-speed DAQ)
Topology supportBackplane + remoteBackplane only (as of initial release)
MixingN/ACannot mix X2X+ and X2X Link in same segment
Controller requirementAny X20/X67Specific SG4 controllers with X2X+ option
Cycle time range0.5 – 10 msSub-millisecond possible

From B&R press release (Jan 30, 2023):

“X2X+ enables faster data transfer and up to four times faster response times. In combination with this higher bandwidth, large amounts of data can be handled quickly and easily.”

Source: B&R “Four times more performance” press release

6.4 Migration Notes

  • Existing X20 I/O modules are compatible with both X2X Link and X2X+
  • If X2X+ is selected in Automation Studio as the backplane bus, all local modules use X2X+; remote X2X Link segments require a separate X2X Link interface
  • A separate X2X Link interface module is needed if you need to connect X2X Link remote stations to an X2X+ system

7. Error Handling and Diagnostics

7.1 CPU Operating Modes

ModeR-LED PatternX-LED PatternBehavior
BOOTDouble flash (~1 Hz)VariesFirmware loading — DO NOT interrupt
RESETSingle flash (~1 Hz)OffNo valid application or corrupt config
RUNSteady ON (green)Steady ON (orange)Application executing, X2X active
STOPSingle flashVariesApplication halted by user or error

7.2 Module-Specific LED Diagnostics

ModuleLEDStatusMeaning
X20BR9300 (Slave bridge)R-LEDSolid greenNormal: Power OK
X20BR9300X-LEDSolid orangeX2X communication active
X20BR9300R-LEDSingle flashReset mode / not configured
X20BR9300X-LEDOffX2X communication not established
X20BT9100 (Master terminal)R-LEDSingle flashModule not initialized by CPU
X20BT9100X-LEDOffNo X2X frame transmission
X20 I/O ModulesR-LEDSteady greenModule initialized and operational
X20 I/O ModulesR-LEDSingle flashWaiting for CPU configuration

7.3 CPU Error Codes (7-Segment Display)

CodeMeaning
E001Hardware initialization error
E002Memory test failure
E003Fieldbus initialization error
E004Application load error

7.4 Common Failure Modes

FailureSymptomsLikely Cause
All modules single-flashNo X2X communicationCPU in RESET/STOP, hardware fault, missing config
Single slave offlineOne panel not respondingCable fault, termination missing, power issue, address conflict
Intermittent commsRandom slave dropoutsCable length > 100 m, poor shielding, ground loops, failing transceiver
All slaves fail after warm startComplete bus lossWatchdog timeout, power sequencing, master transceiver failure
Configuration mismatchSlave R-LED solid but X-LED offPhysical topology differs from Automation Studio project config

7.5 X2X Bus Configuration Error Detection

  • During initialization, the master sends configuration frames to each slave in sequence
  • If a slave does not acknowledge configuration within the timeout period, that node is marked as not configured
  • Address conflicts (duplicate addresses) will cause initialization failures for the conflicting nodes
  • The X2X bus is completely inactive if the CPU is not in RUN mode — this is by design, as a safety measure

7.6 Power Supply Sequencing

  • 24 VDC power to X2X modules must stabilize before CPU initialization
  • Recommended sequence:
    1. Disconnect all 24 VDC power
    2. Wait 60 seconds for complete discharge
    3. Reapply power to X2X modules first, wait 2 seconds
    4. Apply power to CPU
    5. Observe LED sequences during boot

7.7 Reset Button Behavior

  • Brief press: Warm restart — application program remains in memory
  • Hold 3+ seconds then release: Warm restart with re-initialization attempt
  • Hold 10+ seconds during power-on: Cold start — clears retain variables, forces complete re-initialization
  • Cold start can also be triggered via Automation Studio command

8. Sniffing / Tapping X2X Traffic

8.1 Challenge Level: HIGH

X2X Link is a 12 Mbps differential serial protocol on a proprietary physical layer. There is no off-the-shelf Wireshark dissector or commercial protocol analyzer that natively supports X2X Link. Sniffing requires custom hardware and software.

8.2 Physical Tap Points

For the remote X2X Link cable, the tap point is straightforward — you have accessible M12 connectors. For the local backplane, you would need to either:

  • Probe the PCB traces directly (requires opening the module housing)
  • Tap into the bus connector pins using fine-pitch probe clips

8.3 Hardware Options

Option A: High-Speed Logic Analyzer

ToolSample RateChannelsSuitability
Saleae Logic Pro 16500 MS/s16Marginal — 500 MS/s gives ~42 samples per bit at 12 Mbps
Saleae Logic 2 Pro 161 GS/s16Adequate — 83 samples per bit
Saleae High-Speed USB2 GS/s16+Good — 166 samples per bit
sigrok/Clone (Sainlogic)24-100 MS/s8-16Insufficient for 12 Mbps

REQUIREMENT: At 12 Mbps, one bit period is ~83.3 ns. You need a minimum of 4-5 samples per bit (16-20 ns resolution), so the logic analyzer must sample at ≥ 48-60 MS/s per channel. A 100 MS/s or better analyzer is strongly recommended.

Option B: RS-485 Transceiver Tap Board

Build a simple passive tap:

                    ┌─────────────────────┐
  X2X Master ──────│ A (non-inverting)    │────── Logic Analyzer CH1
                    │ B (inverting)       │────── Logic Analyzer CH2
  X2X Slave ───────│ GND                 │────── Logic Analyzer GND
                    │                      │
                    │ 120Ω term (switchable)│
                    └─────────────────────┘
  • Use a high-speed RS-485 transceiver rated for ≥ 20 Mbps (e.g., SN65HVD1782, MAX1487, ADM485)
  • Add a switchable 120Ω termination resistor to avoid affecting bus operation when tapping mid-segment
  • Power the tap board from an isolated supply to avoid ground loops
  • Connect the transceiver output to the logic analyzer’s digital inputs

Option C: Differential Probe + Oscilloscope

  • A differential probe (e.g., Tektronix P5200 or equivalent) connected to an oscilloscope can visually capture the X2X signal waveform
  • Not suitable for long captures or automated decoding, but useful for verifying signal integrity and estimating baud rate

8.4 Capture Procedure

  1. Identify tap point: Disconnect the X2X cable at a convenient junction (between master and first slave, or between two slaves)
  2. Install passive tap: Insert the tap board inline. Ensure termination is correct (tap mid-segment: no termination; tap at end: enable termination)
  3. Configure logic analyzer:
    • Sample rate: ≥ 100 MS/s (≥ 200 MS/s recommended)
    • Channels: CH1 = X2X+ (data+), CH2 = X2X⊥ (data-)
    • Trigger: Rising or falling edge on CH1
    • Capture duration: ≥ 2× X2X cycle time (4 ms at 2 ms cycle)
  4. Start capture and observe:
    • You should see a periodic pattern corresponding to the X2X cycle
    • Each cycle contains multiple bursts (one per slave)
    • Idle periods between bursts show the bus in the recessive/idle state

8.5 Signal Characteristics to Expect

        ┌──┐  ┌──┐  ┌──┐  ┌─────┐           ┌──┐
   X2X+ ┘  └──┘  └──┘  └──┘     └───────────┘  └──
   X2X⊥ ────────────────────────────────────────────
           ← Frame 1 →         Idle    ← Frame 2 →
  • Differential voltage swing: approximately 1.5–3.0 V (typical RS-485 levels)
  • Idle/bus-free state: X2X+ ≈ X2X⊥ (both at common-mode voltage, ~2.5V)
  • Active state: X2X+ and X2X⊥ diverge by ±1.5V differential

9. Decoding IO Card Sensor Data at the Protocol Level

9.1 What You Need to Know Before Decoding

To decode IO data from raw X2X traffic, you need:

  1. The I/O mapping from the Automation Studio project (which node addresses map to which I/O modules, which channels, and data types)
  2. The cyclic data layout for each node (how many bytes of input/output data per node per cycle)
  3. The byte order (likely little-endian, consistent with x86 B&R CPUs)
  4. The frame boundary markers (sync pattern) to segment the captured bitstream
  5. The CRC/checksum algorithm (to validate decoded frames)

9.2 Data Mapping Architecture

In Automation Studio, the I/O mapping defines:

Node Address 0x01 (X20BR9300 - Panel 1):
  Slot 2: X20DI9372 (16-channel digital input)
    → Input bytes: 2 bytes (16 bits, one per channel)
    → Byte 0: Channels 1-8 (bit 0 = channel 1)
    → Byte 1: Channels 9-16 (bit 0 = channel 9)
  Slot 3: X20AO4622 (4-channel analog output, 16-bit)
    → Output bytes: 8 bytes (4 × 16-bit values)
    → Bytes 0-1: Channel 1 value (0 to 32767 = 0 to 10V)
    → Bytes 2-3: Channel 2 value
    → ...

Node Address 0x11 (X20BR9300 - Panel 2):
  Slot 2: X20AI4632 (4-channel analog input, 16-bit)
    → Input bytes: 8 bytes (4 × 16-bit values)
    → Bytes 0-1: Channel 1 value (0 to 32767 = 0-10V or 4-20mA)
    → ...

9.3 Digital Input Data Format (Inferred)

  • Digital I/O is packed as bit-mapped bytes, 8 channels per byte
  • Bit 0 of byte 0 = channel 1 (or channel 0, depending on B&R’s convention)
  • Little-endian packing: LSB first
  • Sink inputs read 1 = input active (current flowing)
  • Source inputs read 1 = input active (voltage present)

9.4 Analog Data Format (Inferred)

  • Analog values are typically 16-bit signed or unsigned integers
  • Resolution depends on the specific module (12-bit or 16-bit ADC)
  • Scaling from raw value to engineering units is done in the PLC program, not in the protocol
  • Common analog ranges:
    • ±10V: raw 0–32767 (unsigned) or -32768–32767 (signed)
    • 0–10V: raw 0–32767
    • 4–20mA: raw 0–32767 (where 0 = 4mA, 32767 = 20mA)

9.5 Decoding Workflow (Without Official Specification)

  1. Capture raw differential signal with logic analyzer
  2. Convert differential signal to single-ended (X2X+ XOR X2X⊥)
  3. Identify frame boundaries using sync patterns
  4. Extract bitstream for each frame
  5. Parse header to identify source/destination address
  6. Extract payload based on known I/O mapping
  7. Verify with CRC (algorithm unknown — trial and error with common CRC-16 polynomials: CRC-16-CCITT, CRC-16-IBM, CRC-16-MODBUS)

Practical reality: Without the official protocol spec, decoding X2X payload data requires significant reverse-engineering effort. The most practical approach is to use known I/O states as test patterns and correlate captured bits with expected values.


10. Pinpointing Failing IO Modules / Channels from Captured Traffic

10.1 Diagnostic Approach Using Captured Traffic

If you can capture and decode X2X traffic (even partially), you can identify failing modules/channels by:

Method 1: Address-Level Identification

  1. Compare the list of responding node addresses in captured traffic against the expected configuration
  2. A missing address in the cyclic polling sequence indicates a slave that is not responding (offline, cable fault, or module failure)
  3. An unexpected address may indicate an address conflict or misconfigured node

Method 2: Status Word Analysis

Each slave’s response frame likely contains a status/diagnostic word. Look for:

  • Error flag bits (which bit positions indicate which conditions is unknown without the spec)
  • Watchdog timeout flags
  • Module-specific error codes
  • Per-channel diagnostic bits for digital modules (wire-break, short-circuit)

Method 3: Data Anomaly Detection

  • Digital inputs stuck at 0 or 1 despite known physical state → channel fault or wiring issue
  • Analog values pegged at 0, full-scale, or random noise → ADC failure, open wire, or signal conditioning fault
  • Sudden data loss from a specific node → module failure, cable disconnect, or power loss to that station

Method 4: Timing Analysis

  • Increased round-trip time for a specific slave → the slave is taking longer to respond, possibly due to internal retries or hardware degradation
  • Missing response frames → slave timeouts, CRC failures, or physical layer errors

10.2 Practical Troubleshooting Without Protocol Decoding

Since full X2X decoding is impractical without the spec, the most effective approach is:

  1. Use Automation Studio diagnostics: Configure X2X diagnostic information to be sent over EIP/POWERLINK to a central HMI or data logger
  2. Monitor LED patterns: As described in Section 7.2, LED states provide immediate visual diagnostic information
  3. Use the B&R “Network Analyzer” (X20ET8819): This is B&R’s own Ethernet/ POWERLINK analysis tool — it can capture POWERLINK traffic but does not directly decode X2X
  4. Swap-and-test: Replace suspect modules or cables one at a time and observe which change restores communication
  5. Resistance/continuity testing: Check cable resistance between X2X+ and X2X⊥ along the chain

10.3 Diagnostic Data Export

B&R Automation Studio can be configured to export X2X diagnostic data including:

  • Slave online/offline status
  • Per-module error counters
  • Watchdog status
  • Cycle time monitoring
  • Configuration match/mismatch flags

This data is typically exported via:

  • OPC UA (all SG4 controllers with Ethernet)
  • Ethernet/IP tags (X20BC0088 bus controller)
  • Modbus/TCP registers (X20BC0087 bus controller)
  • POWERLINK process data

11. Tools for X2X Analysis

11.1 Official B&R Tools

ToolFunctionX2X Support
Automation StudioConfiguration, programming, online diagnosticsFull — configure bus, set addresses, cycle times, monitor status
X20ET8819Ethernet/POWERLINK network analyzerIndirect — captures POWERLINK frames containing X2X status
Automation RuntimeRuntime system with diagnostic featuresFull — provides I/O diagnostics, error logging, watchdog
Target Browser (in Automation Studio)Device discovery, status monitoringShows X2X bus state, slave status
mapp View / Panel BuilderHMI with diagnostic displaysCan show X2X error/status tags
OPC UA Server (built-in)Standardized data accessExposes X2X diagnostic tags via OPC UA

11.2 Third-Party / Community Tools

ToolFunctionX2X Support
WiresharkNetwork protocol analyzerNO native X2X dissector — would need custom Lua/C plugin
Saleae Logic / Logic 2Logic analyzer softwareCaptures raw digital waveforms; no X2X protocol decode
sigrok / PulseViewOpen-source logic analyzerCaptures raw waveforms; no X2X decode
Teledyne LeCroy RS-422/485 ComProbeSerial protocol analyzerPhysical layer capture; no X2X decode
Frontline (Teledyne)Industrial protocol analyzer suiteRS-485/RS-422 physical layer; no X2X decode

11.3 Writing a Custom Wireshark Dissector for X2X

Since no native X2X dissector exists, you could write one using Wireshark’s Lua API:

-- Pseudo-code for a Wireshark Lua dissector for X2X Link
-- This is a skeleton — the actual frame format is proprietary and unknown

local x2x_proto = Proto("x2x_link", "B&R X2X Link Protocol")

local f_frame_type = ProtoField.uint8("x2x.frame_type", "Frame Type", base.HEX)
local f_src_addr   = ProtoField.uint8("x2x.src_addr", "Source Address", base.HEX)
local f_dst_addr   = ProtoField.uint8("x2x.dst_addr", "Dest Address", base.HEX)
local f_payload    = ProtoField.bytes("x2x.payload", "Payload")
local f_crc        = ProtoField.uint16("x2x.crc", "CRC", base.HEX)

x2x_proto.fields = {
    f_frame_type, f_src_addr, f_dst_addr, f_payload, f_crc
}

function x2x_proto.dissector(buffer, pinfo, tree)
    pinfo.cols.protocol = "X2X Link"
    local subtree = tree:add(x2x_proto, buffer())

    -- NOTE: Field offsets and sizes are UNKNOWN/INFERRED
    -- Actual implementation requires the official spec or RE
    subtree:add(f_frame_type, buffer(0, 1))
    subtree:add(f_src_addr,   buffer(1, 1))
    subtree:add(f_dst_addr,   buffer(2, 1))
    subtree:add(f_payload,    buffer(3, buffer:len() - 5))
    subtree:add(f_crc,        buffer(buffer:len() - 2, 2))
end

-- Register as a user DLT (Data Link Type) for raw capture import
local wtap_dissector_table = DissectorTable.get("wtap_encap")
wtap_dissector_table:add(wtap_dissector_table:get_free_id(), x2x_proto)

To use this:

  1. Capture X2X traffic with a logic analyzer → export as raw binary/captured stream
  2. Write a conversion script to import the raw data into a pcap-like format
  3. Register the custom dissector to decode the frames
┌──────────────┐     X2X Cable      ┌──────────────┐     X2X Cable      ┌──────────────┐
│              │◄──────────────────►│              │◄──────────────────►│              │
│  CPU/Master  │   IN     OUT       │  X2X Tap     │   IN     OUT       │  Slave I/O   │
│  (X20CP...)  │                   │  Board       │                   │  (X20BR...)  │
│              │                   │              │                   │              │
└──────────────┘                   └──────┬───────┘                   └──────────────┘
                                          │
                                    ┌─────┴─────┐
                                    │ RS-485     │
                                    │ Transceiver│
                                    └─────┬─────┘
                                          │
                                    ┌─────┴─────┐
                                    │  Logic     │
                                    │  Analyzer  │──► PC (Saleae/sigrok)
                                    │  ≥100MS/s  │
                                    └───────────┘

12. Component Reference Tables

ModelFieldbusX2X AddressingConnector
X20BC0043CANopenDIP switches5-pin multipoint
X20BC0053POWERLINKDIP switches5-pin multipoint
X20BC0063PROFIBUS DPDIP switches9-pin DSUB
X20BC0073DeviceNetDIP switches5-pin multipoint
X20BC0083CAN I/ODIP switches5-pin multipoint
X20BC0087Modbus/TCPDIP switches2× RJ45 (switch)
X20BC0088Ethernet/IPDIP switches2× RJ45 (switch)
X20BC0089POWERLINKDIP switches2× RJ45 (switch)
X20BC1083POWERLINKDIP switches2× RJ45 (switch)
ModelFunctionPowerKey Spec
X20BT9100Bus transmitter (master side)0.85 WUp to 62 slaves, 100 m segment
X20BT9400Bus transmitter + X67 power supplyIncludes X67 module power feed
X20BR9300Bus receiver (slave side)2.5 WSupply for X2X Link + internal I/O
ModelFieldbusX2X SupportConnector
X67BC4321CANopenYesM12 A-coded
X67BC5321CAN I/OYesM12 A-coded
X67BC6321ETHERNET PowerlinkYesM12 B-coded
X67BC7321-1POWERLINKYesM12 A-coded
X67BC8321-1ETHERNETYesM12 D-coded

12.4 Bus Modules with Node Number Switches

ModelDescription
X20BM05Bus module, node number switch, 24VDC keyed, I/O supply interrupted left
X20BM01Bus module, standard (no node switch, auto-addressing)

12.5 Termination and Accessories

Part NumberDescription
X20AT6100120Ω termination resistor, 0.25W
X20AC130x seriesX2X Link attachment cables for X20
X67CA0Xxx.xxxxX2X Link cables for X67 (M12, various lengths/configs)
X67CA0X99.xxxxBulk cable for custom assembly (100 m / 500 m)

13. Source URLs and References

Official B&R Documentation

DocumentURL
X20 System User’s Manual (v3.50+)https://assets.euautomation.com/uploads/parts/datasheet/11/x20if1063.pdf
X20 System User’s Manual (v3.60)https://www.all4sps.com/mediafiles/Sonstiges/X20PS3300_1.pdf
X2X Link Product Pagehttps://www.br-automation.com/en-us/products/network-and-fieldbus-modules/x2x-link/
X20BR9300 Datasheethttps://www.br-automation.com/en-us/products/io-systems/x20-system/bus-receivers-and-transmitters/x20br9300/
X20BT9100 Datasheethttps://www.br-automation.com/en-us/products/io-systems/x20-system/bus-receivers-and-transmitters/x20bt9100/
X20BM05 Datasheethttps://static.chipdip.ru/lib2/a/302/DOC071302011.pdf
X2X Link Cables Datasheet (v2.21)https://www.multiwaycontrol.com/multiway/X2X-X67CA0X99.1000-Link-Cable-ENG.pdf
X20BC0088 Product Pagehttps://www.br-automation.com/en-us/products/io-systems/x20-system/bus-controllers/x20bc0088/
B&R X2X+ Press Release (Jan 2023)https://www.br-automation.com/en/about-us/press-room/four-times-more-performance-30-01-2023/
X20(c)CP168x(X) with X2X+ Infohttps://tlauk.net/document/71064/B%2526R%252C%2520X20CCP1684.pdf

Technical Articles and Community Posts

ArticleURL
Control.com: B&R Unveils X2X+ Backplane Bushttps://control.com/news/br-now-offering-x2x-on-the-x20-bus/
B&R Community: Communication Protocol Deviceshttps://community.br-automation.com/t/communication-protocol-devices/426
B&R Community: RS485 X20 Serieshttps://community.br-automation.com/t/rs485-communication-x20-series/1787
B&R Community: Siemens and X2X Communicationhttps://community.br-automation.com/t/siemens-and-b-and-r-x2x-communication/3751
B&R Community: Connecting BB80 Modulehttps://community.br-automation.com/t/connecting-a-new-plc-module-bb80/4339
B&R Community: IO-Link Cycle Timehttps://community.br-automation.com/t/io-link-v-pd-outrunmode/2912
Pedronf65: B&R PLC 4ms Task Confighttps://pedronf65.wordpress.com/2015/05/28/br-plc-configuration-4ms-task-with-x20cp1381-cpu-acoposmicro-x20sm1436/

Troubleshooting and Diagnostics

ArticleURL
IMD: Diagnosing X2X Bus Communication Failureshttps://industrialmonitordirect.com/blogs/knowledgebase/diagnosing-br-x2x-bus-communication-failures-and-cpu-reset-mode-symptoms
IMD: Resolving X2X Communication and Reset Mode LED Issueshttps://industrialmonitordirect.com/blogs/knowledgebase/resolving-br-x2x-communication-and-reset-mode-led-issues
Reddit r/PLC: X2X Link Network Troubleshootinghttps://www.reddit.com/r/PLC/comments/p73low/br_x2x_link_network_troubleshooting/
Reddit r/PLC: X2X Interface Debugginghttps://www.reddit.com/r/PLC/comments/1cdzfly/br_x2x_interface_debugging/

System Overview / Reference

DocumentURL
B&R System Overview I/O, Fieldbus, Control Systemshttps://theengineer.markallengroup.com/production/content/uploads/2012/02/MM-E00640.459.pdf
B&R RS Online X20 System Manualhttps://docs.rs-online.com/b8f4/A700000013942634.pdf
Scribd: X20 System Manual (v3.10)https://www.scribd.com/document/474939830/X20-System-ENG-pdf
Scribd: X67 System Manual (v3.00)https://www.scribd.com/document/479295115/X67-System-ENG-V3-00-pdf
X20BT9100 Datasheet PDFhttps://www.nexinstrument.com/assets/images/pdf/X20BT9100.pdf

Reverse Engineering / Sniffing References

ResourceURL
EEVblog: Figuring out an RS485 Protocolhttps://www.eevblog.com/forum/projects/figuring-out-an-rs485-protocol/
Stack Exchange: Reverse-Engineering RS-485https://electronics.stackexchange.com/questions/431270/reverse-engineering-rs-485-communication
Stack Overflow: Reverse Engineering Serial Protocolhttps://stackoverflow.com/questions/67733520/reverse-engineering-serial-protocol
Saleae Forum: Two Days Decoding RS-485https://discuss.saleae.com/t/two-days-decoding/2558
Teledyne LeCroy: Industrial Protocol Analyzershttps://www.teledynelecroy.com/protocolanalyzer/industrial-network-protocol
James Gibbard: Wireshark Lua User DLThttps://www.gibbard.me/wireshark_lua_user_link_layer/
Wireshark Wiki: Lua Dissectorshttps://wiki.wireshark.org/lua/dissectors

Cross-References


Appendix A: X2X Quick Reference Card

┌──────────────────────────────────────────────────────────────────┐
│                    B&R X2X LINK QUICK REFERENCE                    │
├──────────────────────────────────────────────────────────────────┤
│ Bus Speed:        12 Mbps (X2X Link) / ~48 Mbps (X2X+)           │
│ Cycle Time:       0.5 ms – 10 ms (default 2 ms)                 │
│ Max Slaves:       62 per master                                  │
│ Max Cable:        100 m per segment                              │
│ Addresses:        0x01–0xFD (manual), 0x00 = auto               │
│ Termination:      120Ω at both ends (X20AT6100)                 │
│ Connector:        M12 B-keyed 5-pin (remote)                     │
│ Pin 1: X2X+ (Red) — Data+ AND +24V supply                      │
│ Pin 2: X2X (White) — Data reference                              │
│ Pin 3: X2X⊥ (Black) — Data- inverse                            │
│ Pin 4: X2X\ (Blue) — Data ground                                │
│ Pin 5: NC                                                      │
│ Shield: 360° via knurled screw (ground both ends)                │
│ Idle Voltage: ~2.5V between X2X+ and X2X⊥                       │
│ Terminated R:  ~60Ω between X2X+ and X2X⊥ (both ends)          │
├──────────────────────────────────────────────────────────────────┤
│ LED Patterns:                                                     │
│   R-LED steady green = Normal operation                         │
│   R-LED single flash = Reset/Stop mode                          │
│   R-LED double flash = Boot mode (don't interrupt)               │
│   X-LED steady orange = X2X communication active                │
│   X-LED off = No X2X communication                              │
├──────────────────────────────────────────────────────────────────┤
│ Default CPU IP (Boot mode): 192.168.1.1                          │
│ Config Tool: Automation Studio (B&R)                             │
├──────────────────────────────────────────────────────────────────┤
│ ⚠ X2X+ and X2X Link CANNOT be mixed in the same segment        │
└──────────────────────────────────────────────────────────────────┘

Appendix B: X2X LED Diagnostic Pattern Reference (Field Troubleshooting)

LED Types on X2X Modules

LEDNameColorPurpose
RRun/ReadyGreenModule power and CPU/init status
XX2X BusOrangeX2X bus communication activity
I/OChannel statusGreen/RedPer-channel or per-module I/O status

R-LED Patterns

PatternMeaningAction
Steady greenNormal operation; module initializedNone — system is running
Single flash (~1 Hz)CPU in STOP/RESET mode; modules not initializedCPU has entered reset — check CPU error code, watchdog, application load
Double flashBoot mode — firmware update in progressDo not power off during double flash; wait for update to complete
OffNo power to moduleCheck 24V supply, fuses, bus base connection
Red (some modules)Hardware fault detectedReplace module; check for overtemperature or overvoltage

X-LED Patterns

PatternMeaningAction
Steady orangeX2X communication active; bus traffic presentNormal — no action needed
Flashing orangeX2X bus initializing or intermittent communicationWait for stabilization; if persistent, check cabling and termination
OffNo X2X communication detectedCheck bus cable, master module, CPU RUN status, termination

System-Level LED Interpretation Table

ModuleR-LEDX-LEDInterpretation
X20BT9100 (Master)Single flashOffCPU in reset; X2X master not active
X20BR9300 (Slave, OK)Steady greenSteady orangeNormal — slave communicating with master
X20BR9300 (Slave, fail)Single flashOffSlave not receiving valid X2X signals
All modules on a panelSingle flashN/ACPU in STOP/RESET; entire panel affected

CPU Reset Mode Entry Conditions

The CPU enters reset/STOP mode when any of the following occur:

  1. Hardware watchdog timeout (typically 500 ms – 2 s, configurable)
  2. Critical memory access violation (page fault, illegal address)
  3. Illegal instruction executed
  4. Power-up with corrupted non-volatile memory
  5. Manual reset via Automation Studio (warm restart)
  6. Firmware update failure

In reset mode:

  • CPU stops executing application code
  • All X2X/POWERLINK fieldbus masters are disabled
  • Digital outputs go to safe state (0V)
  • All module R-LEDs flash at ~1 Hz
  • Communication with Automation Studio may still be possible via service interface

Recovery Procedure for X2X Communication Failure

1. Disconnect all 24VDC power to CPU and X2X modules
2. Wait 60 seconds for complete discharge (capacitors)
3. Reapply power to X2X bus modules FIRST, wait 2 seconds for stabilization
4. Apply power to CPU
5. Observe LED sequences:
   - R-LED: single flash → double flash (init) → steady green (RUN)
   - X-LED on master: off → flashing orange → steady orange (X2X active)
   - Slave R-LEDs: single flash → steady green (initialized)
   - Slave X-LEDs: off → steady orange (communication established)

If LEDs do not progress past single flash:

  • Check termination resistors (120Ω) at both bus ends
  • Measure DC bus voltage between X2X+ and X2X⊥: should be 2.5V ±0.5V when idle
  • Check for ground potential differences between panels
  • Verify node address switches on X20BR9300 are unique and match configuration
  • Try pressing CPU reset button (3-second hold) for warm restart

X2X Bus Components Quick Reference

ComponentCatalog NumberKey Specification
X2X Master Bus TransmitterX20BT9100Up to 62 slaves, 100m segment, daisy-chain
X2X Slave Bus ReceiverX20BR930024VDC, 90mA, isolated communication, dual X2X ports
X2X Link Cable (standard)X67CA0X01.xxxxM12 B-keyed 5-pin, shielded, pre-assembled lengths
X2X Link Cable (bulk)X67CA0X99100m / 500m drums, PUR sheath, purple
Termination ResistorX20AT6100120Ω, 0.25W, for bus ends
Bus Controller (POWERLINK)X20BC0083Couples X2X I/O to POWERLINK, synchronous 1:1 cycle
Bus Controller (EtherNet/IP)X20BC0088Couples X2X I/O to EtherNet/IP
Bus Controller (EtherCAT)X20BC00G3Couples X2X I/O to EtherCAT master
Bus Controller (PROFIBUS DP)X20BC0063Couples X2X I/O to PROFIBUS DP

Appendix C: X2X+ Backplane Bus (2023 Enhancement)

In January 2023, B&R introduced the X2X+ backplane bus as an option for X20 systems, delivering approximately 4× the bandwidth of X2X Link.

PropertyX2X LinkX2X+
Backplane speed12 Mbps~48 Mbps (estimated)
Cycle time0.5 ms – 10 msAs low as 0.125 ms (estimated)
Dual cycle timesNoYes — separate fast/slow data channels
TimestampingNoYes — per-data timestamps
Module compatibilityAll X20 modulesAll X20 modules (backward compatible)
Bus module requiredStandard X20 bus modulesX2X+ capable bus modules only
Segment mixingN/ACannot mix X2X Link and X2X+ in same segment

X2X+ Advantages for Condition Monitoring

The higher bandwidth and per-data timestamping make X2X+ particularly suited for:

  • High-speed vibration monitoring and condition monitoring
  • Higher sampling rates on analog channels
  • Separate fast/slow cycle times: less time-critical data transported at slower rate to reduce CPU/network load
  • Complex high-speed processes controlled with cost-effective standard hardware

Migration Note

All existing X20 I/O modules are compatible with X2X+. To upgrade, only the bus modules (the base/backplane modules) need to be replaced with X2X+-capable versions. The electronic modules (I/O slices) remain the same.

Source: B&R Press Room, “Four times more performance” (2023-01-30) — https://www.br-automation.com/en/about-us/press-room/four-times-more-performance-30-01-2023/


Appendix D: Glossary

TermDefinition
X2X LinkB&R’s proprietary bus protocol for I/O module communication
X2X+Enhanced version of X2X Link with 4× bandwidth (introduced 2023)
Automation StudioB&R’s integrated development environment for programming and configuration
Automation RuntimeB&R’s real-time operating system running on X20/X67 controllers
Bus BaseThe DIN-rail-mounted backplane that holds X20 modules
Bus ModuleThe base module (e.g., X20BM05) that provides power and X2X bus connections
Bus Transmitter (BT)Module (e.g., X20BT9100) that transmits X2X signals from master to remote slaves
Bus Receiver (BR)Module (e.g., X20BR9300) that receives X2X signals and feeds remote I/O stations
Node Number SwitchDIP/rotary switch on bus modules for manual X2X address assignment
mappB&R’s modular application framework (mapp Motion, mapp View, etc.)
POWERLINKB&R’s Ethernet-based real-time protocol for controller-to-controller communication
Task ClassIn Automation Runtime, a cyclically-executed group of programs with a defined cycle time
SG4B&R’s current-generation controller hardware platform

Key Findings

  1. X2X Link is B&R’s proprietary master-slave deterministic serial bus running at 12 Mbps over RS-485 differential signaling. The wire protocol specification has never been publicly released by B&R. Frame format, sync words, CRC polynomial, and bit-level encoding are reconstructed/inferred from hardware documentation and reverse-engineering observations.

  2. Physical layer: remote cable uses M12 B-keyed 5-pin connectors with a critical pin 1 dual-function – the red wire (X2X+) carries both differential data AND +24 VDC power for the remote backplane. When connecting to self-powered devices (IF789, LS189), the red wire must be insulated to prevent short circuits. Termination is 120 ohm at both ends (X20AT6100); measured DC resistance across X2X+/X2X perpendicular should read approximately 60 ohm.

  3. Cycle time is user-configurable from 0.5 ms to 10 ms (default 2 ms). Cycle time must be compatible with task class cycle times (multiples or divisors). At 2 ms cycle, IO refreshes 500 times/second; at 0.5 ms, 2000 times/second. X2X+ (introduced 2023) provides approximately 4x bandwidth (estimated 48 Mbps backplane) but is not compatible with X2X Link in the same segment.

  4. Up to 62 slave nodes per master (X20BT9100 transmitter / X20BR9300 receiver), with a maximum segment length of 100 m. After approximately 30 modules on a single segment, a bus repeater is required. Topology is daisy-chain/multi-drop. Node addressing is via hex rotary DIP switches (0x01-0xFD manual, 0x00 auto-assigned).

  5. Sniffing X2X requires a logic analyzer sampling at >= 100 MS/s (200 MS/s recommended) – at 12 Mbps, one bit period is ~83.3 ns, requiring 4-5 samples per bit minimum. A Saleae Logic 2 Pro 16 (1 GS/s, 83 samples/bit) is adequate; cheaper sigrok clones at 24-100 MS/s are insufficient. Build a passive RS-485 tap board using a high-speed transceiver (SN65HVD1782, MAX1487) with switchable 120 ohm termination.

  6. IO data decoding from raw traffic requires: the Automation Studio IO mapping (node addresses to module types to channel data types), the byte order (little-endian, consistent with x86 B&R CPUs), frame boundary sync patterns, and the CRC algorithm (unknown – trial with CRC-16-CCITT, CRC-16-IBM, CRC-16-MODBUS). Digital IO is bit-packed (8 channels per byte, LSB first); analog values are 16-bit signed/unsigned integers.

  7. LED diagnostic patterns: R-LED steady green = normal operation, single flash = reset/stop mode, double flash = boot mode (do not power off during firmware update), X-LED steady orange = X2X communication active, X-LED off = no X2X communication. Default CPU IP in boot mode is 192.168.1.1.

  8. Idle bus voltage between X2X+ and X2X perpendicular is approximately 2.5 V. When actively transmitting, the differential voltage swing is approximately 1.5-3.0 V (standard RS-485 levels). Shield should be grounded at both ends for best EMC immunity.


This document is compiled from publicly available sources. The X2X Link wire protocol is proprietary to B&R Industrial Automation (ABB). Some protocol details are inferred or reconstructed and should be verified against official documentation if available. No confidential or proprietary protocol specifications were accessed in creating this document.