As the title says I'm trying to figure out what is needed to activate the power on, on the motherboard's header.

I have read that essentially the switch is a "momentary" switch which I assume just connects for an instant to allow power to boot up. Would more power cause damage or is it just not necessary? Will holding the button down not matter either?

So essentially I am looking to connect some accessories to a microprocessor, and wanted to know if I used something like a touch sensor, or a button on the Arduino, if I could power on my computer?

I found this image and it lead me here, but it talks a bout a lot of things that I'm not sure of like "TTL" it mentions "TTL LOW" which I believe LOW means off? and HIGH is on?


So essentially I'm just curious about the PS_ON since I cannot find much information about it, and I'm interested in how the computer turns on, and how I could do it myself in all sorts of interesting ways that are different from the traditional "pressing a button" to turn on :).

Thank you all for any help/advice. I'm new to electronics, but I know how to write software, so I'm excited to combine the two together!


I am looking to just emulate a button press, i.e., instead of pressing a button, I can click a switch, or something. I want the mb/computer to do what it normally does, but I just want to turn on my computer with things other than the power on button. It seems the easier method is to do exactly what the button does, send the info through the green PS_ON or whatever wire to the motherboard header, and then the mb do it's thing.


Are you trying to emulate a power button press to turn on a computer, or do you just want to turn on the power supply by itself?

For emulating a button press, I would recommend either a relay or an optoisolator. I don't think there are any standards for how the power button on the motherboard is set up, so it would not be advisable to rely on, say, one of the pins being ground.

For turning on the power supply, all you need to do is tie the PS_ON signal to ground. This signal must be held low to keep the power supply on. Since this is a well-defined standard, you can use a single NPN transistor to pull that pin low under the control of a microcontroller or similar.

  • \$\begingroup\$ I'm emulating a button press, yeah. Essentially trying to turn it on from a microprocessor which would be controlled by any number of various devices, as I mentioned a touch sensor or whatnot. I'll have to look up what a relay/optoisolator is. I thought one pin was ground, and one was "PS_ON" but from images it looks like both are on, so Idk... Reset should be the same.... So I should look into one of those 2 things, and with that I should be able to do what I need, or are those specific devices, and I'll have to use them? Thanks. \$\endgroup\$ – XaolingBao Dec 4 '15 at 1:49
  • \$\begingroup\$ I checked out what you mentioned, and a relay might be what I want. The optoisolator is a chip though? Not sure what the relay looks like though. So essentially I would use this to control some output to PS_ON? I was thinking I could just connect the wires from the PS_ON to my Arduino and do something from there, but figured it was software controlled or something? Maybe I need some hardware too? ThoughtS? Thanks!!! \$\endgroup\$ – XaolingBao Dec 4 '15 at 1:56

PS_ON# is typically controlled by the motherboard itself. This allows the software to manage the power-off process. That's why the button on the front panel goes to the motherboard and not the power supply. (Because that's not PS_ON#)

The Intel ATX specification talks about how to use PS_ON#:

3.3.2. PS_ON# PS_ON# is an active-low, TTL-compatible signa l that allows a motherboard to remotely control the power supply in conjunction with fe atures such as soft on/off, Wake on LAN * , or wake-on-modem. When PS_ON# is pulled to TTL low, the power supply should turn on the four main DC output rails: +12VDC, +5VDC, +3.3VDC and -12VDC. When PS_ON# is pulled to TTL high or open-circuited, the DC output rails should not deliver current and should be held at zero potential with respect to ground. PS_ON# has no effect on the +5VSB output, which is always enabled whenever the AC power is present. Table 14 lists PS_ON# signa l characteristics. The power supply shall provide an internal pul l-up to TTL high. The power supply shall also provide de-bounce circuitry on PS_ON# to prevent it from oscillating on/off at startup when activated by a mechanical switch. The DC output enable circuitry must be SELV- compliant. The power supply shall not latch into a shutdown state when PS_ON# is driven active by pulses between 10ms to 100ms during the decay of the power rails.

If you really want to use this to control a computer, you could steal that pin away from the motherboard (instead of power supply->mobo it goes power supply->yobo). You could tap off +5VSB and GND to power your Arudino. If you use a 5V Arduino, you can just use a digital output to control it.

This, however, robs your computer of the ability to power itself down. You might be able to emulate the PS_ON# from the motherboard to the Arduino by listening on a digital input. Don't forget to pull that up through a 4.7k resistor to +5VSB! (like it says in the spec).

This gives you the opportunity to fiddle with the PS_ON# signal in your Arduino software, while still allowing the computer to shut down. Note: It's not a good idea to just turn the computer off this way. Modern OSes like to have an opportunity to clean up. So you could turn the computer on this way, but turning it off would be a little trickier.

  • \$\begingroup\$ Thanks for the explanation, much appreciated. However you say that PS_ON turns it on, but software manages the power-off process. Then you say if I take the PS_ON input from the PSU and use that directly, I wouldn't be able to shut down? If it's software shutting down, then what would the power do? I was curious if I could just connect the plugs from the PS_ON to my arduino, and just send a signal from the arduino directly? I just don't know what the signal is supposed to be or whatnot. I really don't undertstand any of the technical stuff either... Thanks! \$\endgroup\$ – XaolingBao Dec 4 '15 at 1:52
  • \$\begingroup\$ @Lasagna the OS does stuff first, then it tells the motherboard to deassert the PS_ON signal. \$\endgroup\$ – Tom Carpenter Dec 7 '15 at 17:48
  • \$\begingroup\$ Thanks :). So couldn't I plug the 24-pin connector into the MB, and then attach the PS_ON and a ground to the slots on the MB header? I would think this project should be simple, I just don't know what the PS_ON green wire does exactly. One comment above says to use a Relay, but I figured the microprocessor should be able to just send a signal for a second like the momentary... But what exactly it does.. I'm not sure about... The switches, are just switches, so maybe I need to understand how the momentary switch works itself?? Thoughts? Thanks! \$\endgroup\$ – XaolingBao Dec 7 '15 at 19:22

A cheap N-channel FET or MOSFET should work. If using something like an Arduino GPIO to control it, you will need a gate threshold voltage of 2V or less.

FDV303N is a cheap SOT23 packages MOSFET. 2N7000 is available in SOT23 or TO-92 and has a Vgs of 2.1V so should be OK.

I think that the switch only temporarily pulls PS_ON to ground and then the motherboard itself holds it there until shutdown. A 1 second HIGH pulse into the gate of the FET should be long enough to have the FET pull PS_ON to ground and then the motherboard to take over.

It is important to note that your microcontroller circuit would have to share the same ground as the PC's.

  • \$\begingroup\$ The pushbutton connection is not the PS_ON# signal. The mobo controlls PS_ON# in response to the pushbutton. \$\endgroup\$ – Daniel Dec 3 '15 at 23:18
  • \$\begingroup\$ While I know of at least one industrial mobo which will respond as you say to externally pulling down PS_ON#, it is not to the standard and is not advised. \$\endgroup\$ – DoxyLover Dec 4 '15 at 0:14
  • \$\begingroup\$ @Daniel you say that the "pushbutton connection" is not the PS_ON signal, and that the MB controls PS_ON in response to the button. Someone above said I should get a relay, but I guess I'm just curious what exactly the button does, and how to emulate that. You said I should get a relay, so is that what would be inside the button/something similar, or...? I just want to emulate the button press, and let the MB and computer do things normally. The only thing that changes is how the computer is turned on :). Thanks! \$\endgroup\$ – XaolingBao Dec 7 '15 at 19:24
  • \$\begingroup\$ Yeah then just ignore my comment because you're not talking about PS_ON#, which is a signal in the ATX power connector. \$\endgroup\$ – Daniel Dec 7 '15 at 21:37

PS-On is an OUTPUT from the motherboard. When the user presses the power button the motherboard will detect this and activate the PS-ON line to bring up the main power rails. Similarly when the motherboard wants to turn the main power rails off (e.g. because software has requested poweroff or the user has pressed the power button).

What you want is instead the power button connections. On a generic motherboard the location of this will be on a 0.1 inch square post connector and it's location will be documented in the manual, unfortunatly on a "big brand OEM" system it may be hidden in some system-specific connector.

Also all you know in general is you have an input designed for a physical switch, you don't know whether it's active low or high or what voltages it uses.

As such the most-generic option to switching it is to use a relay. You could probablly devise transistor circuits that would work with a particular motherboard but it would be difficult to gaurantee they would work in general.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.