Summary
Extron IPL T CR48 IP Link Ethernet control interface. Exposes four contact-closure inputs and eight relay outputs controllable via SIS (Simple Instruction Set) commands over Telnet (TCP port 23) or URL-encoded web browser commands (HTTP port 80). Also supports ARP/ICMP/Ping/DHCP/SMTP for network management. Passwords default to device serial number, or no password after a full reset.
Transport
protocols:
- tcp
- http
addressing:
port: 23 # Telnet default; remappable via SIS (MT) and must be >= 1024 when remapped
base_url: "http://{ip}/" # Web browser commands use {base_url}?cmd= with URL-encoded SIS
auth:
type: password # Telnet/Web prompt "Password:"; factory default = device serial number, or no password after full reset
serial:
baud_rate: null # UNRESOLVED: not stated; no serial/RS-232 port on this device
data_bits: null
parity: null
stop_bits: null
flow_control: null
Traits
- powerable # inferred from reset / power-on sequencing
- routable # inferred from input contact-closure and relay routing commands
- queryable # inferred from numerous ?/Q/I style status queries
- levelable # pulse-time parameter on relay control
Actions
# Relay functions (port = X!, 01-99; pulse time X6# in 20 ms/count)
- id: pulse_relay
label: Pulse Relay
kind: action
command: "X! *3* X6# O"
params:
- name: port
type: integer
description: Specific port number (01-99)
- name: pulse_time
type: integer
description: Pulse time in 20 ms per count
- id: toggle_relay
label: Toggle Relay
kind: action
command: "X! *2O"
params:
- name: port
type: integer
description: Specific port number (01-99)
- id: relay_on
label: Turn Relay ON
kind: action
command: "X! *1O"
params:
- name: port
type: integer
description: Specific port number (01-99)
- id: relay_off
label: Turn Relay OFF
kind: action
command: "X! *0O"
params:
- name: port
type: integer
description: Specific port number (01-99)
- id: view_relay_status
label: View Relay Status
kind: query
command: "X! O"
params:
- name: port
type: integer
description: Specific port number (01-99)
# Input contact closure
- id: view_input_state
label: View Input Contact Closure State
kind: query
command: "X! }"
params:
- name: port
type: integer
description: Specific port number (01-99)
# Firmware / system info queries
- id: query_firmware_version
label: Query Firmware Version
kind: query
command: "Q"
- id: query_verbose_version_info
label: Query Verbose Version Information
kind: query
command: "0Q"
- id: query_firmware_version_alt
label: Query Firmware Version (1Q)
kind: query
command: "1Q"
- id: query_bootstrap_version
label: Query Bootstrap Version
kind: query
command: "2Q"
- id: query_factory_firmware_version
label: Query Factory Firmware Version
kind: query
command: "3Q"
- id: query_updated_firmware_version
label: Query Updated Firmware Version
kind: query
command: "4Q"
- id: request_part_number
label: Request Part Number
kind: query
command: "N"
- id: request_model_number
label: Request Model Number
kind: query
command: "1I"
- id: request_model_description
label: Request Model Description
kind: query
command: "2I"
- id: request_system_memory_usage
label: Request System Memory Usage
kind: query
command: "3I"
- id: request_user_memory_usage
label: Request User Memory Usage
kind: query
command: "4I"
# IP setup
- id: set_unit_name
label: Set Unit Name
kind: action
command: "E X1@ CN }" # Telnet; web: W [X1@] CN [|
params:
- name: name
type: string
description: Up to 24 chars; alphabet/digits/hyphen; no spaces
- id: set_unit_name_default
label: Set Unit Name to Factory Default
kind: action
command: "E • CN }" # Telnet; web: W %20 CN [|
- id: read_unit_name
label: Read Unit Name
kind: query
command: "E CN }" # Telnet; web: W CN [|
- id: set_time_date
label: Set Time and Date
kind: action
command: "E X1# CT }" # Telnet; web: W [X1#] CT [|
params:
- name: datetime
type: string
description: "Format MM/DD/Y-HH:MM:SS"
- id: read_time_date
label: Read Time and Date
kind: query
command: "E CT }" # Telnet; web: CT [|
- id: set_gmt_offset
label: Set GMT Offset
kind: action
command: "E X# CZ }" # Telnet; web: W [X#] CZ [|
params:
- name: offset
type: number
description: "-12.0 to +14.0"
- id: read_gmt_offset
label: Read GMT Offset
kind: query
command: "E CZ }" # Telnet; web: W CZ [|
- id: set_daylight_saving
label: Set Daylight Saving Time
kind: action
command: "E X3$ CX }" # Telnet; web: W [X3$] CX [|
params:
- name: dst
type: integer
description: "0 = off, 1 = on (USA), 2 = on (Europe), 3 = on (Brazil)"
- id: read_daylight_saving
label: Read Daylight Saving Time
kind: query
command: "E CX }" # Telnet; web: W CX [|
- id: set_dhcp_on
label: Set DHCP On
kind: action
command: "E 1DH }" # Telnet; web: W 1DH [|
- id: set_dhcp_off
label: Set DHCP Off
kind: action
command: "E 0DH }" # Telnet; web: W 0DH [|
- id: view_dhcp_mode
label: View DHCP Mode
kind: query
command: "E DH }" # Telnet; web: W DH [|
- id: set_ip_address
label: Set IP Address
kind: action
command: "E X1$ CI }" # Telnet; web: W [X1$] CI [|
params:
- name: ip
type: string
description: IP address
- id: read_ip_address
label: Read IP Address
kind: query
command: "E CI }" # Telnet; web: W CI [|
- id: read_mac_address
label: Read Hardware (MAC) Address
kind: query
command: "E CH }" # Telnet; web: W CH [|
- id: set_subnet_mask
label: Set Subnet Mask
kind: action
command: "E X1( CS }" # Telnet; web: W [X1(] CS [|
params:
- name: mask
type: string
description: Subnet mask
- id: read_subnet_mask
label: Read Subnet Mask
kind: query
command: "E CS }" # Telnet; web: W CS [|
- id: set_gateway
label: Set Gateway IP Address
kind: action
command: "E X1$ CG }" # Telnet; web: W [X1$] CG [|
params:
- name: ip
type: string
description: IP address
- id: read_gateway
label: Read Gateway IP Address
kind: query
command: "E CG }" # Telnet; web: W CG [|
# Password / verbose / connection
- id: set_admin_password
label: Set Administrator Password
kind: action
command: "E X3# CA }" # Telnet; web: W [X3#] CA [|
params:
- name: password
type: string
description: Max 12 chars, no special chars
- id: clear_admin_password
label: Clear Administrator Password
kind: action
command: "E • CA }" # Telnet; web: W %20 CA [|
- id: read_admin_password
label: Read Administrator Password
kind: query
command: "E CA }" # Telnet; web: W CA [|
- id: set_user_password
label: Set User Password
kind: action
command: "E X3# CU }" # Telnet; web: W [X3#] CU [|
params:
- name: password
type: string
description: Max 12 chars, no special chars
- id: clear_user_password
label: Clear User Password
kind: action
command: "E • CU }" # Telnet; web: W %20 CU [|
- id: read_user_password
label: Read User Password
kind: query
command: "E CU }" # Telnet; web: W CU [|
- id: set_verbose_mode
label: Set Verbose Mode
kind: action
command: "E X2@ CV }" # Telnet; web: W [X2@] CV [|
params:
- name: mode
type: integer
description: "0 = clear (default Telnet), 1 = verbose, 2 = tagged responses for queries, 3 = verbose + tagged"
- id: read_verbose_mode
label: Read Verbose Mode
kind: query
command: "E CV }" # Telnet; web: W CV [|
- id: read_connection_security_level
label: Read Connection Security Level
kind: query
command: "E CK }" # Telnet; web: W CK [|
- id: configure_broadcast_mode
label: Configure Broadcast Mode
kind: action
command: "E X6$ EB }" # Telnet; web: W [X6$] EB [|
params:
- name: rate
type: integer
description: "Broadcast repetition rate in seconds 0-255 (0 = disable)"
- id: view_broadcast_mode
label: View Broadcast Mode
kind: query
command: "E EB }" # Telnet; web: W EB [|
- id: get_connection_count
label: Get Connection Count
kind: query
command: "E CC }" # Telnet; web: W CC [|
# File commands (port 80 / Telnet)
- id: load_file_blink_http
label: Load File to User Blink Memory (HTTP)
kind: action
command: "POST {base_url}?cmd=<delimited data>"
notes: HTTP POST on port 80 with delimited data for blink file memory.
- id: retrieve_file_blink_http
label: Retrieve File from User Blink Memory (HTTP)
kind: query
command: "GET {base_url}mypage.html?cmd=WSF |"
notes: "Response is raw file data. URL form per source example: http://192.168.254.254/mypage.html?cmd=WSF |"
- id: load_file_blink_telnet
label: Load File to User Blink Memory (Telnet)
kind: action
command: "EWF{delimiter}X4*{delimiter}"
notes: "Web equivalent: WEWF%7B...%7D..."
- id: retrieve_file_blink_telnet
label: Retrieve File from User Blink Memory (Telnet)
kind: query
command: "ERF{X4*}"
notes: Web equivalent: WERF...
# Port re-map
- id: set_telnet_port
label: Set Telnet Port Map
kind: action
command: "E port# MT }" # Telnet; web: W port# MT [|
params:
- name: port
type: integer
description: "Telnet port; remapped value must be >= 1024; 0 disables; 23 resets to default"
- id: reset_telnet_port
label: Reset Telnet Port Map
kind: action
command: "E 23MT }" # Telnet; web: W 23MT [|
- id: disable_telnet_port
label: Disable Telnet Port Map
kind: action
command: "E 0MT }" # Telnet; web: W 0MT [|
- id: read_telnet_port
label: Read Telnet Port Map
kind: query
command: "E MT }" # Telnet; web: W MT [|
- id: set_web_port
label: Set Web Port Map
kind: action
command: "E port# MH }" # Telnet; web: W port# MH [|
params:
- name: port
type: integer
description: "Web port; remapped value must be >= 1024; 0 disables; 80 resets to default"
- id: reset_web_port
label: Reset Web Port Map
kind: action
command: "E 80MH }" # Telnet; web: W 80MH [|
- id: disable_web_port
label: Disable Web Port Map
kind: action
command: "E 0MH }" # Telnet; web: W 0MH [|
- id: read_web_port
label: Read Web Port Map
kind: query
command: "E MH }" # Telnet; web: W MH [|
# Web browser specific
- id: read_url_response
label: Read Response from Last URL Cmd
kind: query
command: "E UB }" # Telnet; web: W UB [|
# Email
- id: configure_email_events
label: Configure E-mail Events
kind: action
command: "E X4%,X4^,X4& CR }" # Telnet; web: W [X4%] %2C [X4^] %2C [X4&] CR [|
params:
- name: recipient_no
type: integer
description: "X4% - E-mail recipient number 1-64"
- name: recipient_addr
type: string
description: "X4^ - E-mail address, max 31 chars"
- name: filename
type: string
description: "X4& - Name of e-mail file to be sent"
- id: read_email_events
label: Read E-mail Events
kind: query
command: "E X4% CR }" # Telnet; web: W [X4%] CR [|
params:
- name: recipient_no
type: integer
description: "X4% - E-mail recipient number 1-64"
- id: send_email
label: Send E-mail (Event)
kind: action
command: "E X4% SM }" # Telnet; web: W [X4%] SM [|
params:
- name: recipient_no
type: integer
description: "X4% - E-mail recipient number 1-64"
- id: set_mail_server
label: Set Mail Server IP / Domain Name
kind: action
command: "E X1$,X1% CM }" # Telnet; web: W [X1$] %2C [X1%] CM [|
params:
- name: ip
type: string
description: X1$ - Mail server IP
- name: domain
type: string
description: X1% - Mail domain name
- id: read_mail_server
label: Read Mail Server IP / Domain Name
kind: query
command: "E CM }" # Telnet; web: W CM [|
# Event control
- id: read_event_buffer_memory
label: Read Event Buffer Memory
kind: query
command: "E X3%,X3^,X3&,X3* E }" # Telnet; web: W [X3%] %2C [X3^] %2C [X3&] %2C [X3*] E [|
params:
- name: event_no
type: integer
description: "X3% - Event number 0-99"
- name: buffer
type: integer
description: "X3^ - 0=receive, 1=user (absolute), 2=user (relative), 3=NVRAM"
- name: offset
type: integer
description: "X3& - Event buffer offset 0-MaxBufferSize"
- name: data_size
type: string
description: "X3* - bit, Byte, Short, Long (first letter only)"
- id: write_event_memory
label: Write Event Memory
kind: action
command: "E X3%,X3^,X3&,X3(,X3* E }" # Telnet; web: W [X3%] %2C [X3^] %2C [X3&] %2C [X3(] %2C [X3*] E [|
params:
- name: event_no
type: integer
description: "X3% - Event number 0-99"
- name: buffer
type: integer
description: "X3^ - 0=receive, 1=user (absolute), 2=user (relative), 3=NVRAM"
- name: offset
type: integer
description: "X3& - Event buffer offset 0-MaxBufferSize"
- name: data
type: string
description: "X3( - Event data to write"
- name: data_size
type: string
description: "X3* - bit, Byte, Short, Long (first letter only)"
- id: read_string_event_memory
label: Read String from Event Memory
kind: query
command: "E X3%,X3^,X3&,X4$ FE }" # Telnet; web: W [X3%] %2C [X3^] %2C [X3&] %2C [X4$] FE [|
params:
- name: event_no
type: integer
description: "X3% - Event number 0-99"
- name: buffer
type: integer
description: "X3^ - 0=receive, 1=user (absolute), 2=user (relative), 3=NVRAM"
- name: offset
type: integer
description: "X3& - Event buffer offset 0-MaxBufferSize"
- name: num_bytes
type: integer
description: "X4$ - Number of bytes to read"
- id: write_string_event_memory
label: Write String to Event Memory
kind: action
command: "E string*X3%,X3^,X3& FE }" # Telnet; web: W string %2A [X3%] %2C [X3^] %2C [X3&] FE [|
params:
- name: string
type: string
description: Text to write
- name: event_no
type: integer
description: "X3% - Event number 0-99"
- name: buffer
type: integer
description: "X3^ - 0=receive, 1=user (absolute), 2=user (relative), 3=NVRAM"
- name: offset
type: integer
description: "X3& - Event buffer offset 0-MaxBufferSize"
- id: start_events
label: Start Events
kind: action
command: "E 1AE }" # Telnet; web: W 1AE [|
- id: stop_events
label: Stop Events
kind: action
command: "E 0AE }" # Telnet; web: W 0AE [|
- id: read_events_running
label: Read Number of Events Running
kind: query
command: "E AE }" # Telnet; web: W AE [|
# Reset
- id: erase_file
label: Erase User-Supplied Web Page or File
kind: action
command: "E filename EF }" # Telnet; web: W filename EF [|
params:
- name: filename
type: string
description: Name of file to erase
- id: erase_blink_memory
label: Erase Blink Memory
kind: action
command: "E ZFFF }" # Telnet; web: W ZFFF [|
- id: reset_all_settings_factory
label: Reset All Device Settings to Factory
kind: action
command: "E ZXXX }" # Telnet; web: W ZXXX [|
- id: reset_retain_ip
label: Absolute System Reset, Retain IP
kind: action
command: "E ZY }" # Telnet; web: W ZY [|
notes: Equivalent to ZQQQ except retains IP address, subnet mask, gateway, DHCP, and port mappings.
Feedbacks
- id: relay_state
type: enum
values: [on, off]
description: Per-port relay state from `X! O`; X% = 0 (off) or 1 (on).
- id: input_state
type: integer
description: 12-bit A/D value 0-4095 from contact closure input (`X! }`); 0 = open, 1 = closed (via threshold), full range = 4095.
- id: firmware_version
type: string
description: From `Q` / `1Q` / `3Q` / `4Q`; suffix `*` = running, `?` = factory only, `^` = Mode 1 reset, `!` = corrupted.
- id: bootstrap_version
type: string
description: From `2Q`.
- id: dhcp_mode
type: enum
values: [off, on]
description: 0 = off, 1 = on (from `E DH }`).
- id: ip_address
type: string
description: Current IP address (from `E CI }`).
- id: mac_address
type: string
description: Hardware (MAC) address (from `E CH }`).
- id: subnet_mask
type: string
description: Current subnet mask (from `E CS }`).
- id: gateway
type: string
description: Current gateway IP (from `E CG }`).
- id: connection_security_level
type: enum
values: [not_logged_in, user, administrator]
description: "X5@: 0 = not logged in, 11 = user, 12 = administrator (from `E CK }`)."
- id: verbose_mode
type: enum
values: [clear, verbose, tagged_queries, verbose_and_tagged]
description: "X2@: 0, 1, 2, 3 (from `E CV }`)."
- id: broadcast_mode_rate
type: integer
description: "X6$ - broadcast repetition rate in seconds 0-255 (from `E EB }`). 0 = disabled."
- id: connection_count
type: integer
description: Number of active connections (from `E CC }`).
- id: gmt_offset
type: number
description: "-12.0 to +14.0 (from `E CZ }`)."
- id: daylight_saving
type: enum
values: [off, usa, europe, brazil]
description: "X3$ - 0 = off, 1 = USA, 2 = Europe, 3 = Brazil (from `E CX }`)."
- id: mail_server
type: object
description: Mail server IP and domain name (from `E CM }`).
- id: events_running_count
type: integer
description: Number of currently running events (from `E AE }`).
Variables
# Section omitted - all settable parameters in source are discrete actions.
Events
# UNRESOLVED: source describes event scripting framework (start/stop events, event memory read/write, event buffers 0=receive/1=user-absolute/2=user-relative/3=NVRAM) but does not document a fixed unsolicited notification schema. Event actions above are pull-based via SIS queries, not push notifications over Telnet/HTTP.
Macros
# UNRESOLVED: source references event scripts that can be authored and stored on-device but does not document a fixed macro catalogue.
Safety
confirmation_required_for:
- reset_all_settings_factory # E ZXXX / ZQQQ
- reset_retain_ip # E ZY
- erase_blink_memory # E ZFFF
- erase_file # E filename EF
interlocks: []
# Source warning: "Review the reset modes carefully. Using the wrong reset mode may result in unintended loss of blink memory programming, port reassignment, or processor reboot."
# Port mapping rule: remapped Telnet/Web ports other than default (23/80) or disabled (0) must be >= 1024; duplicate assignments return E13.
Notes
- SIS = Extron Simple Instruction Set. Both Telnet (port 23) and URL-encoded web browser (port 80) accept the same command set. Telnet uses
Esc/Was the prefix and CR/|as the terminator; web uses onlyWand|. Non-alphanumeric chars must be URL-encoded as%xxfor web. - Default unit name format: model name + last 3 pairs of MAC address.
- Relay state is volatile — relays default to OPEN (LED off) at power-on.
- Factory password = device serial number; full system reset (Mode 5 or
ZQQQ) sets password to none. - Web GET form example from source:
http://192.168.254.254/mypage.html?cmd=WSF | - Reset modes: 1 = revert to factory firmware (retain settings); 3 = toggle events; 4 = enable ARP + reset IP/subnet/gateway/ports, DHCP off, events off; 5 = full reset to factory defaults except firmware.
- Error codes: E10 invalid command, E12 invalid port, E13 invalid parameter, E14 invalid for config, E17 timeout, E22 busy, E24 privilege, E25 device not present, E26 max connections, E27 invalid event, E28 file not found, E31 break port pass-through.
[24]prefix = admin-only (E24 privilege violation otherwise);[27]= may give E27 invalid event number;[28]= may give E28 file not found.
Provenance
source_domains:
- media.extron.com
- extron.com
- manua.ls
- manualshelf.com
- manualmachine.com
source_urls:
- https://media.extron.com/public/download/files/userman/68-738-05_D_IPL_T_CR48_UG.pdf
- https://www.extron.com/download/files/catalog/ipltcr48_09en-cat.pdf
- https://www.manua.ls/extron/ipl-t-cr48/manual
- https://www.manualshelf.com/manual/extron-electronic/ipl-t-cr48/user-guide-english.html
- https://manualmachine.com/extronelectronic/ipltcr48/1351142-user-manual/
retrieved_at: 2026-07-25T14:03:20.506Z
last_checked_at: 2026-08-05T08:20:42.242Z
Verification Summary
verdict: verified
checked_at: 2026-08-05T08:20:42.242Z
matched_actions: 77
action_count: 77
confidence: medium
summary: "All 77 spec actions map one-to-one to SIS commands in the source's Command and Response Table, with verbatim opcode tokens and shapes; transport parameters match source verbatim. (5 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "source provides a comprehensive SIS command reference but does not list per-port (1-99) enumerated action variants beyond the parameterized template; spec keeps the parameterization. Firmware version not stated."
- "not stated; no serial/RS-232 port on this device"
- "source describes event scripting framework (start/stop events, event memory read/write, event buffers 0=receive/1=user-absolute/2=user-relative/3=NVRAM) but does not document a fixed unsolicited notification schema. Event actions above are pull-based via SIS queries, not push notifications over Telnet/HTTP."
- "source references event scripts that can be authored and stored on-device but does not document a fixed macro catalogue."
- "firmware version compatibility ranges not stated. Per-port (1-99) parameterized via X! in command templates — source does not enumerate each as a separate row."
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0