# How do I drive a 3V motor with an MCU+FET, when turning the motor on causes a voltage drop to 1V at the MCU?

I have a simple circuit; an MCU, a FET and a motor. The MCU drives a low side TN0702 FET which completes the motor circuit. Quite simple, so not sure if understanding the problem requires a schematic, but I can add one if needed. The motor draws 315mA, and the FET is rated up to 500mA.

The motor is powered by 2 C batteries and the circuit works when the MCU is powered by 3.3V (i.e. MCU has it's own power source). However, when I try to use the motor's power source (2.5V-3.0V) for the MCU, the MCU doesn't deliver enough voltage to turn the FET on (even though VGS(th) is 0.5V-1.0V). As the battery depletes, the problem worsens; at 3.0V the FET does not perform too well, but at 2.5V, the FET is barely on and because the FET isn't getting enough voltage at the gate; it overheats and fries.

So, perhaps one solution is a gate driver, right? But, where do I get the required voltage from? Is it that I'm just using the wrong FET?

I found that a power FET such as the IRLB8721 drives the motor faster than the TN0702 (comparing both with 5V at the gate), but I want to use the TN0702 as it has a lower VGS(on). The IRLB8721 has no problem (when the gate voltage is high) as it has a higher VGS(on); 1.35V-2.35V. That said, I want to keep the circuit compact, and a TO-220 power FET seems like overkill for 350mA.

Perhaps the solution here could be a gate driver (maybe using the TN0702 as a gate driver for a TO-92 FET that can handle more current), so where is the higher voltage going to come from? Even though the TN0702 VGS(th) is between 0.5V and 1V, it seems to only turn the motor on if the voltage at the gate is above 4V. I'm a bit confused by this. (Not sure if this makes sense; I was experimenting with a new circuit so perhaps the FET was damaged)

Maybe I figured out a possible cause to the VGS(th) not behaving how I expect: if I'm interpreting the datasheet correctly, and based on my limited understanding of transistors, if the motor current is very high, the gate on resistance increases. So, a relatively high current will take more voltage to turn the gate on. But is this understanding correct? Is this really the case for the IRLB8721 too which can handle very high currents of 62A?

Assuming we want to avoid changing the battery configuration, ultimately I believe that I need a higher voltage source for the FET gate, and one that is higher than the motor power source can provide. Is the solution perhaps to a) add a voltage booster circuit just for the FET gate, b) a voltage boost circuit for the MCU, c) a charge pump for the FET gate, or d) a better solution?

Because I'm hacking/modifying an existing product, I'd like to avoid modifying the battery compartment (but I can if it's the best way to solve the problem). The batteries provide the MCU with 2.5V, which turns out is just enough to power it (though surprisingly, it seems to still work at 1.8V which is well below the datasheet minimum). These voltages are too low to drive the FETs that I have.

Edit: Ok, so it turns out that this is the real problem...

One more thing, and possibly the main issue... if VIN at the MCU is 2.5V, when the motor turns on there's a relatively large voltage drop to 1V for about 500ms due to the inrush current, which recovers to 2.24V while the motor is running. Surprisingly the MCU stays on (perhaps there's a cap on the dev board that helps), but this also means that the output that drives the FET gate drops to [just below] 1V, which is far too little to turn the FET on (and great for destroying the FET). The MCU is an ESP8266 which draws 70mA with WiFi on and 20mA with WiFi off.

• If you're wanting to use a MOSFET as a switch, then Vgs(th) is really not the spec you should be aiming for. Vgs(th) is the point where the MOSFET just barely starts to turn on, and the value given in the datasheet is often not even a specific value, but given as a range instead. Jul 30, 2022 at 14:05
• Good to know! That explains why Vgs(th) isn't helping me here. What is a good way to determine the ideal minimum on voltage for a FET gate based on the datasheet? Does the minimum gate on voltage change with D to S current? Jul 30, 2022 at 14:11
• You should use the motor with a diode (or LDO) and a super-capacitor for its own supply ... and a good decoupling capacitor for MCU. Jul 30, 2022 at 15:12
• Look in the datasheet for the graphs which show you various Vds vs Id characteristics for various Vgs values as well as the Vgs vs Id graphs for different Vds values, for example the ones on page 3 of your IRLB8721. You say your motor draws 350mA - so I'd round that up for some margin and call it 1A. Looking at those graphs I'd estimate that the IRLB8721 really wants no less than 3V Vgs to reliably operate as a switch. Jul 30, 2022 at 19:01
• @brhans Thanks, that's helpful. Jul 30, 2022 at 22:24

Solution

Turn off WiFi on the ESP when the motor is running. Turns out that since WiFi uses quite a fair bit of power (relatively speaking), that's enough to cause the drop to 1V at VIN on the MCU at the time of the inductor inrush.

With WiFi off, when the motor turns on, voltage only drops to 1.76V 2.12V instead of 1V, which is just enough to turn the FET on. Though, I can't help but think that more voltage would be preferable, for when the circuit is operating on low battery. I'm still tempted to add a boost converter for the MCU and FET to make the design more robust (and possibly increase the lifetime of the components).

(1: VIN, 2: FET gate)

Or, as another user suggested, use a boost converter or little Joule Thief to charge a cap in preparation for the motor startup. Many thanks to user, MicroservicesOnDDD, for his comment on a different question which basically gave me the 'turn WiFi off' solution:

It sounds like your 3V source (2 x AA? C) just won't support the power requirement (evidence - each converter fails same way). If you have an application that can use pulsed power, you could charge up a capacitor and then run your motor and Wi-Fi for a bit. Then shut down and charge up again. If the batteries won't support your application, then you could possibly try 2 Energizer Ultimate AA Lithium non-rechargeables. If they work, then that might prove that, indeed, 2 Alkaline AA just can't put out the power.

There is a concept in low power design called the power budget, which may help you. If you ever watched Apollo 13 movie, their solution to getting the LEM started back up required starting up in a particular order with only the minimum of functionality. Once your motor is started up, it may draw less, or you may be able to run it at lower speed, but motor-startup will draw extra power at first. Also, the Wi-Fi may be able to be kept off until the motor is up and running.

Finally, for motor startup, charging up a capacitor (with a boost converter, or a little Joule Thief) in preparation for motor-startup might also help.

In this article, by Jack Ganssle, Designing Ultra-Low Power Systems, he's dealing with CR2032, but a lot of what he says would be applicable, or at least applicable, to your case.

Incidentally, Apollo 13 is absolutely one of my favorite movies of all time. So, that I can re-live something similar to getting the LEM started back up really lights me up.

Edit: Big honkin' cap

Another interesting solution from @glen_geek in the comments:

big honkin' electrolytic capacitor to the motor's DC supply that can be a source of turn-on surge current

I like this idea because it's simple but effective.

Original ideas

• Boost the MCU or FET gate voltage with a voltage boost circuit
• Change the battery configuration so the MCU/FET has a higher voltage source
• Use a FET with higher current and lower VGS(th)

Mouser seems to have a few FETs that match that criteria. I'm not sure if I'd have similar problems though. Perhaps I need a better understanding of RDS(on) and RG.

• One other possible solution adds a big honkin' electrolytic capacitor to the motor's DC supply that can be a source of turn-on surge current. Jul 30, 2022 at 13:43
• @glen_geek Aha! Yes! Of course. Nice and easy too. Jul 30, 2022 at 13:48
• @glen_geek Ok, so I gave this a try with a 1000uF cap, and it didn't seem to help. How honkin' were ya thinkin'? Jul 30, 2022 at 14:12
• Nick - let's try it with numbers...a 1000uf capacitor's voltage will drop 1V in 0.5 seconds when discharged by a load pulling only 2mA. I suspect your motor load pulls much more current, so 1000uf may not be enough. Be aware that your motor-switching FET may complain if you use more "C", and transients might appear that can cause problems to your control processor if wiring is too...casual. Jul 30, 2022 at 14:42
• Use super-cap 10 F (or more) Jul 30, 2022 at 15:15