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)
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:
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.1rc4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| nad_serial-0.0.1rc4.tar.gz | 62.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| nad_serial-0.0.1rc4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 126.6 kB
Release files / nad_serial-0.0.1rc4.tar.gz
| Download URL | nad_serial-0.0.1rc4.tar.gz |
|---|---|
| Size | 62.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0ea08d9972e00e2d3089ef8bda82609eef6d7df9c372a22b5dba7ab071ddc01b
|
|
BLAKE2b-256 checksum How to use checksums |
3048c2d5d41fb832f75d25dc0dc1b3935d90132c8ba15d0ea26a687533bad59f
|
| 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 logRelease files / nad_serial-0.0.1rc4-py3-none-any.whl
| Download URL | nad_serial-0.0.1rc4-py3-none-any.whl |
|---|---|
| Size | 64.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9d6120515edd70b2604e2910d30fcb5967471b9f6f8a40f6af5954d27c0e14da
|
|
BLAKE2b-256 checksum How to use checksums |
ef531496f5ef7219aa8ee095caadd4d08ae8cd27707c40ec40be04fc0fcbd70d
|
| 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