I have made two H-bridges following this schematic. I have replaced:
TIP107 with TIP147
TIP102 with TIP142

The opto-couplers are P785.

I have not included the diodes as they are internal to the TIP.

I am trying to run two small toy car motors, max 2 A. The power supply is 20 V isolated. The plan is to PWM the ENA signal with an Arduino to adjust the voltage to the motors.

Everything seems to work just fine on the bench. However, after a few minutes of running and stalling under load, the TIP seem to get quite hot and the motors stop responding in the direction the stall happened. The other side seems to be unaffected. When trying again after a few minutes, the affected side just gets hot, but no motion from the motor, while the unaffected side seems to work fine.

I have already replaced the TIPs a few times, a multimeter test shows some transistors don't turn off anymore, and the last time both PNPs had continuity between collector and emitter with all power off.

I went over and over the control circuit, there seems to be no problem there. Is there anything I might be getting wrong? I have to invert the PWM value in the code:

PWMValue = (255 - PWMValue)

as the sides are actually active when ENA is low, so I am not sure if this is causing any problems, but as I said, without load the motors run just fine.

  • \$\begingroup\$ What is limiting the current (through the transistors) when the motor is stalled? \$\endgroup\$
    – AJN
    May 8, 2021 at 13:44
  • \$\begingroup\$ Did you read all of the pages in that article where he talks about adding heat sinks? \$\endgroup\$
    – HandyHowie
    May 8, 2021 at 14:33
  • \$\begingroup\$ I do have heatsinks mounted on the transistors. \$\endgroup\$
    – GiuBu
    May 8, 2021 at 14:46
  • \$\begingroup\$ Did you take into consideration, that this circuit is pretty smart? \$\endgroup\$
    – kruemi
    Apr 26, 2022 at 5:34

3 Answers 3


Since PWM frequency was not stated, it's impossible to know exactly what failure modes occurred. Some possibilities:

  • No supply bypass: when the motor is switched off, that current must go somewhere. The supply shoots up due to the combination of its own self-inductance (what distance between PSU/battery and inverter?) and flyback from the motor.
  • PWM. Phototransistor optos are extremely slow at switching, in the range of 10-100 µs turn-off for the values in this circuit. Attempting to switch more than even 1 kHz is likely to be fatal. Especially if reversing, and insufficient time is waited between directions.
  • Opto dissipation. Phototransistor optos have very low dissipation ratings: 150 mW for TLP785. 20 V into 1 kΩ is 20 mA (or a bit less accounting for darlington VBE). If applied logic voltage is 5 V (or 3.3 V -- which Arduino?), the 470 Ω resistors draw about 8 mA, and if the CTR is minimum 50%, expect to draw only 4 mA: enough to turn on the transistors still, but the phototransistor dissipates 60 mW or more (about 100 worst case) -- which still shouldn't be lethal by itself, but won't handle high ambient temperature.
  • Transistor dissipation. With VCE(sat) around 2 V, expect to need heatsinks for more than an ampere or so. Especially if switching frequently -- darlingtons are not very fast by themselves (turn-off of several µs), let alone with the optos.
  • Diode ratings. Probably okay, but those are 1 A fast diodes, and 3 A preferably schottky (say SB340) would be better rated here.

Most of these possibilities should be obvious on probing: a melted opto reads as resistance or shorted; a melted transistor reads as low resistance or shorted; a melted diode reads as shorted; a blown out anything reads as open (and usually is visibly melted/exploded) regardless of applied voltage. If the motor is drawing too much current, or is too noisy, or other issues for test purposes, go ahead and use a load resistor of similar or lesser ratings instead (i.e. 20 Ω and 20 W or more would be fine here). Then use steady (DC) levels to see function.

Ideally, an oscilloscope is used to measure switching edges, which will make it immediately obvious what the problem with optos is.


Thanks for posting the question. I would like to know what do you mean by motor stalls under load? (During normal operation, the motor shouldn't stall) What is the stall current of the motor? I believe the stall current is causing the Transistors to blow. What is the time duration for which the motor stalls? I think for the duration stall the Transistor is being operated outside its SOA region and causing the TIPs to blow. I am attaching an image of TIP 147s SOA graph. enter image description here

The value of Ic corresponding to Vce = 20V is 6A from the above graph. During stall condition, I think the motor is drawing more than 6A of current for the duration of the stall causing the TIP's to blow. Also here is a snip from the datasheet indicating the same. enter image description here Note that the stall current is always higher than the rated current.

  • \$\begingroup\$ Last time this happened, I was giving a maximum PWM signal of 150, say 14V. I have measured the amps at stalling is around 2 Amp at 12V. \$\endgroup\$
    – GiuBu
    May 8, 2021 at 14:34
  • \$\begingroup\$ Stalling is when the motor cannot turn because of an obstruction or the wheel gets jammed somewhere, but the signal keeps trying to turn the motor. I believe because of PWM it is more difficult for the motor to overcome a stall condition, rather then a direct connection to a battery say. does the frequency of the PWM have anything to do with it? \$\endgroup\$
    – GiuBu
    May 8, 2021 at 14:43
  • \$\begingroup\$ I have disconnected the motor from the bridge, and connected a multimeter at the two outputs. with a max PWM set to 150, going in the direction that works shows the voltage going from 9V to 16.7V. In the other direction the Voltage goes from 18V to 10.5V. This voltage should go up, not down. \$\endgroup\$
    – GiuBu
    May 8, 2021 at 15:18
  • \$\begingroup\$ Sorry I missed asking earlier, which MOSFET blows up, is it the high side or the low side or both? \$\endgroup\$ May 9, 2021 at 7:21
  • \$\begingroup\$ I have had PNP actually blow up, and NPN either stop working or constantly on \$\endgroup\$
    – GiuBu
    May 9, 2021 at 7:44

So after so more investigation, it seems the problem lies with the opto-couplers. I don't know if they are defective or if I have managed to damage them somehow, or if they are even suitable for this application, but when they are fed a PWM input, the output is constantly on, not switching on and off with the PWM signal. I read this can happen with cheap opto, which these are. I will try and order the same components listed in the schematics and try again. I have used the following schematics to test the transistors http://www.bristolwatch.com/ele/tr5.htm

And the two Half Bridges work independently, I can vary the output by feeding a PWM signal at A and D (tied) or B and C (tied). However when I connect the two halves together, the voltage at the output drops to 3V maximum and the transistors get very hot, especially the PNP. I have had this problem happen before with another H bridge (H Bridge problem), so I tried lowering the resistance at the base of the Darlington from 2.2K to 1K to 470, and even though the transistor don't get quite as hot, the output is still very low and they still get hot when in neutral position. Now, there is a big chance that the transistors are damaged from all the messing around I have done trying to figure this out, and I have run out of fresh ones. Still the fact that they work just fine as individual Half bridges makes me think maybe something else is wrong....

  • 1
    \$\begingroup\$ You are using it wrong. A XOR C are direction signals and B & D are PWM signals. But you need flyback diodes on both sides of the motor to both rails. Alternatively A&B for direction with deadtime and C&D for PWM with deadtime which means both are off during switching \$\endgroup\$ May 19, 2021 at 23:50
  • \$\begingroup\$ the TIP already have internal diodes, they are not included in the schematics but they are there. Would 1N5819 be suitable for this application? so I would need to interface this with four pins, 2 digital and two PWM? \$\endgroup\$
    – GiuBu
    May 20, 2021 at 2:33
  • \$\begingroup\$ Yes but PWM must have a delay turn-on to prevent both drivers being on a same time across supplies. FET full bridge is far better in IC. TIP’s are too lossy. Start current is 10x rated.unless you accelerate and a controlled current \$\endgroup\$ May 20, 2021 at 3:14
  • 1
    \$\begingroup\$ I am looking into FET drivers and Half Bridge ICs, I couldn't find suitable Full Bridge ICs. At this point dealing with TIPs and BJT is more of a learning experience than anything else... \$\endgroup\$
    – GiuBu
    May 20, 2021 at 8:04
  • 1
    \$\begingroup\$ They come in all shapes and sizes digikey.ca/en/products/filter/pmic-full-half-bridge-drivers/… \$\endgroup\$ May 20, 2021 at 11:39

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.