Documentation

TT Gear Motor 3-6V 1:48 125RPM for Robot Car | ShillehTek Product Manual
Documentation / TT Gear Motor 3-6V 1:48 125RPM for Robot Car | ShillehTek Product Manual

TT Gear Motor 3-6V 1:48 125RPM for Robot Car | ShillehTek Product Manual

Overview

The TT gear motor is the standard drive motor of hobby robotics: a small brushed DC motor married to a 1:48 plastic gearbox in the familiar yellow housing. The gearing trades raw speed for usable torque, spinning its double-D output shaft at roughly wheel speed โ€” which is why nearly every line follower, obstacle-avoiding robot, and DIY rover you've seen rolls on these.

It runs on 3-6V and pairs with common motor drivers โ€” L298N, TB6612FNG, DRV8833 โ€” for speed (PWM) and direction (H-bridge) control from Arduino, ESP32, Raspberry Pi, or Pico. It is a two-wire motor with no polarity to "get wrong": swap the wires and it simply spins the other way, which you'll use deliberately for steering.

At a Glance

Voltage
3-6V DC
Gear Ratio
1:48
Speed
~125 RPM nominal
Shaft
Dual double-D
Drive
H-bridge (L298N etc.)
Connection
2 solder tabs / wires

Specifications

Parameter Value
Operating Voltage 3-6V DC
Gear Ratio 1:48 (plastic gearbox)
No-Load Speed ~90-125 RPM at 3-4.5V, up to ~200 RPM at 6V
No-Load Current ~120-200 mA
Stall Current ~0.8-1.5 A (budget your driver and battery for this)
Torque ~0.8 kgยทcm class at 6V
Output Shaft Double-sided double-D (fits standard TT wheels)
Motor Type Brushed DC (130-size)
Mounting Through-holes for M3 bolts / chassis brackets

Wiring & Driving Guide

The motor's two tabs go to a driver's outputs โ€” never to GPIO pins, and ideally not straight to a battery unless you only ever need full-speed-one-direction. Typical L298N hookup for one motor:

Connection Goes To
Motor tab 1 / tab 2 L298N OUT1 / OUT2
L298N IN1 / IN2 (direction) Two GPIO pins (e.g. D8, D7 on Arduino)
L298N ENA (speed, PWM) PWM GPIO (e.g. D9) โ€” or jumpered for full speed
L298N +12V/VS terminal Battery pack + (4xAA or 2S pack work well)
L298N GND Battery โˆ’ AND microcontroller GND (shared)
Warning: Don't power drive motors from a board's 5V regulator or a USB port โ€” stall surges brown out the microcontroller (the classic "robot resets when it starts moving"). Use a battery pack for the motors and always share ground with the logic side.
Note: The L298N drops 1.5-2.5V internally, so a "6V" pack delivers ~4V to the motor. That's fine for TT motors โ€” or step up to a TB6612/DRV8833 driver, which wastes far less voltage.
Tip: Two "identical" TT motors never spin identically. Robots that must drive straight need per-side PWM trim or encoder feedback โ€” start with a small speed offset constant per motor.

Code Examples

Arduino: speed and direction via L298N

tt_motor_l298n.ino
// One TT motor on L298N: IN1=D8, IN2=D7, ENA=D9 (PWM)

const int IN1 = 8;
const int IN2 = 7;
const int ENA = 9;

void setMotor(int speed) {
  // speed: -255 (full reverse) .. 255 (full forward)
  if (speed >= 0) {
    digitalWrite(IN1, HIGH);
    digitalWrite(IN2, LOW);
  } else {
    digitalWrite(IN1, LOW);
    digitalWrite(IN2, HIGH);
    speed = -speed;
  }
  analogWrite(ENA, speed);
}

void setup() {
  pinMode(IN1, OUTPUT);
  pinMode(IN2, OUTPUT);
  pinMode(ENA, OUTPUT);
}

void loop() {
  setMotor(180);    // forward, ~70%
  delay(2000);
  setMotor(0);      // stop
  delay(500);
  setMotor(-180);   // reverse
  delay(2000);
  setMotor(0);
  delay(500);
}

Pico (MicroPython): ramped drive

tt_motor_pico.py
# TT motor on L298N from a Pico:
# IN1=GP2, IN2=GP3, ENA=GP4 (PWM). Grounds shared.

from machine import Pin, PWM
import time

in1 = Pin(2, Pin.OUT)
in2 = Pin(3, Pin.OUT)
ena = PWM(Pin(4))
ena.freq(1000)

def drive(percent):
    """-100..100; negative = reverse."""
    if percent >= 0:
        in1.value(1); in2.value(0)
    else:
        in1.value(0); in2.value(1)
        percent = -percent
    ena.duty_u16(int(65535 * percent / 100))

# Soft start forward, cruise, stop, reverse
for p in range(0, 81, 10):
    drive(p)
    time.sleep(0.1)
time.sleep(2)
drive(0)
time.sleep(0.5)
drive(-60)
time.sleep(2)
drive(0)

Frequently Asked Questions

Which motor driver should I pick?
L298N modules are cheap, rugged, and everywhere in tutorials โ€” great for learning. TB6612FNG or DRV8833 are the better engineering choice: far lower voltage loss and less heat, in a smaller footprint. All three drive TT motors happily.
Why won't my motor start below ~40% PWM?
Gearbox friction plus brush stiction need a torque kick. Start at a high duty for 50-100 ms, then settle to your target speed โ€” the ramped-drive pattern in the Pico example handles this.
My robot resets or the Bluetooth drops when motors start. Why?
Startup/stall current is sagging your supply. Separate motor power from logic power (batteries for motors, regulator/USB for logic, grounds shared), and add a bulk capacitor (470-1000 ยตF) across the motor supply.
Can I run it at 9V or 12V for more speed?
Not for long โ€” the plastic gears and brushes are engineered for 3-6V. Overvolting multiplies wear and can strip gears under load. If you need more speed at 6V, choose a lower-ratio TT variant (1:120 exists for more torque, too).
Does it have an encoder?
No โ€” this is the plain version. Speed is open-loop PWM. If you need closed-loop control, TT-format motors with magnetic encoders exist, or you can add an optical encoder disc to the second shaft end, which is exactly what it's there for.
Which way is "forward"?
Whichever way you wire it โ€” swapping the two tabs reverses rotation. On a two-motor chassis the motors are mirrored, so expect to invert one side in hardware or software.

Related Tutorials