From RevSpace
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Project RemoteResetArduino
Status Completed
Contact User:FooBar
Last Update 2013-08-20


An arduino program to toggle power and reset buttons on standard ATX PC's, and to read the status of the machine (Powered on or off, Power present @ PSU).


I was building a 3-node cluster to test some cluster-filesystems for a client, and used 'wake-on-lan' to remotely boot the various cluster nodes when needed. This worked somewhat, but I was unable to reboot a hanging system, or see if a wake-on-lan packet actually arrived at the system.

Doing some tests with a firmata sketch on an arduino proved that I could easily toggle the powerbutton and resetbutton on an ATX mainboard, bringing this project to life.


The code can be found on


  • Connect the arduino to a usb port on a working system (I used a openwrt based router).
  • Connect the digital pins to the power and reset lines on an ATX mainboard.
    • Lookup which pins to use in your manual, or look at the board. From the 2 pins for pwrbtn and reset, you need the 3.3v powered pin, not the ground pin
  • Make sure the arduino ground is connected to a ground on the pc mainboard
  • Make a serial connection to the arduino (115200 baud)
  • Configure the pin-numbers (see 'help' command, use 'config' command)
  • Toggle reset and/or power buttons with commands 'reset #', 'power #' or 'force #'
    • Force will hold the (power) button for 4 seconds, reset and power only simulate a short press
  • Use the 'check #' command to see if a system is powered on

Pinout On the ATX Board

On my Asrock boards, the pinout for the 'system panel header' is as follows:



Rra-mainboard.jpg Rra-arduino.jpg

Usage Session Example

> RemoteReset-Arduino started

> help

 config      Edit configuration
   config [0-7] resetpin pwrpin name
 reset #     Toggle reset switch on config #
 power #     Toggle power switch on config #
 force #     Long-Press power switch on pc number #
 erase #     Erase config number #
 state       Check power state
 dump        Dump configuration to serial
 save        Save configuration to EEPROM
 load        Load configuration from EEPROM
 wipe        Wipe onfiguration and update EEPROM

> dump  

Config: 0    Data: 0 / 255 / 255 / unused
Config: 1    Data: 1 / 7 / 6 / gluster1
Config: 2    Data: 1 / 3 / 2 / gluster2
Config: 3    Data: 1 / 4 / 5 / gluster3
Config: 4    Data: 0 / 255 / 255 / unused
Config: 5    Data: 0 / 255 / 255 / unused
Config: 6    Data: 0 / 255 / 255 / unused
Config: 7    Data: 0 / 255 / 255 / unused

> power 1

Sending power signal to pin: 6