Amply uses a very common design—in fact, the project constraints more or less require the use of a fairly old-fashioned amplifier topology that is far less common in modern designs.
Basic design philosophy
Despite its low price tag, Amply was not designed primarily to minimize cost. In several places, the design is intentionally conservative in order to maximize performance and reliability. The idea is that you should be able to assemble the amplifier with minimal technical knowledge and still end up with something that sounds great and is built to last.
In practice, a fair number of components can be omitted while still producing a perfectly good-sounding amplifier, if at the cost of reducing the design's safety margins and potentially resulting in an amplifier that is less robust or more prone to instability or failure.
For those feeling particularly adventurous, I will point out which components are required for basic operation and which ones can probably be omitted without too much risk.
Power
Amply can be powered either from a DC supply between 9 V and 30 V or from a USB-C power supply. In the latter case, any USB Power Delivery (USB-PD) profile of 9 V or higher will work.
Using USB-C power requires a small USB-PD trigger module that negotiates the appropriate voltage from the power supply. I use a generic module purchased from AliExpress, which cost about $1.30 at the time of writing.
A pair of Schottky diodes (D1 and D2) prevent backfeeding between the two power sources and provide reverse voltage protection. They also introduce a small voltage drop—typically around 0.3 V—but ensure that the amplifier is protected if both power sources are connected simultaneously or if the user commits a wiring “oopsie.”
If you intend to power Amply from only a single source, the diodes are unnecessary and can be replaced with wire bridges to eliminate the voltage drop and slightly improve efficiency and available supply headroom. Likewise, if you do not plan to use USB-C power, the USB-PD trigger module can simply be omitted and the DC supply connected directly to the circuit.
Single-rail woes
Audio signals are AC, which means the amplifier must be able to process signals that swing both positive and negative. One of Amply's design constraints, however, is that it operates from a single positive supply rail for the sake of simplicity.
To work around this limitation, the amplifier creates a virtual ground at half the supply voltage and references the audio path to that midpoint. With a 12 V supply, for example, the signal reference point sits at 6 V above the negative rail. This allows the amplifier to process signals that swing both above and below the midpoint, effectively providing up to roughly ±6 V of signal swing in theory.
The upside of this approach is a much simpler power supply design. The downside is that the available output voltage swing is reduced compared to a true split-rail supply, which in turn limits the maximum output power. For Amply's intended use case, this is a perfectly acceptable tradeoff.
The virtual ground is generated using a simple voltage divider (R3 and R4). In this amplifier topology, the midpoint reference only supplies very small signal-level currents associated with the op amp input and feedback network, so there is no real need to buffer it with an active circuit despite its relatively high impedance.
I also added a 10 µF capacitor (C17) to reduce noise and lower the AC impedance of the reference node. Realistically, the amplifier would probably still function perfectly well without it.
5 V regulator
U2 is a bog-standard 5 V linear regulator that provides power for the Bluetooth module. Since the Bluetooth circuitry only draws a modest amount of current, a simple linear regulator is perfectly adequate here, provided the input voltage is not excessively high.
The LM7805 can technically tolerate fairly high input voltages, but power dissipation quickly becomes a concern as the supply voltage increases. For example, with a 30 V input, even a relatively small load current can cause the regulator to dissipate well over a watt of heat.
For supply voltages above roughly 15 V, I would recommend using a drop-in switching-regulator replacement instead of a conventional LM7805 in order to reduce heat dissipation and improve efficiency.
Bluetooth module
The Bluetooth module used in Amply is an MH-M18, a common and inexpensive Bluetooth audio receiver that I found on AliExpress for around $1.
If you do not want Bluetooth support, you can omit the module and all of its associated circuitry entirely—including the 5 V regulator—and connect your audio source directly to the amplifier input instead.
If you do decide to use Bluetooth, the module also supports several control buttons for functions such as play/pause, next/previous track, power, and volume adjustment. These buttons all connect to a single input pin on the module, which uses a simple resistive ladder to determine which button is being pressed based on the measured voltage level.
Personally, I find these controls unnecessary—I already have a computer nearby—so I usually do not bother connecting them. If you want to use them, however, the board provides headers at J6, J7, J8, and J9 for that purpose.
If, like me, you do not care about the external controls, you can simply leave those headers unconnected and omit resistors R9, R10, and R11 entirely, since they serve no purpose otherwise. In that configuration, the module powers up automatically and is immediately ready for pairing.
The MH-M18 works well and, importantly, does not include the obnoxious “announcer” voice prompts found on some cheap Bluetooth modules. If you have trouble finding this exact module, nearly any Bluetooth audio receiver with a similar pinout and feature set should work. Just make sure to verify compatibility before wiring it into the rest of the circuit.
Amplifier
The two amplifier channels are identical, so I will only discuss one of them here.
The input signal (R_IN) is AC-coupled through C3/C4 into R2. These capacitors block any DC offset present at the input, while R2 works together with RV2 to determine the gain of the op amp stage, which can be set anywhere between 1 and 50. In practice, a gain of around 20 is usually sufficient for most applications, but you can adjust it to your liking.
U1B is configured as an inverting amplifier, which works particularly well in this design because it allows the virtual ground reference (VREF) to be connected directly to the non-inverting input. This avoids the need for an additional active buffer stage to generate a low-impedance midpoint reference.
You will also notice the presence of C8 in parallel with RV2. This is a compensation capacitor that reduces the amplifier's high-frequency gain. At low frequencies it behaves essentially as an open circuit, and, therefore has little effect on the audio-band gain; at higher frequencies, however, it provides a lower-impedance feedback path that helps suppress oscillations and improve stability. The exact cutoff frequency depends on the gain setting, but is generally well above the audio range.
Similarly, C10 shunts very high-frequency signals at the output to ground, helping reduce RF noise and improve amplifier stability. Both capacitors are somewhat conservative additions, and the amplifier might still function without them depending on layout and component tolerances.
The output of the op amp then drives the heart of the amplifier: the class-AB output stage. The output transistors are biased so that one side primarily handles positive output swings while the other handles negative swings.
Speaking of biasing, this function is handled by RV4, R8, C12, D5, and D6. The purpose of the bias network is to maintain a small voltage difference between the bases of the output transistors so that both sides remain slightly conductive even when no signal is present.
Without this small idle bias current, the transistors would both turn fully off near the zero-crossing point of the waveform. Since each transistor requires roughly 0.6 V before it begins conducting, this would create a small dead zone around the midpoint of the signal and produce what is known as crossover distortion.
RV4 and R8 establish a small current through D5 and D6, creating a voltage drop of roughly 1.2 V across the diode pair. This voltage approximately matches the combined base-emitter voltage required by the output stage and keeps the transistors just at the edge of conduction.
C12 provides a reservoir of charge that helps the amplifier maintain sufficient drive during positive voltage swings. Without it, the high impedance of the bias network would limit the amplifier's ability to swing cleanly toward the positive rail, resulting in increased distortion during large signals. The exact value is not especially critical; I chose 100 µF somewhat arbitrarily, and a much smaller value would probably work perfectly well.
Q3/Q7 and Q4/Q8 are the output transistors that actually drive the speaker. They are arranged in a push-pull configuration, with one pair primarily sourcing current during positive output swings and the other sinking current during negative swings.
Each side uses a pair of transistors because a single transistor would struggle to provide enough current gain to drive the speaker efficiently. By cascading two transistors together, the effective current gain increases substantially because the gain of each transistor multiplies with the other.
This configuration is known as a Sziklai pair, and it offers somewhat better linearity and lower voltage drop than the more common Darlington pair.
Without these capacitors, the speaker would be subjected to several volts of DC continuously, which would force the cone away from its resting position and rapidly heat the voice coil. The speaker would probably work for a little while—right up until it cooked itself to death.
The output capacitors are intentionally oversized in order to minimize their effect on low-frequency response. This seemed particularly worthwhile given that small desktop speakers already tend to struggle with bass reproduction. In practice, the capacitance could probably be reduced to around 2,200 µF without a dramatic impact on sound quality.
R15 provides a small amount of output isolation and current limiting, which helps improve stability and slightly reduces stress on the output stage under difficult loads. Ideally, a more sophisticated design would use separate low-value emitter resistors for each output transistor pair, but I ran into PCB space limitations and decided that this compromise is “good enough” for the intended application.
The speaker output is connected at J11. 8 Ω speakers are the ideal choice and will generally allow the amplifier to operate without heatsinking, provided RV4 is adjusted correctly to the highest value that minimizes crossover distortion. 4 Ω speakers will also work, but they require significantly more output current, increasing power dissipation in the output stage and making heatsinking more or less a requirement.
Higher-impedance speakers are perfectly safe to use as well, but the amplifier will produce less maximum output power into them, resulting in lower achievable volume.
Amplifier
The two amplifier channels are identical, so here I will only discuss one of them.
The input signal R_IN is fed through C3/C4 and R2. The capacitors block any DC offset from the input signal, while R2 works with RV2 to determine the gain of the amplifier, which is between 1 and 50 (in practice, a gain of around 20 is plenty, but your mileage may vary).
U1B is configured as an inverting amplifier; this is a good choice for our use case, because it allows us to feed VREF directly into the non-inverting input, which avoids the need for an additional buffer stage to create a low-impedance reference voltage. The output of U1B is then fed through R5 and C6, which form a low-pass filter to help reduce high-frequency noise and improve stability.
You will notice the presence of C8 in parallel with RV2. This small compensation capacitor acts as an open circuit at low frequencies, so it doesn't affect the gain of the amplifier in the audio range, but it provides a low-impedance path for high-frequency signals well above the audio range (~64kHz), which helps to prevent oscillations and improve stability. Once again, you may be able to do without it, but I included it as insurance against potential stability issues. Similarly, C10 shunts high-frequency signals to ground at the output of the amplifier, and could probably be omitted as well.
The output of the op amp feeds into the heart of the amplifier: the Class AB output stage. Here, we want to drive each set of transistors Q3/Q7 and Q4/Q8 only when the signal moves away from the virtual ground; thus, a transistor is conducting only when the signal is “moving,” and when we are at rest, both transistors are off, drastically reducing the quiescent current required by the amplifier. This, in turn, reduces power dissipation and heat generation; if the transistors are biased correctly, Amply doesn't even require a heatsink under normal operating conditions.
Speaking of biasing, this function is performed by RV4, R8, C12, D5, and D6. The goal of the biasing circuit is to provide a small amount of current to the bases of the output transistors to ensure that they turn on quickly when the signal moves away from the virtual ground, but without providing so much current that they are conducting significantly at rest.
The basic idea behind this biasing circuit is that we want to keep the transistors just on the edge of conduction when there is no input signal, so that any swing in the appropriate direction will cause them to turn on and amplify the signal. If we didn't do this, there would be a noticeable delay between the input signal and the output, which would result in what is called “crossover distortion,” where the output signal is distorted around the zero-crossing point due to the transistors not turning on quickly enough.
To accomplish this goal, we use RV4 and R8 to create a small current—just enough to turn on Q3. This will also forward-bias D5 and D6, creating a ~1.2V drop across them, which in turn provides the necessary base-emitter voltage to keep Q4 just on the edge of conduction as well.
This leaves us with C12, which acts as a reservoir that helps the biasing circuit swing quickly during the positive peaks of the audio signal; without it, the biasing circuit would be too slow to respond due to the high impedance of RV4 and R8, resulting in distortion. The value of C12 is not critical; I chose 100µF somewhat arbitrarily, and you could probably get away with something much smaller.
Q3/Q7 and Q4/Q8 are the output transistors that actually drive the speakers. As you can see, they are arranged in a push-pull configuration, with Q3/Q7 handling the positive half of the signal and Q4/Q8 handling the negative half to minimize power dissipation.
We need pairs of transistors here because a single one would struggle to provide the necessary current to drive the speakers. By using two transistors, we achieve higher amplification because their current gain (hFE) multiplies together, allowing us to drive more current into the speakers with less input current from the op amp. This particular configuration is called a Sziklai pair, and it has the advantage of providing better linearity compared to the more common Darlington pair.
Finally, the output of the transistors is fed through R15 into C15 and C16, which block any DC offset from reaching the speaker. The two output capacitors are intentionally oversized to minimize their impact on the low-frequency response of the amplifier; this seemed particularly important given that desktop speakers tend to be small and therefore struggle to produce bass frequencies. You can probably reduce this value all the way down to ~2,200µF without too much impact on sound quality.
R15 serves as an emitter degeneration resistor to help stabilize the transistors. As the output current increases, the voltage drop across R15 increases, which in turn reduces the base-emitter voltage of the transistors, providing negative feedback that helps to prevent thermal runaway and improve linearity.
Normally, you would have two resistors here—one for each transistor pair—to maximize the benefits of emitter degeneration, but I ran out of room on the PCB, and so I decided to settle for a single resistor that serves both pairs. This isn't ideal, but it still provides some level of stabilization without adding too much complexity to the circuit.
This leaves with the speaker output, which is connected to J11. 8Ω speakers will work best, and with them the amplifier will likely not require any heatsinking, provided that you bias the circuit correctly by adjusting RV4 to the highest possible value that doesn't result in cross-over distortion. 4Ω speakers will work as well, but they will require higher bias current, which will increase power dissipation and will definitely require a heatsink. I don't recommend using speakers with an impedance higher than 8Ω, as they will draw less current and therefore won't be able to reach the same volume levels.
Marco Tabini
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.