btn7971b pwm efficiency

Why is my PWM efficiency about 50%?

Ask QuestionAsked 2 days agoActive todayViewed 264 times2

I’m using a BTS7960 module with an Arduino to adjust the voltage for my DC motor.

When I check efficiency there is a problem. PWM efficiency is supposedly about 90% but mine is only about 50%.

I have a 7S3P 29V li-ion battery and a 12V DC motor. While I was using it 50% PWM mode, I calculated the efficiency of power consumption and I realized that I almost lost half power in PWM.

How I measured the efficiency:

  • I put a clamp meter between the battery and the BTS7960 and I have check voltage “B +” and “B-” terminals. Voltage is 29V and current is 11 amperes so my battery is giving 320 watts.
  • Then I checked the consumption of the DC motor. I put a clamp meter between the BTS7960 and the DC motor and I measured voltage “M+” to “M-” terminals. Voltage is 13,6 and current is 13,8 amperes so as I understand my DC motor consumes 187 watts.

Either my PWM module efficiency is very bad or I’m doing something wrong.

The BTS7960 module became really hot while testing.

If you ask why I dropped 29 volts to 13 volts and drive the DC motor, it is because I have a 7S3P li-ion battery and I have a 12 volt Dc motor. If I can overcome the problem, I will drive a 24 volt DC motor with a 7S3P battery.

What is the reason for the high power loss?

(edit)Additional information: My clamp meter is Unit UT210E. Also you can reach datahseet this link:

UT210E English Manual

Also I measured current with multi meter(Unit UT39C)

Lastly I made same circuit with dc-dc convertor. The energy loss in the measurement was very low and I saw this as normal aslo With dc-dc converter, the battery and cables was not very hot, but in pwm modulation, the battery, cables and bts7960 integrated was very hot.

enter image description here

arduinopwmpower-electronicsdc-motorShareCiteEditFollowFlagedited 2 days agoStainlessSteelRat6,23022 gold badges1313 silver badges2828 bronze badgesasked 2 days agooğuz kaan çomoğlu2144 bronze badges

  • 1Comments are not for extended discussion; this conversation has been moved to chat. – Voltage Spike yesterday
  • “I’m using a BTS7960 module with an Arduino – what PWM frequency is your Arduino producing? “I have a 12 volt Dc motor” – Which motor is it? – Bruce Abbott 6 hours ago
  • “in pwm modulation, the battery, cables and bts7960 integrated was very hot.” – what is the Ah capacity and max amps or ‘C’ rating of your battery, and what gauge is the wire? – Bruce Abbott 5 hours ago

Add a commentStart a bounty

4 Answers


Your multimeter and your clamp meter are both not meant to observe PWM going through an inductive devices.

You need an oscilloscope with a high-bandwidth method of sensing current. I don’t know your PWM frequency, but rule of thumb: estimate how fast the transition from fully on to fully off has to be, take the inverse of that time (yielding a frequency), and take 5, better at least 7 times that frequency as minimum bandwidth if you really want to see what happens on that cable. It’s not DC, by any meaning of that word.

Current measurements can be quite tricky, so you might end up getting a hall effect sensor IC with something like 400 kHz or 1 MHz of bandwidth, and just live with current components that you cut off through that not-really-sufficient bandwidth.ShareCiteEditFollowFlaganswered 2 days agoMarcus Müller67.3k44 gold badges100100 silver badges179179 bronze badges

  • 1I check the pwm frequency with oscilloscope and it was 500HZ and duty cycle was %50. I just want know what is my real power consumption ? Or can I say is my real power consumption can measure between the battery and the BTS7960 (29 volt * 11 amper) because there is no modulation on this cable. And lastly how I can measure current after pwm modulation ? – oğuz kaan çomoğlu yesterday 
  • 21. 500 Hz sounds very low for a PWM frequency. 2. it’s not about the frequency, but about the bandwidth, which is defined (mostly) by how steep the edges between on and off are. – Marcus Müller yesterday
  • 11- Yes I read somewhere about this, it’s making noise and I check my hedge trimmer it’s working with 50KHz pwm(%75 duty cycle). 2- You mean duty cycle ?(I’m sorry I am asking because I do not have enough information. Maybe I can bother you) – oğuz kaan çomoğlu yesterday
  • 1no, I don’t mean duty cycle. I mean edge speed (as I said three times now), the time it takes to go from “on” to “off” (and vice versa). – Marcus Müller yesterday
  • The arduino uno pwm output library has a default frequency of around 700Hz – Drew 5 hours ago

Add a comment1

You need to increase PWM frequency to at least a few kHz for the motor inductance to smooth out the PWM. Some types of motors have more inductance than others, so the optimum frequency will vary with motor type.

Otherwise you will get large RMS current and corresponding large I^2*R losses in the motor, transistors and connecting wires. The BTS7960 is supposed to be good up to 25kHz, perhaps optimum frequency would be in the 10-15kHz range. Here is some info on changing PWM frequency.

When you have a high enough frequency you may be able to accurately read the motor current with your clamp-on (because it will be relatively smooth), however reading the battery current will not likely be very close to correct.ShareCiteEditFollowFlaganswered 32 mins agoSpehro Pefhany286k1212 gold badges239239 silver badges598598 bronze badgesAdd a comment1

I quite sure that is measuring problem because if you loss power of 133W on driver, it totally melt down due to power converted to heat. Only reason for that is measuring tool can not average changing voltage or current to get correct value. I suggest to use RD low pass filter before measuring as shown. Note value for component just for example, you need to caluculate it by your self.


simulate this circuit – Schematic created using CircuitLabShareCiteEditFollowFlaganswered 13 hours agoM lab61711 silver badge1414 bronze badgesAdd a comment-3


How come my BTS7960 DC Motor Driver using PWM has efficiency of only 50%?


Well, there are many possible reasons. Perhaps we can do some research to find out the reason.

1. I would suggest to wire up a test rig for testing the motor driver with a DC motor, as shown below.

btn7971n test rig


a. The OP’s BTS7971 driver has been replaced by the newer model BTN7971B. They have very similar characteristics and operation. So I have taken the liberty to test the newer driver. I think the OP can compare and contrast the two devices and modify my suggested test accordingly.

2. Now I am going to test the motor driver, measuring the voltage across the motor coil and the current passing through it.

btn7971 pwm test

3. The OP might have initialized his clamp meter with “VFC”

I googled to find that “VFC” introduces a low pass filter for AC measurements – cutting off above 400 Hz.

VFC might be good for AC measurement of mains frequency of 50Hz/60Hz.

However, if the OP is measuring at V/I values at PWM frequency 400Hz or above, signals should be much attenuated by the VFC low pass filter.

4. PWM Module for inputting to DC Motor Driver BTN7971b

The time has come to use my cheappy US$2 PWM module to test the motor driver. I will first try randomly, a couple of frequencies and duty cycles, to get a feeling how the OP get so low a 50% efficiency. See Refs 3, 4 for more details on how I use the cheapy toy.

BTW, I am also going to use my cheapy, US$300 scope to measure the motor coil voltage and current. This morning I read a EESE Q&A about accuracy between using a scope and a DMM. This Q&A every well refreshes my memory of using a scope. Perhaps the OP and other newbie readers might also find it educational.

Differences between oscilloscope, multimeter, and power supply voltage readings – EESE, Asked 4 days ago, Active yesterday, Viewed 2k times

xy pwm module

5. BTN7971b Dual Half Bridge Module Wiring Explanation

I started learning motor driver with L293 and L293D (with flyback diode) which consists of 4 half bridges. So I learned how to use one half bridge to dirve one DC motor in one direction, then use two half bridge to form one full bridge to driver in two directions (still one coil), then all four coils as two full bridges to drive a bipolar stepper motor with two coils. Later I learned how to use L298N with two full bridges to drive two DC motors or one bipolar stepper motor. Going step by step, from half bridge, to one full bridge, to two full bridges, everything makes sense to me.

However, when first using this dual BTN7971b module with two BTN7971b, each forming one full bridge with two half bridges, I found it confused, because the datasheet is very brief, assuming not to be used by newbies. So I think it is useful for me ninja and newbies alike to go back to the past 1970’s to learn L293, L297, L298 etc which have detailed explanation and often with example app schematics and wiring diagrams I think knowing basic principle is very important, especially for the OP which is driving motors with huge (well, over 10A) current and power, which might be fatal, when things go wrong.

That is why, I have read basic things again, before doing the wiring part of this PWM motor efficiency test. I have included the basic wiring articles in the three L293D references (Refs 6 ~8) below. The tutorial by MakerPro is very newbie friendly and highly recommended.

6. PWM Sigal Waveform

Now I will be using this PWM signal to test the motor driver PWM efficiency.

pwm signal 1

7. The OP’s power connecting wire and motor driver modudle getting too hot problem

The OP says the motor driver and connecting wires are getting “very hot”. If the connecting wires are hot, the OP might have used wires too thin, and he might consider changing to a heavy duty wire. For me below 1A testing, I start with 500mA, using MIZU AWG #26 wires paralleled, or AWG #22 wires. If I find wires getting hot, I just parallel one more wire, and not bother checking out the AWG vs max current chart.

One the motor driver getting “too hot” problem, we need to do two things: (a) use a temperature sensor to measure the temperature at the IC or heat sink plate, (b) check the datasheet to see if it is within operation limit.

If it is really “too hot”, we can do a couple of things, including: (a) use a bigger heat sink, (b) parallel more drivers to share current load. (Ref xx), (c) check if motor driver is a fake/counterfeit guy, and replace it with a real one.

To measure the working temperature, I am using an industrial grade sensor (Ref 10) as shown in the following photo:

temp sensor


a. BTN7971B datasheet specifies operating characteristics over a range up to 150°C, and most important of all is that the IC has a built in temperature sensor and automatic thermal shut down/protection. So there is no worry that the IC will meltdown. In other words, talking about worries of “very hot”, or using heat sink etc, is just amateurish. So I won’t talk about it any more, or my reputation would be damaged, though I will use my cheapy CNY16, industrial grade, 0.1°C accuracy sensor to measure the IC heat sink temperature for the OP to compare and contrast, and his peace of mind.

8. Draft proposal on how to find the efficiency of a PWM motor driver

8.1 I have been hearing for years that the classic dual NPN BJT full H-bridge L298N motor driver module is energy inefficient, because of the energy loss of high Vce(sat) junctions of the H-bridge.

8.2 Now I am going to check out the energy efficiency of BJN7971B, a P/N-channel power MOSFET half bridge motor driver. Below is the draft testing plan.

current sense cct

/ to continue, …


(1) UNI-T UT210E Pro Mini Digital Clamp Meter, Auto Ranging TRMS Backlit VFC NCV Meter, AC/DC Current Voltage Frequency Resistance Capacitance Diode Tester

(2) UT210E Mini Cloamp Meters Operation Manual 2018may Rev.2 – UNI-T

(3) PWM Sig Gen Module, 1Hz-150kHz, Frequency, Duty Cycle, Adjustable – US$2

(4) How can Rpi4B python UART talk to XY PWM Signal Generators? – Asked 1 year, 5 months ago, Viewed 605 times

(5) Differences between oscilloscope, multimeter, and power supply voltage readings – EESE, Asked 4 days ago, Active yesterday, Viewed 2k times

(6) L293D and PWM speed control [Solved] Asked today Active today Viewed 41 times

(7) L293x Quadruple Half-H (Bridge) Drivers – TI

(8) All You Need to Know About L293D (Theory, features and specifications) – MakerPro 2018aug13

(9) How to control DC motor speed by motor driver with PWM input? – EESE, Asked 8 months ago Active today Viewed 902 times

(10) Precision Digial Temperature Sensor with Back Light LCD Display – TaoBao CNY16


Appendix A – UNI-T UT210E Pro Mini Digital Clamp Meter

clamp meter

vfc mode

ShareCiteEditDeleteFlagedited just nowanswered yesterdaytlfong011,67811 gold badge66 silver badges1212 bronze badges

  • 3The OP’s problem is most likely due to inadequate instrumentation that can not handle PWM. The OP doesn’t need to test with another driver as the one s/he’s got is not burning out so it can’t be dissipating that much heat. – Transistor yesterday
  • 6″Now I am going to test the motor driver …” As explained before, SE is not a blog site. If you think you know why the efficiency calculations are so low then just answer that question. There’s no need for a photo of another board or a schematic. – Transistor 23 hours ago

Add a comment

Categories: Uncategorized

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.