<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.bespokerobotsociety.org/index.php?action=history&amp;feed=atom&amp;title=TB6612FNG</id>
	<title>TB6612FNG - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.bespokerobotsociety.org/index.php?action=history&amp;feed=atom&amp;title=TB6612FNG"/>
	<link rel="alternate" type="text/html" href="https://wiki.bespokerobotsociety.org/index.php?title=TB6612FNG&amp;action=history"/>
	<updated>2026-04-25T08:48:00Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://wiki.bespokerobotsociety.org/index.php?title=TB6612FNG&amp;diff=42&amp;oldid=prev</id>
		<title>John: Claude edited based on my notes, prompt, and SimpleBot code repository</title>
		<link rel="alternate" type="text/html" href="https://wiki.bespokerobotsociety.org/index.php?title=TB6612FNG&amp;diff=42&amp;oldid=prev"/>
		<updated>2025-10-11T16:21:53Z</updated>

		<summary type="html">&lt;p&gt;Claude edited based on my notes, prompt, and SimpleBot code repository&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Module&lt;br /&gt;
| name = TB6612FNG&lt;br /&gt;
| function = Dual H-Bridge Motor Driver&lt;br /&gt;
| type = Integrated Circuit / Breakout Module&lt;br /&gt;
| manufacturer = Toshiba&lt;br /&gt;
| voltage = 4.5V – 13.5V (motor) / 2.7V – 5.5V (logic)&lt;br /&gt;
| current = 1.2A per channel (3.2A peak)&lt;br /&gt;
| package = SSOP24 (IC) / Breakout Board&lt;br /&gt;
| interface = 6 GPIO pins (2× PWM, 4× direction control)&lt;br /&gt;
| cost = $1-3 USD (module)&lt;br /&gt;
| datasheet = [https://toshiba.semicon-storage.com/info/docget.jsp?did=10660 TB6612FNG Datasheet]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;TB6612FNG&amp;#039;&amp;#039;&amp;#039; is a dual {{Wikipedia|H-bridge}} motor driver IC commonly used in robotics and embedded systems. It can independently control two DC motors with PWM speed control and direction switching, making it ideal for differential drive robots.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
The TB6612FNG is manufactured by Toshiba and designed specifically for driving small DC motors in battery-powered applications. It offers significant advantages over older motor drivers like the L298N, including lower voltage drop, higher efficiency, and better thermal performance.&lt;br /&gt;
&lt;br /&gt;
== Key Features ==&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Dual H-Bridge&amp;#039;&amp;#039;&amp;#039;: Control two DC motors independently&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;PWM Speed Control&amp;#039;&amp;#039;&amp;#039;: Smooth speed control via pulse-width modulation&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;High Efficiency&amp;#039;&amp;#039;&amp;#039;: Low on-resistance (0.5Ω typ.) reduces power loss&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Wide Voltage Range&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
** Motor supply: 4.5V to 13.5V&lt;br /&gt;
** Logic supply: 2.7V to 5.5V (3.3V and 5V compatible)&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Current Rating&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
** 1.2A continuous per channel&lt;br /&gt;
** 3.2A peak per channel (single pulse)&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Protection Features&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
** Thermal shutdown&lt;br /&gt;
** Low-voltage detection&lt;br /&gt;
** Overcurrent protection&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Compact Package&amp;#039;&amp;#039;&amp;#039;: SSOP24 surface-mount package&lt;br /&gt;
&lt;br /&gt;
== Pin Configuration ==&lt;br /&gt;
&lt;br /&gt;
The TB6612FNG requires the following control signals per motor:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;PWMA/PWMB&amp;#039;&amp;#039;&amp;#039;: PWM input for speed control (one per motor)&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;AIN1/AIN2&amp;#039;&amp;#039;&amp;#039;: Direction control for Motor A&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;BIN1/BIN2&amp;#039;&amp;#039;&amp;#039;: Direction control for Motor B&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;STBY&amp;#039;&amp;#039;&amp;#039;: Standby pin (pull HIGH to enable, LOW to disable)&lt;br /&gt;
&lt;br /&gt;
== Truth Table ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! IN1 !! IN2 !! PWM !! Motor Output&lt;br /&gt;
|-&lt;br /&gt;
| H || H || H/L || Short brake&lt;br /&gt;
|-&lt;br /&gt;
| L || H || H || CCW (forward)&lt;br /&gt;
|-&lt;br /&gt;
| L || H || L || Short brake&lt;br /&gt;
|-&lt;br /&gt;
| H || L || H || CW (reverse)&lt;br /&gt;
|-&lt;br /&gt;
| H || L || L || Short brake&lt;br /&gt;
|-&lt;br /&gt;
| L || L || H || Stop (coast)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Breakout Module ==&lt;br /&gt;
&lt;br /&gt;
The TB6612FNG is most commonly used as a pre-assembled breakout board that includes:&lt;br /&gt;
&lt;br /&gt;
* The TB6612FNG IC&lt;br /&gt;
* Decoupling capacitors&lt;br /&gt;
* Pull-down resistors on control pins&lt;br /&gt;
* Screw terminals or header pins for motor connections&lt;br /&gt;
* Pin headers for microcontroller connections&lt;br /&gt;
&lt;br /&gt;
Common breakout boards include models from SparkFun, Adafruit, and various Chinese manufacturers.&lt;br /&gt;
&lt;br /&gt;
== Usage in BRS Projects ==&lt;br /&gt;
&lt;br /&gt;
The TB6612FNG is the motor driver used in [[SimpleBot]]&amp;#039;s [[BRS Differential Drive Robot Control Board]]. It provides:&lt;br /&gt;
&lt;br /&gt;
* Control for two TT motors (left and right wheels)&lt;br /&gt;
* PWM speed control from the [[Raspberry Pi Pico]]&lt;br /&gt;
* Direction control for forward/reverse motion&lt;br /&gt;
* Efficient power usage for battery-powered operation&lt;br /&gt;
&lt;br /&gt;
== Comparison to L298N ==&lt;br /&gt;
&lt;br /&gt;
The TB6612FNG is generally superior to the older L298N motor driver:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Feature !! TB6612FNG !! L298N&lt;br /&gt;
|-&lt;br /&gt;
| Voltage Drop || ~0.3V || ~2-4V&lt;br /&gt;
|-&lt;br /&gt;
| Efficiency || High (&amp;gt;95%) || Low (~70%)&lt;br /&gt;
|-&lt;br /&gt;
| Heat Generation || Minimal || Significant&lt;br /&gt;
|-&lt;br /&gt;
| Size || Small || Large&lt;br /&gt;
|-&lt;br /&gt;
| Cost || $1-3 || $2-4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The TB6612FNG&amp;#039;s lower voltage drop is especially important for battery-powered robots, where every bit of voltage matters.&lt;br /&gt;
&lt;br /&gt;
== Wiring Example ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Microcontroller → TB6612FNG:&lt;br /&gt;
- GPIO (PWM) → PWMA, PWMB&lt;br /&gt;
- GPIO → AIN1, AIN2, BIN1, BIN2&lt;br /&gt;
- GPIO → STBY (or tie to VCC)&lt;br /&gt;
- GND → GND (logic)&lt;br /&gt;
&lt;br /&gt;
Power Supply:&lt;br /&gt;
- Battery (+) → VM (motor power)&lt;br /&gt;
- 3.3V → VCC (logic power)&lt;br /&gt;
- GND → GND (power)&lt;br /&gt;
&lt;br /&gt;
Motors:&lt;br /&gt;
- Motor A → AO1, AO2&lt;br /&gt;
- Motor B → BO1, BO2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Code Example (MicroPython) ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
from machine import Pin, PWM&lt;br /&gt;
&lt;br /&gt;
# Motor A pins&lt;br /&gt;
ain1 = Pin(14, Pin.OUT)&lt;br /&gt;
ain2 = Pin(15, Pin.OUT)&lt;br /&gt;
pwma = PWM(Pin(16))&lt;br /&gt;
pwma.freq(1000)&lt;br /&gt;
&lt;br /&gt;
# Motor B pins&lt;br /&gt;
bin1 = Pin(17, Pin.OUT)&lt;br /&gt;
bin2 = Pin(18, Pin.OUT)&lt;br /&gt;
pwmb = PWM(Pin(19))&lt;br /&gt;
pwmb.freq(1000)&lt;br /&gt;
&lt;br /&gt;
# Standby pin&lt;br /&gt;
stby = Pin(20, Pin.OUT)&lt;br /&gt;
stby.value(1)  # Enable driver&lt;br /&gt;
&lt;br /&gt;
def motor_a_forward(speed):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Drive Motor A forward at speed (0-65535)&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    ain1.value(0)&lt;br /&gt;
    ain2.value(1)&lt;br /&gt;
    pwma.duty_u16(speed)&lt;br /&gt;
&lt;br /&gt;
def motor_a_reverse(speed):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Drive Motor A reverse at speed (0-65535)&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    ain1.value(1)&lt;br /&gt;
    ain2.value(0)&lt;br /&gt;
    pwma.duty_u16(speed)&lt;br /&gt;
&lt;br /&gt;
def motor_a_stop():&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Stop Motor A (coast)&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    ain1.value(0)&lt;br /&gt;
    ain2.value(0)&lt;br /&gt;
    pwma.duty_u16(0)&lt;br /&gt;
&lt;br /&gt;
# Similar functions for Motor B...&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
&lt;br /&gt;
* [https://toshiba.semicon-storage.com/info/docget.jsp?did=10660 Official TB6612FNG Datasheet]&lt;br /&gt;
* [https://www.sparkfun.com/products/14450 SparkFun TB6612FNG Breakout Board]&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [[BRS Differential Drive Robot Control Board]]&lt;br /&gt;
* [[SimpleBot]]&lt;br /&gt;
* [[L298N]] (alternative motor driver)&lt;br /&gt;
&lt;br /&gt;
[[Category:Component]]&lt;br /&gt;
[[Category:Motor Driver]]&lt;/div&gt;</summary>
		<author><name>John</name></author>
	</entry>
</feed>