If you need a general-purpose NPN bi junction transistor (BJT) for low-power switching under 100mA, buy the 2N3904. For the PNP equivalent, buy the 2N3906. If your load draws between 100mA and 500mA, step up to the 2N2222 (NPN) or 2N2907 (PNP). These four part numbers will cover 90% of your bench and microcontroller interfacing needs, costing roughly $0.02 to $0.05 each in 2026.
While MOSFETs dominate high-power switching, the BJT remains the undisputed king of cheap, low-side signal routing, linear amplification, and simple current limiting. This guide skips the abstract semiconductor physics and gives you the exact biasing math, pinout traps, and testing procedures you need to put them to work.
The Pinout Trap and Safe Default Part Numbers
The most common way hobbyists destroy a bi junction transistor on the bench isn't through overvoltage; it's by assuming all TO-92 packages share the same pinout. They do not. When you hold a standard TO-92 package with the flat side facing you and the leads pointing down, the pin order changes based on the manufacturer and regional standard.
Here are the safe defaults you should stock in your lab:
| Part Number | Type | Max Ic | Max Vce | Typical hFE (β) | Package | Pinout (Flat side to you) |
|---|---|---|---|---|---|---|
| 2N3904 | NPN | 200 mA | 40 V | 100 - 300 | TO-92 | E - B - C |
| 2N3906 | PNP | 200 mA | 40 V | 100 - 300 | TO-92 | E - B - C |
| 2N2222A | NPN | 800 mA | 40 V | 100 - 300 | TO-92 / TO-18 | E - B - C (TO-92) |
| BC547 | NPN | 100 mA | 45 V | 110 - 800 | TO-92 | C - B - E |
| TIP120 | NPN Darlington | 5 A | 60 V | 1000+ | TO-220 | B - C - E |
Operation Regions: Where the Magic (and Heat) Happens
A BJT operates in one of three distinct regions depending on the bias voltages applied to its Base-Emitter (Vbe) and Base-Collector (Vbc) junctions. Understanding these voltages is critical for deciding whether your circuit will act as a clean switch or a linear amplifier.
| Region | Vbe (Base-Emitter) | Vce (Collector-Emitter) | Collector Current (Ic) | Primary Use Case |
|---|---|---|---|---|
| Cutoff | < 0.5V | Vce = Vcc (Supply) | ≈ 0 A (Leakage only) | Switch OFF (Open circuit) |
| Active | ≈ 0.6V - 0.7V | > 0.3V (Typically 2V+) | Ic = β × Ib | Linear Amplification |
| Saturation | ≈ 0.7V - 0.8V | < 0.2V (Typically 0.05V) | Ic < β × Ib (Limited by load) | Switch ON (Closed circuit) |
The Saturation Rule: When using a BJT as a switch, you must drive it into hard saturation. If Vce lingers at 1.5V while passing 500mA, the transistor is dissipating 0.75W of heat (P = Vce × Ic). In a tiny TO-92 package rated for ~625mW total dissipation, this will cause thermal runaway and melt the silicon. In saturation, Vce drops to ~0.05V, reducing dissipation to a negligible 25mW.
How to Bias a BJT for Switching: A Complete Application Circuit
Let's build a 12V relay driver controlled by a 5V microcontroller GPIO (like an Arduino Uno or ESP32). We will use the 2N3904 NPN transistor.
Circuit Specifications:
- Load: 12V Relay coil drawing 40mA.
- Control Signal: 5V from GPIO.
- Target: Hard saturation to minimize heat.
Step 1: Calculate the Required Collector Current (Ic)
Ic is dictated by the load. Ic = 40mA.
Step 2: Determine the Base Current (Ib) using Forced Beta
Datasheets list a typical hFE (β) of 100 to 300. However, hFE drops significantly in saturation and varies with temperature. To guarantee saturation, we use a 'forced beta' of 10. This means we overdrive the base with 10 times more current than theoretically needed.
Ib = Ic / 10 = 40mA / 10 = 4mA.
Step 3: Calculate the Base Resistor (Rb)
The GPIO outputs 5V. The Base-Emitter junction drops about 0.7V.
Rb = (Vgpio - Vbe) / Ib
Rb = (5V - 0.7V) / 0.004A = 1075 Ω.
Select the next lower standard E12 resistor value to ensure enough current: 1kΩ.
Complete Component List & Wiring:
- Q1: 2N3904 (NPN). Emitter to System GND. Base to 1kΩ resistor. Collector to Relay Coil Pin 1.
- R1: 1kΩ (1/4W) resistor. Connects between GPIO pin and Q1 Base.
- K1: 12V Relay. Coil Pin 2 to +12V supply.
- D1 (Flyback Diode): 1N4148 or 1N4007. Cathode (stripe) to +12V, Anode to Q1 Collector. Never omit this; the relay coil's inductive kickback will instantly punch through the BJT's Vce rating and destroy it.
- R2 (Pull-down): 10kΩ resistor from Base to GND. Ensures the transistor stays off if the microcontroller pin floats during boot-up.
Failure Modes and Multimeter Diode-Test Troubleshooting
BJTs rarely fail gracefully. When they exceed their Safe Operating Area (SOA), the silicon junction shorts, or the internal bond wire melts open. The most common failure modes are:
- Secondary Breakdown: High Vce and high Ic simultaneously create localized hot spots in the silicon, melting a hole through the junction. Result: Collector-Emitter dead short.
- Thermal Runaway: As a BJT heats up, its Vbe requirement drops, causing it to draw more base current, which creates more heat. Result: Melted TO-92 plastic and a shorted junction.
- Inductive Kickback: Switching off a motor or relay without a flyback diode generates a voltage spike exceeding the Vceo rating (e.g., 40V), puncturing the collector-base junction.
How to Test a BJT with a Digital Multimeter (DMM)
You don't need a specialized transistor tester. Set your DMM to Diode Test mode (the symbol with an arrow and a line). A healthy BJT behaves exactly like two diodes sharing a common anode (NPN) or cathode (PNP).
- Identify the Base: Probe pins until you find the one that shows a ~0.600V to ~0.700V drop to the other two pins in one polarity, and 'OL' (Over Limit) in the reverse polarity. That is your Base.
- Determine NPN vs. PNP: If the red probe is on the Base to get the 0.6V reading, it's NPN. If the black probe is on the Base, it's PNP.
- Check Collector-Emitter: Put probes across Collector and Emitter. It must read 'OL' in both directions. If it reads 0.00V or a low resistance, the junction is punctured and the part is trash.
- Distinguish Collector from Emitter: In diode mode, the Base-Collector junction will typically read a slightly lower forward voltage (e.g., 0.615V) than the Base-Emitter junction (e.g., 0.645V) due to differences in doping concentrations.
Decision Tree: Picking the Exact Part for Your Circuit
Stop guessing which transistor to pull from your bin. Follow this decision matrix to select the optimal bi junction transistor for your specific load requirements. For a deeper look at BJT characteristics and semiconductor theory, refer to the All About Circuits semiconductor guide or the Electronics Tutorials BJT primer.
| Load Current (Ic) | Load Voltage (Vce) | Control Signal | Concrete Part Pick | Why This Part? |
|---|---|---|---|---|
| < 100 mA | < 30 V | 3.3V or 5V Logic | 2N3904 (NPN) / 2N3906 (PNP) | Cheapest, ubiquitous, easily driven into saturation with a 1kΩ base resistor. |
| 100 mA - 500 mA | < 40 V | 5V Logic | 2N2222A (NPN) / 2N2907A (PNP) | Handles half an amp without a heatsink. Excellent for small motors and heavier relays. |
| 500 mA - 3 A | < 60 V | 5V Logic | TIP120 (NPN Darlington) | Built-in Darlington pair gives massive gain (hFE > 1000). Requires minimal base current, but note the high Vce(sat) of ~2.0V (needs a heatsink at 2A+). |
| > 3 A | Any | Any | STOP. Use a MOSFET. | BJTs require too much base current for high loads. Switch to a logic-level N-channel MOSFET like the IRLZ44N. |
The Golden Rule of BJT Selection: If your forced-beta base current calculation exceeds 15mA, abandon the BJT topology. The power wasted in the base resistor and the strain on your microcontroller GPIO outweigh the $0.05 cost savings of a BJT. Pivot to a logic-level MOSFET, which requires virtually zero continuous gate current, and reserve your bi junction transistors for low-power signal routing, linear amplification, and sub-500mA switching tasks.






