From a 3.3 V or 5 V pin
| Pin | Verdict | Why | In free air |
|---|---|---|---|
| ESP32 · 3.3 V | Works | 150 Ω on the base: up to 50 mA of load at a gain of 10 | 50 mA (saturation data) |
| Arduino Uno · 5 V | Works | 220 Ω on the base: up to 50 mA of load at a gain of 10 | 50 mA (saturation data) |
In free air at 25 °C, with the junction 25 °C below its 150 °C maximum and θJA 200 °C/W, from a 20 mA pin at the datasheet’s forced gain, and no further than the highest current with a guaranteed saturation voltage.
Specifications
| Type | NPN |
|---|---|
| Package | TO-92 |
| Maximum voltage | 40 V |
| Maximum current | 200 mA |
| Minimum gain hFE | 60 at 50 mA · 30 at 100 mA |
| VCE(sat), maximum | 0.2 V at 10 mA (IC = 10 × IB) · 0.3 V at 50 mA (IC = 10 × IB) |
| VBE(sat), maximum | 0.85 V at 10 mA (IC = 10 × IB) · 0.95 V at 50 mA (IC = 10 × IB) |
| Thermal resistance | θJA 200 °C/W |
| Maximum junction temperature | 150 °C |
| Datasheet used | onsemi |
Pinout
| Pin | Function |
|---|---|
| 1 | Emitter |
| 2 | Base |
| 3 | Collector |
Flat face toward you, leads down: pin 1 is on the left.
Similar parts
| Part | Package | VCE(sat), guaranteed | Max voltage | Max current |
|---|---|---|---|---|
| 2N3904 | TO-92 | 0.3 V at 50 mA (IC = 10 × IB) | 40 V | 200 mA |
| 2N2222A | TO-92 | 1 V at 500 mA (IC = 10 × IB) | 40 V | 600 mA |
| BC547 | TO-92 | 0.6 V at 100 mA (IC = 20 × IB) | 45 V | 100 mA |
| S8050 | SOT-23 | 0.6 V at 500 mA (IC = 10 × IB) | 25 V | 500 mA |
| TIP120 | TO-220 | 4 V at 5 A (IC = 250 × IB) | 60 V | 5 A |
Tips
The base resistor is sized for IC = 10 × IB, the condition of the datasheet’s saturation voltage. A higher gain from the hFE column would leave the transistor half on and hot.
Every coil needs a flyback diode across it, cathode to the positive supply. Without it the voltage spike at turn-off can destroy the transistor at the first switching.
Open the calculator →Check the 2N3904 with your own load, supply, PWM frequency and temperature.
Other transistors
2N2222A BC547 S8050 TIP120 2N7000 BS170 AO3400A Si2302 IRLML6344 IRLZ44N IRLB8721 IRF520 IRF540N AO3401A IRF9540N
Frequently asked questions
Does the 2N3904 work with a 3.3 V ESP32?
Yes, with a base resistor: at the gain of 10 the datasheet uses for saturation, a 20 mA pin drives the 2N3904 up to 50 mA of load. For more current use a logic-level MOSFET.
How much current can the 2N3904 switch without a heatsink?
About 50 mA from a 5 V Arduino pin, in free air at 25 °C, keeping the junction 25 °C below its 150 °C maximum (limit: saturation data).
What is the 2N3904 pinout?
TO-92: 1 emitter, 2 base, 3 collector. Flat face toward you, leads down: pin 1 is on the left.
Source of the figures: onsemi datasheet (PDF)