Summary
Fiber-optic receiver (FOX3 R 311) for the Extron FOX3 T/R 301/311 series. Spec covers rear-panel Remote RS-232 control via SIS (Simple Instruction Set) commands. Sister receiver-side commands (audio output volume) are present, plus IP/SSH/embedded web paths and reset modes for reference. Compatible with FOX3 R 311 (and the sibling FOX3 R 301, since the protocol table is shared across receiver models).
Transport
protocols:
- serial
serial:
baud_rate: 9600
data_bits: 8
parity: none
stop_bits: 1
flow_control: none
auth:
type: password # source: SSH/serial sessions are password protected; default password "extron" (reset) or device serial number (out of factory)
Note: Source also documents IP/SSH control on TCP port 22023 (username user/admin, password required). That path is not the primary transport for this RS-232 spec; it is captured in Notes.
Traits
- routable # inferred: source documents RX-side output video mute and TX-side input selection controls
- queryable # inferred: source documents many status query commands
- levelable # inferred: source documents receiver audio output volume 0-100
Actions
# ===== Video mute (TX and RX) =====
- id: mute_video_only
label: Mute Output Video Only
kind: action
command: "1B"
params: []
- id: mute_video_and_sync
label: Mute Output Video and Sync
kind: action
command: "2B"
params: []
- id: unmute_video_and_sync
label: Unmute Video and Sync (Default)
kind: action
command: "0B"
params: []
- id: view_mute_status
label: View Video Mute Status
kind: query
command: "B"
params: []
# ===== Audio mute (TX and RX) =====
- id: enable_audio_mute
label: Enable Audio Mute
kind: action
command: "X@*1Z"
params:
- name: audio_output
type: integer
description: "Audio output selector - 1=Digital, 2=Analog, 3=All outputs"
- id: disable_audio_mute
label: Disable Audio Mute
kind: action
command: "X@*0Z"
params:
- name: audio_output
type: integer
description: "Audio output selector - 1=Digital, 2=Analog, 3=All outputs"
- id: view_audio_mute_status
label: View Audio Mute Status
kind: query
command: "X3#Z"
params:
- name: view_audio_output
type: integer
description: "1=Digital, 2=Analog"
# ===== Information requests (TX and RX) =====
- id: view_firmware_version
label: View Firmware Version
kind: query
command: "Q"
params: []
- id: view_full_firmware_version
label: View Full Firmware Version
kind: query
command: "*Q"
params: []
- id: view_part_number
label: View Part Number
kind: query
command: "N"
params: []
- id: view_updated_fpga_version
label: View Updated FPGA Version
kind: query
command: "35Q"
params: []
- id: view_input_video_status
label: View Input Video Signal Status
kind: query
command: "4S"
params: []
- id: view_input_audio_status
label: View Input Audio Status
kind: query
command: "5S"
params: []
- id: view_input_hdcp_status
label: View Input HDCP Status
kind: query
command: "E IHDCP}"
params: []
- id: view_output_hdcp_status
label: View Output HDCP Status
kind: query
command: "EO HDCP}"
params: []
# ===== Combined information request =====
- id: information_request
label: Combined Information Request
kind: query
command: "I"
params: []
# ===== LinkLicense =====
- id: view_linklicense
label: View LinkLicense
kind: query
command: "E LELIC}"
params: []
# ===== DHCP client =====
- id: set_dhcp
label: Set DHCP On/Off
kind: action
command: "EX1)DH}"
params:
- name: dhcp
type: integer
description: "0=Off (default), 1=On"
- id: view_dhcp_status
label: View DHCP Status
kind: query
command: "E DH}"
params: []
# ===== SSH echo (port 22023, referenced here for parallel IP usage) =====
# UNRESOLVED: these apply to SSH port 22023, but source also documents them in the
# SIS-over-RS-232 instructions section. Included for parity with raw source table.
- id: enable_echo_ssh
label: Enable SIS Echo (current connection)
kind: action
command: "E 1ECHO}"
params: []
- id: disable_echo_ssh
label: Disable SIS Echo (current connection)
kind: action
command: "E 0ECHO}"
params: []
- id: view_echo_status_ssh
label: View Echo Status
kind: query
command: "E ECHO}"
params: []
# ===== Verbose mode =====
- id: set_verbose_mode
label: Set Verbose Mode
kind: action
command: "EX1&CV}"
params:
- name: mode
type: integer
description: "0=Clear/none, 1=Verbose (default), 2=Tagged responses for queries, 3=Verbose + tagged"
- id: view_verbose_mode
label: View Verbose Mode
kind: query
command: "E CV}"
params: []
# ===== IP setup =====
- id: set_ip_address
label: Set IP Address
kind: action
command: "EX1!CI}"
params:
- name: address
type: string
description: "IP address xxx.xxx.xxx.xxx"
- id: set_subnet_mask
label: Set Subnet Mask
kind: action
command: "EX1!CS}"
params:
- name: address
type: string
description: "Subnet mask xxx.xxx.xxx.xxx"
- id: set_gateway_ip
label: Set Gateway IP Address
kind: action
command: "EX1!CG}"
params:
- name: address
type: string
description: "Gateway xxx.xxx.xxx.xxx"
- id: view_ip_address
label: View IP Address
kind: query
command: "E CI}"
params: []
- id: view_subnet_mask
label: View Subnet Mask
kind: query
command: "E CS}"
params: []
- id: view_gateway_ip
label: View Gateway IP Address
kind: query
command: "E CG}"
params: []
# ===== IP port timeout =====
- id: set_ip_port_timeout
label: Set IP Port Timeout
kind: action
command: "EX3!IPE}"
params:
- name: seconds
type: integer
description: "Timeout in seconds (1-65000, default 30)"
- id: view_ip_port_timeout
label: View IP Port Timeout
kind: query
command: "E IPE}"
params: []
# ===== RS-232 COMM settings =====
- id: set_serial_port_params
label: Set Serial Port Parameters
kind: action
command: "EX1^*X1@,X1#,X1$,X1%CP}"
params:
- name: uart
type: integer
description: "UART selector - 1=Endpoint"
- name: baud
type: integer
description: "Baud rate 300-15200 (use 115200 for high-speed RS-232 insertion; default 9600)"
- name: parity
type: string
description: "Parity: o=Odd, e=Even, n=None (default), m=Mark, s=Space (first letter only)"
- name: data_bits
type: integer
description: "7 or 8 (default 8)"
- name: stop_bits
type: integer
description: "1 (default) or 2"
# ===== Resets =====
- id: erase_all_files_flash
label: Erase All Files from Flash Memory
kind: action
command: "E ZFFF}"
params: []
- id: reset_unit_settings
label: Reset Unit Settings (excludes IP)
kind: action
command: "E ZXXX}"
params: []
- id: absolute_system_reset_retain_ip
label: Absolute System Reset (Retain IP)
kind: action
command: "E ZY}"
params: []
- id: absolute_system_reset
label: Absolute System Reset (Master Reset)
kind: action
command: "E ZQQQ}"
params: []
- id: ip_system_reset
label: IP System Reset
kind: action
command: "E 1ZQQQ}"
params: []
- id: reset_audio_gain_attenuation
label: Reset Audio Gain and Attenuation
kind: action
command: "E ZA}"
params: []
# ===== TX-only: HDCP authorized device =====
- id: enable_hdcp_authorized_device
label: Enable HDCP Authorized Device
kind: action
command: "E 1HDCPEN}"
params: []
- id: disable_hdcp_authorized_device
label: Disable HDCP Authorized Device
kind: action
command: "E 0HDCPEN}"
params: []
- id: view_hdcp_authorized_device_status
label: View HDCP Authorized Device Status
kind: query
command: "E HDCPEN}"
params: []
# ===== TX-only: Input signal detection info =====
- id: view_input_signal_info
label: View Detected Input Signal Information
kind: query
command: "35I"
params: []
# ===== TX-only: Force 4K60 compressed mode =====
- id: force_4k60_compressed
label: Force 4K60 Compressed Mode (1 fiber)
kind: action
command: "E C1FOXM}"
params: []
- id: disable_4k60_compressed
label: Disable 4K60 Compressed Mode (2 fibers, uncompressed)
kind: action
command: "E C0FOXM}"
params: []
- id: view_4k60_compressed_status
label: View 4K60 Compressed Mode Status
kind: query
command: "E CFOXM}"
params: []
# ===== TX-only: Audio Input Selection =====
- id: set_audio_input_selection
label: Set Audio Input Selection
kind: action
command: "EX*AUDSEL}"
params:
- name: input
type: integer
description: "0=Auto, 1=Digital, 2=Analog"
- id: view_audio_input_selection
label: View Audio Input Selection
kind: query
command: "E AUDSEL}"
params: []
# ===== RX-only: Audio output volume =====
- id: set_audio_output_volume_rx
label: Set Audio Output Volume (Receiver)
kind: action
command: "X2$V"
params:
- name: level
type: integer
description: "Volume 0-100 (default 100, ~1 dB per step)"
- id: increment_audio_output_volume_rx
label: Increment Audio Output Volume (Receiver)
kind: action
command: "+V"
params: []
- id: decrement_audio_output_volume_rx
label: Decrement Audio Output Volume (Receiver)
kind: action
command: "-V"
params: []
- id: view_audio_output_volume_rx
label: View Audio Output Volume (Receiver)
kind: query
command: "V"
params: []
Feedbacks
- id: power_up_message
type: string
description: "Device-initiated power-up banner with copyright, product name, firmware version, part number, date/time. Terminator CR/LF (])."
- id: video_mute_state
type: enum
values: [unmuted, video_muted, video_and_sync_muted]
description: "X! values 0/1/2 from command B"
- id: audio_mute_state
type: enum
values: [unmuted, muted]
description: "X# values 0/1 per audio output (X@)"
- id: input_video_signal_status
type: enum
values: [not_detected, detected]
description: "X$ values 0/1"
- id: input_audio_status
type: enum
values: [not_detected, detected]
description: "X% values 0/1"
- id: input_hdcp_status
type: enum
values: [no_source, hdcp_source, no_hdcp]
description: "X^ values 0/1/2"
- id: output_hdcp_status
type: enum
values: [no_sink, encrypted, not_encrypted]
description: "X& values 0/1/2"
- id: input_audio_selection
type: enum
values: [auto, digital, analog]
description: "X* values 0/1/2"
- id: device_type
type: enum
values: [tx, rx]
description: "X( response from combined I query"
- id: firmware_version
type: string
description: "Format x.xx returned by Q; verbose adds 'Ver01* ' prefix"
- id: full_firmware_version
type: string
description: "Format x.xx.xxxx returned by *Q"
- id: part_number
type: string
description: "Format 60-xxxx-xx returned by N"
- id: updated_fpga_version
type: string
description: "Format x.xx returned by 35Q"
- id: fiber_link_detection_a
type: enum
values: [not_detected, detected]
description: "SFPALnk 0/1"
- id: fiber_link_detection_b
type: enum
values: [not_detected, detected]
description: "SFPBLnk 0/1"
- id: dhcp_status
type: enum
values: [off, on]
description: "X1) values 0/1"
- id: verbose_mode_status
type: enum
values: [clear, verbose, tagged, verbose_tagged]
description: "X1& values 0/1/2/3"
- id: echo_status
type: enum
values: [disabled, enabled]
description: "X3) values 0/2"
- id: ip_address
type: string
description: "xxx.xxx.xxx.xxx format"
- id: subnet_mask
type: string
description: "xxx.xxx.xxx.xxx format"
- id: gateway_address
type: string
description: "xxx.xxx.xxx.xxx format"
- id: ip_port_timeout
type: integer
description: "Seconds (1-65000)"
- id: audio_output_volume_rx
type: integer
description: "X2$ - 0 to 100 (default 100)"
- id: force_4k60_compressed_status
type: enum
values: [disabled, enabled]
description: "X1( values 0/1 (under X2$ key in source)"
- id: hdcp_authorized_device_status
type: enum
values: [off, on]
description: "X1( values 0/1"
- id: audio_input_selection_tx
type: enum
values: [auto, digital, analog]
description: "X* values 0/1/2"
- id: detected_resolution_refresh
type: string
description: "X2) - format nnnn Horizontal x nnnn Vertical @ xx Hz (e.g. 3840x2160@59.9Hz)"
- id: detected_audio_input_format
type: enum
values: [not_detected, digital, analog]
description: "X2! values 0/1/2"
- id: detected_video_color_space
type: enum
values: [not_detected, yuv, rgb]
description: "X2@ values 0/1/2"
- id: detected_pixel_clock
type: integer
description: "X2# - MHz, 4-digit zero-padded (0000=not detected)"
- id: linklicense_description
type: string
description: "E.g. 'FOX3 Uncompressed Video, 79-2560-01'; empty ] if not installed"
- id: error_invalid_command
type: string
description: "E10"
- id: error_invalid_preset_number
type: string
description: "E11"
- id: error_invalid_parameter
type: string
description: "E13"
- id: error_invalid_for_config
type: string
description: "E14"
- id: error_invalid_command_for_signal_type
type: string
description: "E17"
- id: error_invalid_room_number
type: string
description: "E21"
- id: error_busy
type: string
description: "E22"
- id: error_privilege_violation
type: string
description: "E24"
- id: error_device_not_present
type: string
description: "E25"
- id: error_max_connections_exceeded
type: string
description: "E26"
- id: error_system_or_command_timed_out
type: string
description: "E18 (NOTE: source line mislabels as E18; appears under E26 with comment that it may be a typo - see Notes)"
- id: error_bad_file_name_or_not_found
type: string
description: "E28"
Variables
# Settings that hold a settable value (not discrete actions) - captured implicitly via the set/view action pairs above.
# Per-source symbol glossary (cross-reference for query response meanings):
- id: baud_rate
type: integer
description: "X1@ - 300-15200 (9600 default)"
settable: true
- id: parity
type: string
description: "X1# - odd/even/none(default)/mark/space (first letter only)"
settable: true
- id: data_bits
type: integer
description: "X1$ - 7 or 8 (default 8)"
settable: true
- id: stop_bits
type: integer
description: "X1% - 1 (default) or 2"
settable: true
- id: uart_selector
type: integer
description: "X1^ - 1 = Endpoint"
settable: true
- id: verbose_mode
type: integer
description: "X1& - 0=Clear/none, 1=Verbose (default), 2=Tagged responses for queries, 3=Verbose + tagged"
settable: true
- id: dhcp_enabled
type: integer
description: "X1) - 0=Off (default), 1=On"
settable: true
- id: video_mute
type: integer
description: "X! - 0=Unmute (default), 1=Mute video only, 2=Mute video and sync"
settable: true
- id: audio_mute
type: integer
description: "X# - 0=Unmute (default), 1=Mute, per X@ output"
settable: true
- id: audio_input_selection
type: integer
description: "X* - 0=Auto, 1=Digital, 2=Analog"
settable: true
- id: echo_enabled
type: integer
description: "X3) - 0=Disabled, 2=Enabled (default)"
settable: true
- id: audio_output_volume
type: integer
description: "X2$ - 0 to 100 (default 100). RX-only control but value readable on either endpoint."
settable: true
Events
# Source-documented "Global unsolicited responses"
- id: reconfig_notice
description: "Reconfig ] - sent on any input frequency change or power cycle"
payload: "Reconfig"
- id: fiber_link_change
description: "Sts02* [X1*]*[X2*] - any change in fiber link status (active link SFP A=1 / SFP B=2; detected=0 or 2)"
payload: "Sts02* {active}*{detected}"
- id: input_video_signal_change
description: "SigI [X$] - any change in input signal status (0/1)"
payload: "SigI {state}"
- id: input_hdcp_change
description: "HdcpI [X^] - any change in input HDCP status (0/1/2)"
payload: "HdcpI {state}"
- id: output_hdcp_change
description: "Hdcp O [X&] - any change in output HDCP status (0/1/2)"
payload: "Hdcp O {state}"
- id: input_audio_status_change
description: "Sts05* [X%] - input audio selection status change (0/1)"
payload: "Sts05* {state}"
Macros
# UNRESOLVED: source does not document multi-step "macro" sequences; empty.
Safety
confirmation_required_for:
- absolute_system_reset_retain_ip # E14-style class
- absolute_system_reset
- reset_all_files_flash # erases user files
interlocks: []
# UNRESOLVED: source describes HDCP authentication timeouts (~10 seconds) and continuous-trial modes; these are behavioral, not interlocks.
Notes
- Source covers both FOX3 T 301/311 transmitter and FOX3 R 301/311 receiver. Actions tagged "TX-only" or "RX-only" come from the source's separate sections; everything else is shared.
- Default IP address (LAN):
192.168.254.254. Front-panel USB Configuration port IP:203.0.113.22. SSH port:22023. Default gateway0.0.0.0. Subnet mask255.255.255.0. - Baud defaults to 9600 (range 300–15200 for set command, up to 115200 for RS-232 insertion via fiber).
- Default password: device serial number (out of factory);
extronafter full system reset. - 10-second inter-character timeout aborts in-flight commands with no response.
- Verbatim terminator
]= CR/LF;}or|= CR only;EorW= Escape. - Verbose modes 1 and 3 deliver change notices on the SSH socket; verbose modes 2 and 3 add tagged query responses.
- Error code list in source has
E18 — System or command timed outlisted under the E26 row — likely a document typo; treated here as written text in Feedbacks. - "RX-Only" audio output volume commands can be sent to a TX without an error per source, but only affect the RX the command ultimately routes through fiber.
- RS-232 insertion (RS-232 over fiber) requires
Captive Screw Insertionmode set in PCS on both endpoints.
Self-check:
- No voltage/current invented ✓
- No port fabricated (only `22023` from source) ✓
- Baud `9600` from source ✓
- `status: draft`, `declared_confidence: low` ✓
- YAML valid ✓
- `entity_id` set from input ✓
- UNRESOLVED markers in Macros, Safety interlock, and Notes where gaps exist ✓
## Provenance
```yaml
source_domains:
- media.extron.com
source_urls:
- https://media.extron.com/public/download/files/userman/fox3_tr_301_311_68-2711-01_D.pdf
- https://media.extron.com/public/download/files/userman/fox3_tr_301_311_68-2711-50_B.pdf
retrieved_at: 2026-07-01T01:51:58.532Z
last_checked_at: 2026-07-07T11:40:27.808Z
Verification Summary
verdict: verified
checked_at: 2026-07-07T11:40:27.808Z
matched_actions: 52
action_count: 52
confidence: medium
summary: "All 52 spec actions matched verbatim against source command tables; transport parameters (9600 baud, 8 bits, no parity, 1 stop) verified; bidirectional coverage complete. (4 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "firmware version not stated in source. Some commands are documented for both TX and RX; this spec lists the full transmitter-and-receiver shared set plus the receiver-only audio output volume commands, per the source's \"Receiver Commands Only\" section."
- "these apply to SSH port 22023, but source also documents them in the"
- "source does not document multi-step \"macro\" sequences; empty."
- "source describes HDCP authentication timeouts (~10 seconds) and continuous-trial modes; these are behavioral, not interlocks."
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0