2026-04-06
Electric motors convert electrical energy into rotational motion, but the way they do it determines where each type excels. As a software engineer, you've likely controlled all three through code — here's what's actually happening inside.
Brushed DC Motors are the simplest. Apply voltage, the shaft spins. Reverse polarity, it spins the other way. Speed is roughly proportional to voltage; torque is proportional to current. They're cheap, easy to drive, and everywhere — power tools, toys, car window motors. The downside: carbon brushes physically contact the commutator, creating wear, electrical noise, and a finite lifespan. Brushless DC (BLDC) motors eliminate this with electronic commutation, which is why your PC fans and drone propellers last longer and run quieter.
Stepper Motors divide a full rotation into discrete steps — commonly 200 steps per revolution (1.8° per step). Energize coils in sequence and the rotor clicks forward one step at a time. No encoder needed for position control; you simply count pulses. This makes them the workhorse of 3D printers, CNC routers, and any application needing precise open-loop positioning. The tradeoff: steppers lose torque rapidly at higher speeds, they draw full current even at standstill, and they can miss steps under unexpected loads with no way to detect it without adding a sensor.
Servo Motors are really a DC or BLDC motor packaged with a feedback sensor (usually an encoder or potentiometer) and a controller that forms a closed loop. You command a position or velocity, the controller reads the sensor and adjusts drive current to hit the target. This gives you high accuracy, high speed, and high torque density — at a higher cost and complexity. Industrial robot arms, CNC spindles, and RC hobby servos all use this principle.
Quick sizing rule of thumb: Motor mechanical power is torque times angular velocity: P = τ × ω. A motor rated at 0.5 N·m of torque spinning at 3000 RPM produces:
This tells you whether a motor can actually deliver the mechanical work your application demands before you ever write a line of control code.
When to pick which:
