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.

ALL comments submitted with fake or throw-away services are deleted, regardless of content.

Don't be a dweeb.

Leave a comment

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

  1. I built the second Transistor Driver example, but I think it has an issue. If you switch on the NPN on the left, what limits the current flowing from Vcc, into the PNP, out of the base, through the NPN and info ground – there doesn’t appear to be a resistor in this path.

    • Hi!

      The NPN transistor’s current limiting resistor limits the base current, which means that the collector current is inherently limited. The collector current is also the PNP’s base current. Thus, the one resistor effectively limits the base correct for both transistors.

      Took me a while to understand that, too 🙂

  2. I’m using P-channel mosfets to control the anodes on rows of an RGB LED matrix. N-channel mosfets control the cathodes. It’s an 8×32 matrix that works fine when Vdd is 5 volts, but when the voltage is raised to about 8 volts (I need 12 volts to light the LEDS brightly), other rows other than the ones I chose come on. I.E. all rows are on when I just want the top two. I’m using an Atmega328 and 74LS138 decoder to select one of the 8 rows with each o/p tied to the gate of the Pchannel fet.
    So, to reiterate: if voltage is 8 volts, the same rows light up but then so do all the rest in the same columns. I know it has something to do with the Vgs but my attempts to pull the voltage down to 5 volts with NPN transistor with/without zener diode, have failed. The mosfets are FQU11P06, Vgs between 2 and 4 volts. I think some calculations may be in order.
    The gate to source resistor is 10k ohms I’ve looked at some of the images/schematics on this page, but mine don’t work that way! I had breadboarded my design (~500 points on a PCB) but had the voltage turned down to 5 volts during testing because at +12 they were too bright and blinding me! My bad, because it works NOW at 5 volts but not at 12 volts.

    • Have you looked at some of the Arduino libraries for LED matrices?
      A particularly good one is by Majic Designs and goes under the name of Parola – both names would find the library on Github.
      The Arduino Forum is a good source of information as well.
      I guess you had a look at the MAX7221 chip which is specifically designed for driving matrices up to 8 of 8×8.

  3. So, I have a 12v 555 circuit that the output triggers a 12v lamp…..I installed a 2N2222 on the low side. The collector is at pin1 on the IC, the base is from a 5v trigger and the emitter connects to the 5v and 12v ground. Where there is not 5 volts triggering the transistor, the output on pin3 on the IC is around 4 volts. Do I then have to scrap the low side switch and do a high side switch? Use the emitter on the to make connection to pin and 8 on the IC?

    • The description doesn’t make a lot of sense.
      Can you add a circuit diagram and how you are using the 555?
      Pin 1 on the IC, I presume the 555, is ground – the collector of the NPN would not be connected to ground.
      The base of the transistor, if you are using the 555 to time, needs to be on the 555 output.
      Firstly, I would use the 7555, not the 555, then test the transistor part of the circuit separately from the timer.
      The 555/7555 takes a negative-going pulse on its trigger, the output is a positive-going pulse that goes to the transistor base.
      Low side switching would be fine for switching a lamp – what type of lamp? LED or filament?

        • You will need to ask the administrator.
          Usually, a simple hand-drawn sketch will do, photograph it and add or insert it as a png or jpeg file.
          If you can do it, draw it as it is connected.
          You still need to tell the readers exactly what you are trying to achieve, because all anyone can deduce at the moment is that you have a timer, an LED or buzzer and a transistor and that possibly the timer controls the transistor and the transistor turns the LED or buzzer on and off.
          Why don’t you set up a simple circuit with the transistor wired as a low side switch, emitter to ground, base through a resistor and switch to a positive voltage, collector to your LED, limiting resistor for the LED and the positive side of the LED to your 12-volt supply.
          You can measure voltages at the transistor collector pin relative to ground.

    • Hi! If you read through some of the comments, including mine, you’ll find that no additional limiting resistor is needed. The PNP base current is the NPN emitter-collector current. Therefore, when you calculate the NPN limit resistor using Ohm’s law, the current will be the PNP base current divided by the NPN hFE.

      This took awhile to sink in for me (pun intended).