Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

NAD Serial: Python library to control NAD amplifiers, tuners and receivers over serial (RS-232) or Ethernet (telnet)

Python GitHub Release License Maintainer
GitHub Sponsors PayPal BuyMeCoffee Patreon

Introduction

NAD Serial lets you control NAD amplifiers, tuners and receivers over serial (RS-232) or Ethernet (telnet).

Features

  • Asynchronous, built on serialx.
  • Connects over serial (RS-232) or Ethernet (telnet).
  • Detects the device model and loads the matching configuration.
  • Detects the device type for models without configuration.
  • Read, set, increment and decrement any supported setting.
  • Reads the source names on supported devices.
  • Supports zones on multi-zone receivers.

Supported protocol

If your device follows the second generation NAD protocol (v2.x), it is supported by NAD Serial. This protocol is used by NAD amplifiers, tuners and receivers with a serial (RS-232) or Ethernet port.

The binary protocol that some NAD devices, like the D-series, use on TCP port 50001 is not supported.

The serial and Ethernet commands are identical. All communication is plain ASCII text. Every command and response has the format:

<Prefix>.<Variable><Operator><Value>

The prefix groups related variables, e.g. Main, Zone2, Source1 or Tuner. Prefix and variable together name a setting, e.g. Main.Volume. Every message is terminated by a carriage return and/or line feed.

Operator Meaning Example
? Query the value Main.Volume?
= Set the value Main.Volume=-30
+ Increment or cycle to the next value Main.Volume+
- Decrement or cycle to the previous value Main.Volume-

The device responds with the = operator and the resulting value, e.g. Main.Volume=-30.

Supported devices

The following devices are known to work:

Receivers:

  • T755
  • T757

Additionally, NAD Serial includes untested configuration files for the following devices:

Receivers:

  • T765
  • T775
  • T777
  • T785
  • T787

Surround preamplifiers:

  • M15HD
  • T175
  • T187

Amplifiers:

  • C356
  • C368
  • C388

Tuners:

  • C427

Other NAD devices that use the supported protocol should work too, with a basic set of settings: power, model, version, volume, mute and source.

Connecting

USB to serial adapter

If your device has a serial port, use a USB to serial adapter to connect it. See the documentation of your device for the location of the serial port and how to wire it.

The serial port uses 115200 baud, 8 data bits, no parity, 1 stop bit (8N1) and no flow control.

Ethernet

If your device has an Ethernet port use a network cable to connect your device to a router.

Use socket://<ip address>:23 as the URL.

Serial to Ethernet/WiFi bridge

A serial to Ethernet/WiFi bridge is useful when the device is not close to your computer. Build your own using an ESP32 and esp-link, or buy an off-the-shelf product. Configure the bridge for 115200 baud, 8N1.

Use socket://<ip address>:<port> or rfc2217://<ip address>:<port> as the URL, depending on which protocol the bridge supports.

ESPHome Serial Proxy

Install ESPHome Serial Proxy on an ESP32 and use esphome://<ip address>:<port>/?port_name=<port name> as the URL.

Installation

Install NAD Serial with pip:

pip3 install nad_serial

Contribution and appreciation

Do you enjoy using NAD Serial? You can contribute or show your appreciation, in the following ways.

Contribute your device model

Is your device supported by NAD Serial but not listed under Supported devices? Let me know your device model so I can improve the overview of supported devices.

Is there no configuration file for your device model yet, or is the configuration file incomplete or incorrect? Create a configuration file and submit a pull request with the new or updated configuration file.

Star this GitHub page

Help other NAD device users find NAD Serial by starring this GitHub page. Click ⭐ Star on the top right of the GitHub page.

Support my work

Please consider supporting my work through one of the following platforms. Your contribution is greatly appreciated and keeps me motivated:

GitHub Sponsors PayPal BuyMeCoffee Patreon

Hire me

If you're in need of a freelance Python developer for your project please contact me. You can find my email address on my GitHub profile.

Metadata

Release files for nad-serial 0.0.1rc2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for nad-serial 0.0.1rc2
File Size Uploaded
nad_serial-0.0.1rc2.tar.gz 62.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for nad-serial 0.0.1rc2
File Interpreter ABI Platform
nad_serial-0.0.1rc2-py3-none-any.whl Python 3 none any Details

Total release size: 126.2 kB

Release files / nad_serial-0.0.1rc2.tar.gz

Download URL nad_serial-0.0.1rc2.tar.gz
Size 62.3 kB
Tags Source
SHA-256 checksum
How to use checksums
fc3e22fb1b90fa707c497c5ecf1e5b7e6331e4718bc4cd55dd76aa476da8f3ee
BLAKE2b-256 checksum
How to use checksums
d9fbac304818382f5f263b73b067b1c031655681142a0dbfceb752308af9019f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 30, 2026.

Transparency log

Release files / nad_serial-0.0.1rc2-py3-none-any.whl

Download URL nad_serial-0.0.1rc2-py3-none-any.whl
Size 63.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c782d951d4076fbea402fea8c748f7f71663f519b042f88e94a64535a181f84e
BLAKE2b-256 checksum
How to use checksums
123f67b955070756496577f8d5a341d0814f69cab80733a54422d694395cc9ee
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 30, 2026.

Transparency log
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page