Low side vs. High side transistor switch

Why do these both exist, how do they work, and when do you use them?

Low switch vs High switch Banner

A common task for a transistor is switching a device on and off. There are two configurations for a transistor switch: low side and high side. The location of the transistor determines the type of circuit and its name. Either transistor configuration can use a BJT or MOSFET.

In this post, I draw the configuration for both transistor types, talk about which requires a driver, and explain why you would use either. If you are new to transistors, check out the resource links at the bottom. I have a couple of videos I made and some from element14’s The Learning Circuit which do a great job introducing transistors.

Low-side transistor configuration

When the transistor is connected to ground, that means the load is between +V and the transistor. Since the transistor is switching the path to ground or is sitting on the low side of the load, it is called a low side switch.

Typically these use an NPN BJT or an N-Channel MOSFET.

Low-Side with FET Pull-down

Low-Side Transistor Examples (Note the FET has a pull-down resistor.)

For an NPN BJT, the emitter connects to ground, and the collector attaches to the negative side of the load. As a switch, the BJT operates in saturation mode. Saturation means there is enough base current to turn on the transistor fully.

For an N-Channel MOSFET, the source connects to ground, and the drain connects to the negative side of the load. While you can use a JFET for this circuit, an enhancement mode MOSFET works better.

High-side transistor switch

The opposite of the low side switch is the high side switch. This transistor connects between +V and the load. Because of how transistors work, these can be a little more difficult to use in an Arduino or Raspberry Pi circuit.

Typically these use a PNP BJT or P-Channel MOSFET.

High-Side with FET Pull-Up

High-Side Transistors (Note the FET has a Pull-Up resistor.)

For a PNP BJT, the emitter connects to the voltage source, while the collector connects to the load’s positive side. Looking at the schematic drawing for an NPN and PNP, the PNP might look like it is upside down. Just like the NPN, the PNP BJT needs to be operating in the saturation region to turn on the transistor fully.

For a P-Channel MOSFET, the source connects to the voltage source, and the drain connects to the load’s positive side. Like with the low-side, you probably want to use an enhancement mode MOSFET. Keep in mind that you may never find a depletion mode P-Channel. They only exist in textbooks and as data entry errors.

P-Channel MOSFET with same load voltage

P-Channel MOSFET with same load voltage

When using a P-type transistor on a load voltage that is the same voltage level as the signal driving the transistor, the circuit above works fine. Well, the logic is inverted, but other than that, is fine. For a detailed explanation, check out this post I wrote on P-Channel MOSFET Tutorial with only Positive Voltages.

When the load voltage is HIGHER than the signal voltage, you need a driver. Next, let’s see how a driver gets used with low-side and high-side transistor switches.

Transistor driving another transistor

A driver transistor circuit is one that controls another transistor. This circuit is not the same as a BJT Darlington pair, which is a high gain BJT. Instead, a transistor driver is used when the driving signal’s voltage (or current) is not compatible with the load transistor. Below are two cases where you might need to use a transistor driver. These are, by no means, the only ones. So if you know of a case, or suspect you need one, leave a comment with it.

Transistor Driver Examples

Transistor Driver Examples

High current MOSFETs have a substantial Vgs threshold. While 5 volts from an Arduino GPIO pin might be enough to turn on the transistor, it isn’t enough to drive it into saturation. Until the FET is saturated, its Rds-ON can be relatively high, limiting the maximum current it can handle.

It is very common to use an NPN driver with a PNP BJT or P-Channel MOSFET, when the load voltage is higher than the signal voltage. Without a driver, the transistor may never turn-off. The driver, effectively, boosts the driving voltage high enough to unbias the Vbe or Vgs junction of the transistor. My tutorial on PWM a PC fan is an example of an Arduino driving a 12 volt fan with a PNP.

Why even bother with high-side transistors?

For both BJT and MOSFET transistors, their P-Type generally have more resistance (or lower current capability) than their N-type counterparts. For that reason, some might conclude you should always use an N-type in a low-side configuration.

However, step back and think for a second what the two different circuit types are doing. The low-side switch is switching ground while the high-side switch is connecting the voltage supply. Generally in a circuit, you want to keep the ground connected and switch the power. One reason is that even when the transistor is fully turned on, there is still a small voltage drop across it. That voltage drop means the ground is not 0 volts for that device. For something simple like an LED, it does not matter which you switch. However, an active device like a Microcontroller needs its ground to be ground! So when you have a load that requires ground, you NEED to use a high-side switch.

As a quick rule of thumb, if you are turning a device on and off, a low-side switch is a simple solution. However, if you are delivering power to an entire circuit or a voltage sensitive device, then you want to use a high-side switch.

By the way, there are off-the-shelf components called a “load switch.” These are ICs that have a P-Channel MOSFET as the switching transistor with a built-in driver for that P-Channel. There is no external driver needed for this type of components.

Transistor Basics Links (for Reference)

  • The Learning Circuit, How Transistors Work.  Karen explains from the ground-up how bipolar junction transistors (BJTs) operate. There are many transistor physics explanations on the web, but Karen’s is the clearest one I have come across.
  • The Learning Circuit, BJT Feedback. In this TLC episode, I joined Karen and addressed some misconceptions from the community (and I suspect others) on the video linked above.
  • AddOhms, BJTs. The video I made about BJTs. I don’t get into how the electrons work, but instead, show how to use one in a circuit.
  • AddOhms, MOSFETs. Part two of my transistor videos. In this episode, I explain how to use MOSFETs. (This video is the most popular on my YouTube channel with, literally, millions of views.)

Question: What are other popular transistor configurations you have used in your circuits? You can leave a comment by clicking here.

Long comments, URLs, and code tend to get flagged for spam moderation. No need to resubmit.

Leave a comment

12 thoughts on “Low side vs. High side transistor switch

  1. Thanks for this great info! I’m learning a lot.

    I have a question in your description of the high-side switch. You mention that for the P-Channel MOSFET, the drain connects to the voltage source, and the source connects to the load’s positive side. This is the opposite of what your diagram shows. Is this a mistake in your text description?

  2. Great tutorial for those of us just learning as we make things. I am in the middle of controlling a siren using an Arduino and IRL520 MOSFET. I was wondering about some of the possible configurations and the logic of using one over the other, you answered the question, well done.

    I have seen some circuit diagrams that use a 10k pull-down resistor on the Gate while other s omit it. Is this resister good practice or unnecessary?


    • Depending on when you looked, I updated the diagrams to include pull-down and pull-up resistors on the MOSFETs. A MOSFET gate is such high impedance, that a resistor is helpful when you need to force it to a known state. The most common example is a GPIO pin. At first, you might think, “well it will always either be high or low.” That is true. Except for IO pins, on every MCU I know about, start in a high-impedance state. So there is a short period of time where the MOSFET’s gate is effectively disconnected. In those cases, a pull-up or pull-down resistor is a good idea.

      The same could be said for BJTs. Most BJTs have enough leakage current that they naturally stay off until a voltage is applied. However, a pull-up or pull-down should be considered.

  3. you need connect resistor between base and emitter (also between gate and source) . Imagine, control pin disconnected.

  4. Always useful to have another explanation of these. I have to look it up every time.
    Just started dabbling with FETs. I needed one to drive a circulating fan in a fridge by Arduino PWM so it ramped up and down according to temperature,
    I also needed to drive a relay with the output from a sensor (HCPL3760) that has an output low on current sense. The relay needed high side switching. A P-channel FET did the job nicely with no additional components. I’ve see references to holding the gate high with a pullup resistor going to Vcc. I guess you don’t leave the gate floating?

  5. Hey James, I spotted you put a resistor on the base and gate connections of the transistors. How do you calculate the values of these for each of the difference circuits?