Skip to content

Code to control the power and volume of a NAD C740 Receiver via an Arduino

Notifications You must be signed in to change notification settings

gregmatthewcrossley/nad_link

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 

Repository files navigation

Unofficial NAD Link protocol specification

This is a decription of how to use the NAD Link RCA connectors at the back of most NAD equipment, using a PC parallell port.

The NAD Link uses a slightly modified version of the NEC remote control protocol, where 0V represents pulse, and +5V represents flat.

The NEC Receiver protocol

Derived from sbprojects.com.

  1. Preamble

9000 μs pulse 4500 μs flat 2. Address

The (8 bit) address is transferred using pulse distance encoding with the least signficant bit going first over the wire. Afterwards, the bitwise negation is sent. Note: This is where NAD diverges slightly from the NEC spec. More on this later.

One-bits are encoded like this:

560 μs pulse 1690 μs flat Zero-bits are encoded like this:

560 μs pulse 560 μs flat Example: Assume the address is 00110101. In this case 00110101 11001010 is transmitted (space added for readability - not a delay). Sending the bitwise negation after the actual address means that there are always 8 ones and 8 zeroes being transmitted, so all addresses take the same amount ot time to tramsit, despite the use of pulse distance encoding.

  1. Command

The command is also 8 bits, and is transmitted in the same manner as the address. First directly, then inverted.

  1. Command terminator

560 μs pulse 42020 μs flat 5. Repeat

Send zero or more of this to indicate that the remote control button is being held down.

9000 μs pulse 2250 μs flat 560 μs pulse 98190 μs flat (Total time: 110ms)

Summary

PREAMBLE (address >> 0) & 1 (address >> 1) & 1 (address >> 2) & 1 (address >> 3) & 1 (address >> 4) & 1 (address >> 5) & 1 (address >> 6) & 1 (address >> 7) & 1 (~address >> 0) & 1 (~address >> 1) & 1 (~address >> 2) & 1 (~address >> 3) & 1 (~address >> 4) & 1 (~address >> 5) & 1 (~address >> 6) & 1 (~address >> 7) & 1 (data >> 0) & 1 (data >> 1) & 1 (data >> 2) & 1 (data >> 3) & 1 (data >> 4) & 1 (data >> 5) & 1 (data >> 6) & 1 (data >> 7) & 1 (~data >> 0) & 1 (~data >> 1) & 1 (~data >> 2) & 1 (~data >> 3) & 1 (~data >> 4) & 1 (~data >> 5) & 1 (~data >> 6) & 1 (~data >> 7) & 1 COMMAND TERMINATOR (Total time: 110ms)

Differences in the NAD implementation

NAD does not send exactly the inverted address as the second byte. Instead, typically 1 or 2 bits are not inverted. This is not a problem, since it is included in the .ir files available at the NAD website.

NAD remote control codes

At the time of writing, NAD publishes the codes for its remote controls at [nadelectronics.com]. I have also mirrored the Creston remote controller codes, since I managed to reverse engineer the file format. I also made C program to decode the files, as well as a C program to control a NAD 912 receiver via TCP

By Morten Hustveit May 2007

About

Code to control the power and volume of a NAD C740 Receiver via an Arduino

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages