Education

Extron SIS — Simple Instruction Set Protocol

SIS (Simple Instruction Set) is Extron's universal ASCII command protocol. Every Extron device — CrossPoint matrix switchers, IPCP Pro control processors, DMP audio processors, DTP and XTP distribution products, NAV Pro encoders/decoders, and most other Extron hardware — responds to SIS commands over RS-232 (typically 9600 8N1) or TCP/IP (Telnet, port 23). SIS is the integration layer that allows third-party control systems (Crestron, AMX, Q-SYS Lua scripts), custom applications, and diagnostic tools to communicate with Extron equipment without proprietary software. It is also the primary diagnostic interface — a technician with a laptop and PuTTY can query and control any Extron device on the network in under a minute.

See control-systems/extron-basics for the Extron platform overview and control-systems/extron-globalscripter for using SIS within GlobalScripter programs.

SIS Fundamentals

Connection Methods

RS-232: Direct serial connection to the device's RS-232 port. Default parameters for most Extron devices:

  • Baud: 9600 (some devices: 19200 or 115200 — check the product's Configuration Guide)
  • Data bits: 8
  • Parity: None
  • Stop bits: 1
  • Flow control: None (hardware flow control is NOT used on Extron RS-232 ports)

IP (Telnet): Connect to the device's IP address on TCP port 23. Most Extron devices with Ethernet support SIS over Telnet. The connection is a raw TCP socket — standard Telnet clients (PuTTY, macOS Terminal telnet, Windows telnet) work, as do raw socket connections from control systems.

Authentication: Extron devices with password protection enabled prompt for a username/password after connection. Default credentials are admin / extron — change these on installation. If authentication is disabled (common on isolated AV networks), the connection is immediately ready for SIS commands.

Message Framing

  • Commands are sent as ASCII strings terminated with a carriage return (\r, 0x0D)
  • Responses are terminated with carriage return + linefeed (\r\n, 0x0D 0x0A)
  • Commands and responses are case-sensitive on some devices — match exactly as documented
  • Some commands use Escape sequences for special control characters: \x1B (ESC) is used in specific CrossPoint commands

Response Format

Most SIS commands return a structured text response immediately after execution:

Command sent:   2*3!\r
Response:       Out3 In2\r\n

Query commands return the current state:

Command sent:   0LS\r
Response:       Chn 01: In 02 Out 01\r\nChn 02: In 01 Out 02\r\n...\r\n

Error responses follow the pattern E## where ## is an error code:

E01    Invalid input number
E02    Invalid output number
E10    Invalid command
E13    Invalid value
E14    Not applicable (feature not available on this device)
E22    Busy (device processing previous command)

IPCP Pro SIS Commands

The IPCP Pro supports SIS over TCP port 23 for program diagnostics and external integration.

System Information

I               → Model and firmware info
                  Response: "Extron IPCP Pro 550 Ver.1.05.0000\r\n"

Q               → System status query
                  Response: current operating status

Cn              → Query/set IP connection n status

Variable Access

GlobalScripter variables can be read and written via SIS — useful for room booking systems or building management platforms that need to check or set room state:

W1CV            → Read variable 1 current value
                  Response: "Var01Val=75\r\n"

W1*50CV         → Set variable 1 to value 50
                  Response: "Var01Val=50\r\n"

W2CV            → Read variable 2
W2*"Meeting"CV  → Set variable 2 to string "Meeting"

Variables are numbered sequentially as defined in the GCP program. The variable number corresponds to the order the Variable blocks appear in the GCP design.

Virtual Buttons

Trigger GCP button events from external systems via SIS:

B1P             → Press virtual button 1 (fires Button_Press handler in GCP)
B1R             → Release virtual button 1
B1T             → Tap virtual button 1 (press + release)

This allows external systems — room booking platforms, building automation — to trigger room control actions without a physical button press.

CrossPoint Matrix SIS Commands

CrossPoint matrices have the most extensive SIS command set of any Extron product category.

Video Routing

# Route input to all outputs (broadcast)
1!              → Route input 1 to all outputs
2!              → Route input 2 to all outputs

# Route input to specific output
2*3!            → Route input 2 to output 3
4*1!            → Route input 4 to output 1
0*2!            → Disconnect (blank) output 2

# Route multiple outputs simultaneously
2*1*3*5!        → Route input 2 to outputs 1, 3, and 5

# Query current route
?               → Query all current routes
                  Response: "In1 Out1\r\nIn2 Out2\r\n..."

0LS             → List all current routes (verbose format)

Audio Routing (separate audio matrix on models with embedded audio)

2*3$            → Route audio input 2 to audio output 3
0*1$            → Disconnect audio output 1

Output and Input Gain

1*G             → Query gain on output 1
1*12G           → Set gain on output 1 to +12 dB
1*-6G           → Set gain on output 1 to -6 dB

Mute

1*1Z            → Mute output 1 video
1*0Z            → Unmute output 1 video
1Z              → Query mute state on output 1

EDID Management

1*2EDID         → Copy EDID from output 2 to input 1 (EDID Minder)
1EDID           → Query EDID stored on input 1
CEDID           → Clear all stored EDIDs (caution — affects all inputs)

Scaling (on models with output scaling)

1*1920*1080*60R → Set output 1 resolution to 1920×1080@60Hz
1R              → Query current output 1 resolution
1*0R            → Set output 1 to auto-detect (pass-through)

Status and Diagnostics

I               → Model/firmware info
S               → System status (temperature, fan, PSU)
0IS             → Input signal status for all inputs (present/absent)
0OS             → Output signal status
1IS             → Signal status on input 1 only

DMP Audio Processor SIS Commands

DMP 128 LC Plus and related DSP units use SIS for volume, muting, and preset control from the IPCP Pro.

Volume Control

D1*75V          → Set mic/line input 1 volume to 75 (0–100 range)
D1V             → Query input 1 volume
M1*0V           → Set master output 1 volume to 0 (mute level)
M1*50V          → Set master output 1 volume to 50

# Volume ramp (smooth fade)
M1*75*2V        → Ramp master output 1 to volume 75 over 2 seconds

Muting

D1*1Z           → Mute input channel 1
D1*0Z           → Unmute input channel 1
M1*1Z           → Mute master output 1
M1*0Z           → Unmute master output 1
D1Z             → Query mute state of input 1

Preset Recall

1.               → Recall preset 1 (period suffix)
5.               → Recall preset 5
P1.             → Recall preset 1 (alternate syntax on some DMP models)

AEC and DSP Status

AECQ            → Query AEC status (active/inactive, convergence state)
DSPQ            → Query DSP processing status

DTP and XTP SIS Commands

Point-to-point extenders and XTP chassis also respond to SIS for signal status and configuration.

DTP Transmitter / Receiver Status

I               → Firmware and model info
S               → Signal status (HDMI input detected, HDCP status, link status)
0IS             → Input signal present/absent
0LS             → Link status (DTP connection to remote end established)

XTP CrossPoint (same as CrossPoint matrix — see above)

XTP CrossPoint chassis use identical video routing SIS commands to standard CrossPoint matrices. The XTP layer (signal transport) is transparent to SIS — routing commands work the same way regardless of whether signals travel over HDMI or XTP.

NAV Pro encoders and decoders support SIS for status queries and stream management.

Encoder Status

I               → Encoder firmware and model
S               → Stream status (encoding active, stream destination IP, bitrate)
1S              → HDMI input signal status
IPSTAT          → Current IP configuration (address, mask, gateway)

Decoder Status

I               → Decoder firmware and model
S               → Decode status (stream source IP, decode state)
SRCIP           → Current source stream IP address

Stream Routing (via NAV Pro SW software — not direct SIS)

NAV Pro stream routing (which encoder feeds which decoder) is managed through the NAV Pro SW software interface, not direct SIS commands to individual devices. Individual encoder/decoder SIS is primarily for diagnostics.

Integration with Third-Party Control Systems

Crestron SIMPL

In Crestron SIMPL, Extron devices are controlled via COM (RS-232) or TCPClient symbols. The SIS command string is built as a Crestron signal and sent via Send_String:

// Route input 2 to output 1 on CrossPoint
Send_String COM1, "2*1!\x0D"

// Parse CrossPoint response in String_Input event
// Response: "Out1 In2\x0D\x0A"

A large library of pre-built Crestron modules for Extron CrossPoint, DMP, and IPCP Pro is available on the Crestron developer portal — these encapsulate SIS handling.

AMX NetLinx

AMX uses SEND_STRING for RS-232 and IP_CLIENT_OPEN + SEND_STRING for TCP. NetLinx DATA_EVENTs handle SIS responses:

// Route input 3 to output 2
SEND_STRING dvCrossPoint, "'3*2!', $0D"

// Handle response
DATA_EVENT[dvCrossPoint] {
    STRING: {
        // response in DATA.TEXT
        IF (FIND('Out2', DATA.TEXT)) {
            // routing confirmed
        }
    }
}

Q-SYS Lua Script

Q-SYS Lua TCP client communicating with an Extron CrossPoint:

local sock = TcpSocket.New()
local buf = ""

sock.Connected = function(s)
    s:Write("2*3!\r")   -- route input 2 to output 3
end

sock.Data = function(s)
    buf = buf .. s:Read(s.BufferLength)
    local line, rest = buf:match("^(.-\r\n)(.*)")
    if line then
        buf = rest or ""
        if line:find("Out3") then
            print("CrossPoint: input 2 routed to output 3")
        end
    end
end

sock:Connect("192.168.1.20", 23)

Python (Custom Applications / Diagnostics)

import socket, time

def sis_command(sock, cmd):
    sock.sendall((cmd + "\r").encode("ascii"))
    time.sleep(0.1)
    return sock.recv(1024).decode("ascii").strip()

s = socket.socket()
s.connect(("192.168.1.20", 23))
s.settimeout(2.0)

# Route input 2 to output 3
response = sis_command(s, "2*3!")
print(response)   # "Out3 In2"

# Query all routes
response = sis_command(s, "0LS")
print(response)

s.close()

SIS as a Diagnostic Tool

Even without a control system integration, SIS is invaluable during commissioning and troubleshooting. Standard diagnostic workflow:

  1. Connect: telnet [device IP] 23 in terminal, or PuTTY → Raw → port 23
  2. Identify: Send I to confirm device model and firmware version
  3. Check signals: Send 0IS to see which inputs have active signals
  4. Check routing: Send 0LS to see all current routes
  5. Test routing: Send 2*1! to manually route input 2 to output 1
  6. Check HDCP: Send 0HDCP to see HDCP negotiation status per output
  7. Check temperature/PSU: Send S to confirm hardware health

This workflow takes under 2 minutes and immediately confirms whether signal distribution is working before touching any control system code.

Common Pitfalls

  • Missing carriage return terminator. SIS commands must be terminated with \r (0x0D), not \n (0x0A) or \r\n. Sending a command with only a linefeed causes the device to buffer indefinitely — no response is ever returned. This is the single most common SIS integration bug. Always use cmd + "\r" and never cmd + "\n" or cmd + "\r\n".

  • Response arrives in multiple TCP packets. When communicating over Telnet (TCP), the response to a SIS command may be split across multiple TCP receive callbacks. A control system that processes only the first packet sees a partial response and either misparses it or misses it entirely. Always accumulate received data into a buffer and parse only when a complete terminator (\r\n) is found — identical to the RS-232 buffer accumulation pattern.

  • Wrong baud rate on RS-232. Extron devices default to 9600 baud, but some products default to 19200 or 115200 (check the Configuration Guide's Technical Specifications page). A baud rate mismatch produces garbled characters or no response — the device appears connected but returns gibberish. Confirm the device's factory baud rate before wiring.

  • Authentication blocking commands on secured devices. Extron devices with password protection prompt for credentials immediately after TCP connection. A control system that sends SIS commands without handling the login prompt will get authentication failure responses rather than command responses. Either disable authentication on isolated AV networks or implement login handling in the control system TCP code.

  • SIS command set differs between product families. SIS syntax is consistent within a product family but varies between families. CrossPoint routing commands (2*3!) do not apply to DMP audio processors, and DMP volume commands (D1*75V) do not apply to CrossPoint. Always reference the specific product's SIS Protocol document (available on extron.com under each product's Documentation tab) — do not assume commands transfer between product types.

  • Variable numbering changes when GCP program is modified. IPCP Pro SIS variable access (W1CV, W2CV) uses sequential variable numbers as defined in the GCP program. Adding or reordering Variable blocks in GCP renumbers them, breaking any external SIS integration that relies on specific variable numbers. Document variable assignments and treat them as a stable interface — add new variables at the end of the list rather than inserting them in the middle.

We use optional analytics cookies to understand site usage and improve the experience. You can accept or reject.