RemoteResetArduino

From RevSpace
Revision as of 20:54, 20 August 2013 by FooBar (talk | contribs)
Jump to navigation Jump to search
Project RemoteResetArduino
Status completed"completed" is not in the list (Proposed, Initializing, In progress, Completed, Stalled, Abandoned) of allowed values for the "Project Status" property.
Contact FooBar
Last Update 2013-08-20

Summary

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).

Introduction

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.

Code

The code can be found on https://github.com/sigio/remotereset-arduino

Working

  • 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.
  • 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

Pictures

Rra-mainboard.jpg Rra-arduino.jpg