A functional DC motor circuit requires matching the motor's stall current to a driver with at least a 20% thermal derating margin, controlled via PWM for speed and an H-bridge for direction. For 90% of hobby, robotics, and light-industrial DIY projects operating under 50A, a brushed DC motor paired with a BTS7960 or DRV8871 driver is the default, most cost-effective pick. This guide strips away the abstract theory and gives you the exact sizing rules, wiring topologies, and failure diagnostics needed to build a circuit that survives its first stall event.

Motor Topology Comparison: Brushed, Brushless, and Coreless

Before laying out your PCB or cutting wires, you must select the right motor topology for your mechanical load. Stepper and servo motors serve entirely different positioning use cases and are excluded here; this comparison focuses strictly on continuous-rotation DC topologies.

Topology Torque Curve & Characteristics Control / Driver Needs Typical Cost (12V Class)
Brushed DC (BDC) High starting torque, linear speed-torque drop. Brushes introduce friction and EMI. Simple single-chip H-bridge or half-bridge. PWM on enable pin. $5 – $25
Brushless DC (BLDC) Flat torque curve across a wide RPM band. High efficiency, no brush arcing. 3-phase ESC or sensorless FOC controller (e.g., ODrive). Complex commutation. $35 – $120
Coreless DC Extremely low rotor inertia, near-instant transient response. Low thermal mass. H-bridge with strict current-limiting to prevent rotor melt during stalls. $40 – $150

Which motor type fits your load profile? If your application involves high-inertia starts, harsh environments, or simple point-to-point conveyance (like a winch or a wheelchair), Brushed DC wins on simplicity and cost. If you need sustained high RPM, high efficiency, and precise velocity control (like a drone or an electric skateboard), BLDC is mandatory. Coreless is reserved for precision optics, medical robotics, and RC servos where millisecond acceleration matters more than raw continuous torque.

Sizing the DC Motor Circuit: A Worked Load Example

The most common mistake in DC motor circuit design is sizing the driver based on the motor's running current rather than its stall current. When a motor jams, it becomes a dead short across your power supply. If your driver cannot handle the stall current, the silicon will melt.

The Golden Sizing Rule of Thumb:
1. Driver Continuous Current ≥ (Maximum Expected Running Load × 1.25)
2. Driver Peak Current ≥ Motor Rated Stall Current

Worked Example: 12V Windshield Wiper Motor Conveyor

Let’s size a circuit for a salvaged 12V wiper motor driving a small parts conveyor. We measure the motor on the bench and consult the datasheet:

  • Nominal Voltage: 12V DC
  • Free-run Current: 1.5A
  • Running Load (under belt tension): 6.0A
  • Stall Current: 22.0A

Applying the rule of thumb: We need a driver that can handle at least 7.5A continuous (6.0A × 1.25) and survive a 22A peak without triggering immediate thermal shutdown or suffering catastrophic failure.

A popular chip like the Texas Instruments DRV8871 is rated for 3.6A continuous. It will instantly trip its internal overcurrent protection (OCP) or overheat on this conveyor. Instead, we select a BTS7960 half-bridge module. The BTS7960 is rated for 43A peak and can sustain 20A+ continuous when bolted to an adequate heatsink with active airflow. This perfectly brackets our 7.5A running and 22A stall requirements.

Wiring, Terminals, and Driver Demands

What driver/controller does a brushed DC motor demand? It requires an H-bridge topology to allow bidirectional current flow, coupled with flyback diodes to clamp inductive voltage spikes when the PWM signal switches off. Modern ICs integrate these diodes, but high-power discrete modules require careful wiring.

Terminal Identification and Wiring Map

Terminal Label Function Wiring Best Practice
B+ / VCC Main motor power supply (e.g., 12V or 24V). Use silicone wire rated for the stall current. Add a bulk electrolytic capacitor (e.g., 2200µF) across B+ and GND near the driver to absorb voltage sag during startup.
GND Common ground for power and logic. Must be tied to the microcontroller's GND. Use a star-ground topology to keep high-current motor noise out of the logic reference plane.
M+ / M- Motor phase outputs. Keep traces or wires as short as possible to minimize stray inductance. For 20A+, use minimum 10 AWG wire or 400-mil PCB traces with 2oz copper.
PWM Speed control via duty cycle (0-100%). Connect to a microcontroller hardware PWM pin. Keep frequency between 16kHz and 20kHz to avoid audible coil whine.
DIR / IN1 / IN2 Direction and logic control. 3.3V or 5V logic. If using a 3.3V ESP32 with a 5V driver, use a logic level shifter or verify the driver's V_IH threshold.

Failure Signatures: Diagnosing Hum, Overheat, and Stall

When a DC motor circuit fails, it rarely does so silently. Recognizing the acoustic and thermal signatures will save you from chasing ghost bugs in your code.

1. The Hum (No Rotation)

Symptom: The motor emits a high-pitched whine or low hum but the shaft does not turn.
Root Causes: 1) Your PWM frequency is set too low (e.g., 500Hz), causing the motor coils to act as speakers. 2) Static friction (stiction) in the gearbox exceeds the motor's starting torque at the current PWM duty cycle.
The Fix: Increase the microcontroller PWM timer frequency to at least 16kHz (ultrasonic). If stiction is the issue, implement a 'kickstart' routine in your code: apply 100% duty cycle for 50 milliseconds to break static friction, then immediately drop to your target PID-controlled speed.

2. Overheat (Driver or Motor)

Symptom: The motor smells like burning ozone/varnish, or the driver IC is too hot to touch (>60°C).
Root Causes: Motor overheating indicates continuous mechanical overloading (operating past the continuous torque rating). Driver overheating usually points to switching losses—often caused by driving the MOSFET gates with slow rise-times, or insufficient heatsinking for the continuous RMS current.
The Fix: Measure the running current with a clamp meter. If it exceeds the motor datasheet's continuous rating, you need a larger motor or a gear reduction. For a hot driver, ensure the thermal pad is mated to a heatsink with proper TIM (thermal interface material) and add a 40mm fan.

3. Stall (Silent or Clicking)

Symptom: The motor jams, current spikes to maximum, and the system either shuts down or emits a rhythmic clicking.
Root Causes: The mechanical load locked up. The clicking is the driver's Overcurrent Protection (OCP) tripping and auto-resetting repeatedly.
The Fix: Never rely solely on hardware OCP. Implement software stall detection: monitor the current sense resistor (if your driver provides an analog I_sense pin). If current exceeds 80% of stall amperage for more than 500ms, cut the PWM and throw a fault flag in your code.

The Decision Tree: Picking Your Exact DC Motor Circuit

Stop guessing. Follow this decision path to select the exact components for your next build.

IF your load profile is... AND your requirements are... THEN select this exact Driver / Topology
Running load < 3.6A, Stall < 10A Bidirectional control, compact PCB footprint Texas Instruments DRV8871 (Brushed DC)
Running load 5A - 20A, Stall up to 40A Bidirectional, high starting torque, low budget Infineon BTS7960 Module (Brushed DC)
Running load > 20A, or requires >85% efficiency High RPM, regenerative braking, precise velocity ODrive Pro + BLDC Motor (Brushless)
Sub-1A load, requires millisecond transient response Low inertia, precision positioning (no gearbox) Maxon Coreless DC + TI DRV8212

The Default Recommendation

If you are building a generic robotics chassis, an automated pet feeder, a motorized camera slider, or a light-duty winch, do not overcomplicate the design with a BLDC setup. The commutation complexity and tuning overhead of brushless controllers will stall your project timeline.

The Default Pick: Buy a 12V or 24V Brushed DC gearmotor (like a 60 RPM RS-555 or a salvaged wiper motor) and pair it with a BTS7960 driver module controlled by an ESP32 or Arduino. This combination provides massive torque, forgiving wiring tolerances, built-in hardware protection, and costs under $25 total. It is the undisputed workhorse of the DIY DC motor circuit world.