Use a MOSFET for high-current, high-speed switching (like PWM motor control) because it is voltage-controlled and exhibits extremely low on-resistance. Use a Bipolar Junction Transistor (BJT) for low-cost, low-current linear amplification or simple switching where continuous base drive current is not a constraint. While both are three-terminal semiconductor devices used to control current flow, their internal physics dictate entirely different biasing networks, failure modes, and thermal profiles.
The Core Difference: Pinouts, Symbols, and Control
The fundamental divide between a MOSFET and transistor (specifically the BJT) lies in how they are turned on. A BJT is a current-controlled device, while a MOSFET is a voltage-controlled device.
BJT (NPN) Pinout and Operation
In a standard TO-92 or TO-220 NPN BJT, the pins are the Base (B), Collector (C), and Emitter (E). Current flowing into the Base controls a proportionally larger current flowing from Collector to Emitter. The ratio of Collector current to Base current is the DC current gain ($h_{FE}$ or $\beta$). Because the Base-Emitter junction acts like a forward-biased diode, it requires a continuous supply of current to remain in conduction, which loads down microcontroller GPIO pins.
MOSFET (N-Channel) Pinout and Operation
In an N-Channel MOSFET, the pins are the Gate (G), Drain (D), and Source (S). Applying a voltage between the Gate and Source ($V_{GS}$) creates an electric field that forms a conductive channel. Because the Gate is insulated by a thin layer of silicon dioxide, the steady-state Gate current is effectively zero. However, the Gate has parasitic capacitance, meaning it requires a brief burst of current to charge and switch states rapidly. Additionally, MOSFETs contain an intrinsic body diode between the Source and Drain, which allows current to flow in reverse if not accounted for in the circuit design.
Operation Regions and Safe Default Part Numbers
Both devices operate in distinct regions depending on the applied bias. Understanding these regions is critical for deciding whether the part will act as a variable resistor (amplifier) or a closed switch.
| Region | BJT (NPN) Behavior | MOSFET (N-Ch) Behavior | Typical Application |
|---|---|---|---|
| Cutoff | $V_{BE} < 0.6V$, $I_C = 0$ | $V_{GS} < V_{th}$, $I_D = 0$ | Switch OFF |
| Active / Linear | $I_C = \beta \times I_B$, acts as current source | $I_D$ proportional to $(V_{GS} - V_{th})^2$ | Signal amplification, linear regulators |
| Saturation / Ohmic | $V_{CE}$ drops to $V_{CE(sat)}$ (~0.2V - 2V) | $I_D$ proportional to $V_{DS}$, acts as resistor $R_{DS(on)}$ | Switch ON (PWM, digital logic) |
When prototyping or repairing boards, relying on proven, widely available silicon prevents supply chain headaches. Below are the safe default part numbers with their critical ratings.
| Part Number | Type | Max Voltage | Max Current | Key Switching Spec |
|---|---|---|---|---|
| 2N2222 | NPN BJT | $V_{CE}$ 40V | $I_C$ 800mA | $h_{FE}$ ~100, $V_{CE(sat)}$ ~0.3V |
| TIP120 | Darlington BJT | $V_{CE}$ 60V | $I_C$ 5A | $h_{FE}$ ~1000, $V_{CE(sat)}$ ~2.0V |
| IRLZ44N | Logic-Level MOSFET | $V_{DS}$ 55V | $I_D$ 47A | $R_{DS(on)}$ 22m$\Omega$ @ $V_{GS}$=5V |
| IRF520 | Standard MOSFET | $V_{DS}$ 100V | $I_D$ 9.2A | $R_{DS(on)}$ 270m$\Omega$ @ $V_{GS}$=10V |
How to Bias and Drive: A 12V Motor Switching Circuit
Let us build a complete switching circuit to drive a 12V DC motor drawing 2A using a 5V microcontroller GPIO. We will use the IRLZ44N logic-level MOSFET. For a deep dive into MOSFET gate drive requirements, refer to the All About Circuits MOSFET Guide.
Component List
- Q1: IRLZ44N N-Channel MOSFET
- R1: 100$\Omega$ resistor (Gate series)
- R2: 10k$\Omega$ resistor (Gate pull-down)
- D1: 1N4007 rectifier diode (Flyback)
- M1: 12V DC Motor (2A nominal)
Wiring and Biasing Steps
- Source to Ground: Connect the Source pin (Pin 3 on TO-220) directly to the system ground. Keep this trace short and thick to minimize parasitic inductance.
- Gate Pull-Down: Connect the 10k$\Omega$ resistor (R2) between the Gate pin (Pin 1) and Ground. This ensures the MOSFET stays off during microcontroller boot-up when GPIO pins are floating.
- Gate Series Resistor: Connect the 100$\Omega$ resistor (R1) between the microcontroller GPIO and the Gate pin. This limits the inrush current required to charge the Gate capacitance, protecting the microcontroller's internal GPIO trace from exceeding its 20mA-40mA absolute maximum rating.
- Load Connection: Connect one terminal of the DC motor to your 12V power supply. Connect the other motor terminal to the Drain pin (Pin 2) of the MOSFET.
- Flyback Diode: Place the 1N4007 diode in parallel with the motor. The cathode (striped end) must face the 12V supply, and the anode must face the Drain pin. This clamps the inductive voltage spike when the MOSFET turns off, preventing avalanche breakdown of the silicon.
If you were to use a TIP120 BJT instead for this same 2A load, you would need to supply roughly 2mA to 4mA of continuous Base current ($I_B = I_C / h_{FE}$) and accept a 2V voltage drop across the transistor, resulting in 4 Watts of continuous heat dissipation requiring a heatsink. The IRLZ44N drops only $I^2 \times R_{DS(on)} = 4A \times 0.022\Omega = 0.088W$, running cool to the touch without a heatsink.
Failure Modes and How to Test with a Multimeter
Semiconductors rarely fail open; they almost always fail shorted due to thermal runaway or voltage spikes. According to the SparkFun Transistor Tutorial, understanding how to verify a part on the bench saves hours of debugging.
How They Fail
- BJT Failure: Usually fails as a Collector-Emitter short. Caused by exceeding maximum power dissipation ($P_D$) or secondary breakdown from high voltage and high current simultaneously.
- MOSFET Failure: Usually fails as a Drain-Source short or a Gate-Source short. Gate punch-through occurs if $V_{GS}$ exceeds the datasheet maximum (typically $\pm$20V), often caused by static discharge (ESD) or inductive ringing on the gate trace.
Multimeter Testing Procedure
Set your digital multimeter to Diode Test Mode. Ensure the component is completely removed from the circuit to avoid parallel path false readings.
Testing an NPN BJT:
- Place the red probe on the Base and black on the Emitter. You should read a forward voltage drop of 0.5V to 0.7V.
- Move the black probe to the Collector. You should read a similar 0.5V to 0.7V drop.
- Reverse the probes (black on Base, red on Emitter/Collector). The meter should read 'OL' (Open Loop).
- Measure across Collector and Emitter in both directions. Both must read 'OL'. If you read near 0V, the BJT is shorted and dead.
Testing an N-Channel MOSFET:
- Discharge the gate by briefly touching the Source and Gate pins together with a piece of wire or your finger.
- Place the red probe on the Source and black on the Drain. You should read the body diode forward drop (typically 0.3V to 0.6V).
- Reverse probes (red on Drain, black on Source). It should read 'OL'.
- Measure Gate to Source and Gate to Drain in both directions. All readings must be 'OL'. Any finite resistance means the gate oxide is punctured.
- Transconductance Check: While keeping the black probe on the Source, touch the red probe to the Gate to charge it, then move the red probe back to the Drain. The meter should now read a very low voltage drop (near 0V) because the MOSFET is turned on. Short Gate to Source again to turn it off.
Frequently Asked Questions
Can I replace a BJT transistor with a MOSFET in an existing circuit?
Not without modifying the biasing network. A BJT circuit relies on a Base resistor sized to provide continuous current. If you drop a MOSFET into that same footprint, the Base resistor will act as a Gate series resistor, which is fine, but you will lack a pull-down resistor to Ground. Without a pull-down, the MOSFET Gate will float, picking up ambient EMI and causing the device to partially turn on, overheat, and fail. You must add a 10k$\Omega$ resistor from Gate to Ground when swapping a BJT for a MOSFET.
Why does my MOSFET get hot even when switching a small load?
This is almost always caused by insufficient Gate drive voltage. If you are driving a standard MOSFET (like the IRF520) with a 3.3V ESP32 GPIO, the $V_{GS}$ is below the threshold required to fully enhance the channel. The MOSFET operates in the linear (resistive) region rather than acting as a closed switch, dropping significant voltage and generating heat. Verify your $V_{GS}$ against the datasheet's $R_{DS(on)}$ specification chart, and switch to a logic-level part if your drive voltage is below 10V.
What is the safe default MOSFET and transistor for Arduino projects?
For low-current signal switching (under 500mA) or driving small relays, the 2N2222 NPN BJT is the undisputed default. It is cheap, robust, and requires only a simple 1k$\Omega$ base resistor. For power switching (motors, LED strips, solenoids drawing 1A to 10A), the IRLZ44N logic-level MOSFET is the safest default. It fully turns on at 5V, has a massive current rating, and its TO-220 package is easy to solder or mount to a heatsink if necessary.
Do I need a heatsink for my power transistor or MOSFET?
Calculate the power dissipation to decide. For a BJT, $P = V_{CE(sat)} \times I_C$. A TIP120 switching 3A drops about 2V, generating 6 Watts of heat. A standard TO-220 package without a heatsink can only dissipate about 1W to 1.5W safely in free air, so a heatsink is mandatory. For a MOSFET, $P = I_D^2 \times R_{DS(on)}$. An IRLZ44N switching 3A with an $R_{DS(on)}$ of 0.022$\Omega$ generates only 0.198 Watts. This easily dissipates in free air without a heatsink. Always do the math rather than guessing based on physical size.






