i m thinking about building a BMC using a raspberry. So i need to simulate power and reset button press using the GPIO.

I would like to know if a transistor is suitable for this application and if yes, which type (NPN /PNP); and if possible where i need to connect the Collector and Emitter of the transistor.

According to the FrontPanel I/O Connectivity Design Guide, the power and reset circuits should be like this :

RST_SW_N Reset Switch low reference pull-down (100 ohm) to GND

RST_SW_P Reset Switch high reference pull-up (1000 ohm) to +5 V

PWR_SW_N Power Switch high reference pull-down (100 ohm) to GND

PWR_SW_P Power Switch high reference pull-up (10000 ohm) to +5 V

I have been inspired by this post for this project. I contacted the author, but he does not know what type of transistor he used, and did not even used a propre voltage divider to sense the motherboard PWR led.

Thx, regards Ben

1 Answer 1


I'm getting error 401 with your Front Panel I/O link, but what you're trying to do seems simple enough. There are two main ways I would recommend to do this:

If you want to use a transistor, I would suggest using an NPN BJT; a 2n2222 should work well. The circuit is identical for each switch, with the transistors' collectors connected to PWR_SW_P and RST_SW_P and their emitters connected to each switch's respective N terminal. The bases, of course, connect (through a resistor, 1k should do) to the RPi's GPIO. In this configuration, setting a GPIO pin high will "press" its respective switch. It's possible to do the same thing with a PNP BJT, but they source current at their bases instead of sinking it; therefore, you'd need additional circuitry to handle the 5v coming out of the transistor, and even so, you'd have to set the GPIO pin high most of the time and then pull it low to "press" the switch... it's just not a good idea. One thing to keep in mind, though, is that the ground of the RPi has to be connected to the ground of the motherboard; otherwise, current won't flow between the two devices.

To get around connecting the RPi's ground with the mobo's, you could use an optocoupler. The circuit would be a bit more complex (the input of an optocoupler is usually only 1-2 volts), but you wouldn't have to electrically connect the RPi to the motherboard at all. Just make sure you use one with a photodiode output, not a phototransistor (maybe try a PC817); otherwise, you'll have to add more circuitry on the motherboard side, requiring you to tap into the motherboard power supply.

All in all, if you have access to ground on the mobo, the transistor would be easier, but if you aren't planning on using the computer's PSU, I'd go with the optocoupler.

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.