Update 3 January 2021 – mention that I am now using Tasmota firmware.
Update 26 February 2023 – I have followed this up with a PCB version that also includes a button and a 12 Volt input trigger for switching the 12 Volt output trigger.
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:
- Wemos D1-mini
- PC900v opamp
- 270 Ohm resistor (2x)
- 0.1 uF capacitor
- BAT42 Schottky diode
- Hammond 1551 miniature enclosure
- audio cable with 3.5 mm TRS male jack connector
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.
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.
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.
Hi, i stumbled across your project while searching for IR codes to control my D3020 from Home Assistant/ESP Home.
What i found to work for jumping directly to an input source was the following:
Address (first 16 bits of all commands): E13E
followed by
43BC for Bluetooth
D926 for Aux 1
03FC for Aux 2
916E for Opt 1
B14E for Opt 2
A15E for Coax
8976 for USB
The normal remote functions i just captured with an Arduino, as I’m sure you’ve done too.
Considering I’ll have an ESP32 with an IR LED sitting in front of the amp, is there any benefit to using the 12V trigger over just plain IR?
Hi Kim Erik,
Thanks for sharing the codes. I have not done anything (yet) with an IR blaster, but incidentally yesterday I did post an update on the remote control of my NAD-D3020; you can find it on https://robertoostenveld.nl/12-volt-trigger-pcb-version. I should clarify that my main reason for the 12V trigger is mainly to save energy: I noticed too often that the NAD-D3020 would fall asleep, the LEDs would switch off, but the amplifier would still remain warm (to touch), suggesting quite some energy consumption which would of course last the the whole night.
My new (well, it is already from 2020) PCB design includes an input 12V trigger for my Sonos Port. The reason for that is that when not playing any music, the Sonos does not fall asleep deep enough: it still responds to a network ping and hence I could not rely open the same automation trick that I am using for my smart TV and MacMini. However, that is a specific use case and possibly not a concern in your automation. So I do think that an IR blaster can provide most on/off automation and also switch between audio inputs, which my 12V trigger cannot do.
One thing that I see as a potential risk is that the NAD-D3020 falls asleep if the input is silent for a long time. That would be just fine, except that it continues to produce quite some heat (feeling with my hand at the top/side), suggesting that it does not really go in an energy efficient state. Getting it to wake from that sleep state is sometimes hard with the touch-buttons on the side/top, but with the 12V trigger it works consistently. So I worry whether the IR blaster will get it to wake up from its fake-sleep and be able to switch it properly off (or on). Now looking through the PDF manual, I believe it might be an interaction between the AUTO SENSE and the AUTO STANDBY modes. Perhaps I should just switch both off, since I can rely on my own automation.
best regards,
Robert
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
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.
Cheers,
Robert
Hi Robert,
Do you still have a pcb lying around ? I would also be interested.
Yes I still have a few. I will contact you by email.
cheers,
Robert
Hello! This might be a long shot but do you still have some leftover PCBs? I’m not that great of a solderer (and a worse electronic designer..) so i’m interested if there are any left!
// Erik
Hi Erik,
Yes, I believe that I still have one or two of the PCBs as described on https://robertoostenveld.nl/12-volt-trigger-pcb-version. Let me check when I am back home; I will send you a private email.
best regards,
Robert
Hi Robert, I stumbled onto your post about the 12v trigger. I have an amplifier + an AVR. My AVR has a 12v output but my amp doesn’t have a 12v input and the only way to turn it on is to press a button or use the remote. Thus, I’m looking for a 12v trigger to IR where I can train the IR to send the same signal that my amp power button sends.
Do you have a device like that by any chance ?
Thanks
Hi Vladimir,
No, I have no such device. I never ventured into IR control after the early 2000s, when I had an audio player setup with LIRC.
There are libraries like IRremoteESP8266 that make the IR part relatively easy, and/or you can use Tasmota on an ESP8266 with the 12V in (over a voltage divider) as an input switch and IR out. But that requires some knowledge on components and how to write and flash firmware to a microcontroller.
There are also other options, like this 12V switch for 230V that sits between the power cable.
Good luck,
Robert
In case someone stumbles over this and has the D7050: it already has an integrated IP interface that allows remote power on/off. See here: https://github.com/joopert/nad_receiver
thanks for sharing!
Hi Robert,
Any chance you still have an extra pcb available? This is exactly what I need.
Thanks!
Ben
Hi Ben,
Yes, I have still one PCB board that I won’t use. Please email me your contact details (see the contact page) and I’ll send it to you.
best
Robert
Hi Robert,
I have an old NAD 3020, but I have lost the remote. I want to use this to power my desk speakers in my office. What I want to achieve is that the power is cut when we leave the office (with the rest of the equipment) and powered on when we are using the computer. When restoring power, the NAD powers on in standby. Is there a way to always power it in on-mode? I thought using a 12v input that is always active could work, but is that the case? What would be the right way to connect that?
Or, could I just connect a cable like this to a phone charger plug / computer / dock and the 13v input? So it senses that the computer is turning on and triggering the 12v trigger?
https://www.bol.com/nl/nl/p/delock-cabel-usb-a-stecker-zu-klinke-3-5-mm-stecker-4-pin/9200000013966009/?Referrer=ADVNLGOO002013-S–9200000013966009&gad_source=1&gclid=CjwKCAiA9bq6BhAKEiwAH6bqoO5dBGGjZrRZjNtORV-sro4k1LqLj450YJKd1HoRYlnIVLmLqOfutxoCgXkQAvD_BwE
Hi Patrick
My Tasmota-based 12V trigger might be an option, but perhaps not the easiest. If you also look at my follow-up post, you can see that I am using this to switch the amplifier if either the Mac mini, the Smart TV, or the Sonos port is switched on. All three feed their audio into the NAD D3020 by means of a digital connection (2x optical, 1x coaxial). I am using a Node Red flow on a Raspberry Pi to “ping” the three input devices over the network, and use MQTT to switch the NAD D3020 on when one of the three responds to the ping and hence is online. So besides the ESP8266 12V trigger device, there is also a Raspberry Pi running a Node Red and MQTT server. The MQTT server is not strictly needed, as you can also do
http://192.168.1.xxx/cm?cmnd=Power%20On
(see here), but the automated logic of the switching does require “something smart” running “somewhere”.If you have a one-to-one mapping (compared to my three-to-one), and/or if you want to switch all equipment simultaneously, then I think you could go with a simpler solution that does not require complicated logic, like a switched power strip…. Hmm, I just tried it and can confirm your finding that upon restoring power it only switches to “stand-by” and not to “on”.
Perhaps you could just take a 12V (or 5V – which I found to be sufficient) AC/DC wall wart adapter, solder a TS mini-jack to the end of the cable, and stick that in the NAD 12V trigger-in port. If you then switch on the power strip that contains the wall wart, the 12V goes on and thereby also the NAD D3020. Or you could take any USB output of your computer (assuming that you would switch that off and on) and use a USB 12V Power Boost line with a mini-jack. Then the NAD switches on/off through its 12V trigger-in along with your computer.
Note that if you were to automate this anyway with some smart script running somewhere, you may also want to consider not using the 12V trigger but a IR blaster as that allows you also to automate switching to the proper input channel.
I hope this helps. I’d appreciate if you were to come back here in the future to share how you have solved it.
cheers,
Robert
Oh, I now see that you posted a follow up yourself prior to me posting the elaborate answer. Yes, that aligns with one of suggestions that I proposed. However, the specific cable you link to would not be compatible with the NAD D3020 12V trigger input. The iPod has a TRRS mini-jack that is documented here to be “data -“, “data +”, “GND”, “5V” (going from tip to sleeve), whereas you want the sleeve to be GND and the tip 5V (or 12V). I’d probably take an old USB cable and solder a mini-jack to it or modify a “normal” USB to DC 12V cable from Aliexpress (like this).
cheers, Robert