Summary
The Extron SMP 300 Series (SMP 351, SMP 351 3G-SDI, SMP 352, SMP 352 3G-SDI) are streaming media processors with recording, encoding, and streaming capabilities. Control is via the Simple Instruction Set (SIS) protocol over RS-232 serial, Telnet (TCP port 23), or USB. SIS commands are ASCII-based, case-insensitive, and terminated with CR/LF.
Transport
protocols:
- tcp
- serial
addressing:
port: 23 # Telnet default; configurable via SIS or web UI
serial:
baud_rate: 9600
data_bits: 8
parity: none
stop_bits: 1
flow_control: none
auth:
type: password # optional: device can operate with no password set
# Two levels: administrator and user. If no password set, device accepts
# commands immediately after connection. Password max 128 chars (alphanumeric,
# no pipe or space).
Traits
- powerable # inferred: reboot command present
- queryable # inferred: extensive query commands returning device state
- levelable # inferred: audio level, brightness, contrast, color, tint controls
- routable # inferred: input selection per channel
Actions
# System
- id: reboot_system
label: Reboot System
kind: action
command: "E1BOOT}"
response: "Boot1]"
- id: restart_network
label: Restart Network
kind: action
command: "E2BOOT}"
response: "Boot2]"
- id: reset_flash
label: Reset Flash
kind: action
command: "EZFFF}"
response: "Zpf]"
- id: factory_reset
label: System Reset (Factory Defaults)
kind: action
command: "EZXXX}"
response: "Zpx]"
- id: full_reset_delete_recordings
label: Full Reset (Delete Recordings)
kind: action
command: "EZY}"
response: "Zpy]"
- id: absolute_reset
label: Absolute Reset
kind: action
command: "EZQQQ}"
response: "Zpq]"
- id: clear_alarms
label: Clear Active Alarms
kind: action
command: "ECALRM}"
response: "Alrm C]"
- id: set_unit_name
label: Set Unit Name
kind: action
params:
- name: name
type: string
description: "Device name, max 63 chars, must comply with internet host name standards"
command: "E {name}CN}"
response: "Ipn{name}]"
- id: set_verbose_mode
label: Set Verbose Mode
kind: action
params:
- name: mode
type: integer
description: "0=clear/none, 1=verbose, 2=tagged responses, 3=verbose+tagged"
command: "E {mode}CV}"
response: "Vrb{mode}]"
# Executive mode
- id: set_executive_mode
label: Set Executive Mode
kind: action
params:
- name: mode
type: integer
description: "0=off, 1=complete lockout, 2=menu lockout, 3=recording controls only"
command: "{mode}X"
response: "Exe{mode}]"
# Port configuration
- id: set_telnet_port
label: Set Telnet Port
kind: action
params:
- name: port
type: integer
description: "Port number (1024+, or 23 for default, or 0 to disable)"
command: "E {port}MT}"
response: "Pmt{port}]"
- id: set_web_port
label: Set Web Port
kind: action
params:
- name: port
type: integer
description: "Port number (1024+, or 80 for default, or 0 to disable)"
command: "E {port}MH}"
response: "Pmh{port}]"
# IP configuration
- id: set_dhcp
label: Set DHCP Mode
kind: action
params:
- name: enabled
type: integer
description: "1=on, 0=off"
command: "E{enabled}DH}"
response: "Idh{enabled}]"
- id: set_ip_address
label: Set IP Address
kind: action
params:
- name: ip
type: string
description: "IP address in dotted decimal notation"
command: "E {ip}CI}"
response: "Ipi {ip}]"
- id: set_subnet_mask
label: Set Subnet Mask
kind: action
params:
- name: mask
type: string
description: "Subnet mask in dotted decimal notation"
command: "E {mask}CS}"
response: "Ips {mask}]"
- id: set_gateway
label: Set Gateway IP Address
kind: action
params:
- name: gateway
type: string
description: "Gateway IP address in dotted decimal notation"
command: "E {gateway}CG}"
response: "Ipg {gateway}]"
- id: set_dns_server
label: Set DNS Server IP Address
kind: action
params:
- name: dns
type: string
description: "DNS server IP address in dotted decimal notation"
command: "E {dns}DI}"
response: "Ipd {dns}]"
- id: set_datetime
label: Set Date and Time
kind: action
params:
- name: datetime
type: string
description: "Format MM/DD/YY-HH:MM:SS"
command: "E {datetime} CT}"
response: "Ipt {datetime}]"
# Serial port configuration
- id: configure_serial_port
label: Configure Serial Port
kind: action
params:
- name: baud_rate
type: integer
description: "9600, 19200, 38400, 57600, or 115200"
- name: parity
type: string
description: "O=odd, E=even, N=none, M=mark, S=space"
- name: data_bits
type: integer
description: "7 or 8"
- name: stop_bits
type: integer
description: "1 or 2"
command: "E1*{baud_rate},{parity},{data_bits},{stop_bits}CP}"
response: "Cpn 01 Ccp{baud_rate},{parity},{data_bits},{stop_bits}]"
# Password management
- id: set_admin_password
label: Set Administrator Password
kind: action
params:
- name: password
type: string
description: "Max 128 chars, alphanumeric, no pipe or space"
command: "E {password}CA}"
response: "Ipa {password}]"
- id: set_user_password
label: Set User Password
kind: action
params:
- name: password
type: string
description: "Max 128 chars, alphanumeric, no pipe or space"
command: "E {password}CU}"
response: "Ipu {password}]"
- id: reset_admin_password
label: Reset Administrator Password
kind: action
command: "E •CA}"
response: "Ipa]"
- id: reset_user_password
label: Reset User Password
kind: action
command: "E •CU}"
response: "Ipu]"
# Backup/Restore
- id: save_configuration
label: Save Configuration
kind: action
params:
- name: type
type: integer
description: "0=IP config (ip.cfg), 2=box parameters (box.cfg)"
command: "E1*{type}XF}"
response: "Cfg1*{type}]"
- id: restore_configuration
label: Restore Configuration
kind: action
params:
- name: type
type: integer
description: "0=IP config (ip.cfg), 2=box parameters (box.cfg)"
command: "E0*{type}XF}"
response: "Cfg0*{type}]"
# Input selection
- id: select_input
label: Select Input
kind: action
params:
- name: input
type: integer
description: "Input number 1-5"
- name: channel
type: integer
description: "Output channel: 1=A (inputs 1-2), 2=B (inputs 3-5)"
command: "{input}*{channel}!"
response: "In {input}*{channel}]"
- id: set_input_name
label: Set Input Name
kind: action
params:
- name: input
type: integer
description: "Input number 1-5"
- name: name
type: string
description: "Input name, max 16 chars"
command: "E {input},{name} NI}"
response: "Nmi {input},{name}]"
- id: set_input_format
label: Set Input Video Format
kind: action
params:
- name: format
type: integer
description: "1=YUVp/HDTV, 2=YUVi, 3=Composite, 4=3G-SDI, 5=HD-SDI, 6=SDI, 7=Auto-SDI"
command: "3* {format}"
response: "Typ 03*{format}]"
- id: set_input_aspect_ratio
label: Set Input Aspect Ratio
kind: action
params:
- name: input
type: integer
description: "Input number"
- name: mode
type: integer
description: "1=fill, 2=follow, 3=fit (zoom)"
command: "E {input}*{mode}ASPR}"
response: "Aspr {input}*{mode}]"
# Recording
- id: start_recording
label: Start Recording
kind: action
command: "E Y1 RCDR}"
response: "RcdrY1]"
- id: stop_recording
label: Stop Recording
kind: action
command: "E Y0 RCDR}"
response: "RcdrY0]"
- id: pause_recording
label: Pause Recording
kind: action
command: "E Y2 RCDR}"
response: "RcdrY2]"
- id: extend_record_time
label: Extend Record Time
kind: action
params:
- name: minutes
type: integer
description: "Additional minutes, 1-60"
command: "E E {minutes} RCDR}"
response: "RcdrE {minutes}]"
- id: add_chapter_marker
label: Add Chapter Marker
kind: action
command: "E B RCDR}"
response: "RcdrB]"
- id: set_record_destination
label: Set Record Destination
kind: action
params:
- name: destination
type: integer
description: "0=Auto, 1=Internal, 2=USBFront, 3=USBRear, 11=Internal+Auto, 12=Internal+USBFront, 13=Internal+USBRear, 14=Internal+USBRCP"
command: "E D {destination} RCDR}"
response: "RcdrD {destination}]"
- id: execute_swap
label: Swap Channel A and B
kind: action
command: "% Tke"
response: "Swap]"
# Video mute
- id: video_mute_on
label: Mute Video Output
kind: action
params:
- name: channel
type: integer
description: "Output channel number"
command: "{channel}* 1B Vmt"
response: "{channel}*01]"
- id: video_mute_off
label: Unmute Video Output
kind: action
params:
- name: channel
type: integer
description: "Output channel number"
command: "{channel}* 0B Vmt"
response: "{channel}*00]"
# HDMI video mute
- id: hdmi_video_blank_on
label: Enable HDMI Blanking
kind: action
command: "99* 1B Vmt"
response: "99*1]"
- id: hdmi_video_blank_off
label: Disable HDMI Blanking
kind: action
command: "99* 0B Vmt"
response: "99*0]"
# Audio mute
- id: audio_mute
label: Mute Audio Channel
kind: action
params:
- name: channel
type: integer
description: "Audio selection ID (e.g. 40000=Analog A Left, 40001=Analog A Right, etc.)"
command: "E M {channel}*1AU}"
response: "DsM {channel}*1]"
- id: audio_unmute
label: Unmute Audio Channel
kind: action
params:
- name: channel
type: integer
description: "Audio selection ID"
command: "E M {channel}*0AU}"
response: "DsM {channel}*0]"
- id: set_audio_level
label: Set Audio Level
kind: action
params:
- name: channel
type: integer
description: "Audio selection ID"
- name: level
type: integer
description: "Level in 0.1 dB steps, -180 to 240 (-18.0 to +24.0 dB)"
command: "E G {channel}*{level} AU}"
response: "DsG {channel}* {level}]"
- id: set_audio_delay
label: Set Audio Delay
kind: action
params:
- name: delay_ms
type: integer
description: "Delay in milliseconds, 0-999"
command: "E 1* {delay_ms} ADLY}"
response: "Adly1* {delay_ms}]"
- id: set_audio_format
label: Set Audio Input Format
kind: action
params:
- name: input
type: integer
description: "Input number"
- name: format
type: integer
description: "0=disable, 1=analog, 2=PLCM 2 CH"
command: "E I {input}* {format} AFMT}"
response: "Afmt {input}* {format}]"
# Encoder settings
- id: set_encoder_profile
label: Set Encoder Profile
kind: action
params:
- name: stream
type: integer
description: "Stream selection (1=Archive ChA, 2=Archive ChB, 3=Confidence)"
- name: profile
type: integer
description: "1=Base, 2=Main, 3=High"
command: "E {stream}* {profile} EPRO}"
response: "Epro{stream}* {profile}]"
- id: set_encoding_mode
label: Set Encoding Mode
kind: action
params:
- name: mode
type: integer
description: "0=composite mode, 1=dual channel mode"
command: "E 1* {mode} ENCM}"
response: "Encm 1*{mode}]"
- id: set_output_mode
label: Set Output Mode
kind: action
params:
- name: mode
type: integer
description: "1=video and audio, 2=video only"
command: "E1*{mode} SMOD}"
response: "Smod1* {mode}]"
- id: set_record_resolution
label: Set Record Resolution
kind: action
params:
- name: stream
type: integer
description: "Stream selection"
- name: resolution
type: integer
description: "1=480p, 2=720p, 3=1080p, 4=WCIF, 5=XGA, 6=SXGA, 99=Custom"
command: "E {stream}* {resolution} VRES}"
response: "Vres{stream}*{resolution}]"
- id: set_record_frame_rate
label: Set Record Frame Rate
kind: action
params:
- name: stream
type: integer
description: "Stream selection"
- name: rate
type: integer
description: "1=30, 2=25, 3=24, 4=15, 5=12.5, 6=12, 7=10, 8=5"
command: "E {stream}* {rate} VFRM}"
response: "Vfrm{stream}*{rate}]"
- id: set_video_bitrate
label: Set Video Bit Rate
kind: action
params:
- name: stream
type: integer
description: "Stream selection"
- name: bitrate
type: integer
description: "200 to 10000"
command: "E V {stream}* {bitrate} BITR}"
response: "BitrV {stream}* {bitrate}]"
- id: set_audio_bitrate
label: Set Audio Bit Rate
kind: action
params:
- name: stream
type: integer
description: "Stream selection"
- name: bitrate
type: integer
description: "80, 96, 128, 192, 256, or 320"
command: "E A {stream}* {bitrate} BITR}"
response: "BitrA {stream}* {bitrate}]"
- id: set_gop_length
label: Set GOP Length
kind: action
params:
- name: stream
type: integer
description: "Stream selection"
- name: length
type: integer
description: "1 to 30"
command: "E {stream}* {length} GOPL}"
response: "Gopl{stream}*{length}]"
- id: set_bitrate_control
label: Set Bit Rate Control Type
kind: action
params:
- name: stream
type: integer
description: "Stream selection"
- name: type
type: integer
description: "0=VBR, 1=CVBR, 2=CBR"
command: "E {stream}* {type} BRCT}"
response: "Brct{stream}* {type}]"
- id: set_preview_refresh_rate
label: Set Preview Output Refresh Rate
kind: action
params:
- name: rate
type: integer
description: "1=60 Hz, 2=50 Hz"
command: "E {rate} RATE}"
response: "Rate {rate}]"
# RTMP streaming
- id: set_rtmp_url
label: Set RTMP Destination URL
kind: action
params:
- name: slot
type: integer
description: "1=primary, 2=backup"
- name: stream
type: integer
description: "Stream selection"
- name: url
type: string
description: "RTMP URL string"
command: "E U{slot}*{stream}*{url}RTMP}"
response: "RtmpU{slot}*{stream}*{url}]"
- id: enable_rtmp_push
label: Enable/Disable RTMP Push
kind: action
params:
- name: stream
type: integer
description: "Stream selection"
- name: enabled
type: integer
description: "1=enable, 0=disable"
command: "E E {stream}*{enabled} RTMP}"
response: "RtmpE {stream}*{enabled}]"
- id: stream_enable
label: Enable/Disable Stream
kind: action
params:
- name: stream
type: integer
description: "Stream selection (1=Archive ChA, 2=Archive ChB, 3=Confidence)"
- name: enabled
type: integer
description: "1=enable, 0=disable"
command: "E {stream}*{enabled} STRC}"
response: "Strc{stream}*{enabled}]"
# Stream name
- id: set_stream_name
label: Set Stream Name
kind: action
params:
- name: stream
type: integer
description: "Stream selection"
- name: name
type: string
description: "Stream name"
command: "EN {stream}* {name} STRC}"
response: "StrcN {stream}* {name}]"
# Presets
- id: recall_user_preset
label: Recall User Preset
kind: action
params:
- name: channel
type: integer
description: "Output channel (1=A, 2=B)"
- name: preset
type: integer
description: "Preset number 1-32"
command: "1*{channel}*{preset}."
response: "1Rpr{channel}*{preset}]"
- id: save_user_preset
label: Save User Preset
kind: action
params:
- name: channel
type: integer
description: "Output channel (1=A, 2=B)"
- name: preset
type: integer
description: "Preset number 1-32"
command: "1*{channel}*{preset},"
response: "1Spr{channel}*{preset}]"
- id: recall_input_preset
label: Recall Input Preset
kind: action
params:
- name: input
type: integer
description: "Input number 1-5"
- name: preset
type: integer
description: "Preset number 1-128"
command: "2*{input}*{preset}."
response: "2Rpr{input}*{preset}]"
- id: save_input_preset
label: Save Input Preset
kind: action
params:
- name: input
type: integer
description: "Input number 1-5"
- name: preset
type: integer
description: "Preset number 1-128"
command: "2*{input}*{preset},"
response: "2Spr{input}*{preset}]"
- id: recall_layout_preset
label: Recall Layout Preset
kind: action
params:
- name: preset
type: integer
description: "Preset number 1-32"
command: "7*{preset}."
response: "7Rpr{preset}]"
- id: save_layout_preset
label: Save Layout Preset
kind: action
params:
- name: preset
type: integer
description: "Preset number 1-32"
command: "7*{preset},"
response: "7Spr{preset}]"
- id: recall_encoder_preset
label: Recall Encoder Preset
kind: action
params:
- name: stream
type: integer
description: "Stream selection"
- name: preset
type: integer
description: "Encoder preset number 1-32"
command: "4*{stream}* {preset}."
response: "4Rpr {stream}*{preset}]"
- id: recall_streaming_preset
label: Recall Streaming Preset
kind: action
params:
- name: stream
type: integer
description: "Stream selection"
- name: preset
type: integer
description: "Streaming preset number 1-16"
command: "3*{stream}*{preset}."
response: "3Rpr {stream}*{preset}]"
# Picture adjustments
- id: set_brightness
label: Set Brightness
kind: action
params:
- name: channel
type: integer
description: "Output channel"
- name: value
type: integer
description: "0-127, default 64"
command: "E {channel}*{value} BRIT}"
response: "Brit {channel}*{value}]"
- id: set_contrast
label: Set Contrast
kind: action
params:
- name: channel
type: integer
description: "Output channel"
- name: value
type: integer
description: "0-127, default 64"
command: "E {channel}*{value} CONT}"
response: "Cont {channel}*{value}]"
- id: set_color
label: Set Color
kind: action
params:
- name: channel
type: integer
description: "Output channel"
- name: value
type: integer
description: "0-127, default 64"
command: "E {channel}*{value}COLR}"
response: "Colr {channel}*{value}]"
- id: set_tint
label: Set Tint
kind: action
params:
- name: channel
type: integer
description: "Output channel"
- name: value
type: integer
description: "0-127, default 64"
command: "E {channel}*{value} TINT}"
response: "Tint {channel}*{value}]"
# Auto-image
- id: toggle_auto_image
label: Enable/Disable Auto-Image
kind: action
params:
- name: input
type: integer
description: "Input number"
- name: enabled
type: integer
description: "0=disabled, 1=enabled"
command: "{input}*{enabled}A Img}"
response: "{input}*{enabled}]"
# Overscan
- id: set_overscan
label: Set Overscan Mode
kind: action
params:
- name: input_type
type: integer
description: "Input video format"
- name: mode
type: integer
description: "0=0%, 1=2.5%, 2=5.0%"
command: "E {input_type}*{mode}OSCN}"
response: "Oscn{input_type}*{mode}]"
# Test pattern
- id: set_test_pattern
label: Set Test Pattern
kind: action
params:
- name: pattern
type: integer
description: "0=off, 1=color bars, 2=AR 1.33, 3=AR 1.78, 4=AR 1.85, 5=crop, 6=pulse, 7=timestamp, 8=universal OSD"
command: "E {pattern}TEST}"
response: "Test{pattern}]"
# HDCP
- id: set_hdcp_authorization
label: Set HDCP Authorization
kind: action
params:
- name: input
type: integer
description: "Input number"
- name: enabled
type: integer
description: "1=on, 0=off"
command: "E E{enabled}*{input}HDCP}"
response: "HdcpE {input}*{enabled}]"
- id: set_hdcp_notification
label: Set HDCP Notification
kind: action
params:
- name: enabled
type: integer
description: "1=on (green notification), 0=off (mute to black)"
command: "E N{enabled}HDCP}"
response: "HdcpN{enabled}]"
# EDID
- id: assign_edid
label: Assign EDID to Input
kind: action
params:
- name: input
type: integer
description: "Input number"
- name: edid
type: integer
description: "EDID value (see EDID table)"
command: "E A {input}*{edid}EDID}"
response: "EdidA {input}*{edid}]"
# USB ejection
- id: eject_usb
label: Safely Eject USB Storage
kind: action
params:
- name: port
type: integer
description: "0=all USB, 2=USBFront, 3=USBRear, 4=USBRCP"
command: "E {port}USBE}"
response: "USBE{port}]"
# SNMP
- id: set_snmp_contact
label: Set SNMP Contact
kind: action
params:
- name: contact
type: string
description: "Contact name, max 64 chars"
command: "E C {contact} SNMP}"
response: "SnmpC* {contact}]"
- id: set_snmp_location
label: Set SNMP Location
kind: action
params:
- name: location
type: string
description: "Location, max 64 chars"
command: "E L {location} SNMP}"
response: "Snmp L* {location}]"
- id: enable_snmp
label: Enable SNMP Access
kind: action
command: "E E1SNMP}"
response: "SnmpE*1]"
- id: disable_snmp
label: Disable SNMP Access
kind: action
command: "E E0SNMP}"
response: "SnmpE*0]"
# File operations
- id: change_directory
label: Change Directory
kind: action
params:
- name: path
type: string
description: "Directory path"
command: "E {path} CJ}"
response: "Dirl {path}]"
- id: list_files
label: List Files
kind: action
command: "E LF}"
response: "path/filename date/time length ]"
# HDMI output
- id: set_hdmi_output
label: Set HDMI Output Mode
kind: action
params:
- name: mode
type: integer
description: "0=Channel A full screen, 1=Channel B full screen, 2=Confidence layout"
command: "E {mode} OMOD}"
response: "Omod {mode}]"
# Audio output selection
- id: set_audio_output
label: Set Audio Output Routing
kind: action
params:
- name: mode
type: integer
description: "1=ChA only, 2=ChB only, 3=ChA+ChB, 4=ChA+ChB dual mono, 5=ChA dual mono+ChB"
command: "E {mode}... " # UNRESOLVED: command syntax for audio output routing not fully clear in source table
# Dual channel archive recording
- id: set_archive_chA_recording
label: Set Archive Channel A Recording
kind: action
params:
- name: enabled
type: integer
description: "0=disable, 1=enable"
command: "E X1* {enabled}RCDR}"
response: "Rcdr X1*{enabled}]"
# Folder share
- id: enable_folder_share
label: Enable Folder Share on SMD
kind: action
command: "E E1 * 1SHRF}"
response: "ShrfE1*1]"
- id: disable_folder_share
label: Disable Folder Share on SMD
kind: action
command: "E E1 * 0SHRF}"
response: "ShrfE1 *0]"
# Metadata
- id: set_metadata
label: Set Output Metadata
kind: action
params:
- name: parameter
type: integer
description: "0=Contributor, 1=Coverage, 2=Presenter, 3=Date, 4=Description, 5=Format, 6=Identifier, 7=Language, 8=Publisher, 9=Relation, 10=Rights, 11=Source, 12=Subject, 13=Title, 14=Type, 15=SystemName, 16=Course"
- name: value
type: string
description: "Metadata value, max 127 chars"
command: "EM{parameter}*{value}RCDR}"
response: "RcdrM{parameter}*{value}]"
# Delete recording
- id: delete_recording
label: Delete Recording Event and Files
kind: action
params:
- name: db_id
type: integer
description: "Valid DB_ID number"
command: "E Z {db_id}RCDR}"
response: "RcdrZ{db_id}]"
- id: set_snmp_port
label: Set SNMP Port
kind: action
params:
- name: port
type: integer
command: "E A{port}PMAP}"
- id: set_ssh_port
label: Set SSH Port
kind: action
params:
- name: port
type: integer
command: "E B{port}PMAP}"
- id: set_ssl_port
label: Set SSL Port
kind: action
params:
- name: port
type: integer
command: "E S{port}PMAP}"
- id: set_edid_import
label: Import EDID to User Location
kind: action
params:
- name: location
type: integer
- name: filename
type: string
command: "E I {location},{filename}EDID}"
- id: set_edid_export
label: Export EDID in Binary Format
kind: action
params:
- name: edid
type: integer
- name: filename
type: string
command: "E E {edid}{filename}EDID}"
- id: set_background_image
label: Select Background Image Filename
kind: action
params:
- name: filename
type: string
command: "E {filename}RF}"
- id: mute_background_image
label: Mute Background Image
kind: action
params: []
command: "E0RF}"
- id: set_hctr
label: Set Horizontal Centering
kind: action
params:
- name: channel
type: integer
- name: value
type: integer
command: "E 1*{channel} *{value} HCTR}"
- id: set_hsiz
label: Set Horizontal Size
kind: action
params:
- name: channel
type: integer
- name: value
type: integer
command: "E 1*{channel} *{value} HSIZ}"
- id: set_vctr
label: Set Vertical Centering
kind: action
params:
- name: channel
type: integer
- name: value
type: integer
command: "E 1*{channel} *{value} VCTR}"
- id: set_vsiz
label: Set Vertical Size
kind: action
params:
- name: channel
type: integer
- name: value
type: integer
command: "E 1*{channel} *{value} VSIZ}"
- id: set_phas
label: Set Pixel Phase
kind: action
params:
- name: value
type: integer
command: "E 3 * {value} PHAS}"
- id: set_tpix
label: Set Total Pixels
kind: action
params:
- name: value
type: integer
command: "E 3 * {value} TPIX}"
- id: set_hsrt
label: Set Horizontal Start
kind: action
params:
- name: value
type: integer
command: "E 3 * {value} HSRT}"
- id: set_alin
label: Set Active Lines
kind: action
params:
- name: value
type: integer
command: "E 3 * {value} ALIN}"
- id: set_apix
label: Set Active Pixels
kind: action
params:
- name: value
type: integer
command: "E 3 * {value} APIX}"
- id: hdmi_audio_mute
label: Mute HDMI Audio
kind: action
params: []
command: "99* 1Z Amt"
- id: hdmi_audio_unmute
label: Unmute HDMI Audio
kind: action
params: []
command: "99* 0Z Amt"
- id: set_snmp_public_community
label: Set SNMP Public Community String
kind: action
params:
- name: community
type: string
command: "E P {community}SNMP}"
Feedbacks
- id: firmware_version
type: string
query: "Q"
response: "X1!]"
description: "Firmware version to 2 decimal places"
- id: firmware_build_version
type: string
query: "*Q"
response: "X1!]"
description: "Firmware version plus build number"
- id: model_name
type: string
query: "1I"
description: "Model name (e.g. SMP 351)"
- id: part_number
type: string
query: "N"
description: "Part number (e.g. 60-1324-01)"
- id: unit_name
type: string
query: "ECN}"
description: "Configured unit name"
- id: verbose_mode
type: integer
query: "ECV}"
description: "Current verbose mode (0-3)"
- id: active_alarms
type: string
query: "39I"
description: "Active alarms or 'None active'"
- id: telnet_connections
type: integer
query: "ECC}"
description: "Number of active IP connections"
- id: telnet_port
type: integer
query: "E MT}"
description: "Current Telnet port assignment"
- id: web_port
type: integer
query: "E MH}"
description: "Current web port assignment"
- id: selected_input
type: string
query: "X50@!"
description: "Selected input for given channel"
- id: input_selection_channel
type: string
query: "32I"
description: "ChA and ChB input selections"
- id: record_status
type: enum
values: [stopped, recording, paused]
query: "E Y RCDR}"
description: "Current recording status"
- id: record_destination
type: string
query: "E D RCDR}"
description: "Current recording destination"
- id: recording_duration
type: string
query: "35I"
description: "Recording elapsed time HH:MM:SS"
- id: record_time_remaining
type: string
query: "36I"
description: "Time remaining for current recording"
- id: video_mute_status
type: boolean
query: "X50@B"
description: "Video mute status for given output channel"
- id: audio_mute_status
type: boolean
query: "E M X50^ AU}"
description: "Audio mute status for given audio channel"
- id: audio_level
type: integer
query: "E G X50^ AU}"
description: "Audio level in 0.1 dB steps"
- id: front_panel_audio_levels
type: string
query: "34I"
description: "Left*Right audio level indicators"
- id: ip_address
type: string
query: "ECI}"
description: "Current IP address"
- id: subnet_mask
type: string
query: "ECS}"
description: "Current subnet mask"
- id: gateway_address
type: string
query: "ECG}"
description: "Current gateway IP address"
- id: mac_address
type: string
query: "ECH}"
description: "Hardware MAC address"
- id: dns_server
type: string
query: "EDI}"
description: "Current DNS server IP address"
- id: dhcp_mode
type: boolean
query: "EDH}"
description: "DHCP enabled/disabled"
- id: datetime
type: string
query: "ECT}"
description: "Current date and time"
- id: serial_port_settings
type: string
query: "E1CP}"
description: "Serial port baud,parity,data bits,stop bits"
- id: executive_mode
type: integer
query: "X5!"
description: "Executive mode status (0-3)"
- id: session_security_level
type: integer
query: "ECK}"
description: "11=User, 12=Administrator"
- id: internal_storage
type: string
query: "55I"
description: "Storage usage: used, total, free, recording time, active"
- id: system_memory_usage
type: string
query: "3I"
description: "Bytes used out of total KBytes"
- id: eth0_link_status
type: string
query: "13I"
description: "Link state, speed (MB), mode (full/half)"
- id: hdcp_status
type: integer
query: "E I X50!HDCP}"
description: "0=no sink/source, 1=HDCP detected, 2=detected no HDCP"
- id: encoder_profile
type: integer
query: "E X50) EPRO}"
description: "Encoder profile (1=Base, 2=Main, 3=High)"
- id: encoding_mode
type: integer
query: "E 1ENCM}"
description: "0=composite, 1=dual channel"
- id: record_resolution
type: integer
query: "E X50)VRES}"
description: "Current record resolution setting"
- id: record_frame_rate
type: integer
query: "E X50)VFRM}"
description: "Current record frame rate setting"
- id: video_bitrate
type: integer
query: "E V X50)BITR}"
description: "Current video bit rate"
- id: audio_bitrate
type: integer
query: "E A X50)BITR}"
description: "Current audio bit rate"
- id: gop_length
type: integer
query: "E X50)GOPL}"
description: "Current GOP length"
- id: stream_status
type: boolean
query: "E X50)STRC}"
description: "Stream enabled/disabled"
- id: rtmp_push_status
type: boolean
query: "E E X50)RTMP}"
description: "RTMP push enabled/disabled"
- id: rtmp_status_primary
type: integer
query: "E S1*X50) RTMP}"
description: "Primary RTMP connection status"
- id: overscan_mode
type: integer
query: "E X50$OSCN}"
description: "Current overscan setting"
- id: test_pattern
type: integer
query: "ETEST}"
description: "Current test pattern"
- id: output_refresh_rate
type: integer
query: "E RATE}"
description: "Preview output refresh rate"
- id: hdmi_output_mode
type: integer
query: "E OMOD}"
description: "HDMI output mode (0=ChA, 1=ChB, 2=Confidence)"
- id: auto_memory
type: boolean
query: "E AMEM}"
description: "Auto memory enabled/disabled"
- id: input_name
type: string
query: "E X50! NI}"
description: "Name assigned to input"
- id: input_aspect_ratio
type: integer
query: "E X50!ASPR}"
description: "Aspect ratio setting (01=fill, 02=follow, 03=fit)"
- id: brightness
type: integer
query: "E X50@ BRIT}"
description: "Brightness value 0-127"
- id: contrast
type: integer
query: "E X50@ CONT}"
description: "Contrast value 0-127"
- id: color
type: integer
query: "E X50@ COLR}"
description: "Color value 0-127"
- id: tint
type: integer
query: "E X50@ TINT}"
description: "Tint value 0-127"
- id: selected_input_status
type: string
query: "42I"
description: "Per-channel input number, name, resolution, frame rate, live status"
- id: recording_info
type: string
query: "1*I"
description: "Current recording configuration (composite mode)"
- id: record_resolution_framerate
type: string
query: "33I"
description: "Horizontal x Vertical resolution and frame rate"
- id: encoder_preset_name
type: string
query: "E 4* X56# PNAM}"
description: "Encoder preset name"
- id: streaming_preset_name
type: string
query: "E 3* X53) PNAM}"
description: "Streaming preset name"
- id: rtmp_url
type: string
query: "E U1*X50)RTMP}"
description: "Primary RTMP URL"
Variables
- id: audio_level_db
type: integer
min: -180
max: 240
step: 1
unit: "0.1 dB"
description: "Audio level per channel (-18.0 to +24.0 dB)"
- id: brightness_value
type: integer
min: 0
max: 127
step: 1
default: 64
description: "Brightness adjustment"
- id: contrast_value
type: integer
min: 0
max: 127
step: 1
default: 64
description: "Contrast adjustment"
- id: color_value
type: integer
min: 0
max: 127
step: 1
default: 64
description: "Color adjustment (NTSC/PAL only)"
- id: tint_value
type: integer
min: 0
max: 127
step: 1
default: 64
description: "Tint adjustment (NTSC only)"
- id: video_bitrate
type: integer
min: 200
max: 10000
step: 1
description: "Video bit rate in kbps"
- id: audio_bitrate
type: integer
enum: [80, 96, 128, 192, 256, 320]
description: "Audio bit rate"
- id: gop_length
type: integer
min: 1
max: 30
step: 1
description: "Group of pictures length"
- id: audio_delay_ms
type: integer
min: 0
max: 999
step: 1
unit: ms
description: "Audio delay in milliseconds"
- id: telnet_port
type: integer
description: "Telnet port number"
- id: connection_timeout
type: integer
description: "Port timeout in tens of seconds (default 300 = 30 seconds)"
Events
- id: copyright_message
description: "Sent on connection (Telnet) or power-on (RS-232). Includes product name, firmware version, part number, date/time (Telnet only)."
format: "© Copyright 2014-2017, Extron Electronics, SMP {model}, V{n.nn}, {part-number} Day, DD MMM YYYY HH:MM:SS"
- id: password_prompt
description: "Sent when device is password-protected, after copyright message."
format: "Password:"
- id: login_response
description: "Response after correct password entry."
format: "Login Administrator | Login User"
- id: error_response
description: "Returned when command cannot be executed."
format: "E10 (unrecognized command) | E12 (invalid port) | E13 (invalid parameter) | E17 (invalid command for signal type) | E18 (timeout) | E22 (busy) | E24 (privilege violation) | E26 (max connections exceeded)"
Macros
# UNRESOLVED: no multi-step macro sequences explicitly documented in source
Safety
confirmation_required_for:
- factory_reset
- full_reset_delete_recordings
- absolute_reset
- delete_recording
interlocks: []
# UNRESOLVED: power-on sequencing requirements not documented; recording
# operations (start/stop) have no explicit safety interlocks documented.
Notes
- SIS commands are not case sensitive.
- Each response ends with CR/LF (carriage return/line feed), represented as
]in command tables. - SSH connections may add an extra carriage return in the final terminator (e.g.,
X1!]]instead ofX1!]). - Default Ethernet connection timeout is 5 minutes; Extron recommends issuing the Query (
Q) command periodically to keep connections alive. - Telnet connections in verbose mode 1 or 3 report changes from other sockets and front panel operations.
- Duplicate port assignments are not permitted (returns E13 error). Remapped ports must be 1024+ unless resetting to default.
- Port numbers 0 disables the service (Telnet, web, etc.).
- SNMP community strings are referred to as passwords in the web UI.
- Horizontal centering/size values adjusted in multiples of 8. Vertical centering/size in multiples of 2.
- SMP 351 part numbers: 60-1324-01 (standard), 60-1324-02 (3G-SDI), 60-1324-11 (400GB SSD), 60-1324-12 (3G-SDI + 400GB SSD).
- SMP 352 part numbers: 60-1634-11 (standard), 60-1634-12 (3G-SDI).
- Default IP: 192.168.254.254, subnet 255.255.0.0, gateway 0.0.0.0, DHCP off.
Provenance
source_domains:
- aca.im
- extron.com
- manualslib.com
source_urls:
- https://aca.im/driver_docs/Extron/extron_smp300_Series.pdf
- https://www.extron.com/download/files/userman/smp_300_series_68-2238-01_R.pdf
- https://www.manualslib.com/manual/2867393/Extron-Electronics-Smp-300-Series.html
- https://www.extron.com/download/
retrieved_at: 2026-05-13T02:01:02.032Z
last_checked_at: 2026-06-02T22:07:10.083Z
Verification Summary
verdict: verified
checked_at: 2026-06-02T22:07:10.083Z
matched_actions: 110
action_count: 110
confidence: medium
summary: "All 110 spec actions traced to source (dip-safe re-verify). (9 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "USB config port protocol details beyond SIS over USB serial not fully specified"
- "command syntax for audio output routing not fully clear in source table"
- "no multi-step macro sequences explicitly documented in source"
- "power-on sequencing requirements not documented; recording"
- "firmware version compatibility ranges not stated"
- "maximum concurrent Telnet connection count not explicitly stated (E26 error exists)"
- "USB config port protocol specifics beyond SIS serial emulation"
- "SSL/SSH certificate management not documented in source excerpt"
- "precise command syntax for audio output routing command incomplete in source"
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0