3.c. Shield connections: signals, power, and motors

Using the dual TB9051FTG motor driver shield with an Arduino (shield and Arduino powered separately).

All of the necessary logic connections between the Arduino and the motor driver shield, including VCC, are made automatically when the shield is plugged into the Arduino. However, the shield’s motor power must be supplied directly to the shield itself via its large, high-current VIN and GND pads. The motor channels, located on either side of these power pins, can each be used to independently control a bidirectional brushed DC motor. Each motor channel is comprised of a pair of pins—MxA and MxB—that connect to the two terminals of a DC motor and can deliver a continuous 2.6 A (5 A peak). The picture above shows the typical connections involved in using this board as an Arduino shield. In the depicted configuration, the Arduino is powered separately from the shield, such as through its USB connector or power jack.

Default Arduino pin mappings

The following table shows how the shield connects your Arduino’s pins to the motor drivers’ pins:

Arduino Pin Shield Pin Name Basic Function
Digital 2 M1EN Enable input: when EN is low, M1A and M1B are set to high impedance. The board pulls this pin up to IOREF, enabling the driver by default.
Digital 4 M2EN Enable input: when EN is low, M2A and M2B are set to high impedance. The board pulls this pin up to IOREF, enabling the driver by default.
Digital 6 M1DIAG Motor 1 diagnostic error output: driven low when certain faults have occurred or when the driver is disabled by the EN input. Otherwise, the board pulls this pin up to IOREF.
Digital 7 M1DIR Motor 1 direction input
Digital 8 M2DIR Motor 2 direction input
Digital 9 M1PWM Motor 1 speed input
Digital 10 M2PWM Motor 2 speed input
Digital 12 M2DIAG Motor 2 diagnostic error output: driven low when certain faults have occurred or when the driver is disabled by the EN input. Otherwise, the board pulls this pin up to IOREF.
Analog 0 M1OCM Motor 1 current monitor output (approximately 500 mV/A per amp)
Analog 1 M2OCM Motor 2 current monitor output (approximately 500 mV/A per amp)

See Section 4.b for more detailed descriptions of the shield pins, Section 4.c for a motor control truth table, and Section 5 for a schematic diagram of the shield. See Section 3.e for instructions on how to customize your board’s Arduino pin mappings if the above defaults are not convenient.

Power connections

Dual TB9051FTG motor driver shield power buses.

In the shield’s default state, the motor driver shield and Arduino are powered separately. When used this way, the Arduino must be powered via USB, its power jack, or its VIN pin, and the shield must be supplied with 4.5 to 28 V through the large VIN and GND pads on the right side of the board. Attempting to power the shield through other means, such as from the Arduino or through the small VOUT pin, can permanently damage both the Arduino and the shield (only the large power traces on the right side of the shield are designed to handle the high currents involved in powering motors). A high-side reverse-voltage protection MOSFET prevents the shield from being damaged if motor power is inadvertently connected backwards. Logic power, VCC, is automatically supplied by the Arduino.

Using the dual TB9051FTG motor driver shield with an Arduino (Arduino powered by shield).

It is also possible to power your Arduino directly from the motor shield, which eliminates the need for a separate Arduino power supply. If the motor power is within the acceptable input voltage range for your Arduino, you can place a shorting block across the pins labeled VM and ARDVIN to provide the shield’s reverse-protected power, VM, to the Arduino’s VIN pin, as shown in the diagram above. The Arduino’s power jack must remain disconnected at all times in this configuration.

Using the dual TB9051FTG motor driver shield with an Arduino (Arduino powered by external regulated connected to shield).

If your motor power is not within the acceptable input voltage range but you would still like to use it to power your Arduino, you can use the pins labeled ARDVIN, GND, and VM to connect a regulator like the D24V5F9 or S10V3F9 between the motor power and the Arduino’s VIN, as seen in the diagram above. The Arduino’s power jack must remain disconnected at all times in this configuration.

Warning: When powering the Arduino from the motor shield using either the shorting block or a regulator, you must never connect a different power supply to the Arduino’s VIN pin or plug a power supply into the Arduino’s power jack, as doing so will create a short between the Arduino’s power supply and either the shield’s power supply or your regulator that could permanently damage the Arduino and the motor shield or regulator.

Note that the ARDVIN pin on the shield just goes to the Arduino’s VIN pin, so plugging in USB when powering the Arduino through this pin is just like plugging in USB with the Arduino powered from its power jack. On standard Arduinos we recommend against plugging a powered Arduino into USB (see this forum post for more information), but on some Arduino-compatible boards such as the A-Stars, this is completely safe.

Power considerations

The shield operates from 5 to 28 V, but it can tolerate transient voltages (shorter than 500 ms in duration) of up to 40 V, which means it is generally safe to power this board with a 24 V battery. The shield operating voltage range is much wider than the typical Arduino operating voltage range, so if you are using the shield to power your Arduino, please ensure that your voltage source is within acceptable limits for your Arduino or use a regulator between the motor power and the Arduino as described above.

It is important that you use a power source that is capable of delivering the current your motors will require. For example, alkaline cells are typically poor choices for high-current applications, and you should almost never use a 9V battery (the rectangular type with both terminals on the same side) as your motor power supply. We recommend NiMH batteries, lithium-based rechargeable batteries (if you have a good charger and adequately understand the dangers of using them improperly), or a power adapter with an appropriate power rating. The current draw is ultimately a function of your motors, your operating voltage, and your motor load, but the driver is capable of delivering a continuous 5.2 A (2.6 A per channel), and it can deliver in excess of 10 A before the internal current limiting is activated.

Shield power dissipation

The TB9051FTG will start chopping its output current at a typical threshold of 6.5 A. However, the chip by itself will typically overheat at lower currents. In our tests, we found that the chip was able to deliver 5 A for only a few seconds before the chip’s thermal protection kicked in; a continuous current of about 2.6 A per channel was sustainable for many minutes without triggering thermal current limiting or an over-temperature shutdown. The actual current you can deliver will depend on how well you can keep the motor driver cool. The shield’s printed circuit board is designed to help with this by drawing heat out of the motor driver chip. PWMing the motor will introduce additional heating proportional to the frequency.

Unlike typical H-Bridges, the TB9051FTG has a feature that allows it to gracefully reduce the maximum current limit when the chip temperature approaches its limit. This means that if you push the chip close to its limit, you will see less power to the motor, but it might allow you to avoid a complete shutdown.

This product can get hot enough to burn you long before the chip overheats. Take care when handling this product and other components connected to it.

Motor considerations

If your motor has a stall current over the driver’s continuous current rating of 2.6 A per channel, we recommend you take extra steps to make sure that your motor will not be exposed to loads that will cause it to exceed 2.6 A for prolonged periods of time (or you take extra steps to keep the motor drivers cool, such as increasing air flow or adding heat sinks). Exceeding 2.6 A for long durations should not damage the shield, but it will eventually activate the driver’s thermal protection, which might result in inadequate performance for your application.

It is not unusual for the stall current of a motor to be an order of magnitude (10×) higher than its free-run current. If you do not know your motor’s stall current, you can approximate it by measuring the current it draws while held stalled at a lower voltage (such as when powered from a single battery cell) and then scaling that value linearly with voltage. For example, the stall current of a motor at 6 V is six times the stall current of that motor at 1 V. Another, less accurate method is to use a multimeter to measure the resistance between the motor terminals and then use Ohm’s law to compute the stall current I at voltage V: I = V/R. This last method generally is not as reliable because it can be difficult to measure such small resistances accurately.

Occasionally, electrical noise from a motor can interfere with the rest of the system. This can depend on a number of factors, including the power supply, system wiring, and the quality of the motor. If you notice parts of your system behaving strangely when the motor is active, first double-check that your power supply is adequate, then consider taking the following steps to decrease the impact of motor-induced electrical noise on the rest of your system:

Motor with one 0.1 uF capacitor soldered across its terminals.

Motor with two 0.1 uF capacitors soldered from its terminals to its case.

  1. Solder a 0.1 µF ceramic capacitor across the terminals of your motors, or solder one capacitor from each terminal to the motor case (see the pictures to the right). For the greatest noise suppression, you can use three capacitors per motor (one across the terminals and one from each terminal to the case).
  2. Make your motor leads as thick and as short as possible, and twist them around each other. It is also beneficial to do this with your power supply leads.
  3. Route your motor and power leads away from your logic connections if possible.
  4. Place decoupling capacitors (also known as “bypass capacitors”) across power and ground near any electronics you want to isolate from noise. These can typically range from 10 uF to a few hundred uF.

Related Products

Dual TB9051FTG Motor Driver Shield for Arduino
Log In
Pololu Robotics & Electronics
Shopping cart
(702) 262-6648
Same-day shipping, worldwide
Shop Blog Forum Support
My account Comments or questions? About Pololu Contact Ordering information Distributors