LYNGDORF TDAI-1120 External Control Manual User Manual
- June 9, 2024
- LYNGDORF
Table of Contents
LYNGDORF TDAI-1120 External Control Manual
Introduction
The purpose of this document is to describe how the external control interface of the device works.
Home Automation System Integration
he Lyngdorf Audio TDAI-1120 is compatible with home automation systems via the
network
connectors on the rear socket panel and over WiFi. The TDAI-1120’s IR and
trigger connections can also be programmed for use in a home automation
system.
Control Via Network
Open a TCP connection on port 84 and use the control protocol as described in
this document. For control from a PC, use Telnet, Putty, or similar programs
to open the TCP connection.
If you do not know the IP address of the TDAI-1120 on your local network, the
TDAI-1120 support Apple´s Bonjour Discovery service, which must be on the
computer you want to set up the TDAI1120 with. The software is built-in as
part of the Apple OS X operating system. For Windows operating systems, the
software can be found at http://www.apple.com/support/bonjour/
The control protocol is announced via bonjour as the service “slactrl”.
The TDAI-1120 can also be controlled via the network by accessing http://TDAI-1120.local in your browser.
Control Protocol
Commands
Every command starts with ‘!’ character and ends with carriage return (ascii 0x0D, referred to in this document as ). There are two types of commands: commands and status requests. Commands are used to emulate remote key presses or to set a certain volume etc. Status requests are used to query the current state of the controller (volume, current source etc.). Commands with invalid formats are simply ignored. For example, sending a command !VOL(100)garbage!MUTEON will only result in volume being muted, because volume command is not terminated properly
Responses and Feedback Level
There are three levels of responsiveness, called feedback levels. Each level
adds something new to the previous level. Feedback levels can be set from the
control interface with command “!VERB(X)” (X can be 0, 1 or 2). All responses
start either with ‘!’ (status messages) or ‘#’ (echo messages) and end with .
Feedback level 0: Data is sent only when data is requested by a status request
command. For example, command “!VOL?” would return “!VOL(XXX)”, where “XXX”
would be current volume.
Feedback level 1: Feedback level 1: Data is sent whenever any status changes.
The data format is the same as for responses to status request commands.
Feedback level 2: Each command is also echoed back with the ‘#’ in front of
the command instead of ‘!’ character. For example, command “!VOL?” would
return “#VOL?!VOL(XXX)”.
The following commands and requests are available on the TDAI-1120:
Commands & Requests | Return format | Values | Descriptio n |
---|---|---|---|
!AUDIOSTATUS? | !AUDIOSTATUS (“Audiostring”) | Audiostring is a string | |
describing the current audio input. | Requests format information for the |
current audio input.
!BAL?| !BAL(balance)| Balance describes the balance setting in this range: L1
to L10: Balance is to the left. 0: Balance is centered R1 – R10: Balance is to
the right| Requests the current balance trim setting
!BAL(balance)| –| Balance describes the balance setting in this range: L1 to
L10: Balance is to the left. 0: Balance is centered R1 – R10: Balance is to
the right| Sets the balance trim setting
!BASS?| !BASS(n)| n = -12 to 12 (dB)| Requests the current bass gain trim
setting
!BASS(n)| –| n = -12 to 12 (dB)| Sets the bass gain trim setting
!BASSFREQ?| !BASSFREQ(n)| n = 20 to 800 (Hz)| Requests the current bass
frequency trim setting
!BASSFREQ(n)| –| n = 20 to 800 (Hz)| Sets the bass frequency trim setting
!DEVICE?| !DEVICE(TDAI-1120)| –| Requests identifying information.
!IPWIFI?| !IPWIFI(xxx.xxx.xxx.xxx)| IP for the Wi-Fi interface. If not
connected, the return value will be an empty string.| Requests the IP of the
Wi-Fi interface
!IPWIRED?| !IPWIRED(xxx.xxx.xxx.xxx)| IP for the Ethernet interface. If not
connected, the return value will be an empty string.| Requests the IP of the
Ethernet interface
!MACWIFI?| !MACWIFI(xx:xx:xx:xx:xx:xx)| MAC address for the Wi-Fi interface.|
Requests the IP of the Wi-Fi interface
!MACWIRED?| !MACWIRED(xx:xx:xx:xx:xx:xx)| MAC address for the Wired
interface.| Requests the IP of the Ethernet interface
!MUTE?| !MUTE(ON) or !MUTE(OFF)| –| Requests the current mute state.
!MUTE| –| –| Toggles the current mute state. Same function as the mute button
on the remote.
!MUTEON| –| –| Mutes the amplifier.
!MUTEOFF| –| –| Demutes the amplifier.
!NEXT| –| –| Same function as the Next button on the remote control.
!OFF| –| –| Turns the amplifier off.
!ON| –| NOTE: When TDAI-1120 is set for Deep Sleep Stand-by, you should
send the command twice.| Turns the amplifier on.
!PLAY| –| –| Same function as the Play/Pause button on the remote control.
!PREV| –| –| Same function as the Previous command on the remote control.
!PWR?| !PWR(ON) or !PWR(OFF)| –| Requests the current power state of the
amplifier.
!PWR| –|
–
| Toggles power state of the amplifier. Same function as pressing the power
button on the remote.
!RP?| !RP(n)| 0: Bypass 1-8: Focus positions 1 to 8 9: Global| Requests the
currently selected RoomPerfect position.
!RP(n)| –| 0: Bypass 1-8: Focus positions 1 to 8 9: Global| Selects a new
RoomPerfect position (if available)
!RPDN| –| –| Selects previous RoomPerfect position. Same as pressing down-
arrow on the remote.
!RPUP| –| –| Selects next RoomPerfect position. Same as pressing up-arrow on
the remote.
!RPLIST?| !RPCOUNT(N)
!RPNAME(a,”Name”)
!RPNAME(b,”Name”)| N is the total number of positions in the list.
a, b etc are the numbers of the RoomPerfect Positions and Name is the
corresponding name.
One line will be send for each available position.| Requests the index and
name for each available RoomPerfect Position.
!RPNAME?| !RPNAME(n,”Name”)| n is the current RoomPerfect position
Name: A string with the name of the position.| Requests the name of the
currently selected RoomPerfect position.
!RPNAME(n)?| !RPNAME(n,”Name”)| n is the number of the RoomPerfect position.
Name: A string with the name of the position.
If the requested position does not exist, Name will be an empty string.|
Requests the name of RoomPerfect position n.
!SRC?| !SRC(n)| n is the index of the currently selected source.| Requests the
currently selected source.
!SRCLIST?| !SRCCOUNT(N)
!SRCNAME(a,”Name”)
!SRCNAME(b,”Name”)| N is the total number of positions in the list.
A, b etc. are the numbers of the sources and
Name is the name of the source.
One line will be send for each enabled source.| Requests a list of all
available and enabled sources.
!SRC(n)| –| n can be any index from the list returned by !SRCLIST?| Selects
the source n.
!SRCDN| –| –| Selects the previous source. Same function as pressing “SRC -”
on the remote.
!SRCUP| –| –| Selects the next source. Same function as pressing “SRC +” on
the remote.
!SRCNAME?| !SRCNAME(n,”Name”)| n is the currently selected source.
Name is the name of the currently selected source.| Requests the name of the
currently selected source.
!SRCNAME(n)?| !SRCNAME(n,”Name”)| Name is the name of source n If the
requested source does not exist or is disabled, Name will be an empty string|
Requests the name of source n.
!STREAMTYPE?| !STREAMTYPE(n)| n is the current stream type playing.
0 = none
1 = vTuner
2 = Spotify
3 = Airplay
4 = uPnP
5 = USB File
6 = Roon Ready
7 = Bluetooth
8 = GoogleCast
9 = Unknown stream| Requests the stream type being played.
!SWVER?| !VER (Verstring)| Verstring is a string describing the SW versions.|
Requests the current software version information.
!TREBLE?| !TREBLE(n)| n = -12 to 12 (dB)| Requests the current treble gain
trim setting
!TREBLE(n)| –| n = -12 to 12 (dB)| Sets the treble gain trim setting
!TREBLEFREQ?| !TREBLEFREQ(n)| n = 1500 to 16000 (Hz)| Requests the current
treble frequency trim setting
!TREBLEFREQ(n)| –| n = 1500 to 16000 (Hz)| Sets the treble frequency trim
setting
!VERB?| !VERB(n)| n is the current VERBOSITY setting. See table for values.|
Requests the current verbosity setting.
!VERB(n)| –| n is the new verbosity level. See table.| Sets a new verbosity
level for the interface.
!VOI?| !VOI(n)| n is the currently selected voicing.| Requests the currently
selected voicing.
!VOI(n)| –| n is the voicing to select. Can be any value from the list
returned by !VOILIST?| Selects a new voicing.
!VOIDN| –| –| Selects the previous voicing. Same function as pressing the left
arrow on the remote.
!VOIUP| –| –| Selects the next voicing. Same function as pressing the right
arrow on the remote.
!VOILIST?| !VOICOUNT(N)
!VOINAME(a,”Name”)
!VOINAME(b,”Name”)| N is the total number of positions in the list.
A, b etc. are the numbers of the voicings and
Name is the name of the voicing One line will be send for each voicing.|
Requests a list of available voicings.
!VOINAME?| !VOINAME(n,”Name”)| n is the currently selected voicing.
Name is the name of the currently selected voicing.
If the requested voicing does not exist, Name will be an empty string.|
Requests the name of the currently selected voicing.
!VOINAME(n)?| !VOINAME(n,”Name”)| Name is the name of voicing n.| Requests the
name of voicing n.
!VOL?| !VOL(n)| -999 to 120 (steps of 0.1dB)| Requests the current volume.
!VOL(n)| –| -999 to 120 (steps of 0.1dB)| Sets the current volume to a new
value.
!VOLCH(n)| –| -999 to 999 (steps of 0.1dB)| Changes the volume by the
requested amount.
!VOLDN| –| –| Volume down (by 0.5dB).
!VOLUP| –| –| Volume up (by 0.5dB).
IR Codes / TDAI -1120
Command | NEC1 Code |
---|---|
Digit 1 | 0x10EF, 0x00FF |
Digit 2 | 0x10EF, 0x01FE |
Digit 3 | 0x10EF, 0x02FD |
Digit 4 | 0x10EF, 0x03FC |
Digit 5 | 0x10EF, 0x04FB |
Digit 6 | 0x10EF, 0x05FA |
Digit 7 | 0x10EF, 0x06F9 |
Digit 8 | 0x10EF, 0x07F8 |
Digit 9 | 0x10EF, 0x08F7 |
Standby | 0x10EF, 0x0FF0 |
Volume Down | 0x10EF, 0x10EF |
Mute | 0x10EF, 0x13EC |
Volume Up | 0x10EF, 0x1AE5 |
Digit 0 | 0x10EF, 0x30CF |
SRC Down | 0x10EF, 0x31CE |
SRC Up | 0x10EF, 0x32CD |
Play | 0x10EF, 0x50AF |
Repeat | 0x10EF, 0x54AB |
Shuffle | 0x10EF, 0x56A9 |
Previous | 0x10EF, 0x57A8 |
Next | 0x10EF, 0x58A7 |
Power On | 0x10EF, 0x807F |
Power Off | 0x10EF, 0x817E |
Input Dig 1 Coax | 0x10EF, 0x916E |
Input Dig 2 Coax | 0x10EF, 0x926D |
Input Dig 3 Opt | 0x10EF, 0x936C |
Input Dig 4 Opt | 0x10EF, 0x946B |
Input Hdmi ARC | 0x10EF, 0x9C63 |
Input Ana 1 RIAA | 0x10EF, 0x9D62 |
Input Ana 2 Unbalanced | 0x10EF, 0x9E61 |
Input Preset 0 | 0x10EF, 0xA35C |
Input Preset 1 | 0x10EF, 0xA45B |
Input Preset 2 | 0x10EF, 0xA55A |
Input Preset 3 | 0x10EF, 0xA659 |
Input Preset 4 | 0x10EF, 0xA758 |
Input Preset 5 | 0x10EF, 0xA857 |
Input Preset 6 | 0x10EF, 0xA956 |
Input Preset 7 | 0x10EF, 0xAA55 |
Input Preset 8 | 0x10EF, 0xAB54 |
Input Preset 9 | 0x10EF, 0xAC53 |
Input vTuner | 0x10EF, 0xB847 |
Input Spotify | 0x10EF, 0xB946 |
Input AirPlay | 0x10EF, 0xBA45 |
Input Roon ready | 0x10EF, 0xBB44 |
Input uPnP | 0x10EF, 0xBC43 |
Input USB File | 0x10EF, 0xBD42 |
Input Bluetooth | 0x10EF, 0xBE41 |
Input GoogleCast | 0x10EF, 0xBF40 |
Pin out diagram
References
Read User Manual Online (PDF format)
Read User Manual Online (PDF format) >>