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.1rc1

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.1rc1
File Size Uploaded
nad_serial-0.0.1rc1.tar.gz 62.2 kB Details

Built distribution (wheel)

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

Total release size: 126.0 kB

Release files / nad_serial-0.0.1rc1.tar.gz

Download URL nad_serial-0.0.1rc1.tar.gz
Size 62.2 kB
Tags Source
SHA-256 checksum
How to use checksums
b4a00c3495f0513963314974c89ed03aaefa31e610d36d45dab92a17bdc5c32a
BLAKE2b-256 checksum
How to use checksums
98ffe6adf64a7c5501f19dd245e7c2dc4d8054eeee535c4a8e3465801706d74d
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 29, 2026.

Transparency log

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

Download URL nad_serial-0.0.1rc1-py3-none-any.whl
Size 63.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3aabbb84193cb6fb786887d12a9ad83ec035d754b2b943e7b7ff067a26e8aaea
BLAKE2b-256 checksum
How to use checksums
258e229c3ab6dbbd5f8a2978f2d947f04e478bb22ff7d84b776e28e886c1caff
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 29, 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