• EEVblog #262 – World’s Simplest Soft Latching Power Switch Circuit

    Want to use a single cheap momentary action push button switch to toggle your circuit power on and off? Try this circuit on for size.

    Be Sociable, Share!

      About EEVblog

      Check Also

      EEVblog #821 – Mailbag

      EEVblog #821 – Mailbag

      More Mailbag! Extended Teardown Video HERE Forum HERE SPOILERS: Military Mystery Item Teardown – UPDATE: ...

      • http://www.torbalscales.com/home.php?cat=254 Piotr

        I watch, the whole mobie.You had some really great ideas with ‘Soft Latching Power Switch’, I will try them out my myself, thanks!

      • Ed Voncken

        Heh – and here I was, thinking that Jellybean was an Aussie supplier of electronic parts 😉 Love the explanation, thanks!

        Would it be better to replace both bipolars with mosfets?

      • Pingback: EEVBlog’s Simple Soft Power | Milwaukee Makerspace()

      • Kukinjos

        Hi Dave,
        Great idea. I made this, and it works well, no oscillating at all, and it is simpler.



        • http://dren.dk Flemming Frandsen

          Wow that’s a whole lot more elegant, thank you for sharing!

        • Scott

          Looks cool but I can’t figure out how Q1 gets turned off. Also, when it is not powered on how do you ensure that the gate of Q1 is not high?

          • Kukinjos

            Q1 discharge C1 thru R3 when is turned ON, so when you push switch, discharged capacitor pulls gate to 0V. When is not powered on, gate of Q1 is low, why? because it is not powerd on and Q2 is allso not powered on, and on output is 0V.

            • vertamps

              Is Kukinjos twin mosfet circuit doable with bipolar transistors or Jfets?

          • Jorge Garcia

            Here’s how it works, initially the unit is off. The capacitor is charged through R1 and R3, the voltage across the CAP will be the same as Vin. When you push the button a Voltage of Vin shows up at Q1’s gate turning it on which in turn activates Q2. Now we have a voltage at the output which will latch Q1 on.

            Here’s where the magic happens if you notice the RC circuit formed by the Cap and R3 is connected to the drain of Q1, so when Q1 get turned on it will actually discharge the CAP through R3. With enough time the voltage across the cap will fall to zero and be ground potential. The next time you press the button now ground will be presented to the gate of the Q1 which will turn it off as well as Q2.

            The only problem I see with this circuit is that technically (due to capacitor leakage) it does consume some power when off to refresh the capacitor but it so small that it wouldn’t make a difference in the grand scheme of things. Sorry for splitting hairs.

            Jorge Garcia
            Cadsoft Support

            • Kukinjos

              Thanks Jorge for detailed explanation,
              my english is not so good 😉

            • Scott

              I get it now. Thanks

            • bart

              a problem i see with both solutions, yours and daves, is that you will have a problem switching it off when you have a capacitive load connected to it. this might especially be an issue when applied in a lab power supply. if you have current flowing back from the device connected to the power supply, it might keep the power supply on.

              i haven’t tried it though on the breadbord or pspice…

              Bart M

              • f4eru

                Bart, there’s an easy solution to that one also !

                Just add a C2 capacitor between the gate of Q1 and GND.
                C2 =1/10 * C1

                R2/C2 has to have a bigger time constant than the falldown of the power supply.

                Another solution for long times : a second mosfet in “parallel” of Q2 (one for the output, one for R2. That needs another resistor as a load, but works nicely.

                • http://www.briantilley.com Brian

                  I like your solution of adding a Q3, it seems to eliminate entirely the issue of capacitance (all though such a load would then stay charged, be it bug or feature).

                  I’m failing to see how your C2 idea would prove useful, if you might be able to go into more depth. It seems as though adding a C2 would just be increasing the capacitance of C1 while the switch is held, which is (at best) a brute force method. This would also make the time that the button must be held increase.

                  Could you explain with more detail how C2 would work? This seems like the better solution, providing the capacitance, Vout, and resistive load are known and constant. Q3/R4 would, however, be a great way to remove all worry at a higher cost.

        • Chris

          Looks like it might struggle to switch off if your load has any significant capacitance. If the output voltage is still high enough to keep the pass mosfet on by the time C1 is charged by the 1M+100K it will fail to turn off.

        • Ryan

          I really like the elegant solution posted by Kukinjos.

          I have a Li-ion battery as Vin on the latching circuit. It works fine lighting up an LED – I can click the switch on and off and the latch circuit behaves like I would expect it to.

          But, when I try to attach it to a boost voltage regulator, it won’t turn on. My voltage regulator is boosting the 3.7V Li-ion up to 5V.

          Voltage regulator: LM2623
          P-MOSFET: IRF9510
          N-MOSFET: ZVNL110A

          I notice people have posted concerns about the switch not being able to turn the supply off. I am having issues just turning the latch on.

          Any thoughts?

      • Antonio

        Loved this one. simply brilliant. Is this a design that could be easily ported to SMDs for a low power design?

        • Kukinjos

          Of course, I tested it down to 3.2V. It depends on mosfets Vgs you use.

      • JP

        Half a bee’s dick! Never heard that one before!

        Could have used a PIC10F200 and then got all your programmable control and various other functions done in the same part. Only about 10 cents more. The oscillation when holding down is a fail in my book.

      • http://wardyprojects.blogspot.com Adam Ward

        Superb video/tutorial once again, Dave.

        I followed along by simulating each of your circuits as you went along – building it up to the final design and I was thrilled to see that my simulation was working just as you had shown in the vid. Magical stuff!

        *Although I didn’t really get the simulations working until after you gave the resistor/cap values nearer to the end… but that’s no big deal. I’m not an EE myself so I didn’t have a feel for what the values should have been*

        Tremendously good content.

      • http://www.danielbjohnson.net Daniel Johnson

        I haven’t had a chance to watch this video yet, as I am at work. But its funny because I am designing my very own right now as a project: “Ping pong scoreboard”

        I have four buttons to the unregulated battery DC power source. I have these isolated by voltage divider/diodes only to the regulated side. This could be better…. Isn’t there some clever capactor trick, to isolate two voltages yet still sense from one side to the other without magnetics?


      • Drone

        What is this, April Fool’s Day? By logical definition, a power switch that requires power can turn itself off, but can never turn itself back on again.

      • cbseattle

        Absolutely brilliant. I’ve been looking for a way to solve this simply and everything I found is more complicated. But the best part is the presentation and explanation.

        If I ever want to do anything, I just hope that you might have done a video about it. This one came just in time. So thanks.

        p.s. what I’d really like (if you are taking requests) is an incrementing switch. In the simplest terms, it would act a bit like a manual meter… an LM3914 operated by a switch instead of a voltage.

        Again, thanks so much for helping.

      • Craig

        I like how clean and simple this is.. I’ll have to breadboard it up and play around with sometime. Too bad I don’t have any p-channel FETs lying around… maybe I’ll try a PNP BJT.

      • huh

        A similar approach is used in guitar stomp boxes. Here are some schematics.



        The switch could also be implemented using any D type flip flop arranged as a divider by 2. Most FF chips have multiple independent sections which would allow more switches per single chip.


      • Pingback: Circuits | Pearltrees()

      • Tony

        Some time ago I though up something like this, only coupled with a microcontroller in a battery-operated device.

        The idea was that the gate of PFET is pulled low by the button, and then held low by MCU until it’s finished with its task (whatever it happens to be) and then released, turning itself off to save battery until activated again by user.

      • Michael K.

        I love the idea, the solution and your video but…

        -> It’s possible to switch it on (again) with an external voltage.

        I would prefer the discrete flipflop solution.

      • noel

        Great circuit. But I wonder how’s the cost of all those parts+ momentary switch compared to the toggle switch solution? Would it still cost less?

      • Ben

        The patented version of this circuit mentioned in the forum discussion is available at:


      • http://lazylinux.com Jason

        Hey Dave I really like this idea but one thing I noticed is the circuit powers up when the supply is turned on. If my project loses power like the lights in my house flicker isnt this going to turn on? I don’t like that any way we could fix this, assuming my project is supplied by a wall wart, ac/dc converter or whatever pluged into mains.

      • Seth

        I may use this for my LCR bridge. The mains have to stay back in their shielded cage in the back. The original push on push off switch died. The EE I bought it from put a mini toggle on the BACK of the bridge. This is too stupid! I saw this used as a way to switch a practical joke into the caps lock key on a computer kbd that would play a musical greeting card you hide in your poor co-worker’s computer keyboard. I was too unamused at the time to even think about it! The bridge does travel with me, but reaching around back kinda sucks! A 5 cent momentary PB sounds great! No matching a part that was likely made special for a $20,000 LCR is very appealing! My friend abandoned being a EE and went to Dentist School! Let’s see them send that job over seas!

      • Craig

        Hi Dave,

        I built this circuit on an SMD board – it works great except for that when the board is handled it turns on unexpectedly with no button presses. I assume my body is at another ground potential or my fingers moisture is somehow triggering the FET. Is there some easy component to add to avoid this problem?

      • Pingback: Battery Powered Power Supply - Page 6()

      • dentaku

        I just tried the first circuit Dave drew at the start of the video by connecting an LED to it and it switches on by itself when I put power to my breadboard but clicking the OFF button only turns off he LED while the button is pressed. It doesn’t STAY off and of course the ON button doesn’t do anything because I can’t get it to stay off.

        I used a 3906 and a 3904 but I’m not sure what values to use for the resistors on my breadboard. I usually work with 6V or a 9V battery.

        Is this one of those circuits that works in the perfect world of simulations but in the real world it’s not so simple?

        • TheSlider2

          Replying for reference.

          He says it uses 2 npn transistors so you might want to check the wiring if you’re not using full npn since the 3906 is pnp.

          Didn’t try myself but my guess is that you’ll want to invert the collector and emitter if you want to use it.

      • rmorenojr

        To insure that Dave’s circuit is in the OFF state when power is initially applied, couldn’t you add a small cap from base to ground on the left BJT?

      • Martin

        The tapin’ on the white board is a killer!
        Otherwise the circuit is quite elegant.

        Thanks, Dave.

      • Ronald1962

        Hi folks,

        I can not get the IRF110 here in Germany.

        Does anybody knows a supplier?



      • Pingback: Single button push on push off | welcome to the world of...()

      • Pingback: Strom sparen | wer bastelt mit?()

      • Pingback: High sleep current problem solved! | An Arduino based underwater sensor project()

      • http://www.geometrixeng.com Neal Rosenblum

        Awesome circuit. I was thinking about using an interrupt, but this would still keep the microcontroller powered up for prolonged periods of time. This circuit allows me to completely power down my circuit.

      • Colton Murphy

        So, this post is really old; however, I needed a latching supply circuit for a new project I am doing. I tried a few circuits, including Dave’s, but the oscillation issue and the sensitivity of the RC part of the circuit made me search for something else. In case, anyone is interested, I searched for awhile and came upon this circuit: http://www.edn.com/design/power-management/4427218/Latching-power-switch-uses-momentary-pushbutton. It uses one less transistor than Dave’s design and there is no issue with oscillation. User can press and hold the button in either ON / OFF state and the state is retained. The user has to do a full depress again for the state to toggle. Additionally, the RC part of the circuit was not very sensitive to values; worked flawlessly first time. It looks like the RC part controls the maximum frequency of the user pressing the button. I used an IRF9540N with a BC337 and a 10uF cap.

      • Pingback: Will this self latching button work without oscillating? | Question and Answer()

      • chinmey a

        hi i have done the similar circuit using fdn304p mosfet and other all same ,
        the led goes on and the switch has no effect can any one help me please. the circuit does not work at all

      • Pingback: ccn2785xdnwdc5bwedsj4wsndb()

      • Pingback: 3nvb54wnxd5cbvbecnv5ev75bc()