Integra Serial Control Protocol
This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these messages)
|
| Communication protocol | |
| Abbreviation | ISCP |
|---|---|
| Developers | Intergra and Onkyo |
| Introduction | August 22, 2003 |
Integra Serial Control Protocol (ISCP)[1][2][3][4] is a proprietary command protocol for home audio and home theater equipment, developed by Onkyo and its Integra division. Controllers use it to operate AV receivers, preamplifiers, and disc players remotely, with commands for power, input selection, volume, and status queries. Some Pioneer products also use ISCP, after Pioneer transferred its home AV business to Onkyo in March 2015.[5][6][7]
ISCP was designed for RS-232 serial links. A later variant, eISCP (Ethernet ISCP), carries the same messages over TCP/IP, so IP-based home automation systems and software controllers can control the equipment over a network.
As of February 2025[update], the latest version of the specification is 1.53.[1]
ISCP over RS-232C
[edit]Hardware characteristics
[edit]
ISCP over serial uses a simple 3-wire RS-232C connection with the following parameters:[1][8]
- 9600 baud
- 8 data bits
- 1 stop bit
- No parity
- No flow control
The physical connector is a 9-pin female D-sub:
- Pin 2: Transmit
- Pin 3: Receive
- Pin 5: Signal ground
A straight-through cable is used to connect the device to a PC or controller.
Message format
[edit]Messages are ASCII text and follow this structure:[1]
| Offset | Octet | 0 | 1 | 2 | 3 | ||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Octet | Bit | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
| 0 | 0 | Start Character (!) | Destination Unit type | Command↴ | |||||||||||||||||||||||||||||
| 4 | 32 | ↪cmd cont | |||||||||||||||||||||||||||||||
| 8 | 64 | Parameter | |||||||||||||||||||||||||||||||
| 12 | 96 | ||||||||||||||||||||||||||||||||
| ⋮ | ⋮ | ||||||||||||||||||||||||||||||||
| 264 | 2112 | End Character ("[CR]"or"[LF]"or"[CR][LF]") | |||||||||||||||||||||||||||||||
- Start Character: 8 bits
- Start Character of ISCP message:
! - Destination Unit type Character: 8 bits
- Indicate type; discovery
xandp, Zone1-8 - Command: 32 bits
- Command/Status/Question/Event Notice type
- Parameter: Variable length
- Command/Status/Question/Event Notice parameter
- End Character: 8-16 bits
- indicate end of ISCP message:
[CR]or[LF]or[CR][LF]
A typical controller → device message for "Power On" is:
| 1st | 2nd | 3rd-5th | 6th- | last | |||
|---|---|---|---|---|---|---|---|
| ! | 1 | P | W | R | 0 | 1 | [CR] |
where:
!is the start character1is the destination unit type (1= receiver)PWR01is the ISCP command and parameter[CR],[LF], or[CR][LF]terminates the message
A device → controller response indicating "Power Standby" may look like:
| 1st | 2nd | 3rd-5th | 6th- | last | |||
|---|---|---|---|---|---|---|---|
| ! | 1 | P | W | R | 0 | 0 | [EOF] |
Special characters used by the protocol:
| Symbol | Meaning | ASCII |
|---|---|---|
| [CR] | Carriage return | 0x0D |
| [LF] | Line feed | 0x0A |
| [EOF] | End of file | 0x1A |
Ethernet ISCP (eISCP)
[edit]| Communication protocol | |
| Abbreviation | eISCP |
|---|---|
| Developers | Intergra and Onkyo |
| Based on | ISCP over RS232 |
| Ports | TCP 60128, UDP 60128, for Auto Detect using broadcast (v1.19) |
With the introduction of network-enabled receivers, ISCP was encapsulated for transport over TCP/IP. This form is known as eISCP or ISCP over Ethernet.[1]
Auto Detect ISCP over Ethernet
[edit]Receivers (introduced after 2011, with version 1.19 or higher) support automatic discovery on a local network, allowing controllers to find compatible devices without manual configuration. This allows client for quicker setup and without knowing the IP address in advance.
A controller starts discovery by broadcasting a "device search" message over UDP to port 60128. Onkyo and Integra receivers answer a query addressed to unit type x. Pioneer receivers expect p instead.[1]
The protocol doesn't list any multicast support, so inter Subnet of auto discovery is not supported.[1]
Each receiver that supports ISCP replies with a single line giving its model name, control port, regional variant, and a unique identifier, usually derived from its network address. The controller can use these fields to show a readable device name and open a control session on the reported port. The specification describes no multicast option, and broadcasts do not cross routers, so discovery only finds receivers on the controller's own subnet.[1]
eISCP packet format
[edit]An eISCP packet consists of a binary header followed by the standard ISCP message:[1]
| Offset | Octet | 0 | 1 | 2 | 3 | ||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Octet | Bit | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
| 0 | 0 | I | S | C | P | ||||||||||||||||||||||||||||
| 4 | 32 | Header size (16) | |||||||||||||||||||||||||||||||
| 8 | 64 | data size | |||||||||||||||||||||||||||||||
| 12 | 96 | version (1) | reserved (000) | ||||||||||||||||||||||||||||||
| 16 | 128 | data (1 or more eISCP Messages) | |||||||||||||||||||||||||||||||
| 20 | 160 | ||||||||||||||||||||||||||||||||
| ⋮ | ⋮ | ||||||||||||||||||||||||||||||||
- Header Size: 32 bits
- Size of the eISCP header. Currently
0x00000010(big-endian) - Data Size: 32 bits
- Length of the eISCP data section (big-endian)
- Version: 8 bits
- ISCP version, currently
0x01 - Reserved: 24 bits
- Reserved for future extensions.
| Offset | Octet | 0 | 1 | 2 | 3 | ||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Octet | Bit | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
| 0 | 0 | Start Character (!) | Destination Unit type | Command↴ | |||||||||||||||||||||||||||||
| 4 | 32 | ↪cmd cont | |||||||||||||||||||||||||||||||
| 8 | 64 | Parameter | |||||||||||||||||||||||||||||||
| 12 | 96 | ||||||||||||||||||||||||||||||||
| ⋮ | ⋮ | ||||||||||||||||||||||||||||||||
| 264 | 2112 | End Character ("[CR]"or"[LF]"or"[CR][LF]") | |||||||||||||||||||||||||||||||
- Start Character: 8 bits
- Start Character of eISCP message:
! - Destination Unit type Character: 8 bits
- Indicate type; discovery
xandp, Zone1-8 - Command: 32 bits
- Command/Status/Question/Event Notice type
- Parameter: Variable length
- Command/Status/Question/Event Notice parameter
- End Character: 8-16 bits
- indicate end of eISCP message:
[CR]or[LF]or[CR][LF]
Security
[edit]The eISCP specification defines no built-in authentication, encryption or access control for the receiver's control connection. Commands and status messages are transmitted in clear text over TCP.[1] A controller that can establish a connection to the receiver's control port can send commands and receive status updates.
Access to port therefore determines which controller can control the receiver. Exposing the receiver to an untrusted network allows any controller on that network to interact with the receiver through eISCP.
The protocol has the following security implications:
- controller with access to the control port can issue commands etc.
- Commands and metadata are readable by systems able to capture the network traffic.
- Device discovery uses UDP broadcasts or unicast, without authentication.
In practice Network-level controls, such as firewall rules and network segmentation, can restrict access to the receiver. These controls are external to eISCP.
Communication flow
[edit]ISCP defines theree messages types commands, queries and status information between a controller and a receiver.[1]
- Command message
- A controller sends a command message to change a receiver setting, such as power or volume. The receiver also provides ''unsolicited feedback'': if the receiver's internal status changes for any reason (for example, due to front-panel operation or another controller), it sends a ''status message'' to all connected controllers. These messages allow controllers to update their stored receiver state.[1]
- Question message
- A question message requests the current state of a receiver function. The setting remains unchanged. The receiver replies with a status message, which the controller can use to obtain the receiver's state after connecting, check its stored state, or recover after losing synchronization.[1]
- Event notice
- The receiver sends event notices when its state changes, including changes made through its front-panel controls or by another controller, and reports the new state to connected controllers. No prior request is required. In eISCP, persistent connections allow controllers to receive these notifications as changes occur.[1]
Command types
[edit]ISCP commands control receiver functions such as power, volume, input selection and playback. The specification lists supported commands and parameters for each receiver model.[1]
Parameters specify the requested operation. For example, PWR01 switches the receiver on, while PWRQSTN requests its power status. Depending on the command and model, parameters can select a value, step through settings or query the current state.[1]
- Set a value
- A parameter selects a setting, such as
00for standby or01for power on with thePWRcommand.[1] - Step or cycle through settings
- Parameters such as
UP,DOWNandTGadjust a setting or cycle through its available states. Their meaning depends on the command. - Query the current state
- The
QSTNparameter requests a status message from the receiver.[1]
Commands include the following groups:[1]
- System control
PWR,SLP,RST,APD,ECO- power, sleep, reset, and energy management.[1]- Volume and muting
MVL,AMT,CMT,SWL,CTL,TCL- master volume, muting, and per-channel levels.[1]- Tone and EQ
TFR,TFW,TFH,TCT,TSR,TSB,TSW,ACE,EQS,STW- bass, treble, and equalization across speaker groups.[1]- Speaker configuration
SPA/SPB,SPL,SPI,SPD- zone selection, layout, size, and distance.[1]- Input and signal selection
SLI,SLR,SLA,VSL,ISS- source selection, record-out, and input management.[1]- Listening and processing modes
LMD,DIR,LTN,RAS,ADY,ADQ,ADV,DVL,AEQ- surround modes, room correction, and night processing.[1]- Video and HDMI control
HDO,HAO,HAS,CEC,RES,VPM,VWM,HSF- output routing, resolution, and picture modes.[1]- Information and display
DIF,IFA,IFV,IFN,FLD- device, audio, video, and network status.[1]- Networking and system
FWV,UPD,POP,TPD- firmware, updates, UI messages, and thermal data.[1]- Tuner and radio
TUN,PRS,PRM, and model-specific RDS, DAB, XM, Sirius, and HD Radio commands.[1]- Advanced calibration
AEO,DSS,DBC,PCT,PCP- room correction and phase control.[1]- Security and locking
KYL,IRL- front-panel and IR lockout.[1]- Network and streaming control
NTC,NAT,NAL,NTI,NTM,NTR,NST,NMS,NLS,NLA,NLT,NJA,NSV,NKY,NPU,NCP,NDS,NBS,NRI- transport keys, menu navigation, playback status, metadata (artist/album/title), list rendering, album art, service selection, on-screen keyboard input, popup UI messages, device/network status, and receiver capability discovery.[1]
History
[edit]- Version 1.00 (2003)
- The first edition of the specification was published on 22 August 2003.[1]
- Version 1.03 (2005)
- Added Zone 3 commands.[1]
- Version 1.05 (2005)
- Added commands for docks connected through RI.[1]
- Version 1.19 (2011)
- Added automatic device discovery over Ethernet.[1]
- Version 1.22 (2012)
- Added command tables for Blu-ray players and televisions controlled through RIHD. RI, Universal Port and network/USB commands were moved into separate tables.[1]
- Version 1.39 (2017)
- Changed command parameters for Chromecast built-in.[1]
- Version 1.40 (2017)
- Changed command parameters for Play-Fi and the play queue.[1]
- Version 1.50 (2023)
- Added Auro-3D and Auro Surround parameters to the listening-mode command.[1]
- Version 1.53 (2025)
- Added infrared and front-panel locking commands for 2021 and 2023 models. This edition was published on 3 February 2025.[1]
List of supported eISCP devices
[edit]This chapter provides an overview of known Integra, Onkyo, Pioneer and Tascam products that implement eISCP.[7][4]
Onkyo
[edit]- Onkyo TX-L20D
- Onkyo TX-L50
- Onkyo TX-NR414
- Onkyo TX-NR509
- Onkyo TX-NR525
- Onkyo TX-NR535
- Onkyo TX-NR575E
- Onkyo TX-NR616
- Onkyo TX-NR636
- Onkyo TX-NR646
- Onkyo TX-NR656
- Onkyo TX-NR676E
- Onkyo TX-NR686
- Onkyo TX-NR696
- Onkyo TX-NR818
- Onkyo TX-RZ50
- Onkyo TX-RZ70
- Onkyo TX-RZ810
- Onkyo TX-RZ830
- Onkyo TX-RZ900
- Onkyo TX-RZ1100
- Onkyo TX-8130
- Onkyo TX-8150
- Onkyo TX-8250
- Onkyo TX-8260
- Onkyo TX-8270
- Onkyo TX-8390
- Onkyo TX-8470
- Onkyo R-N855
- Onkyo CS-N575D
- Onkyo CR-N755
- Onkyo CR-N765
- Onkyo CR-N775D
- Onkyo HT-S7805
- Onkyo NS-6130
- Onkyo NS-6170
- Wireless Audio System NCP-302
Integra
[edit]- Integra DTM-6
- Integra DRX-5.2
- Integra DTR 30.7
- Integra DTR 40.7
Pioneer (models after 2016)
[edit]- Pioneer VSX-LX101
- Pioneer VSX-LX103
- Pioneer VSX-LX104
- Pioneer VSX-LX302
- Pioneer VSX-LX303
- Pioneer VSX-LX503
- Pioneer VSX-LX504
- Pioneer VSX-S520D
- Pioneer VSX-831
- Pioneer VSX-832
- Pioneer VSX-932
- Pioneer VSX-933
- Pioneer VSX-935
- Pioneer VSX-1131
- Pioneer SC-LX701
- Pioneer SC-LX901
- Pioneer SX-N30
- Pioneer SX-S30DAB
- Pioneer NC-50DAB
- Pioneer N-50AE
- Pioneer N-70AE
- Pioneer XC-HM86D
- Pioneer MRX-3
- Pioneer MRX-5
Tascam
[edit]- PA-R100
- PA-200
- AG-D500
See also
[edit]Client integrations
[edit]Open source integration of eISCP
[edit]- GitHub: go-onkyo
- GitHub: mkulesh/onpc (Enhanced Music Controller)
- GitHub: Python3 library aioonkyo (Used by Home Assistant)
- GitHub: eISCP to RS232 ISCP bridge eiscp_bridge
- GitHub: eISCP to MQTT bridge eiscp2mqtt
References
[edit]- 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 Integra Serial Communication Protocol for AV Reciver (Version 1.53 ed.). Premium Audio Company Technology Center K.K. 2025-02-03.
- ↑ mkulesh (2018-10-28). "Протокол ISCP/eISCP от Onkyo: управление устройствами Onkyo по сети" [Onkyo's ISCP/eISCP Protocol: Control Onkyo Devices Over a Network]. Хабр (in Russian). Retrieved 2026-01-15.
- ↑ "Integration Note: Integra 70.4/50.4/40.4 Onkyo TX-NR515/616/717/818/1010/3010/5010" (PDF). Retrieved 2026-01-15.
- 1 2 "Integrated Serial Communication Protocol for AV Receiver" (PDF). TASCAM. 31 October 2012.
- ↑ "Announcement Regarding of Subscription to New Onkyo Shares and Transfer of Our Home AV business, etc" (PDF) (Press release). Pioneer Corporation. 2015-03-02. Retrieved 2026-09-24.
- ↑ "Onkyo Receiver | Homey". homey.app. Retrieved 2026-01-18.
- 1 2 Kulesh, Mikhail (2026-01-15), mkulesh/onpc, retrieved 2026-01-18
- ↑ Eliot (2012-04-29). "Controlling Onkyo / Integra receivers via RS-232". RobotSkirts. Retrieved 2026-03-07.