# Switching 3.3V 150mA efficiently

I have a load (from 20 LEDs with 20 resistors) that I want to switch on/off as a single block, using a GPIO pin from a micro-controller.

I have measured the current to be 145mA at 3.3V Vcc.

simulate this circuit – Schematic created using CircuitLab

I have tried switching this load using two methods:

## Attempt A: N-channel mosfet

simulate this circuit

When I switch the load on with a 2N7002 N-channel mosfet, I see that only 86mA makes it through the switch.

I also tried the 2N7000 N-channel mosfet, and I see 90mA for that.

## Attempt B: Darlington Array

simulate this circuit

I tried switching it through the ULN2003 darlington array, using just 1 of 7 channels, I see a measly 64mA makes it through. (Coincidentally, this part seems to be sold-out everywhere, so I cannot use it anyway.)

Am I wrong to expect more current when switched? Did I use the mosfets or darlingtons incorrectly?

• I would use your 2nd schematic but not with the 2N7000. That MOSFET really needs a higher gate-source voltage than 3.3 V to fully conduct. Instead I would use an AO3400 which will have a much lower resistance when a Vgs = 3.3 V is applied. The AO3400 is an SMD component though so quite small. Nov 4, 2021 at 21:33
• There is also a relay you could consider -- they come latching and non-latching. No voltage drop across those so the current would be like the first case. A BJT can also be considered (not the Darlington configuration which drops a LOT of voltage.) So you should think about that, as well, before deciding.
– jonk
Nov 4, 2021 at 21:39
• Regarding using the Darlington transistors: these will always drop more voltage between Collector and Base (which then lowers the voltage across your LEDs + resistors and that lowers the current). You actually don't need a darlington here, your current is low enough to use a standard NPN like a 2N2222. Do add a resistor in series with the base though (without it, the base current will get out of hand), I would use 1 kOhm. Nov 4, 2021 at 21:39
• @Bimpelrekkie Thanks! Digikey has ao3400 in stock, although marked 'not for new designs.' Do you know if a part like that comes in array-form as well? I will be needing 5 of them on my pcb, eventually, so in a combined package would be convenient.
– Bram
Nov 4, 2021 at 22:03

Technically, you either expect devices to work better given the circumstances, or use them wrong. They are not zero ohm switches.

Case A: 2N7000 needs more than 3.3V at gate to turn on with low enough drain-source resistance to allow for more current. So too low gate voltage prevents the FET from turning fully on and there is a voltage drop over the FET, it has Vds larger than zero. This might get better by just recalculating a smaller resistor. Even at gate voltage of 4.5V, and 75mA drain current, the Vds voltage drop could be up to 0.4V.

Case B: ULN2003 channel is a Darlington transistor and these have Vce voltage drop of around 1V, so by calculating that into account you need to make the resistance smaller.

The ULN2003A is about 30 years old. It amazes me that folks do not look up newer/equivalent parts. The best FET equivalent is the TPL7407, but this is in short supply.

However there is a FET based pin equivalent that is readily available, the ULN2003V12. The device uses an N-channel FET instead of the Darlington arrangement in the ULN2003A.

There will still be an on-state V(low) limitation:

The ULN2003V12 is just 7 N-chan FETs, so they can be paralleled to bring the V(low) down. They also work just fine on 3.3V systems

• Thanks! Will look into those! The ULN2003V12S16-13 is one of those parts that has this weird digikey quirk: The show up in search result as "stock: 14,175 - Immediate" but when you click on it, "Stock: 0." I've asked digikey sales about it, but they give me a nonsensical answer.
– Bram
Nov 5, 2021 at 19:21
• Check Mouser too ...they seem to have plenty of stock. Nov 5, 2021 at 20:08