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.

Bench Warning: Never wire a BJT from memory. The 2N3904 (US standard) is E-B-C (Emitter, Base, Collector). The BC547 (European standard) is C-B-E. Swapping the Collector and Emitter will forward-bias the reverse-biased junction, resulting in a very low breakdown voltage (often around 6V) and immediate thermal failure.

Here are the safe defaults you should stock in your lab:

Part NumberTypeMax IcMax VceTypical hFE (β)PackagePinout (Flat side to you)
2N3904NPN200 mA40 V100 - 300TO-92E - B - C
2N3906PNP200 mA40 V100 - 300TO-92E - B - C
2N2222ANPN800 mA40 V100 - 300TO-92 / TO-18E - B - C (TO-92)
BC547NPN100 mA45 V110 - 800TO-92C - B - E
TIP120NPN Darlington5 A60 V1000+TO-220B - 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.

RegionVbe (Base-Emitter)Vce (Collector-Emitter)Collector Current (Ic)Primary Use Case
Cutoff< 0.5VVce = Vcc (Supply)≈ 0 A (Leakage only)Switch OFF (Open circuit)
Active≈ 0.6V - 0.7V> 0.3V (Typically 2V+)Ic = β × IbLinear 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Ω.

Pro-Tip: Always verify your GPIO can source the calculated Ib. A 4mA draw is perfectly safe for an ATmega328P (20mA max per pin) and an ESP32 (40mA max per pin). If your forced beta calculation demands 25mA from the GPIO, you must use a Darlington pair (like the TIP120) or switch to a MOSFET.

Complete Component List & Wiring:

  1. Q1: 2N3904 (NPN). Emitter to System GND. Base to 1kΩ resistor. Collector to Relay Coil Pin 1.
  2. R1: 1kΩ (1/4W) resistor. Connects between GPIO pin and Q1 Base.
  3. K1: 12V Relay. Coil Pin 2 to +12V supply.
  4. 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.
  5. 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).

  1. 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.
  2. 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.
  3. 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.
  4. 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 SignalConcrete Part PickWhy 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.