I am trying to design a circuit which will have as an input a single microcontroller pulse which will cause a circuit with two 555 timers to output two consecutive pulses which are able to have their pulsewidths adjusted through potentiometers. I want to create a circuit which will take these two square waves and produce alternate positive and negative pulses of a much higher adjustable voltage (between 10v and 48v).

I have found this circuit on the internet which I've modified slightly to use 48V instead of 110V and simulating it shows that it does what I want it to do however I would like to understand how it is actually working. I recognise that the four central transistors (2 NPN and 2 PNP) form an H-bridge configuration however I don't understand exactly what the other transistors in the circuit are doing. My question is what is the purpose of Q5/Q6 together with the capacitor and zener diode combination on the base and the capacitor and 1k resistor between the emitter of Q5 and base of Q1 (or emitter of Q6 and base of Q2)? How were the values in the circuit selected to perform this functionality?

I'm trying to understand the circuit from a design perspective.


The Zener/Capacitor combination seems to be the simplest kind of voltage regulator that there is and I think it's purpose is to keep Q5 or Q6 always on by dropping any excess current from the V1 supply across itself to ground. H bridge circuit

Simulated Functionality

  • 1
    \$\begingroup\$ background : check out "common base amplifier". Each derives the high side base drive from the low side logic level signal. IMO it's pretty marginat as there is only 0.7V swing on Q1 base; I'd drive R3 from the other end of R4 to make D1 selection much less critical. \$\endgroup\$
    – user16324
    Commented Jul 28, 2020 at 9:20
  • \$\begingroup\$ I know the question was about understanding the circuit. But I'm curious what you plan to drive with this. Can you explain? \$\endgroup\$
    – jonk
    Commented Aug 8, 2020 at 21:48
  • \$\begingroup\$ @jonk I'm trying to drive a small bimorph piezoelectric buzzer, although whether this works or not is yet to be seen. \$\endgroup\$
    – Blargian
    Commented Aug 12, 2020 at 11:27
  • \$\begingroup\$ @Blargian Speed? Duty cycle? Dynamic range of duty cycle, if any? Precision required, both in frequency as well as duty cycle? And other helpful info your can offer? \$\endgroup\$
    – jonk
    Commented Aug 12, 2020 at 13:15
  • \$\begingroup\$ @jonk The circuit is to be used to drive a piezo buzzer which will bend to induce pressure changes in a chamber which will push liquid out of a nozzle. Based on a literature survey I found that these types of printheads typically work best on pulses with widths varying from 0.5us to 10us and amplitudes from 5v to 50v. The parameters need to be tuned to the specific printhead and liquid. Similar projects in literature used frequencies between 50Hz and 500Hz, again depending on the physical printhead characteristics. \$\endgroup\$
    – Blargian
    Commented Aug 12, 2020 at 19:13

2 Answers 2


First of all, there is an error in your schematic. R4 needs to be connected between R3 and the base of Q1. Similarly for R8 on the other side. As shown, the circuit will not work — all of the transistors in the H bridge will be turned on simultaneously, shorting out your power supply. But even with this fix, you must never operate this circuit without the pulse generators "A" and "B" connected, for the same reason.

Getting back to your actual question, Q1 is switched on and off by the logic-level pulse coming from "A". Obviously, if Q1 is conducting, then Q3 must not be. Q5 is being used as a common-base switch in order to make that happen.

D1 is supposed to be a zener diode (however, that's the wrong symbol in your schematic) with a rating that's roughly equal to your logic-high voltage on "A" — probably 4.7 or 5.1 V. Along with R5 and C2, it holds the base of Q5 at a constant voltage. When A is low, Q5 is turned on, which also turns on Q3. But when A goes high, Q5 is now cut off, and so is Q3.

Note that a separate circuit for the base of Q6 on the other side is not really necessary — the bases of Q5 and Q6 could be connected to the same zener diode. Or indeed, they could simply be connected directly to the same power supply that's driving your "A" and "B" pulse generators.



piezo driver

(1) Q5 is to switch on/off Q1 or Q3,

(2) R1 and R3 are to bias Q3,

(3) R5, C2, D1 are to by pass noise (Note 1) and clamp input,

(4) C1 is also used to by pass noise.


(1) A H-bridge with or without PWM usually operates at low frequency, so a bypass cap is usually used to filter high frequency noise caused by the DC motor.

(2) You might like to read Reference 1 below for more design ideas.

(3) I have not thought thoroughly about your design of using two NE555 timers to generate WPM signals. My experience is that it is hard to set the desired frequency and duty cycle at the same time. So you see in my answer I am using the cheap Manual/UART XY square wave signal generator which is very useful for prototyping and development.

(4) I don't understand why you are using high logical level (10V < 48V) control signals. I guess your project is for noisy industrial environments. My experience is only limited to 3V/5V TTL/Arduino/Raspbery Pi Micky Mouse toy projects. If you can give me a link to your circuit design tutorials, I might see if my answer actually fits your project.

Discussion, Conclusion and Recommendation

  1. It is a good idea to study the basic circuit design of the H-bridge, to understand and appreciate the pros and cons of various models.

  2. Old H-bridges using NPN BJT (eg. L298N) usually have big voltage drops and therefore not as efficient as those new ones using power MOSFETS (eg BTN7910B)

  3. However, for newbies, it is not a bad idea to starting learning with the hobbyist friendly L298N.


(1) DC Motor PWM Speed Control Q&A - EE SE 2020jul16

(2) Heated Piezo for Jetting Wax - Reprap

(3) J Head Nozzle - Reprap

(4) Heated Piezo for Jetting Wax Schematic - Reprap

(5) Bimorph - Wikipedia

(6) Scratch built DIY Piezo Printhead - Reprap

(7) Video on wax printing 1/2 - Reprap

(8) Video on wax printing 1/2 - Reprap

(9) Heated Piezo for jetting Wax Ink - Malden, Reprap 2013

(10) Wax printing - KalleP, Reprap 2013


Appendix A - Piezo Driver Schematic

piezo driver schematic

End of answer

  • 2
    \$\begingroup\$ Thanks for your answer! It's not actually for driving a DC motor but rather for a piezoelectric bimorph in a drop on demand inkjet type printhead. reprap.org/wiki/Heated_Piezo_for_Jetting_Wax \$\endgroup\$
    – Blargian
    Commented Jul 28, 2020 at 9:39
  • 1
    \$\begingroup\$ For these types of printheads they generally run at a fixed frequency of a few kilohertz and the voltage and pulsewidths applied to the buzzer need to be tuned for stable drop ejection. \$\endgroup\$
    – Blargian
    Commented Jul 28, 2020 at 9:41
  • \$\begingroup\$ @Blargian, Your J Head Nozzle looks interesting. My first brainstorming idea is that, instead of DIY your hardware, you can make use of AliExpress/Amazon H-bridge modules, if you can do 45V instead of 110V. Ah, supper time, see you tomorrow. Cheers. \$\endgroup\$
    – tlfong01
    Commented Jul 28, 2020 at 10:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.