In this article, I write a little bit about the 10 W Class-A amplifier designed by John Linlsey Hood, and about my self designed control and protect circuit.
I always wanted to build my own amplifier, something I have once built, I can be a bit proud of it. In 1969, Hood has designed a Class-A circuit – just think about it, 50 years ago – and I built its improved version, designed also by Hood in 2001.
I remeber the days of my electronics practical training: we often talked about wanting to build an n hundreed of watts amplifier. Back then I also wanted to build one with a bigger power output, but I remember too, that in my little workshop I built everything with materials recycled from old Televisions or Radios and from other non-functional electronics – because the lack of money – so this plan stayed always just a dream.
Of course no one else had built such a big amplifier, and our teacher always smiled when he heard us talking about that, and he just said – pretty quiet as he always spoke – “Folks, you don’t really need 100 watts… If I would turn on my TV with 5 watts of power with full loudness, you would be going crazy, and would be asking me to make it quieter again”.
Thinking back, he was right. Those wooden box TV’s were pretty loud, and I have to mention, some of them had also really good sound. Good old days…
But what is the reason I tell you this story? Because when I started to work on this project, I was not really sure if I will be satisfied with this amplifier. If you are also asking this, just think about the words of my old teacher, and don’t worry:
This amplifier is loud enough for a living room.
There are a lot of sites on the internet where you can read about this amp, and everyone praises its sound – well, I am not a typical audiophil minded guy – but not I also think they are not doing it without any reason, beacause I neither had such an amplifier yet.
Okay, but what is this Class-A thing? Is it about the quality of the amps, or what?
Well, nope – or not exactly – but rather about the characteristics, performance, and switching design of the amplifier.
A Class-A switching design has its transistors always open, and it dissipates a lot of heat – so its really good on heating up your room too – but in return its distorsion will be really low.
So, when I had read this, I wanted it immediately – like a child seeing a new toy – and then I’ve build that.
After I built the circuit – and it worked too – I had to put it in to a box or housing – because it couldn’t stay on the desk, and it is also pretty hot – and also wanted to build a loudspeaker protecting circuit for it.
My original plan was to build a custom fancy housing with some glass in it, lited with pink lights, but then i saw a defected UPS at the work, and it looked pretty good. I didn’t want let it to be just thrown out, so I saved it, and I moved my amplifier in it.
Anyway, it’s a mania for me to collect everything – and am always thinking “Well, once it should be good for something…” – so much that the heatsinks and some other parts of the amplifier were also recycled. It’s maybe because of the little workshop I mentioned above.
Yes… so turning back to the point, I had this cool and fancy UPS housing with a display on the front panel and thought, if it is there, I could also use it for something. Well, I could not drive the display, because I could not find out what kind of display it was, but i purchased an ILI9431 TFT which was almost the size like the original the original display.
Okay, but what should I do with a display in an amplifier? I had some idea: I will control the amp with this interface, and will displaying some informations like temperature and so, and at the same time the circuit will protect my little boxes too.
So, what should this circuit do?
Firstly switching the transformer on and off. If we power it on, the coupling capacitors are beginning to load. Of course they would do it via my loudspeakers, and I just really don’t want that. So, in order to avoid this, we need to short the output before turning on the transformer. Shorting? Yes, the current of the capacitors will flow trough the shortcircuit – in this case it is a simple relay – and our loudspeaker stays nearly unaffected. After our capacitors are full, we can eliminate the short circuit. There is one more thing to pay attention for:
The speakers are fine with dealing AC-Voltage, because the coil is moving, and thus the air is cooling it. But what if something goes wrong in the amplifier, and there would be also – or only – DC-Voltage at the outputs? Well, it would not mean anything good for the spakers, and they would break. So, the circuit has a DC-Detector part too, and if it detects a DC component on the output voltage, and it sends a signal to the microcontroller, which turns the transformer off, and shorts the outputs immediately.
Ok, the circuit should be fine for the first, but it happened often that I forgot to switch off the amplifier. I would be maybe even happy on a cold winter day for the extra heat, but we don’t really want that – except if you explicit want a radiator with optional music function – so, we need also a sleep timer function:
If no signal has been detected on the output, it should turn the amplifier off.
Oh, if I am already writing about heating! My heatsinks are almost too short, so I also needed to know the actual temperature of each channel, and to turn the amplifier off when the temperature exceeds a set value. Many people are speaking about temperatures like 50 – 60 °C as ideal, but there was often that my amplifier ran 12 hours long approximately at 100 °C, and yet, it’s just fine.
The datasheet of 2N2035 specifies the maximum chip temperature of around 120 degrees, which of course may vary from manufacturer to manufacturer, but what we just want, to turn the amplifier off,
if it is too hot.
The circuit also warns us if a fuse is blown. The menu system has three languages: Hungarian, German and English.
Okay now that we know what the circuit should be able to do, its time to check how to implement it. The DC and signal detector circuit is based on the circuits found on the website of the Elliot Sound Products. My teacher said often: “You dont have to reinvent the wheel. If there is already a solution for a specific problem, just apply it.”
In aspect of the Productivity he was right, and if someone want to learn, can still do it.
Now let’s see the controller circuit.
The core of the circuit is an STM32F103, which is an ARM based microcontroller with 72 MHz maximum clock speed.
In the early stages of development I used an STM32F429 Discovery board, and its microcontroller is more faster (180 MHz), so the drawing on the SPI display was also faster than with the STM32F103, but in my opinion, it is still usable with that.
Of course if you like, you can build the circuit with an F4 microcontroller too, but then you have to modify the PCB, and the source code due to the different pinout of the two controllers.
The temperature is measured with two LM75 ICs, and they are communicating via I2C with the microcontroller. The parameters are stored in a 24LC64 EEPROM which also communicates via I2C. I choosed this solution, because I was too lazy to messing with the flash of the microcontroller. This little EEPROM costs almost nothing, and I had some of them at home because I found them in another circuit, and thought: “Well, it will be good for now… “ 🙂
Two input pins are meant for checking the fuses, and they are just simple voltage dividers. You have have to pay attention by selecting the values of the resistors, because it is not allowed to apply a voltage on the input pins larger than 3,3V. On the pins of the buttons are the internal pull-up resistors turned on, so they need to be pulled down to GND, in order to trigger them.
The circuit is powered from a little 5V power supply, which is always on – Hi Greta, I still love you.
The two speaker relays, and one of the poles of the transformer relay are connected directly to this power supply, which are then connected to the L-R-T terminals. The outputs – driven by the transistors L and R – turn off the speakers because the contacts of the speakers are on the opening contacts of the relay. It means that the relays must be retracted to clear the short circuit. The Output T turns the transformer on and off.
To turning the amplifier off automatically, the signal is monitored at the output. An LM358 makes us this possible. Note that when there is no signal at the outputs of the amplifier, the controller’s input PB12 is at H level. Originally, I wanted to dealy this signal on the hardware part, but then I chose a pulse-like operation, which is what the R21 is designed to provide, and I solved the delay later in the software. After the delay, a timer timer starts, which switches the transformer off after the given time.
It is worth experimenting with the values of the resistors R4, R5, R6, the value of 10 kOhms works for me, but even a 1 kOhm resistor should be fine, so even a lower signal level will trigger the signal monitoring input. I intended the RV 1 pot to be fine-tuned, so higher signal levels can be set.
The controller input PB13 is at a high level until the DC sensor circuit is not triggered. If it’s triggered, the input level will be LOW and the transformer will turn off immediately and the speaker relays will short the circuit. In the most extreme case, the fuses – built into the amplifier – will fail. As a test, I lined up two discharged AA batteries to see if this works. The resistors R3 -R1 can vary depending on the speaker and output signal level, it is worth experimenting with this, and last but not least it is recommended to look at the source.
In case of overheating or if a DC voltage appears, the transformer switches immediatelly off, the output will be short-circuited and the fault state stays active until the amplifier has been switched off. Since there will be no longer any signal on the output, the timer – if enabled – will also turn off the controller at the end. The next time you are turning on the amplifier, the start up diagnostics will check if everything is OK, and the amplifier will continue operating as usual.
Thank you for reading the article, here is a little video about the controller (unfortunately it was recorded with hungarian menu). If you want to build the contorller for yourself here is the github repo.