|
|
@ -1,18 +1,5 @@
|
|
|
|
Denon PMA-770 (and others) Arduino Control
|
|
|
|
Denon PMA-770 (and others) Arduino Control
|
|
|
|
|
|
|
|
|
|
|
|
# About
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
This project ultimately seeks to be a "logic control" modification for a
|
|
|
|
|
|
|
|
Denon PMA-770; allowing one to do things like change inputs, volume,
|
|
|
|
|
|
|
|
balance, and tone using a remote control.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
But that's a long ways down the road; so right now it's goal is to drive
|
|
|
|
|
|
|
|
relays and a display to replace the source input switches and input
|
|
|
|
|
|
|
|
display. I am designing it around the aforementioned Denon; but it can
|
|
|
|
|
|
|
|
obviously work for other units with some modification.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Schematics and pictures up later.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# History
|
|
|
|
# History
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
```
|
|
|
@ -21,5 +8,114 @@ Schematics and pictures up later.
|
|
|
|
29-Dec-2019: Version 0.1.1 - Added preliminary IR remote support
|
|
|
|
29-Dec-2019: Version 0.1.1 - Added preliminary IR remote support
|
|
|
|
30-Dec-2019: Version 0.1.2 - Controls ShiftReset and OutputEnable on 595 to prevent random start-up state.
|
|
|
|
30-Dec-2019: Version 0.1.2 - Controls ShiftReset and OutputEnable on 595 to prevent random start-up state.
|
|
|
|
30-Dec-2019: Version 0.1.3 - Removed ShiftReset function. Replaced with reset circuit onboard.
|
|
|
|
30-Dec-2019: Version 0.1.3 - Removed ShiftReset function. Replaced with reset circuit onboard.
|
|
|
|
|
|
|
|
01-Jan-2020: Added license, media, and proper README.
|
|
|
|
````
|
|
|
|
````
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# About
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The Denon PMA-770 is a high-end integrated amplfier from the early 80's capable of the usual 100 watts into
|
|
|
|
|
|
|
|
8 ohms; and somewhere in the neighborhood of 120 to 140 in to a 4 ohm load. It's a DC coupled amplifier of
|
|
|
|
|
|
|
|
"Direct-A" topology. It's got 3 pairs of output transistors, no capacitors in the audio path, and it sounds
|
|
|
|
|
|
|
|
outstanding.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
But it's also got this seriously stupid way of working the input switching that has not only caused failure
|
|
|
|
|
|
|
|
of most of the inputs; but is silly enough I don't want to bother trying to replace the switches to keep the
|
|
|
|
|
|
|
|
original method in tact. In order for the audio to make it in to the amplifier, it relies on connecting through
|
|
|
|
|
|
|
|
the "normally closed" contact on the switch "in front" of it. Well the "normally closed" contact has decided it
|
|
|
|
|
|
|
|
no longer wants to close and the entirely sealed design has prevented cleaning agents to make it in.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
To add to the stupidity; this unit features a simple segemented LCD display to display the name of the input.
|
|
|
|
|
|
|
|
This was a probably a pretty big ordeal in an era where even a single LED lighting up over the name was an
|
|
|
|
|
|
|
|
entirely new idea. This display is non-standard and relies on even more contacts in each input switch to throw
|
|
|
|
|
|
|
|
pins to AC. Disabling the input switches would disable this display; but the 128x32 OLED looks like it will fit
|
|
|
|
|
|
|
|
in the phsical space the existing one does.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Taking that in to account, I decided to build a relay board driven by an Arduino that would also drive the
|
|
|
|
|
|
|
|
display. It also lets me do crazy things like add input selection by remote control...something you weren't
|
|
|
|
|
|
|
|
getting back in 1981. Additional modifications like motorized pots for volume could further extend the
|
|
|
|
|
|
|
|
remote control function.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Hardware
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The basic idea is parallel the actuator contacts of 5 DPDT (or DPST) relays and flip them on one at a time (two
|
|
|
|
|
|
|
|
for phono).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[![Schematic of hardware](/images/schematicsmall.png "Schematic")*Click for full resolution.*][/images/schematic.png]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Data is shifted in to a 74HC595 and it's parallel outputs are used to control a ULN2803(or 2003) darlington array to
|
|
|
|
|
|
|
|
in turn drive a relay. The output of the 74HC595 is controlled by the microcontroller and an RC circuit on the reset
|
|
|
|
|
|
|
|
line prevent suprious relays from firing. Every effort has been taken to ensure only one relay will be fired at a time
|
|
|
|
|
|
|
|
to prevent damage to other audio components. The 2803/2003 arrays include built in snubber diodes for inductive kick-
|
|
|
|
|
|
|
|
back protection. If you should deviate from this schematic and use discreet diodes, you must add these diodes to your
|
|
|
|
|
|
|
|
circuit or you will damage the transistors, shift register, and/or Adruino.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The switch matrix consists of a simple resistor based analog method that merely throws different amounts of voltage thru
|
|
|
|
|
|
|
|
resistors. While this allows us to read all of our switches using just one line, it can cause problems should you want to
|
|
|
|
|
|
|
|
trigger two buttons. On the PMA-770 this is fine as the original bank of switches are mechanically linked to allow only
|
|
|
|
|
|
|
|
one to be active at a time. It is possible to read dual inputs as long as the parallel resistance doesn't cause a value
|
|
|
|
|
|
|
|
close to any indvidual switch. I have included a small utility in the /utilities folder that will display the current
|
|
|
|
|
|
|
|
ADC integer value to the LCD display. It can be used for just figuring out which resistors to use, or to check behavior
|
|
|
|
|
|
|
|
of paralelled resistors (two button press scenario). Using one line for the switch matrix is not set in stone and may
|
|
|
|
|
|
|
|
change depending on needs and availability of pins going forward.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The Phono-1 and Phono-2 inputs are the only time the unit will ever fire two relays. This is because on the original
|
|
|
|
|
|
|
|
unit itself; both of these inputs route the phono-stage preamp to the main amplifier while routing the cartridge input to
|
|
|
|
|
|
|
|
the phono-stage.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
An 1838 IR sensor is used for remote control function. An additional utility may be written to help with this going forward
|
|
|
|
|
|
|
|
but it's possible I may wind up writing a routine for "self-programming".
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Currently I am using an I2C 1602 display just for development purposes. This will be replaced with a 128x32 I2C OLED display
|
|
|
|
|
|
|
|
in the future. This display is just a little larger than the display in the Denon; so it shouldn't be any issue to mount it
|
|
|
|
|
|
|
|
and format everything to appear in the actual visible space. It is not shown on the schematic; however it is just connected
|
|
|
|
|
|
|
|
to 5V, GND, SDA, and SCL lines.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
In the future I will be adding some kind of NVRam storage. This will facilitate actually storing configuration options, remote
|
|
|
|
|
|
|
|
programming codes, and to store the last-used input. I may also use this to store graphic data for the OLED display to
|
|
|
|
|
|
|
|
emulate the original segmented font display of the Denon.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Media
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[![Picture of prototype rig](/images/prototype.jpg "Prototype")*Prototype & Development Build*
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
This is a previous revision of the hardware before the power-on reset circuit was added to the 74HC595. The parallel data is
|
|
|
|
|
|
|
|
represented by the standard arrangement of LEDs with current-limiting resistors. This is literally all that's required during
|
|
|
|
|
|
|
|
development since I'm already very familiar with the 2803 as a driver.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
I'm horrible at making videos in general...but I still made an attempt to show things off.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<!-- blank line -->
|
|
|
|
|
|
|
|
<figure class="video_container">
|
|
|
|
|
|
|
|
<iframe src="https://www.youtube.com/embed/I_sLnnsZ7Qg" frameborder="0" allowfullscreen="true"> </iframe>
|
|
|
|
|
|
|
|
</figure>
|
|
|
|
|
|
|
|
<!-- blank line -->
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<!-- blank line -->
|
|
|
|
|
|
|
|
<figure class="video_container">
|
|
|
|
|
|
|
|
<iframe src="https://www.youtube.com/embed/I30OaMii4l4" frameborder="0" allowfullscreen="true"> </iframe>
|
|
|
|
|
|
|
|
</figure>
|
|
|
|
|
|
|
|
<!-- blank line -->
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# License
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Copyright 2020 Jay Moore
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Redistribution and use in source and binary forms, with or without modification, are permitted
|
|
|
|
|
|
|
|
provided that the following conditions are met:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1. Redistributions of source code must retain the above copyright notice, this
|
|
|
|
|
|
|
|
list of conditions and the following disclaimer.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
|
|
|
|
|
|
|
|
and the following disclaimer in the documentation and/or other materials provided with the distribution.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
|
|
|
|
|
|
|
|
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
|
|
|
|
|
|
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
|
|
|
|
|
|
|
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
|
|
|
|
|
|
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
|
|
|
|
|
|
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
|
|
|
|
|
|
|
THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|