12 Volt trigger for NAD-D3020 amplifier

Update 3 January 2021 – mention that I am now using Tasmota firmware.

The NAD D3020 is a hybrid digital audio amplifier with a combination of analog and digital inputs. I have been using it for quite some years now to play the sound of my Samsung smart TV over the living room speakers and for digital radio, iTunes and Spotify from my Mac mini. The Samsung is connected with an optical Toslink cable, the Mac mini is connected with a USB cable.

In the way the D3020 is placed in our media cabinet, its on/off button is not so easy to access. The D3020 remote control is really crappy and I find it anyway annoying to have to use multiple remotes to switch the power of all devices. Also, the status LEDs of the D3020 are dim and got considerably worse over time, especially for the OPT1 and the USB inputs that are for the TV and the Mac mini, and hence on most of the time. I guess that it uses OLEDs, which have degraded over time. Consequently, it happened quite often that we forgot to switch the amplifier off for the night.

However, the D3020 features a 12V trigger input port which allows the amplifier to be switched automatically on/off along with other gear. Of course, neither TV nor the Mac mini has a 12V output port, but both are connected to my home network; hence it is possible to detect over the network whether these are powered on.

I built an ESP8266-based trigger which allows switching D3020 using the 12V trigger. This is combined with a small Node.js application running on a Raspberry Pi which pings my TV and my Mac mini over the network every 5 seconds. If either one returns the ping – and hence is powered on – an HTTP request is made to the ESP8266 to switch the trigger on. If neither TV nor Mac mini returns the ping, an HTTP request switches the trigger off.

The hardware is implemented using a Wemos D1-mini ESP8266 board. The ESP8266 uses 3.3V logic which is not enough. However, 5V turns out to be sufficient to trigger the amplifier. I tried using a logic level converter, but it did not produce enough output current on the 5V side, causing the voltage to sag and remain below the trigger threshold. Therefore I designed a circuit in which one of the 3.3V GPIO pins is used to switch an opamp. The output side of the opamp is connected to the 5V USB input voltage of the Wemos board. Although the output voltage does not fully reach 5V, it turns out to be enough for the trigger input of the D3020.

The design follows that of a MIDI input, see here on Sparkfun and here on the Teensy forum. The difference is that the optocoupler input comes from the microcontroller GPOI pin at 3.3V, and the output is pulled up to 5V from the Vin pin. I also added a diode to protect the electronics from reverse voltage spikes that might come from the amplifier.


The list of components is:

The PC900v datasheet specifies a maximum forward current of 50 mA, which would require a 66 Ohm resistor at 3.3V. However, the maximum current that can be drawn from a single GPIO pin is 12mA, hence I decided to use a 270 Ohm resistor.

Here you can see the design on a breadboard for testing:

And the final implementation just prior to fixing it with hot glue:

The firmware for the ESP8266 that I wrote myself can be found here on Github. However, around 2019 I switched to Tasmota, which is a generic open-source firmware for ESP8266 devices like these.

I am using this ESP8266-based 12V trigger in combination with a small node.js script running on a Raspberry Pi that constantly monitors whether either my TV or Mac mini are powered on. The code for this is found in on here on Github.

4 thoughts on “12 Volt trigger for NAD-D3020 amplifier

  1. K

    Thanks for this helpful post. When you enable the trigger, can you set it to automatically switch to a source of your choosing? Or does it simply turn the amp on to the last used source? I also found the same issue – the remote and touch controls are finicky to turn the amp on/off. Auto sense can turn on the amp with a TV optical signal but it would be useful to have a similar auto on feature with a computer/streamer.

    1. Robert Post author

      No, it always switches on to the last source that was active. So we still have to walk over and tap the top (or side when it is lying down) to select the right input. I have been thinking of combining it with an IR blaster, but I have not found IR codes that would allow switching directly to a specific source, only “up” or “down”. Since the previous setting is not known, the IR blaster would not know how many “ups” or “downs” are needed to get to the desired input.

      By the way, I have recently designed a new version that also has a 12V trigger input: this is provided by the Sonos Port that I recently added to our audio/video setup. So now the Sonos Port, the TV and the Mac mini can all switch the NAD on and off. This small project also triggered me to design and order a proper PCB rather than using perfboard; I hope soon to make a blog post and post some photos from the new version.

  2. Duncan

    Hi Robert,
    Good project, have you succeeded in your plan to turn it into a proper PCB? I’d be happy to order one from you 🙂
    Cheers from Utrecht

    1. Robert Post author

      Hi Duncan,

      Yes, I indeed designed a PCB version and had a small batch of 5 made by JLPCB. It turned out beautiful! One of them is now in use in my living room; that means I have 4 bare PCBs remaining and I would be happy to send you one. I’ll contact you by email.



Leave a Reply

Your email address will not be published.