
NHT Controller
RS232 Protocol Specification

CONTENTS
Technical Specification of the NHT Controller RS232 Port 3
Input commands 4
Single Byte User Commands 4
Multi Byte User Commands 6
Special Commands 7
Output data 9
Appendix 1 - RS_STORE_EEPROM and RS_READ_EEPROM 12

This document describes the NHT Controller RS232 protocol for normal end-user operations and some test
specific features.
Technical Specification of the NHT Controller RS232 Port
• 9600bps
• 8 data bits, one stop bit, no parity
• binary transmission, no flow control
NOTE!
Not necessarily all commands and sub-commands work with all software releases. Users of the older software
releases should consult older revisions of the manual. New commands are added continuously to this
document as they are added to the software.

Input commands
Single Byte User Commands
The following commands are all single bytes sent to the RS-232 port. They create various output data
depending on the system status, so a comprehensive output data feedback cannot be given. The reception of
these commands must be first activated by sending RS_ENABLE_CONTROL command before each command.
See Special Commands section below.
17 FRONTPANEL_VOLUME_PLUS
18 FRONTPANEL_VOLUME_MINUS

85 UI_ZONE_STANDBY_TOGGLE
87 UI_AUDIO_IN_EXT71_TOGGLE
94 UI_PHONES_VOLUME_MINUS
96 UI_FRONT_PANEL_LOCK_TOGGLE
117 UI_REMOTE_MULTIROOM_CONTROL

Multi Byte User Commands
The following commands need two or more bytes: <command> <data1> [<data2>] …
The reception of these commands must be first activated by sending RS_ENABLE_CONTROL command before
each command! See Special Commands section below.
main zone volume: 10 = -90dB, 100 = 0dB
Selects component video input and conversions
Select Composite video input 1 ->
Select S-Video video input 1 ->
Select Component video input 1 ->
Select HDMI video input 1 ->
Zone B volume: 11 = -89dB, 100 = 0dB
Sets PL2 parameters
Note: Parameters can be read without write by sending
invalid data bytes, for example by setting all data bytes to
255. See the output data description below.
Panorama: 0 = Off, 1 = On
Center Width: 0 = Narrow, 7 = Wide
Dimension: 0 = Front biased, 6 = Max surround
Response to the read command
Sets Neo6 parameters
Note: Parameters can be read without write by sending
invalid data bytes, for example by setting all data bytes to
255. See the output data description below.
Center Image: 0 = Narrow, 5 = Wide
Response to the read command
0 = Off, 1…3 = Coax 1-3, 5…7 = Opt 1-3, 8 = HDMI

Special Commands
The following commands need one, two or several bytes: <command> [<data>] [<data>] …
Enables the reception of most RS232 commands
Reception is deactivated after every received command,
so this command must be sent again before the next
command.
Disables the reception of RS232 commands. This
command is seldom need as control is usually disabled
after every RS command.
Request for various status information. No need to
enable RS control. This command sends out the
information described below.
Header EOT
RS_VOLUME (see Output data section)
RS_MUTE (see Output data section)
RS_AUDIO_SOURCE (see Output data section)
RS_VIDEO_SOURCE (see Output data section)
RS_OPER_MODE (see Output data section)
RS_ZONE_AUDIO_SOURCE (see Output data section)
RS_ZONE_VIDEO_SOURCE (see Output data section)
RS_ZONE_VOLUME (see Output data section)
RS_ZONE_MUTE (see Output data section)
RS_DIMMER (see Output data section)
RS_STEREO_MODE (see Output data section)
RS_SIGNAL_TYPE (see Output data section)
RS_SEND_CHANNEL_INFO (see Output data section)
RS_AUDIO_INPUT_TYPE (see Output data section)
RS_COMPRESSION (see Output data section)
RS_CINEEQ (see Output data section)
RS_BASS (see Output data section)
RS_TREBLE (see Output data section)
RS_CENTER (see Output data section)
RS_SURROUND (see Output data section)
RS_SUBWOOFER (see Output data section)
RS_TRIGGER1 (see Output data section)
RS_TRIGGER2 (see Output data section)
For the
exact
output see
the
command
description
of the each
command
on the right
RS_TV_SYSTEM (see Output data section)
Sends out the software version number. RS control must
be enabled first.
version number MSB (1.25)
version number LSB (1.25)
Writes a byte to the EEPROM
See Appendix 1 for more information.

0 = write unsuccessful, 1 = write successful
Reads a byte from the EEPROM. See Appendix 1 for more
information.
Byte read from the EEPROM

Output data
The following data is sent out to RS port whenever the status of the current parameter or function is
changed. The output data consists of at least three bytes: <command> <data> <EOT>. For example when the
main zone volume is changed to –25dB, the following three bytes are sent out: 225/75/255.
Channel information of the current audio signal
Channel info
000 = 1 + 1 (dual mono)
001 = 1/0
010 = 2/0
011 = 3/0
100 = 2/1
101 = 3/1
110 = 2/2
0 = no LFE, 1 = LFE
00 = not indicated
01 = not Dolby Surround decoded
10 = Dolby surround decoded
0 = non ES / EX signal
1 = ES / EX flag present
Panorama: 0 = Off, 1 = On
The contents of the EEPROM memory location. This
command is a response only for the RS_READ_EEPROM
command
Data byte read from the EEPROM
A reply to the RS_STORE_EEPROM command
0 = write unsuccessful, 1 = write successful
A reply to the RS_QUERY_VERSION command
Major version number (1.22)
Minor version number (1.22)
Send the status of the headphones
Headphones connected (1) or not (0)
Volume: 10 = -90dB, 100 = 0dB, 115 = +15dB
Status of the main zone user mute
Main zone mute: 0 = unmuted, 1 = muted
The current main zone video source.

Composite video input 1 ->
HDMI video input (future option) ->
Zone B video source. Even when audio (7-16) source is
selected, the composite video input of the last selected
video source remains active, which is indicated by this
command.
Volume: 10 = -90dB, 100 = 0dB, 115 = +15dB
Current post processing mode
0 = Direct (Stereo with 2 channel audio material)
1 = Dolby Pro Logic
2 = Natural
3 = Club
4 = Concert
5 = Stadium
6 = Party
7 = Mono down mix
8 = Custom music mode
9 = Surround 6.1
10 = Custom music mode
11 = not used
12 = Stereo down mix
13 = Pro Logic II Movie
14 = Pro Logic II Music
15 = Dolby Digital EX
16 = Neo:6 Cinema
17 = Matrix / Neo:6
18 = Hall
19 = Church
20 = Neo:6 Music
21 = Stereo 96
22 = Dolby Headphones (not used)
23 = Pro Logic IIx Music

Current audio signal
0 = <reserved>
1 = Digital zero signal (currently not used)
2 = Digital PCM
3 = Dolby Digital
4 = DTS
5 = MPEG
6 = Noise (generated by the DSP)
7 = Analog
8 = Digital Error (unrecognized or corrupted digital signal)
9 = DTS-ES Matrix
10 = DTS-ES Discrete
11 = DTS 96/24
12 = DTS 96 Matrix
13 = DTS 96 Discrete
Audio input type of the current source
0 = Non-balanced Analog
1 = Coaxial
2 = Optical
Late Night compression status
0 = compression off, 1 = compression on
0 = Cine EQ off, 1 = Cine EQ on
0 = -12dB, 12 = 0dB, 24 = +12dB
0 = -12dB, 12 = 0dB, 24 = +12dB
0 = -12dB, 12 = 0dB, 24 = +12dB
0 = -12dB, 12 = 0dB, 24 = +12dB
0 = -12dB, 12 = 0dB, 24 = +12dB
0 = trigger inactive, 1 = trigger active
0 = trigger inactive, 1 = trigger active
0 = unknown, 1 = PAL, 2 = NTSC
Sent out as a last byte of each transmission from the serial
port

Appendix 1 - RS_STORE_EEPROM and RS_READ_EEPROM
This appendix gives further information about RS_STORE_EEPROM and RS_READ_EEPROM commands.
RS_STORE_EEPROM is used to store one byte to the EEPROM, where all user settings are stored. This
commands lets third parties to configure setup values during installation. The command is not intended to
change any values during normal operation, since the values are only stored to the EEPROM and are not
automatically updated to the system. Some changes may not become effective until re-boot.
The address is calculated by the following formula:
address = MSB address * 256 + LSB address
The table below has both MSB and LSB addresses already calculated
EXAMPLE
The analog sensitivity of the Source2 is set to –3dB:
- first send the RS_ENABLE_CONTROL <224><82><83><33>
- send the RS_STORE_EEPROM command <230>
- send the address <3><81>
- send the sensitivity <82>
50=-15.0dB, 80=0.0dB, 81=0.5dB, 110=15.0dB
50=-15.0dB, 80=0.0dB, 81=0.5dB, 110=15.0dB
50=-15.0dB, 80=0.0dB, 81=0.5dB, 110=15.0dB
50=-15.0dB, 80=0.0dB, 81=0.5dB, 110=15.0dB
50=-15.0dB, 80=0.0dB, 81=0.5dB, 110=15.0dB
50=-15.0dB, 80=0.0dB, 81=0.5dB, 110=15.0dB
81=small, 82=medium, 83=large
80=no, 81=small, 82=medium, 83=large
80=no, 81=small, 82=medium, 83=large

90=-90dB, 180=0dB,188=+8dB
0 = Mono
1 = Stereo
2 = Direct
3 = Stereo 96
4 = Pro Logic
5 = Pro Logic II Movie
6 = Pro Logic II Music
7 = Pro Logic IIx Movie
8 = Pro Logic IIx Music
9 = Pro Logic IIx Games
10 = Dolby EX
11 = Neo:6 Cinema
12 = Neo:6 / Matrix
13 = Neo:6 Music
14 = Music1
15 = Music2
16 = Music3
17 = Music4
18 = Music5
60=-20dB, 80=0dB, 90=+10dB
80=SubFilter On
81=SubFilter Off
80=Panorama Off
81=Panorama On
80=Min Width, 87=Max Width
80=Min Dimension, 86=Max Dim.
80=Min width, 85=Max width
0 = Welcome message displayed
1 = Welcome message not displayed
OSD TV system
1=PAL
2=NTSC
80=no back
97=one small back
98=one medium back
99=one large back
113=two small backs
114=two medium backs
115=two large backs
50=-15.0dB, 80=0.0dB, 81=0.5dB, 110=15.0dB
50=-15.0dB, 80=0.0dB, 81=0.5dB, 110=15.0dB

20 = 20Hz, 25 = 25Hz … 80 = 80Hz …
195 = 195Hz, 200 = 200Hz
(81-96, Source[1-16] )
81=Source1
…
96=Source16
97 = Tuner selected
98 = External 7.1
99 = System On
100 = Brightness
101 = Video source selected (1-6)
102 = Audio source selected (7-16)
103 = Zone B power
104 = Multichannel amp
80 = 100ms
81 = 1s
82 = 2s
83 = 3s
84 = 5s
85 = 7s
86 = 10s
87 = 15s
88 = 20s
89 = 30s
90 = 45s
91 = 1min
92 = 1min30s
93 = 2min
94 = 3min
80 = Infinity
81 = 10ms
82 = 100ms
83 = 1s
84 = 2s
85 = 3s
86 = 5s
87 = 7s
88 = 10s
89 = 15s
90 = 20s
91 = 30s
92 = 45s
93 = 1min
94 = 1min30s
95 = 2min
96 = 3min
see Trigger1Duration above
90=-90dB, 180=0dB,188=+8dB
68=-12dB, 80=0dB, 92=+12dB
68=-12dB, 80=0dB, 92=+12dB
82 = 80 Hz, 83 = 110 Hz, 84 = 140 Hz
82 = 6 kHz, 83 = 8 kHz, 84 = 10 kHz

0 = Off, 1 = Mains Large, other speakers small, 2
= All speakers small
All bytes are ASCII codes. 400-419 has the 20
characters of the first row and 420-439 of the
second row
All bytes are ASCII codes. 440-459 has the 20
characters of the first row and 460-479 of the
second row
All bytes are ASCII codes. The label of the
Source1 is stored in 702-708 (seven characters),
Source2 in 709-715, etc
81=-4dB,85=0dB,95=+10dB (848 has the
sensitivity for the Source1, 849 for Source2,
etc.)
80-88 80 = Digital input Off
81-88 = Digital input [1-8]
(864 has the digital input for the Source1, 865
for the Source2, etc.)
80 = Video Off
81 - 86 = Composite video [1-6]
101 - 104 = SVideo [1-4]
121 - 123 = Component video [1-3]
141 - 143 = HDMI video [1-3]
(880 has the video input for the Source1, 881 for
the Source2, etc)
68=-12dB, 80=0dB, 92=+12dB
See Preset1
structure
above
See Preset1
structure
above
See Preset1
structure
above
See Preset1
structure
above
80=No preset, 81=Preset1, 82=Preset2, etc.
(1074 has the Preset for the Source1, 1075 for
the Source 2, etc.)