This article describes how I interfaced a NAD T163 pre-amplifier with my Homevision Pro automation controller. It does not cover all of the programming and smarts around the installation. In reality this article will provide guidance for any automation system.
Bill of Materials
– 2 x RS232 DB9 adapters ($8 AUD)
– 1 x Interfacing cable between units (I used Cat 6e)
Total Cost = $8 AUD + cable
Tools used
– Pliers
– Screw Driver
– Krone Tool
Step 1: Figure out how NAD serial communication works?
Probably the most obvious step here for any automation task. Before we can have the HomeVision Pro communicate with the pre-amp I need to how to communicate to it. Usually the best way to do this is with a PC and a serial emulator. My tool of choice is putty. I usually try a 8-N-1 connection. This is a common shorthand notation for a serial port parameter setting or configuration in asynchronous mode, in which there are eight (8) data bits, no (N) parity bit, and one (1) stop bit.
How ever after looking at websitethey actually have a RS232 test tool. Why re-invent the wheel? My device is pretty old. Whilst all of NAD’s devices today use ASCII commands mine used binary encoded decimal communication in Q8.8 format.
Q format is often used in hardware that does not have a floating-point unit and in applications that require constant resolution.
This device uses Q8.8 format, using an 8+8+1 bit signed integer container with 8 fractional bits, its range is [-128, 128]
What the NAD tool tells me exactly what commands I need to send to perform a given function and on the reverse how to interpret the results being sent back by the pre-amplifier. In the example in the images, if I want to tell the pre-amp to turn on I issue ‘1, 21, 21, 94, 65, 2, 212’ and like magic it powers on.
According to the NAD website the data format for all commands sent to the T163 and responses sent back have the following basic format:
| Start | Command | Data | Checksum | 8-bit Checksum |
Start | 1 byte control character which starts every packet of data.
Command | 1 byte command which represents the operation to be performed or the type of response being returned
Data | Variable length data. The length of this field depends on the command. If the data represents a multibyte number, it should be sent least significant byte first.
Checksum | 1 byte control character which denotes the end of the data stream and the beginning of the checksum.
8-bit Checksum | This checksum is the inverse sum of the Command and Data bytes of the packet. It is used to verify the validity of the data packet.
Any data received which does not follow this format will be ignored.
Step 2: Connect the devices
The connection to the NAD T163 is DB9 male. To connect I need to interface with it using a DB9 female connector with the following pin outs
Pin 2 – Transmit
Pin 3 – Receive
Pin 5 – Ground
On the Homevision Pro (or controlling system) the pin outs need to cross the transmit and receive
Pin 2 – Receive
Pin 3 – Transmit
Pin 5 – Ground
Step 3: Homevision Pro Code
Code now needs to be written on the home
Shane Baldacchino
File Downloads – NAD RS232 Tools
I’ve got a T163 too.
I’ve reverse engineered the data exchanged over the serial port.
The data is not in Q8.8 format, it’s straight binary. Positive numbers in data are prefixed with 0x5E byte, and the following byte is 0x40 + number. Negative numbers are straight binary in two’s complement. This is done to prevent having a start (0x01) or stop (0x02) in the data.
So format is:
I have a question:
Do you still have the program RS232 test v0.10? I can’t find it anywhere.
Regards, and thanks for your work!
Great reply, ah so it’s not Q8.8. I authored this post more than 10 years ago and it has very little detail compared to my other posts.
I just edited the post for you and placed an archive Mario of all my NAD test tools, including 0.10. Let me know how you go and best of luck.
Shane
Hi Shane,
That’s great! Thanks!!
I have made an Arduino program that keeps and sets the T163 volume according to the input selected. I also display the input selected, the volume, and the AM/FM band on an OLED screen. Works fine.
I can supply you with the program if you still have your T163 and if you like.
Thats awesome, yes please send a URL if you can. Yes I still use my T163.
Ok, i’ve just put the source code on Github.
Have fun!
https://github.com/Goldfinch2/T163_ctrl