I still have problems to interpret the datasheets of MOSFETs. I have a 2N7000 from UTC (datasheet here).

How much current can I guaranteed switch when I only have 3.3V from an Arduino? In my particular case I want to turn on some relays with between 30 and 120 mA.


5 Answers 5


Unfortunately, the datasheet does not guarantee anything at 3.3V Vgs. In fact, it almost guarantees that the 2N7000 will fail to switch properly under these conditions.

On page 2, the datasheet lists:

  • Gate Threshold Voltage: Max. 2.5V at 0.25mA Ids
  • Static Drain-Source On-Resistance: Up to 13.5 Ohms at 5V Vgs, 50mA
  • Dran-Source On-Voltage: Up to 1.5 Volts at 5V Vgs, 50mA

On page 3, graph On-Region Characteristics:

  • A typical 2N7000 conducts less than 100mA with 3V Vgs (at 1V Vds) in saturation (read the 3V Vgs curve at 1V Vds)

This means that...

  • You only have around 3.3V - 2.5V = 0.8V overdrive to actually turn the transistor on (that's way too little)
  • The datasheet only guarantees that the FET will switch 50mA with 5V Vgs (but you want to switch 100mA+ with 3.3V)
  • The datasheet also shows you that the FET will NOT be able to switch 100mA at 3V Vgs.
  • You want to stay far clear of the saturation current, so the On-Region graph tells you that you might be able to switch 10mA or so (a factor of 10 between saturation and switching current is typical).
  • It's absolutely not going to work.

It would be much easier to use a simple NPN transistor to switch your 5V relays. For example, the BC337-40 can easily switch 100mA with around 5mA of base current, as shown in figure 4 of the linked datasheet, while only needing at most 1V of base-emitter voltage. All you need to add is a 390 Ohm resistor between the GPIO of your Arduino and the base of the BC337-40 to limit the base current to those 5mA.

Like this:


simulate this circuit – Schematic created using CircuitLab

Don't forget the free-wheeling diode.

  • \$\begingroup\$ Thanks for the detailed answer! I even tested it and I am able to turn on up to 120 mA with it. So I guess I got lucky ones. Nonetheless, I want to be sure, so for production this is unusable. \$\endgroup\$ Commented May 25 at 13:38
  • \$\begingroup\$ I found a TN0104 in TO-92 package, I think this would work: ww1.microchip.com/downloads/aemDocuments/documents/APID/… \$\endgroup\$ Commented May 25 at 14:01
  • 1
    \$\begingroup\$ @Tintenfisch MOSFETs are also a type of transistor. \$\endgroup\$
    – Hearth
    Commented May 25 at 14:47
  • 4
    \$\begingroup\$ @Tintenfisch I've updated the answer with a NPN-based circuit you can use. The difference between a MOSFET and BJT, when used in a switching application, is that a BJT needs a certain base current to turn on, whereas a FET needs a certain gate voltage. At low supply voltages, it is often easier to generate a base current for a BJT than to find a FET that can turn on with the voltage that's available. \$\endgroup\$ Commented May 25 at 14:58
  • 1
    \$\begingroup\$ @Tintenfisch Yes, a BJT doesn't need a pull-down. \$\endgroup\$ Commented May 26 at 12:38

The data sheet has no such figure that gives you some guaranteed current at 3.3V gate voltage.

The FET barely turns on at 3V, and even at 5V Vgs gate voltage, with 50mA Ids current, there could be 1.5V Vds.

Which means, for a 5V relay that works at 50mA, you would only get 3.5V supply to relay at worst case.

For driving 120mA to relays with 3.3V or even 5V gate voltage, you should really be using another transistor.

The curves indicate tha 3V gate and 100mA could be done with 1V Vds.

  • \$\begingroup\$ Just what I was going to say! You should look for a MOSFET described as "logic level". One that is guaranteed to turn on when driven by logic voltages (maybe Vgsth about 1V). Have a look at the IRL540 to get an idea of what to look for, although this device is overkill regarding current and voltage handling capabilities in your application. Most of the major suppliers have component selector pages that will help you narrow down your options. \$\endgroup\$ Commented May 25 at 13:27
  • \$\begingroup\$ Unfortunately I am unable to find logic level MOSFETs in TO-92 package. They are all SMD ones :( \$\endgroup\$ Commented May 25 at 13:36
  • \$\begingroup\$ @Tintenfisch Through Hole TO-92-3 N-Channel MOSFET is a distributor search filtered on a TO-92 package with Vgs <= 1V. Perhaps a ZVN4424A, or others would be suitable. \$\endgroup\$ Commented May 25 at 17:04

The graph from the datasheet that I use to quickly evaluate if a FET will work for me is the Gate Charge Characteristics. The one for the 2N7000/7002 is shown in the image from the data sheet

The horizontal region (called the Miller plateau) is the region where the drain voltage is rising or falling. The graph clearly shows the gate-source voltage required for three values of drain current.

I want the applied gate-source voltage to be higher than the Miller plateau voltage.

enter image description here


How much current can I guaranteed switch when I only have 3.3V from an Arduino?

According to the datasheet, the threshold voltage of the 2N7000 may be as high as 2.5 V. This means the overdrive voltage can be as low as 3.3 - 2.5 = 0.8 V.

Also, according to the datasheet, the FET is guaranteed to switch 50 mA at 5 V gate-to-source, which is possibly an overdrive voltage as low as 2.5 volts.

The saturation current is proportional to the overdrive current squared. 2.5^2 = 6.25 and 0.8^2 = 0.64. Their ratio is 0.1024.

Assuming the drain to source voltage is high enough to put the FET into saturation, the FET can only be guaranteed to conduct 50 mA x 0.1024 or approximately 5 mA at 3.3 V gate-to-source.


It's not guaranteed and not likely to work. Worst case Vgs(th) is 3V, specified at 1mA and with a 3V drop. It's not going to magically start conducting well 120mA with that last 300mV. Even the 'typical' characteristics are inadequate. Keep in mind that Rds(on) is much higher when it gets hot (and it will get very hot trying to switch 120mA with inadequate gate voltage).

In specific answer to your question, you can count on about 1mA with a reasonable voltage drop and assuming a worst-case device sample (ie. good design).

Use a BJT such as 2N4401/MMBT4401 or something like an inexpensive and multiple-sourced AO3400, which will have less than 0.048Ω Rds(on) with only 2.5V drive (at 25°C, higher at high temperatures, but even at 0.075Ω the voltage drop will only be 9mV maximum at 120mA and the power dissipation will be negligible (~1mW).

  • \$\begingroup\$ I had thought the max Vth for the 2N7000 was higher as well, but according to the provided datasheet, out is only 2.5 V. Different manufacturers? \$\endgroup\$ Commented May 25 at 16:28
  • \$\begingroup\$ @MathKeepsMeBusy I've linked the OnSemi datasheet, in which there are two specs for Vgs(th) maximum- one at 250uA (2.5V) and one at 1mA (3V). Since we want more than 1mA, extrapolating from the latter is less bold. \$\endgroup\$ Commented May 25 at 16:31

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.