
DC motor speed controller
arijit-arijit/pcb_design
my journey in learning to design PCBs from scratch through tutorials and projects

A simple, low-cost DC fan speed controller built around the classic NE555 timer IC operating in astable mode. Fan speed is adjusted by varying the PWM duty cycle via a potentiometer, while a TIP122 Darlington transistor handles the switching current for the fan load.
Fanspeed is an open-source printed circuit board by Aniket95-code, from the Aniket95-code/Fan-Speed-Controller-NE555-PCB-design repository on GitHub. It is a 2-layer board of 68 × 50.5 mm with 19 parts on 11 nets, routed with 93 tracks and 2 vias.
It is built around the NE555P and TIP122. Its parts include 4 diodes, 3 capacitors, 3 resistors, 2 connectors and 1 IC.
A simple, low-cost DC fan speed controller built around the classic NE555 timer IC operating in astable mode. Fan speed is adjusted by varying the PWM duty cycle via a potentiometer, while a TIP122 Darlington transistor handles the switching current for the fan load.
This circuit generates a variable-duty-cycle square wave using the NE555 and uses it to drive a power transistor that switches the fan on and off rapidly (PWM). By independently controlling the charge and discharge paths of the timing capacitor (via D2/D3 and the potentiometer RV1), the duty cycle can be adjusted from low to high while keeping the oscillation frequency relatively stable — giving smooth, flicker-free speed control over the fan.
| Reference | Description | Function |
|---|---|---|
| J1 | 2-pin screw terminal | DC power input |
| C1 | 1000 µF electrolytic capacitor | Input power supply filtering / decoupling |
| R1 | 2.2 kΩ resistor | Current-limiting resistor for power LED |
| D4 | LED | Power-on indicator |
| R2 | 1 kΩ resistor | Charge-path resistor for 555 timing network |
| D2, D3 | 1N4007 diodes | Steer charge/discharge current through separate paths for independent duty-cycle control |
| RV1 | Potentiometer | Adjusts PWM duty cycle → controls fan speed |
| C2, C3 | 100 nF capacitors | Timing/frequency-setting capacitors for the 555 oscillator |
| U2 | NE555P | Astable oscillator generating the PWM signal |
| R3 | 1 kΩ resistor | Base drive resistor for switching transistor Q1 |
| Q1 | TIP122 | NPN Darlington power transistor — switches fan current |
| D1 | 1N4007 | Flyback/freewheeling diode across the fan (inductive load protection) |
| J2 | 2-pin screw terminal | Fan output connector |
| PWR_FLAG / GND | Power flags | Net markers used for ERC (electrical rules check) — not physical components |
J1 and is bulk-filtered by C1. R1 and D4 provide a visual power-on indication.U2) is configured in astable mode, oscillating based on the RC timing network formed by R2, RV1, D2, D3, and C2/C3.D2 and D3 split the charge and discharge paths of the timing capacitor through opposite halves of the potentiometer RV1. This lets RV1 independently vary the duty cycle of the output waveform without significantly changing the oscillation frequency.OUT pin (pin 3) drives R3, which feeds the base of Q1 (TIP122 Darlington transistor).Q1 switches the fan (connected at J2) on and off at the PWM frequency and duty cycle set by the 555 timer network — effectively controlling the average voltage/current delivered to the fan, and therefore its speed.D1 (1N4007) is placed across the fan output to clamp the back-EMF spike generated when the inductive fan motor winding is switched off, protecting Q1 from voltage transients.Turning the potentiometer RV1:
At very low duty cycles, some fans may stall due to insufficient starting torque — this is a normal limitation of open-loop PWM fan control.
| Qty | Reference | Value / Part | Package Notes |
|---|---|---|---|
| 1 | U2 | NE555P | DIP-8 / SOIC-8 |
| 1 | Q1 | TIP122 | TO-220 (Darlington NPN) |
| 4 | D1, D2, D3, D_flyback | 1N4007 | Rectifier diode |
| 1 | D4 | LED (5 mm or SMD) | Power indicator |
| 1 | C1 | 1000 µF electrolytic | Rated ≥ input voltage + margin |
| 2 | C2, C3 | 100 nF ceramic | 555 timing capacitors |
| 1 | R1 | 2.2 kΩ | LED current limiting |
| 1 | R2 | 1 kΩ | Timing resistor |
| 1 | R3 | 1 kΩ | Base drive resistor |
| 1 | RV1 | Potentiometer | Value per desired frequency range (e.g. 10 kΩ–100 kΩ) |
| 2 | J1, J2 | Screw Terminal, 1×02 | Power in / fan out |
Note: Exact potentiometer and timing capacitor values should be selected based on the desired PWM switching frequency (typically 100 Hz–25 kHz for fan control, chosen to stay outside the audible whine range while remaining compatible with the fan's driver electronics).
D1 can handle the fan's peak inductive current.J1 for over-current protection.This design is provided as-is for personal and educational use. Adapt component values as needed for your specific fan and supply voltage.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 4 | MountingHole_2.2mm_M2_DIN965_Pad_TopBottom | MountingHole:MountingHole_2.2mm_M2_DIN965_Pad_TopBottom | H1, H2, H3, H4 |
| 3 | 1N4007 | Diode_THT:D_DO-41_SOD81_P10.16mm_Horizontal | D1, D2, D3 |
| 2 | 1k | Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal | R2, R3 |
| 2 | Screw_Terminal_01x02 | TerminalBlock:TerminalBlock_Xinya_XY308-2.54-6P_1x06_P2.54mm_Horizontal | J1, J2 |
| 1 | 1000uf | Capacitor_THT:C_Disc_D4.7mm_W2.5mm_P5.00mm | C1 |
| 1 | 100nf | Capacitor_THT:CP_Radial_D10.0mm_P5.00mm_P7.50mm | C3 |
| 1 | 100nf | Capacitor_THT:C_Disc_D4.7mm_W2.5mm_P5.00mm | C2 |
| 1 | 2.2k | Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal | R1 |
| 1 | LED | LED_THT:LED_D5.0mm | D4 |
| 1 | NE555P | Package_DIP:DIP-14_W7.62mm | U2 |
| 1 | R_Potentiometer | Potentiometer_THT:Potentiometer_Alps_RK163_Single_Horizontal | RV1 |
| 1 | TIP122 | Package_TO_SOT_THT:TO-220-3_Vertical | Q1 |

arijit-arijit/pcb_design
my journey in learning to design PCBs from scratch through tutorials and projects

adityajoshi2008/555-Timer-PWM-DC-Motor-Speed-Controller
**555 timer-based PWM DC motor speed controller designed and developed in KiCAD for practical motor speed control.

apekg-blip/PWM-based-dc-motor-speed-controller
Built an analog DC motor speed controller using an NE555 timer IC and LM3914 LED bar graph for duty-cycle visualization. Designed the circuit schematic in KiCad, gaining experience in PWM and analog motor control

Hirusha785/DC-Motor-Speed-Controller-PCB
⚡ NE555 PWM DC motor speed controller PCB designed in KiCad, featuring adjustable speed control, TIP122 driver stage, flyback protection, screw terminals, and 3D PCB renders.

Mahender0408/Embedded-Systems-Projects
Embedded Systems, IoT and PCB Design Projects

MuhammadAbuzarCUI/DC-Motor-Speed-Controller-Using-555-Timer-IC-PCB-Designed-in-KiCad
PCB design of a DC motor speed controller using the 555 timer IC to generate a PWM signal for speed control. Includes circuit schematic and PCB layout for motor speed regulation by adjusting the PWM duty cycle.

Noraiz963/DC-Motor-Controller
A 555-timer-based DC motor speed controller designed in KiCad — uses a variable-duty-cycle PWM signal driven through a power transistor to control motor speed with a single potentiometer.

Rohit85885/Dc-motor-speed-controller-
> **Designed a DC Motor Speed Controller PCB using KiCad 9. The project regulates DC motor speed through efficient control circuitry, featuring schematic design, PCB layout, optimized routing, and ERC/DRC verification.
It measures 68 × 50.5 mm and has 2 copper layers, 1.6 mm thick.
19 parts, built around the NE555P and TIP122. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
From the Aniket95-code/Fan-Speed-Controller-NE555-PCB-design repository on GitHub, at the commit this page was made from: the board is PCB_files/fanspeed.kicad_pcb and its schematic PCB_files/fanspeed.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository states no licence, so its author keeps all rights: ask Aniket95-code before reusing the design.