Linn Akurate Kontrol User manual

Akurate Kontrol pre-amplifier - RS232 ASCII Interface Specification and
Commands
Revision 1.3
Last revision: 22 November 2006
Philip Barnes

Akurate Kontrol pre-amplifier- RS232 ASCII Interface Specification And Commands - Version 1.2
ii
Revision History
Revision
Description
Author
Date
0.1
Initial Draft (modified from Kisto)
Ian Wilson
13 February 2004
1.0
Remove unwanted commands
Jason Newell
2 May 2005
1.1
Removed Surround select command
Eamonn Brady
29 August 2006
1.2
Removed reference to ANALOGAUX input and
counter reset passwords
Eamonn Brady
22 November 2006
1.3
Reviewed and updated for Linfo
Philip Barnes
22 November 2006

Akurate Kontrol pre-amplifier - RS232 ASCII Interface Specification and Commands - Version 1.2
iii
Table of Contents
INTRODUCTION 1
1: MESSAGE PROTOCOL 2
1.1: Overview 2
1.2: Message Syntax 2
1.3: Identifier Considerations 3
1.4: Syntax of Commands and Responses 4
1.4.1: Command Syntax 4
1.4.1.1: Command Help 4
1.4.1.2: Command 4
1.4.2: Solicited Response Overview 5
1.4.2.1: Initial Response 5
1.4.2.1.1: Initial Response Failure 5
1.4.2.2: Final Response 5
1.4.2.2.1: Final Response Failure 5
1.4.3: Unsolicited Response Overview 6
1.4.3.1: Unsolicited Response 6
1.4.3.2: Unsolicited Response Events 6
1.5: Identity Commands 7
1.5.1: ID 7
1.5.2: GID 7
1.6: Communication Commands 8
1.6.1: BAUD 8
1.6.2: RESET 8
1.6.3: ECHO 8
1.6.3.1: Power_Up Message 8
1.7: Polling Command 9
1.7.1: POLL 9
1.7.2: Polling Explained 10
1.8: Status Command 11
1.8.1: STATUS 11
1.8.1.1: Status Codes 11
1.9: IR 12
1.10: INIT 12
1.11: VERSION 12
1.12: COUNTER 13
2: SYSTEM COMMANDS 14
2.1: Command Help 14
2.2: System Commands 14

Akurate Kontrol pre-amplifier - RS232 ASCII Interface Specification and Commands - Version 1.2
iv
3: AKURATE KONTROL COMMANDS 15
3.1.1: STANDBY 15
3.1.2: MUTE 15
3.1.3: QUIET (Midnight Movie) 16
3.1.4: VOLUME 17
3.1.5: BALANCE 17
3.1.5.1: BALANCE / BALANCE_LR (left/right) 17
3.1.6: LIPSYNC 18
3.1.7: SPEAKER 19
3.1.7.1: SIZE 19
3.1.7.2: CALIBRATE 20
3.1.7.3: TRIM 21
3.1.8: SURROUND 22
3.1.9: INPUT 22
3.1.9.1: AUDIO 22
3.1.10: RECORD 23
3.1.11: NORMALISE 24
3.1.12: PINKNOISE 24
3.1.13: SYSTEM 25
3.1.13.1: VOLUME 25
3.1.13.2: STATUS 25
APPENDICE A : FORMAT OF COMMAND TABLE 26
APPENDICE B : ESCAPE SEQUENCES 27
APPENDICE C : COMMUNICATIONS SETTINGS 28

Akurate Kontrol pre-amplifier - RS232 ASCII Interface Specification and Commands - Version 1.2
1
Introduction
This document describes how to control the Akurate Kontrol pre-amplifier and peripherals through an RS232
interface.
Please note that the information contained in this document is preliminary and will be subject to
change.
There are three main sections to this document:
1: Message Protocol
- This section describes how commands are constructed and how they may be used.
System Commands
- This section lists the commands, which allow the Akurate Kontrol to be used as part of a system
driven through an RS232 interface.
2: System Commands
- This section defines a list of commands for controlling the Akurate Kontrol. This section is further
subdivided into the subsets of the Akurate Kontrol commands.

Akurate Kontrol pre-amplifier - RS232 ASCII Interface Specification and Commands - Version 1.2
2
1: Message Protocol
1.1: Overview
The RS232 interface on the Akurate Kontrol allows it to be controlled by a touch screen, PC or any computer
with an RS232 port. The Akurate Kontrol obeys the commands received through the RS232 interface and
replies to confirm successful or unsuccessful operation.
The RS232 interface uses an initial response then final response method to acknowledge receiving the
command and then completing the task. The interface also supports device and group identifiers to allow a
number of units to be connected together. The controlling device can also supply a source identification,
which the Akurate Kontrol will echo as the destination for the replies.
Previous products were termed as slave devices, in regards that nothing was transmitted until something was
received, e.g. a task or status command. The Akurate Kontrol however, will transmit unsolicited messages
when something within the product changes, e.g. the volume changes.
1.2: Message Syntax
The general syntax is as follows: (Source_ID)(Group_ID)(Destination_ID) Command NL
Where:
Source_ID Syntax: #Source_ID#
is a unique identifier, used to denote the source of the message. Enclosed by the „#‟ delimiter,
the maximum identifier size is 20 ASCII alphanumeric characters (excluding spaces).
Destination_ID Syntax: @Destination_ID@
is a unique identifier, used to denote the destination of the message. Enclosed by the „@‟
delimiter, the maximum identifier size is 20 ASCII alphanumeric characters (excluding spaces).
Group_ID Syntax: &Group_ID&
is a unique identifier, used to denote a specific group of products. Enclosed by the „&‟ delimiter,
the maximum identifier size is 20 ASCII alphanumeric characters (excluding spaces).
Command Syntax: $Command$
is the command from the host for the product. Enclosed by the „$‟ delimiter.
NL Syntax: 13dec and 10dec (0Dhex and 0Ahex)
are the line termination characters, carriage return and line feed.
Note:
Nesting of fields is not permissible, nor is the use of the special delimiter characters as part of the field strings
themselves, unless they are expressed as an escape sequence (see Appendice B : Escape Sequences).
Spaces are permissible before and after an identifier, but are not allowed within the actual identifier, unless
they are expressed as an escape sequence (see Appendice B : Escape Sequences).
For example, # recorddeck # is valid whereas # record deck # is invalid.
By using an escape sequence, the second example becomes valid, i.e. # record\0x20deck #

Akurate Kontrol pre-amplifier - RS232 ASCII Interface Specification and Commands - Version 1.2
3
1.3: Identifier Considerations
The full transmission format uses four fields as shown.
#Source_ID# &Group_ID& @Destination_ID@ $Message$
Where fields are omitted the results are defined in the following notes.
........... .......... ................ $Message$ refer to note 1
........... .......... @Destination_ID@ $Message$ refer to note 2
........... &Group_ID& ................ $Message$ refer to note 3
........... &Group_ID& @Destination_ID@ $Message$ refer to note 4
#Source_ID# .......... ................ $Message$ refer to note 5
#Source_ID# .......... @Destination_ID@ $Message$ refer to note 6
#Source_ID# &Group_ID& ................ $Message$refer to note 7
#Source_ID# &Group_ID& @Destination_ID@ $Message$ refer to note 8
Note
Details
1
- A product recognising the command will issue an initial response and try to perform the
task.
- A successful or unsuccessful final response will be issued subsequently.
- Products not recognising the command will remain silent.
- If no product recognises the command then there will be no reply.
- If more than one product recognises the command then there may be a comms clash on
the replies.
2
- The destination product is responsible for all replies.
- Invalid commands will generate an error response.
- The replying product will transfer the destination to the source field on a reply.
- All products not matching the destination must remain silent and not attempt to handle the
command.
- If two products have the same id, then a comms clash may occur.
3
- All products within the group should attempt the task.
- Products out with the group should ignore the task.
- There are no replies from any boxes.
4
- All products within the group should attempt the task.
- Products out with the group should ignore the task.
- Only the product, which matches the destination identity, should reply.
- Invalid commands will generate an error response.
- If there are more than two products in the group with the same destination identity then a
comms clash may occur.
- The destination identity becomes the source identity in any reply traffic.
5
- As for note 1, with the source identity becoming the destination identity in any replies.
6
- As for note 2, with the source identity becoming the destination identity in any replies.
7
- As for note 3. There are no replies.
8
- As for note 4, with the source identity becoming the destination identity in any replies.

Akurate Kontrol pre-amplifier - RS232 ASCII Interface Specification and Commands - Version 1.2
4
1.4: Syntax of Commands and Responses
1.4.1: Command Syntax
The command message has two variations:
1.4.1.1: Command Help
This allows the host to find out what type of parameters the command requires.
Syntax: $? Command$NL
Where: $ is the command start delimiter
? is a request for help
Command is the command help request is for
$ is the command end delimiter
NL are the line termination characters - carriage return, line feed.
Additionally, if „Command‟ is a „?‟ then the command set of the product will be provided, with an initial
response followed by a final response for each command supported by the product.
This is a change to the previous method, where the command set of the product was output as a single
response, with each command being separated from the next by a space and no help text was included.
Note:
Command help is product dependent and is implemented on the Unidisk.
1.4.1.2: Command
This is the method by which the host controls the product
Syntax: $Command (Param (Param ……))$NL
Where: $ is the command start delimiter
Command is the command string
Param is the parameter string (0 or more)
$ is the command end delimiter
NL are the line termination characters - carriage return, line feed.
Note:
Parameters required are command dependent.

Akurate Kontrol pre-amplifier - RS232 ASCII Interface Specification and Commands - Version 1.2
5
1.4.2: Solicited Response Overview
When replies are made an initial response and final response are issued. It is unwise for the host to issue
further commands until the final response has been received. Section 1.3: Identifier Considerations,
describes the action of identifiers on these replies and specifies rules which may also suppress the replies.
1.4.2.1: Initial Response
This will be given on receipt of a valid command and for a positive acknowledge will be of the form:
(Source_ID)(Group_ID)(Destination_ID)!
In this way, the host quickly knows that the destination has received and understood the command.
1.4.2.1.1: Initial Response Failure
This will be given on receipt of an invalid command and will be of the form:
(Source_ID)(Group_ID)(Destination_ID)!$FAIL sc fn$
Where „sc‟ is a status code (see section 1.8.1.1: Status Codes) specifying why the task could not be
completed, and „fn‟ specifies which field was responsible.
Note: There is no final response.
1.4.2.2: Final Response
This will be given on completion of the task and will be of the form:
(Source_ID)(Group_ID)(Destination_ID)!$Status_String$
The status string will be a unique response to the originating command.
1.4.2.2.1: Final Response Failure
This will be given where a task could not be completed and will be of the form:
(Source_ID)(Group_ID)(Destination_ID)!$FAIL sc fn$
Where „sc‟ is a status code (see section 1.8.1.1: Status Codes) specifying why the task could not be
completed, and „fn‟ specifies which field was responsible.
Note:
1In all cases, identifiers will only be returned as part of the response if supplied as part of the command (refer
to section 1.3: Identifier Considerations for further details).
2Fields are numbered from left to right, starting at 1.

Akurate Kontrol pre-amplifier - RS232 ASCII Interface Specification and Commands - Version 1.2
6
1.4.3: Unsolicited Response Overview
Unsolicited responses are an addition to the RS232 protocol, and are generated automatically by the product
to inform the host of a change to the products status.
1.4.3.1: Unsolicited Response
This will be given at any time during the operation of the product and will be of the form:
(Source_ID)$Status_String$
The major differences between solicited and unsolicited responses are as follows:
1. Unsolicited messages can occur at any time (if activated).
2. Source identifier, if present within product settings, will always form part of the message.
3. No exclamation mark is included before the command delimiter.
Note:
Refer to user guide regarding activation of unsolicited responses (user option ‘Enable RS232 Events’).
1.4.3.2: Unsolicited Response Events
Should the following events occur, and the Akurate Kontrol change have it‟s parameters changed for any of
the following events, then an unsolicited response should be generated.
1. Volume increment/decrement from IR / RC5 command or front panel keypad.
2. Input Source profile selection from IR / RC5 command or front panel keypad.
3. Record Path changes from IR / RC5 or from front panel keypad.
4. Decode algorithm change from IR / RC5 / front panel keypad or stream change.
5. Balance adjustment increment/decrement from IR / RC5 command or front panel keypad.
6. Speaker trim adjustment increment/decrement from IR / RC5 command or front panel
keypad.

Akurate Kontrol pre-amplifier - RS232 ASCII Interface Specification and Commands - Version 1.2
7
System Commands
The following commands allow the Akurate Kontrol to be part of a system driven through an RS232 interface.
1.5: Identity Commands
1.5.1: ID
Configure the product on a one to one basis
$ID identifier$
$ID identifier$
Write product identifier
$ID ~identifier$
$ID$
Remove product identifier
$ID ?$
$ID identifier$
Return product identifier
1.5.2: GID
Configures a product as part of a group so that it can be accessed a number of ways
$GID identifier$
$GID identifier$
Write group identifier (product now becomes part of a group of products)
$GID ~identifier$
$GID identifier [identifier […]]$
Remove a product from a particular group
$GID ?$
$GID identifier [identifier […]]$
Return list of currently defined group identifiers from product
Notes on Groups:
A product can be a member of at most 5 groups to allow it to be addressed in a variety of ways.
While in group mode, products with the same group ID will react in the same way to product specific
commands sent to them using the Group_ID syntax (&group_id&).
In addition, products in Group Mode will not acknowledge receipt of commands from the host. This is to avoid
all products in the group potentially responding at the same time.
Each product can be polled individually at the end of a group mode command to check they have all been
updated correctly.

Akurate Kontrol pre-amplifier - RS232 ASCII Interface Specification and Commands - Version 1.2
8
1.6: Communication Commands
1.6.1: BAUD
$BAUD baudrate$
!$BAUD baudrate$
Select new baud rate from the following: 4800, 9600, 144003, 19200, 288003, 38400,
576003, 1152003,2304003
$BAUD ?$
!$BAUD baudrate$
Returns current baud rate (see above)
Note:
1Initial and final responses will be at the current baud rate, before the new baud rate is implemented.
2 Baud rate defaults to 9600 when the product is initialised.
3 New baud rates supported by this product.
4 2400 baud rate not supported by this product.
1.6.2: RESET
Return product comms buffers to a known state
$RESET$
!$RESET$
Clear communications buffer on product
1.6.3: ECHO
$ECHO text$
!$ECHO <text>$
Echo’s the text back enclosed in < and >
This command is used ease the burden of initial set-up of host-product communications, the product will
echo the parameter provided back to the host.
Note:
If no identifiers are supplied with this command, then all devices connected to a system will respond, which
may result in a comms clash.
1.6.3.1: Power_Up Message
A power up message is provided which is transmitted to the host in order to verify that the host / product link
is working.
The power up message on the Akurate Kontrol is as follows: !$ AKURATE_KONTROL$
This feature is enabled / disabled via a user option (see ??? in the user manual)

Akurate Kontrol pre-amplifier - RS232 ASCII Interface Specification and Commands - Version 1.2
9
1.7: Polling Command
1.7.1: POLL
Polling is used to extract details of all products connected to the host
$POLL START$
!$POLL START$
Marks the start of polling
$POLL ID$
!$POLL ID product_identifier$
Returns product identifier
$POLL SLEEP$
!$POLL SLEEP$
Product responding to this will ignore all further commands until ‘POLL DONE’ is received
$POLL DONE$
No response to this command
All products will now return to active operation
Important
The „POLL SLEEP‟ command should be used with the product identifier returned by „POLL ID‟.
If this is not done then all the products will stop responding and the polling sequence will fail.

Akurate Kontrol pre-amplifier - RS232 ASCII Interface Specification and Commands - Version 1.2
10
1.7.2: Polling Explained
The RS232 interface hardware, via the POLL command, allows communication to daisy-chained RS232
controlled devices. The devices must be capable of buffering data for transmission as required.
Using this feature allows the host to „auto-detect‟ the slave products on the RS232 link.
By taking advantage of this, it is possible to identify what is on the link using the following type of algorithm:
$POLL START$
- opens return-path switches in all devices, so only first device in chain can respond
$POLL ID$
- all devices respond but only response from first device reaches host
@dest_1_id@$POLL SLEEP$
- where „dest_1_id‟ is the result of the previous „POLL ID‟
- matching product closes its switch
- product will not respond to any command now until „POLL DONE‟ command received.
$POLL ID$
- second device can now respond with it‟s ID
@dest_2_id@$POLL SLEEP$
- where „dest_2_id‟ is the result of the previous „POLL ID‟
- matching product closes its switch
- product will not respond to any command now until „POLL DONE‟ command received.
The „POLL ID‟ and „POLL SLEEP‟ commands are issued repeatedly until all products have been queried and
there is no response from the last „POLL ID‟ command.
$POLL ID$
- no response since all product id‟s read, so time-out
$POLL DONE$
- resync all products on link again
Host Rx
Host Tx
HOST
Product 1
Product 2
Product n
H8
H8
H8

Akurate Kontrol pre-amplifier - RS232 ASCII Interface Specification and Commands - Version 1.2
11
1.8: Status Command
The status command has been provided as a debugging aid, i.e. the host can find out why a command was
not processed.
1.8.1: STATUS
$STATUS$
!$STATUS sc (sv)$
Return the status of the last command
Where „sc‟ is the returned status code and „sv‟ is the status value (only used with code 25 for now). Codes
are allocated on a block basis for each product with the first 48 codes reserved for general use.
1.8.1.1: Status Codes
The following table lists the General Status Codes which all products support.
Code
Description
00 (0x00)
- No error
01 (0x01)
- Unexpected termination of command line
02 (0x02)
- Unrecognised or misplaced character in command line
03 (0x03)
- Corrupted command message (within $….$)
04 (0x04)
- Start of another source identifier, identifier has already been supplied
05 (0x05)
- Start of another group identifier, identifier has already been supplied
06 (0x06)
- Start of another destination identifier, identifier has already been supplied
07 (0x07)
- Source identifier is too large, maximum of 20 characters
08 (0x08)
- Group identifier is too large, maximum of 20 characters
09 (0x09)
- Destination identifier is too large, maximum of 20 characters
o
10 (0x0A)
- Source identifier corrupted
11 (0x0B)
- Group identifier corrupted
12 (0x0C)
- Destination identifier corrupted
o
13 (0x0D)
- Unknown group identity
14 (0x0E)
- Unknown destination identity
o
15 (0x0F)
- Unknown command
16 (0x10)
- Unknown command parameter
o
17 (0x11)
- Parameter missing from ID command
18 (0x12)
- Unknown product identifier, cannot delete
o
19 (0x13)
- Parameter missing from GID command
20 (0x14)
- Cannot delete group identifier, unknown
21 (0x15)
- Cannot add new group identifier, already exists
22 (0x16)
- Cannot add new group identifier, list full
o
23 (0x17)
- Polling must be activated by the POLL START command
24 (0x18)
- Only POLL ID, SLEEP or DONE commands accepted during polling
o
25 (0x19)
- Message exceeded maximum allowable length
- „sv‟ defines maximum length (upto and including CR, and excluding LF)
o
26 (0x1A)
up to
47 (0x3F)
- Reserved

Akurate Kontrol pre-amplifier - RS232 ASCII Interface Specification and Commands - Version 1.2
12
1.9: IR
$IR ?$
!$IR ON$
!$IR OFF$
Return current IR control status
$IR [Y|ON]$
!$IR ON$
Enable IR control of product
$IR [N|OFF]$
!$IR OFF$
Disable IR control of product
1.10: INIT
$INIT$
!$INIT$
Resets all product parameters back to factory defaults
1.11: VERSION
$VERSION SOFTWARE ?$
!$VERSION SOFTWARE H8 v PPC v DSP0 v DSP1 v DIGFPGA v VIDFPGA v$
Return current versions of system software.
Notes:
The software versions returned are as follows …
Field …Software for … Current version …
H8 H8 Processor ?
DSP0 Digital Signal Processor 0 S1210101
DIGFPGA Digital FPGA S0870101
The format of „v‟is „tpppvvvv’
where: „t‟is the software release type („P‟ = prototype and „S‟ = release)
„ppp‟is the software identifier (3 digits)
„vvvv‟is the software version (4 digits)
The software versions should be read from the appropriate storage area each time this command is
received, and should not be stored as hard coded strings as they will then be incorrect when
software is updated.

Akurate Kontrol pre-amplifier - RS232 ASCII Interface Specification and Commands - Version 1.2
13
1.12: COUNTER
$COUNTER POWER ?$
!$COUNTER POWER days:hours:minutes:seconds$
Returns total powered up (operational) time.
$COUNTER MAINS ?$
!$COUNTER MAINS days:hours:minutes:seconds$
Returns total mains connected time

Akurate Kontrol pre-amplifier - RS232 ASCII Interface Specification and Commands - Version 1.2
14
2: System Commands
The following pages contain the command set for the analogue Akurate Kontrol pre-amplifiers.
Important:
1Parameters must be separated from commands and each other by at least one space character
2Where a command can be enabled or disabled then
Yor ON will enable (turn on) the setting and Nor OFF will disable (turn off) the setting
2.1: Command Help
Command help is implemented by the Akurate Kontrol and will give the host details for any given command.
for example:$? SEARCH$
replies with: !$? SEARCH (?|+|-|int|+int|-int|<|>|STOP)
2.2: System Commands
The system commands supported by the Akurate Kontrol are ID, GID, BAUD, RESET, ECHO, POLL,
STATUS,INIT, IR,VERSION,COUNTER and Power_Up Message. These are all explained in section 0
System Commands of this document.

Akurate Kontrol pre-amplifier - RS232 ASCII Interface Specification and Commands - Version 1.2
15
3: Akurate Kontrol Commands
3.1.1: STANDBY
$STANDBY ?$
!$STANDBY [ON|OFF]$
Return current standby status.
$STANDBY [Y|ON]$
!$STANDBY [ON|OFF]$
Enter standby.
$STANDBY [N|OFF]$
!$STANDBY [ON|OFF]$
Exit standby.
$STANDBY TOGGLE$
!$STANDBY [ON|OFF]$
Toggle standby.
3.1.2: MUTE
$MUTE ?$
!$MUTE [ON|OFF]$
Return current mute status.
$MUTE [Y|ON]$
!$MUTE [ON|OFF]$
Mute on.
$MUTE [N|OFF]$
!$MUTE [ON|OFF]$
Mute off.
$MUTE TOGGLE$
!$MUTE [ON|OFF]$
Toggle mute.

Akurate Kontrol pre-amplifier - RS232 ASCII Interface Specification and Commands - Version 1.2
16
3.1.3: QUIET (Midnight Movie)
$QUIET ?$
!$QUIET [ON|OFF] level$
Return current quiet mode status and level, where level is 1, 2 or 3 (1 = low, 2 = medium,
3= high)
$QUIET [Y|ON]$
!$QUIET ON level$
Turn quiet mode on (using current level).
$QUIET [N|OFF]$
!$QUIET OFF level$
Turn quiet mode off.
$QUIET level$
!$QUIET [ON|OFF] level$
Set quiet level (on/off state remains the same).
Other manuals for Akurate Kontrol
2
Table of contents
Other Linn Amplifier manuals

Linn
Linn Akurate Kontrol User manual

Linn
Linn Kolektor User manual

Linn
Linn Klimax Kontrol Preamplifier User manual

Linn
Linn PRE-AMPLIFIER User manual

Linn
Linn PRETEK User manual

Linn
Linn AV 5125 User manual

Linn
Linn Uphorik User manual

Linn
Linn EXOTIK Installation and operating instructions

Linn
Linn Majik-I User manual

Linn
Linn LK280 User manual

Linn
Linn WAKONDA User manual

Linn
Linn MAJIK KONTROL User manual

Linn
Linn LK1 User manual

Linn
Linn CHAKRA C 2100 User manual

Linn
Linn EXOTIK User manual

Linn
Linn KLIMAX CHAKRA 500 Twin User manual

Linn
Linn LK240 User manual

Linn
Linn MAJIK 2100 User manual

Linn
Linn Classik-K User manual

Linn
Linn LK1 User manual