BTS7960 IBT-2 43A H-bridge motor driver module with black finned heatsink

BTS7960 43A Peak H-Bridge DC Motor Driver Module (IBT-2)

$15.99 NZD
Save 5% at 2+
Skip to product information
SKU: MOD-BTS7960-IBT2

BTS7960 43A Peak H-Bridge DC Motor Driver Module (IBT-2)

$15.99 NZD
Availability:
Order before 12:00pm for same-day dispatch Dispatch 7 days a week, excluding public holidays

NZ Post: 1-2 days urban · 2-4 days rural

Shipping from $5.99 urban / $9.99 rural, or free pick-up in Te Awamutu.

Buy more, pay less Prices shown are per unit. Add enough of this item and the lower rate applies on its own at checkout. There is no code to enter and you do not need to buy a pack. Choosing a tier here just sets the quantity for you. Larger quantities go out in the same bag, so packing, handling and postage cost us less per unit. We pass that saving straight on to you, so you can buy more for less.

Easy 30-day returns · 12-month warranty

Add $50.00 for Free Urban delivery ($88.00 for Rural)
Urban $50 Rural $88

An H-bridge motor driver lets a microcontroller run a brushed DC motor in either direction and set its speed. This is the IBT-2 board, built around two BTS7960B driver chips, and it is the one to choose for bigger 12V and 24V motors such as a 775 motor or a windscreen wiper motor. The chips allow up to 43A peak before they limit the current, and they brake the motor as well as drive it. A finned heatsink comes fitted to the underside.

You can use it to drive the wheels of a robot, to move a linear actuator, or to run a 12V pump at a set speed. The motor supply can be anywhere from 6 to 27V and connects to screw terminals, along with the motor. You control it with two PWM pins and two enable pins on a standard 2.54mm header. It is made for 5V logic, so it wires straight to an Arduino Uno, Nano or Mega with jumper wires. A 3.3V board such as an ESP32 needs a logic level converter between its pins and the driver. One driver runs one motor, so a robot with two drive motors needs two.

Specifications

Driver chips2 x BTS7960B, making one full H-bridge for one brushed DC motor
Motor supply6 to 27V DC
Peak current43A, the level where the BTS7960B chips limit the current. It is a peak figure, not a continuous rating
Logic5V on VCC and 5V control signals. 3.3V boards need a level converter
ControlRPWM and LPWM for speed and direction, R_EN and L_EN to switch it on, PWM up to 25kHz
ProtectionCurrent limiting, over-temperature and low-voltage shut-off. No reverse-polarity protection
Connections4 screw terminals for the motor and supply, 2 x 4 pin header at 2.54mm
SizeAbout 50 x 50 x 32mm with the heatsink, four M3 mounting holes about 40mm apart
In the box1 driver with the heatsink fitted. Wires and fuse not included

Datasheets

Wiring & getting started

Wiring diagramArduino Nano
Wiring drawing: BTS7960 driver LPWM to Arduino Nano D5, RPWM to D6, L_EN to D7, R_EN to D8, VCC to 5V and GND to GND, the motor on M+ and M-, supply plus through a fuse to B+ and supply minus to B-, with R_IS and L_IS left unconnected
Tap the drawing to open it full size.
  1. Get the parts together

    You need an Arduino Uno, Nano or Mega, six jumper wires, your motor, a 6 to 27V battery or power supply that can deliver the current your motor draws, an inline fuse holder and a small screwdriver.

  2. Mount the driver

    Fix it on standoffs through the four M3 holes, with room for air to move through the fins. Treat the heatsink as live. It is clamped against copper that carries the motor outputs, so keep it off a metal chassis and away from loose wires.

  3. Wire the control pins

    Connect VCC to the Arduino's 5V and GND to the Arduino's GND. The driver has no 5V supply of its own, so nothing works until VCC is connected. Then connect LPWM to D5, RPWM to D6, L_EN to D7 and R_EN to D8. Leave R_IS and L_IS unconnected. The pin names are printed beside the header.

  4. Wire the motor and supply

    The terminal names are printed on the underside of the board. From the top, with the terminals facing you, they read M-, M+, B+, B- from left to right, and B- is the one beside the capacitor. Connect the motor to M+ and M-. Connect supply minus to B-, and supply plus through the fuse to B+. Check plus and minus before you switch on. The driver has no reverse-polarity protection, and a swapped supply destroys it.

  5. Run the test code

    Upload this sketch to a Nano or Uno. No library is needed.

    Example Arduino codeArduino C++
    // BTS7960 (IBT-2) test: forward, brake, reverse, brake
    // LPWM to D5, RPWM to D6, L_EN to D7, R_EN to D8
    // VCC to 5V, GND to GND
    
    const int LPWM_PIN = 5;
    const int RPWM_PIN = 6;
    const int L_EN_PIN = 7;
    const int R_EN_PIN = 8;
    
    void drive(int rightPwm, int leftPwm) {
      analogWrite(RPWM_PIN, rightPwm);
      analogWrite(LPWM_PIN, leftPwm);
    }
    
    void setup() {
      pinMode(RPWM_PIN, OUTPUT);
      pinMode(LPWM_PIN, OUTPUT);
      pinMode(R_EN_PIN, OUTPUT);
      pinMode(L_EN_PIN, OUTPUT);
      drive(0, 0);
      digitalWrite(R_EN_PIN, HIGH);  // both enables high, or nothing moves
      digitalWrite(L_EN_PIN, HIGH);
    }
    
    void loop() {
      drive(100, 0);  // one way, about 40% speed
      delay(2000);
      drive(0, 0);    // brake before changing direction
      delay(1000);
      drive(0, 100);  // the other way
      delay(2000);
      drive(0, 0);
      delay(1000);
    }
  6. Check it works

    The motor runs one way for 2 seconds, stops for a second, runs the other way for 2 seconds, stops, and repeats. If nothing moves, check that VCC has 5V and that R_EN and L_EN are both connected, because the driver stays off until both are high. If forward and reverse are the wrong way round for your build, swap the M+ and M- wires.

  7. If it stops under load

    The chips switch off when they overheat, and they stay off until both enable pins go low and then high again, or the power is switched off and on. Add a fan blowing through the fins, or run a lower PWM frequency, which makes less heat. Brake to a stop before you reverse a spinning motor, because going straight into reverse draws close to the motor's stall current.

Frequently Asked Questions

Answers to the questions buyers ask most.

Will it work with an ESP32 or Raspberry Pi Pico?
Yes, with a logic level converter. The driver is made for 5V logic, so power VCC from your board's 5V pin and run the RPWM and LPWM signals through the converter so they arrive at 5V. R_EN and L_EN can go straight to VCC, which keeps the driver switched on and leaves only two signals to convert.
How much current can it carry?
The BTS7960B chips allow up to 43A peak before they cut the current back. That is a peak figure, not a continuous rating. How much it carries for long periods depends on cooling. The chips run hotter on 24V than on 12V and hotter at a high PWM frequency, and they switch off if they overheat. If the heatsink gets too hot to keep a finger on, add a fan.
Why did my motor stop and not start again?
The driver overheated and switched itself off. It stays off until R_EN and L_EN are both taken low and then high again, or until the power is switched off and on. If your enable pins are wired straight to 5V, switching the power off and on is the only reset.
How do I brake the motor or let it coast?
With both enable pins high, set RPWM and LPWM both low and the motor brakes to a stop. To let it coast, take the enable pins low instead.
Can I read the motor current from R_IS and L_IS?
Yes, but not by wiring them straight to a microcontroller pin. Each pin gives about 1.2V per amp, so it passes 5V at a little over 4A, and it goes higher still in a fault. Most builds leave both pins unconnected. If you want the reading, put a resistor divider between the pin and your board so the voltage stays within what the board's pin accepts.
What PWM frequency should I use?
The Arduino default works well. Pins D5 and D6 on an Uno or Nano run at about 1kHz, which keeps the driver cool. You can go up to 25kHz to move the motor whine out of hearing, and the driver will run warmer.
What size fuse should I fit?
Choose one rated a little above your motor's normal running current and no higher than your wire can carry. A blade fuse in an inline holder on the B+ lead, close to the battery, is the usual way.

Have a Question About This Product?

Send it through and we will get back to you by email.

Why Buy from NZN

Useful parts, fair prices and someone local to help.

I'm Lukas, an engineering student and maker based in Te Awamutu. NZN grew out of a CNC build that dragged on for months because every missing cable, bolt or electronic part meant another overseas order. I started the shop so Kiwi makers can spend more time building and less time waiting for the next parcel.

  • Stocked here in New Zealand

    Orders are picked and packed in Te Awamutu and dispatched within 24 hours every day, excluding public holidays. NZ Post target delivery is 1-2 days urban and 2-4 days rural. In Te Awamutu and Kihikihi you can choose local delivery at checkout: same day if you order before 8am, otherwise next day.

  • Fair prices, clearly shown

    Prices are kept competitive and quantity discounts are shown upfront. Free delivery starts at $50 for urban addresses and $88 for rural addresses.

  • 30-day returns and 12-month warranty

    Get in touch if something is not right and we will help sort it.

  • Practical product support

    Ask a product question and get help from a real person in New Zealand who knows the range.

You may also like