4 Stepper Motors

I am trying to control 4 stepper motors using 4 TB6612FNG Dual Motor Driver Carrier connected to the same raspberry pi 4B. I am using motors rated at 1.4 ohms, 2A, and will be using a 12V power supply to power them (Amazon.com). Will this work? If not please give guidance on product selection. Thank you


While the TB6612FNG Dual Motor Driver Carrier (like any basic dual H-bridge driver) could be used to drive a bipolar stepper motor, there are a few reasons why I would not recommend the set up you proposed:

  1. The TB6612FNG Dual Motor Driver Carrier can handle around 1A continuously per channel, and the stepper motors you linked to are rated for 2A per phase. So, you would have to run them at half the current they are rated for to avoid tripping the driver’s thermal shutdown protection. (Please note that additional considerations will need to be made to limit the current to the motors since you are powering it at a much higher voltage than they are rated for; this would likely involve proportionally limiting the duty cycle at each step to effectively energize the motor at a lower voltage).

  2. You would need to be able to adjust the duty cycle on all 8 motor channels, which would require 8 PWM signals and 16 digital signals, and the Raspberry Pi 4B only has 2 hardware PWM signals. While you might be able to use software PWM to generate the required signals, please note that the Raspberry Pi is not very good at timing sensitive tasks.

  3. 12V is close to the TB6612FNG driver’s maximum of 13.5V. So, while it might be okay, it does not leave much margin for safety for voltage spikes and noise. Additionally, if your 12V supply is a battery, please note that it will likely output higher than 13.5V when fully charged (depending on the battery type).

You can find a discussion about driving stepper motors from dual H-bridge drivers in this forum thread, including some Arduino code; however, please note that the thread is about drivers with a different interface than the TB6612FNG, but the concept is the same.

Ultimately, I would recommend using dedicated stepper motor drivers instead, which offer many beneficial features such as current limiting, micro-stepping, various decay modes, a much simpler interface, and other special features (depending on the driver). For the stepper motors you linked to, you might consider the TB67S128FTG Stepper Motor Driver Carrier in particular.

Alternatively, you might consider the Tic 36v4 stepper motor controller. As noted above, the Raspberry Pi is not great at handling timing sensitive tasks, so generating 4 separate sets of STEP and DIR signals at the same time could still be challenging. The Tic controllers have various higher-level interface options that would make it much easier to control from a Raspberry Pi (such as USB, TTL serial, and I2C). The TTL serial and I2C interfaces allow you to control multiple Tics through a single serial bus. They also feature various user-configurable settings such as acceleration and deceleration limiting and optional limit switch support with homing capabilities.