I have a 12 V heating element which draws up to 5 A that I want to control from an ESP-12 microcontroller. I have tried to find a MOSFET for driving it, but all seem to need at least 5 V on the gate to allow current to flow.

Is a MOSFET the right component for this, or should I use a BJT? Also, how should I determine whether or not I will need to put a heatsink on whichever component I decide to use for driving this?

EDIT: After talking to some others, I found the Si2333DDS MOSFET.

If I'm reading correctly, I should be able to drive this directly from my microcontroller with no heatsink, since RDS(on) is only ~0.025 Ω at 3.3 V. Is this correct?


3 Answers 3


Yes, the MOSFET you specified will have an Rds of 0.015 Ω at 3.3 Vgs.

The power dissipated will be: R · I2 = 0.015 · 52 = 0.375 W.

With no heatsink, the temperature rise from Junction to Ambient will be: 0.375 W · 245 °C/W = 91 °C.

With a 6 cm2 copper PWB heatsink, the temperature rise from Junction to Ambient will be: 0.375 W · 104 °C/W = 39 °C.

You need to know your maximum ambient temperature and how hot is acceptable to you. At 70 °C you can burn yourself, so I like to limit heatsink temperature to 60 °C. So, no heatsink is not acceptable to me. 6 cm2 is marginal, I would increase to 9 cm2.

If you are severly constrained on space, you may have to accept a higher temperature. But, you really should stay under 100 °C, or your reliability could be compromised.

  • \$\begingroup\$ Thank you very much! Do you have a link to one of those heatsinks? \$\endgroup\$ Aug 29, 2022 at 2:44
  • \$\begingroup\$ These calculations are assuming that this is a copper layer on a PWB. This part doesn't really have a way to attach a heatsink otherwise. See if you can find a part in a TO-220 package, like this: STB60NF06L \$\endgroup\$
    – Mattman944
    Aug 29, 2022 at 2:50

You've picked a P-channel MOSFET so it cannot be driven directly from the ESP-32 assuming your 12V GND and 3.3V GND are common. It's also only rated for 12V Vds which is not a good idea for a 12V source since even a tiny stray inductance will cause the maximum rating to be exceeded when it switches. Also keep in mind that the Rds(on) rating is for 25°C die temperature and if the transistor gets hot that Rds(on) might be 20%-40% higher (see the typical curve on page 3 of your datasheet).

You can, however drive a P or N-channel MOSFET that can withstand 12V Vgs (preferably one with a 20V rating) with a few BJTs like this:


simulate this circuit – Schematic created using CircuitLab

A MOSFET such as the AOD21357 is inexpensive, and in an easy-to-use SMT package and has an Rds(on) of < 0.008\$\Omega\$ @25°C.

There are also gate driver ICs that will work from your 3.3V such as this one.

enter image description here


You need something like a IGBT gate driver or a gate driver IC and a power MOSFET along with a voltage source which can deliver 5A current. You generally control the gate driver with PWM or some other protocol. The gate driver IC may include a level shifter which shifts the voltage up.

This is a example of gate driver IC:



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.