using TWO BTS7690 half bridge breakout boards to drive bipolar stepper motor

Yes, it certainly IS possible to use TWO BT7690 half bridges to drive a Bipolar Stepper Motor. (This is the kind of stepper motor with 4 wires and two separate coils)

You can use EXISTING Arduino code to do this, without ANY editting of the sketches (see URL below). You simply need to use the same 4 Arduino DIGITAL pins as inputs to the TWO half bridges, and drive the pins labelled (misleadingly) as LPWM and RPWM as digital output pins (i.e., with either logic HIGH or logic LOW values and digitialWrite(), and NOT with PWM signals and analogWrite().

For clear explanations and already written Arduino UNO code, see the excellent tutorial and directly applicable sketches provided here:

Wiring from an Arduino UNO to the TWO half bridge boards is accomplished as follows

NOTE: this wiring is to connect an Arduino UNO to a single BIPOLAR STEPPER MOTOR Bipolar (4 wire, 2 coils).

Polarity of connection the coils doesn’t matter, so long as ONE coil is connected to M- and M+ on ONE half bridge output terminal, and the OTHER coil is connected M- and M+ on the OTHER half bridge output terminal.

Inverting the polarity on either coil simply changes the motor rotation direction for a given stepper pulse. (and the stepper motor can be stepped in EITHER direction by changing the sign of the number of steps in the Arduino sketch.)

the suffixes _1, _2 below indicate which of TWO BT7690 half bridge boards (and which of the two stepper coils) is involved in the connections.

CONNECTIONS to FIRST BT7690 H-bridge module half bridge:

VCC_1 to arduino +5V power (from Arduino UNO or similar)
GND_1 to arduino ground
L_EN_1 to arduino +5V power (ENABLE= TRUE)
R_EN_1 to arduino +5V power (ENABLE= TRUE)
L_PWM_1 = arduino digital pin 8
R_PWM_1 = arduino digital pin 9

STEPPER MOTOR CONNECTION (COIL_1)
B-_1 = GND of STEPPER MOTOR SUPPLY
B+_1 = Vm of STEPPER MOTOR SUPPLY (note Vm can be DIFFERENT from Arduino Vcc
and supply needs enough current for motor (1A or more))
M-_1 = one end of STEPPER MOTOR COIL_1
M+_1 = other end of STEPPER MOTOR COIL_1 (invert M- & M+ still works but direction reverses)

CONNECTIONS to SECOND BT7690 H-bridge module half bridge:

VCC_2 to arduino +5V power (from Arduino UNO or similar)
GND_2 to arduino ground
L_EN_2 to arduino +5V power (ENABLE= TRUE)
R_EN_2 to arduino +5V power (ENABLE= TRUE)
L_PWM_2 = arduino digital pin 10
R_PWM_2 = arduino digital pin 11

STEPPER MOTOR CONNECTIONS
B-_2 = GND of STEPPER MOTOR SUPPLY
B+_2 = Vm of STEPPER MOTOR SUPPLY (note Vm can be DIFFERENT from Arduino Vcc
and supply needs enough current for motor (1A or more))
M-_2 = one end of STEPPER MOTOR COIL_2
M+_2 = other end of STEPPER MOTOR COIL_2 (invert M- & M+ still works but direction reverses)

NOTE: you should provide a suitabl HIGH current and probably LOW voltage power supply to run the stepper motor coils (This supply has its GND connected to B- and is +V terminal connected to B+ on each half bridge output terminal).

This motor supply is separate from the small +5V supply coming from the Arduino into each Vcc pin on each half bridge. The Arduino +5V supply is NOT adequate to power a typical stepper motor, so do NOT connect +5V from the Arduino to the B+ of the H-bridge: you may fry your Arduino if you do.

You may need to insert a suitable high Power low Ohm value currently limiting resistor Rs (e.g., say a 1 Ohm 5 Watt resistor), in series between the Vm supply and B+ terminals leading to the stepper motor coils. The resistance is chosen to set the motor current to have adequate torque, but to not exceed the motor current rating. The Rs value will depend on the stepper motor coil resistance (and inductance, if you are running the motor fast).

In my case, I was able to omit the Rs current limit altogether and achieve an acceptable current. I made a direct connection of my particular motor to my separate high current Vm supply. Coincidentally, my Vm supply was also +5V (same as the Arduino supply Vcc). However, I could have chosen Vm to be larger or smaller, depending on my stepper motor specs and torque requirements.)

tslow:
Yes, it certainly IS possible to use TWO BT7690 half bridges to drive a Bipolar Stepper Motor.

I stopped reading your post and the end of the first sentence.

That driver is a brushed DC motor driver, and should not (can't) be used for (low impedance) steppers.
Stepper drivers are current controlled. This one is not.
Leo..

Yes, it certainly IS possible to use TWO BTS7690 half bridges to drive a Bipolar Stepper Motor. (This is the kind of stepper motor with 4 wires and two separate coils).

It is very doubtful that you can run anywhere near the advertised 43A through these half bridges, because of the inadequate thermal design (thermal resistance of the PC board). Howver, many Amps should certainly be possible.

Despite some posts claiming this breakout is somehow incompatible with running stepper motors, it certainly possible.

There is also nice ready made Arduino code available to do this and even well written tutorials. You can EXISTING Arduino code (see URL below) without ANY editting of the sketches required.

You simply need to use the same 4 Arduino DIGITAL pins as the inputs to the TWO half bridges, and you must drive the pins labelled (misleadingly) as LPWM and RPWM as digital output pins (i.e., with either logic HIGH or logic LOW values and digitialWrite(), and NOT using PWM signals and analogWrite(). (PWM can be used for the different problem of running two terminal DC motors.)

For clear explanations and already written Arduino UNO code compatible with this setup, see the excellent tutorial about bipolar stepper motors. You will find directly applicable sketches provided here: https://www.arduino.cc/en/Tutorial/StepperOneStepAtATime

There wiring connections from an Arduino UNO to the TWO half bridge boards, and from boards to the single stepper motor and its supply are accomplished as follows:

NOTE: this wiring is to connect an Arduino UNO to a single BIPOLAR STEPPER MOTOR Bipolar (4 wire, 2 coils).

Polarity of connection the coils doesn’t matter, so long as ONE coil is connected to M- and M+ on ONE half bridge output terminal, and the OTHER coil is connected M- and M+ on the OTHER half bridge output terminal.

Inverting the polarity on either coil simply changes the motor rotation direction for a given stepper pulse. (and the stepper motor can be stepped in EITHER direction by changing the sign of the number of steps in the Arduino sketch.)

the suffixes _1, _2 below indicate which of TWO BT7690 half bridge boards (and which of the two stepper coils) is involved in the connections.

CONNECTIONS to FIRST BT7690 H-bridge module half bridge:

VCC_1 to arduino +5V power (from Arduino UNO or similar)
GND_1 to arduino ground
L_EN_1 to arduino +5V power (ENABLE= TRUE)
R_EN_1 to arduino +5V power (ENABLE= TRUE)
L_PWM_1 = arduino digital pin 8
R_PWM_1 = arduino digital pin 9
L_IS_1= No Connection (not used)
R_IS_1= No Connection (not used)

STEPPER MOTOR CONNECTION (COIL_1)
B-_1 = GND of STEPPER MOTOR SUPPLY
B+_1 = Vm of STEPPER MOTOR SUPPLY (note Vm can be DIFFERENT from Arduino Vcc
and supply needs enough current for motor (1A or more))
M-_1 = one end of STEPPER MOTOR COIL_1
M+_1 = other end of STEPPER MOTOR COIL_1 (invert M- & M+ still works but direction reverses)

CONNECTIONS to SECOND BT7690 H-bridge module half bridge:

VCC_2 to arduino +5V power (from Arduino UNO or similar)
GND_2 to arduino ground
L_EN_2 to arduino +5V power (ENABLE= TRUE)
R_EN_2 to arduino +5V power (ENABLE= TRUE)
L_PWM_2 = arduino digital pin 10
R_PWM_2 = arduino digital pin 11
L_IS_2= No Connection (not used)
R_IS_2= No Connection (not used)

STEPPER MOTOR CONNECTIONS
B-_2 = GND of STEPPER MOTOR SUPPLY
B+_2 = Vm of STEPPER MOTOR SUPPLY (note Vm can be DIFFERENT from Arduino Vcc
and supply needs enough current for motor (1A or more))
M-_2 = one end of STEPPER MOTOR COIL_2
M+_2 = other end of STEPPER MOTOR COIL_2 (invert M- & M+ still works but direction reverses)

NOTE: you should provide a suitabl HIGH current and probably LOW voltage power supply to run the stepper motor coils (This supply has its GND connected to B- and is +V terminal connected to B+ on each half bridge output terminal).

This motor supply is separate from the small +5V supply coming from the Arduino into each Vcc pin on each half bridge. The Arduino +5V supply is NOT adequate to power a typical stepper motor, so do NOT connect +5V from the Arduino to the B+ of the H-bridge: you may fry your Arduino if you do.

You may need to insert a suitable high Power low Ohm value currently limiting resistor Rs (e.g., say a 1 Ohm 5 Watt resistor), in series between the Vm supply and B+ terminals leading to the stepper motor coils. The resistance is chosen to set the motor current to have adequate torque, but to not exceed the motor current rating. The Rs value will depend on the stepper motor coil resistance (and inductance, if you are running the motor fast).

In my case, I was able to omit the Rs current limit altogether and achieve an acceptable current. I made a direct connection of my particular motor to my separate high current Vm supply. Coincidentally, my Vm supply was also +5V (same as the Arduino supply Vcc). However, I could have chosen Vm to be larger or smaller, depending on my stepper motor specs and torque requirements.)

@tslow, do not cross-post. Threads merged.

Reply to Wawa. You are welcome to read or not read my post.

However, I feel compelled to respond to your terse and unhelpful reply/complaint for the benefit of others who might read it and take it seriously.

I reiterate, the BTS7690 breakout is a perfectly acceptable driver for bipolar stepper motors, and I have successfully used it in that way. Your post implies that stepper motors are too low in impedance to be successfully driven by the BTS7690, but this is simply false. With a little thought, this versatile (albeit poorly documented ) little BTS7690 breakout board can be used to drive a variety of loads.

The BT7690 breakout is based on a pair of half bridge ICs. The datasheet is easily available (c.f., http://www.robotpower.com/downloads/BTS7960_v1.1_2004-12-07.pdf). The low on-state resistance of this half bridge IC is one of its selling point virtues. Even at elevated temperatures (e.g., 150C) from being driven hard, the IC has on on-state output resistance of only 24mOhm (0.024 Ohm), which is quite small compared with ~>1 Ohm series resistance of the coil of a typical stepper motor (my stepper coils were 1.58 Ohm which is nearly 70X larger than the BTS7960 Rout).

The BTS7690 half bridge IC and the associated Amazon available breakout board which contains two BTS7690's plus a plus a 74HC244 integrated line driver to allow simple 5V logic to enable and control both BTS7690's. In addition to my bipolar stepper motor application, these BTS7690 breakout boards can drive a wide variety of OTHER loads (from "brushed DC motors", to other types of stepper motors, to heaters, to whatever else needs driving...) However, this breakout board is certainly NOT limited to driving only "brushed DC motors".

It is also misleading for you to proclaim that "stepper drivers are current controlled", without providing any further explanation. It is well documented (elsewhere) that using H-Bridges to switch voltage supplies has some limitations when driving stepper motors, particularly when the step pulses and step edges are fast enough to that the coil inductance becomes as significant part of the stepper motor impedance. (In my cases, I was running the motor slowly enough I could completely ignore its inductance, and treat the motor as a resistive load.)

There are certainly fancier more sophisticated non-H-bridge stepper driver circuits out there which handle that situation of high rate stepper pulses, and control the pulsed current and dissipated power in the stepper motor in the presence of the motor inductance (e.g., geckodrive and polulu products are examples). Here is a nice one from geckodrive:

However, when the application (like my own) requires a larger torque stepper motor, driven at modest speed, and the lower current capacity L293D H-bridge based stepper shields are simply inadequate to run the required bigger bipolar stepper motor, a pair of the Amazon available breakout BTS7690 boards serve quite nicely. These breakouts are also a LOT cheaper than the geckodrive or pololu solutions.

Note, the lower current L293D based H-bridge stepper shield that many of us started with is here:

the updated version 2 is here:

However, both have limited current drive, which is what led me to look into the BTS7690 option.

tslow:
my stepper coils were 1.58 Ohm...

That's potentially 7.5Amp/90watt on a 12volt supply if you don't use CL resistors.
How big are these steppers.

Sure, you can use a brushed DC (constant voltage) controller for steppers if you don't need speed.
A lot of small steppers use that principle.
But for that low coil resistance...
Make it easy on yourself, and use a real stepper driver with a 24volt (or 36volt) supply.
So you have the best of both worlds (constant torque, and speed, without burning out your motor).

tslow:
It is also misleading for you to proclaim that "stepper drivers are current controlled", without providing any further explanation.

We don't know your current knowledge level until you tell us. You could just ask.
Not that hard to understand. the same principle as DC/DC buck converters, using the motor inductance to keep coil current (not voltage) constant.

Robin2 (poster here) has very good stepper links. Do a search.
Leo..

reply to Wawa. Thanks for your comments.

I am no longer searching for a solution. My problem is solved now. What I wanted was to find some quick and cheap driver to run an existing bipolar stepper; the existing motor which required more current than an Adafruit-style stepper shield could drive.

I posted what I did on this forum, in lieu of documentation that should have been offered , in hopes it might help others who were similarly frustrated with the lack of documentation provided with the BTS7690 boards for this seemingly obvious stepper motor application.

FYI, as I wrote in my post, I was able to use a modest voltage 5V supply (not 12V) to power the stepper motor. This 5V supply delivered just the right current, even without any current limiting source resistor. The on-state current was in spec for the motor, the torque was great, and the power dissipation was acceptably small. I can easily drive this bipolar stepper motor with a few hundred pulses per second, which is fast enough for the application, so I'm done.

If I had a different application (like the homebrew 4 axis CNC machine which I built from on-hand components), I would design it differently. In the CNC, where I needed to drive the motor FAST and at full torque, then I would choose a more sophisticated motor driver and compatible higher voltage motor power supply (I chose a geckodrive 540 described here: G540 Multi Axis Digital Stepper Drive | USA Made | Geckodrive , and powered it with a large homebrew 48V supply). It works great, but that is a different and more demanding application.

Obviously, with the DC H-bridge style stepper motor driver, a larger voltage supply (12V or 48V) would push WAY too much current through the motor (1.58 Ohm coil resistance). Coincidentally, my existing 5V supply was perfect, providing just the right current (~3A) to run the motor at full torque WITHOUT the need of a series resistor; this eliminated the need for dumping several watts of power into a series resistor.

In response to your "Report to moderator" you can change the title by choosing by clicking the "More" drop-down bottom/right and editing it

Hi there UKHeliBob. Thanks for responding. Unfortunately, I don't see any "More" drop-down at bottom right. (I'm using Chrome on Win 10 x64). Anyway, the issue is gone; It appears that you (or someone else) must have made my typo correction (BT7690 >> BTS7690), so thank you! Sorry for the confusion. I will be more careful with titles in the future.

Do you see it in this screen shot ?

I reiterate, the BTS7690 breakout is a perfectly acceptable driver for bipolar stepper motors, and I have successfully used it in that way.

Not true in general. Low impedance steppers require constant-current drive as they are only an ohm or so - they will fry if driven from even 5V at constant voltage. Most constant voltage H-bridges do not operate at less than 5 or 6V or so.

In fact most steppers people buy these days are too low an impedance for voltage drive. This forum often sees people having problems driving 1.5 ohm steppers from a L298 at 12V or similar. Usually the answer is a DRV8825 if the current is only 1.5A or below.

And current drive can get far higher performance from all steppers since the winding inductance is the chief
obstacle to high combinations of torque and speed.

Thanks UKHeliBob. I found the "More" pulldown. Sorry, I didn't understand.

To MarkT who wrote "not true in general"; to my two statements:

(1) BTS7690 is a perfectly acceptable driver for bipolar stepper motors,
(2) , and I have successfully used it in that way.

Both statements are true as far as I can tell. I'm guessing you didn't like (1), but I still think, within the limitations outlined in this now ponderous post, that (1) is true.

As I mentioned earlier, I ran a bipolar stepper motor with 1.58 Ohm coil resistance and a Vs = +5V supply in my application. The for 25msec 50% duty cycle stepper pulses, the voltage traces as seen at the motor coil were very close to the same +5V as the supply, and the pulse shapes were nearly square (hardly any evidence of inductance effects on V(t).)

This is consistent with the expected performance for the BTS7690 IC from Infineon (you can read about it here: http://www.robotpower.com/downloads/BTS7960_v1.1_2004-12-07.pdf) It's true that the output resistance of the BTS7690 H-bridge is somewhat worse at 5V and better at higher Vs like 12V, but even at 5V, the output resistance of the H-bridge is negligibly small (like 1/50X smaller than) compared to the 1.58 Ohm coil resistance in the stepper motor.

If the transistors in the H-bridge had contributed some large offset voltage, then the V(t) across the coils would have been much less than the Vs=5V supply (it wasn't). If inductive effects from the stepper coils had been degrading my stepper motor performance, then I would have seen abundantly non-square pulse shapes in V(t) (I didn't). Finally, if my stepper motor or supply were going to fry from excessive power dissipation, they would have gotten hot. However, since the current was only 5V/1.58 Ohms, the current ~3A was in spec for both, and the motor just got warm (normal). The motor provided the desired torque at the desired rotation speed, and the total cost of the driver was 2*13 USD = $26 (cheap!).

Frankly, I am dissappointed by my experience with the discussion concerning this (my first) post on the Arduino forum. I have benefited from the forum for many years, and my interactions with people posting has generally been very helpful and satisfying; I was expecting a much nicer interaction and discussion (if any) concerning my first post.

I have tired of debating with established gurus on the forum about their vaguely stated generalities and truisms about stepper motors and drivers. I have especially tired of defending whether the parameter choices I made (e.g., Vs=5V etc.) work satisfactorily with my motor, and whether the setup that I described in rather gruesome detail actually functioned properly. I had hoped that my post might be useful to your readers, because the documentation that comes from the amazon sellers is not very helpful. Perhaps my post will still help some people.

I think I am done for now.

You should be prepared for some criticism when you try to use the wrong tools for the job.
Leo..