Summary
NDI routing software running on PC. Controls input-to-output source routing via TCP text commands on port 9779. Supports presets, multi-router instances, and queryable routing state.
Transport
protocols:
- tcp
addressing:
port: 9779
auth:
type: none # inferred: no auth procedure in source
Traits
- queryable # inferred: multiple query commands (OR, IN, IV, ON, CR, RN, etc.)
- routable # inferred: routing commands present (OS, AB, PS)
Actions
- id: AB
label: Switch Outputs
kind: action
params:
- name: output_x
type: integer
description: "Output number (1=A, 2=B, etc.)"
- name: output_y
type: integer
description: "Output number (1=A, 2=B, etc.)"
- id: BR
label: Request Base Name
kind: action
params: []
- id: CR
label: Request I/O Config
kind: action
params: []
- id: DD
label: Data Dump
kind: action
params: []
- id: IN
label: Get Input Names
kind: action
params:
- name: input_number
type: integer
description: "Input number (0 = all inputs)"
- name: option_code
type: integer
description: "0=full name, 1=network name, 2=device name"
- id: IV
label: Validate Input Channels
kind: action
params:
- name: input_number
type: integer
description: "Input number (0 = all inputs)"
- id: ON
label: Get Output Names
kind: action
params:
- name: output_number
type: integer
description: "Output number (0 = all outputs)"
- id: OR
label: Get Output Status
kind: action
params:
- name: output_number
type: integer
description: "Output number (0 = all outputs)"
- id: OS
label: Set Output Routing
kind: action
params:
- name: output_number
type: integer
description: "Output number (1 to max)"
- name: input_number
type: integer
description: "Input number (1 to max inputs)"
- id: PC
label: Create/Change Preset
kind: action
params:
- name: preset_number
type: integer
- id: PN
label: Get Preset Name
kind: action
params:
- name: preset_number
type: integer
- id: PS
label: Select Preset Routing
kind: action
params:
- name: preset_number
type: integer
- id: PR
label: Request Active Preset
kind: action
params: []
- id: PV
label: Validate Presets
kind: action
params:
- name: preset_number
type: integer
description: "0 = all presets"
- id: RN
label: Request Router Number
kind: action
params: []
Feedbacks
- id: BN
label: Base Name Response
params:
- name: router_number
type: integer
- name: text_length
type: integer
- name: text
type: string
- id: CR
label: Config Response
params:
- name: total_inputs
type: integer
- name: total_outputs
type: integer
- id: IN
label: Input Name Response
params:
- name: input_number
type: integer
- name: text_length
type: integer
- name: text
type: string
- id: IV
label: Input Validate Response
params:
- name: input_number
type: integer
- name: status
type: integer
description: "1 = NDI source connected, 0 = no source"
- id: ON
label: Output Name Response
params:
- name: output_number
type: integer
- name: text_length
type: integer
- name: text
type: string
- id: OS
label: Output Status Response
params:
- name: output_number
type: integer
- name: input_number
type: integer
description: "0 = no input routed"
- id: PC
label: Preset Change Response
params:
- name: preset_number
type: integer
- name: success
type: integer
description: "1 = successful, 0 = no valid routing data"
- id: PN
label: Preset Name Response
params:
- name: preset_number
type: integer
- name: text_length
type: integer
- name: text
type: string
- id: PS
label: Preset Status Response
params:
- name: preset_number
type: integer
description: "00 = no preset active"
- name: match_status
type: integer
description: "1 = routing matches stored preset, 0 = changed"
- id: PV
label: Preset Validate Response
params:
- name: preset_number
type: integer
- name: valid
type: integer
description: "1+ = valid data, 0 = no data"
- id: RN
label: Router Number Response
params:
- name: router_number
type: integer
Macros
- id: DD
label: Data Dump
description: "Equivalent to sending CR, RN, IV, IN, OR, PV, PR, ON requests sequentially"
Safety
confirmation_required_for: []
interlocks: []
Notes
Command format: 8+2 ASCII characters ABxNNxNN↵ where AB = text command, NN = decimal with leading zero, x = don't care, ↵ = CR+LF (0x0d 0x0a).
Router outputs displayed as letters (A=1, B=2, etc.) in GUI but addressed as decimal numbers in commands.
Some commands tagged <v1.4> or <v1.41> or <v1.52> — minimum version requirements not fully documented.
Provenance
source_domains:
- ndistuff.uk
source_urls:
- https://www.ndistuff.uk/downloads/ZEN_NDI_Router_protocol3b.pdf
retrieved_at: 2026-04-30T02:59:33.344Z
last_checked_at: 2026-05-14T18:17:21.647Z
Verification Summary
verdict: verified
checked_at: 2026-05-14T18:17:21.647Z
matched_actions: 15
action_count: 15
confidence: medium
summary: "All 25 spec actions matched literally in source; transport verified; complete command catalogue coverage. (2 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "power control commands not present; voltage/power specs not applicable to software router"
- "complete version compatibility matrix not provided in source"
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0