Controller System
The controller system could be almost any x86_64 PC with dual NICs. Since it will be continually running, by preference it would be quiet, low power, and reliable.
Sample controller system:
Jetway JBC200F99-525 (Intel Atom D525)
4 GB memory
120GB SSD (Samsung EVO 840)
The disk space is heavily over-provisioned for current needs, but it doesn't cost much to do so.
Another system that looks like it would work well is the Shuttle DS437
Target System
The target system defines what we are testing. To work within the Hardware Testing infrastructure, it needs to have the following characteristics:
- Need to be able to boot from the network
- Needs to able to be powered off/on by switching the AC power (no laptop with a built-in battery)
- Need to be able to be set to boot on recovery from power failure
Target systems should have at least 2GB of memory and 10GB of available disk space.
Power control
The controller system needs to control the power of the target system. Currently, what we are using for this is the [http://www.powerswitchtail.com/Pages/default.aspx|PowerSwitch Tail II], which allows controlling a single AC power outlet using a low-voltage signal. Interfacing this to a computer over USB requires a extra hardware. This could be very ad-hoc and minimal, but it's useful to keep things tidy and have some extra controls to see the power status and override it, which the "Switch Box" provides.
Switch Box v1
Version 1 of the switch box uses a Sparkfun Proto Shield and standard Arduino case to mount 3 LED's and 3 toggle switches.
The main downside of this version is that it was a bit of a pain to assemble, among other reasons:
- The pins on the toggle switches needed to be ground down to fit in the proto board holes.
- Measuring and drilling the case was finicky
- The connecting wires on the board and to the phono jacks were time-consuming, hard to keep neat, and not easily replicable
Cost of materials is about $60. (Or less if a generic clone is used rather than an Arduino.)
Switch Box v2
This version is improved in various ways:
- Use a custom PCB rather than a generic proto shield, getting rid of the wiring and allowing mounting the phono hacks directly on the PCB
- Use a laser-cut case rather than a modified generic case
- Switch from bi-color LEDs to ws2812b addressable LED's, reducing the needed pins from the Arduino (could have 4 or even up to 6 outputs rather than 3), and allowing more colors to indicate pulling/testing rather than just "on".
This version is a much more straightforward soldering project. Cost of materials is still be about $60.
(TODO: upload bill of materials, PCB design, case design, Arduino sketch somewhere. Contact OwenTaylor if you are interested in building one - some parts and bare PCBs are also available.)
Alternatives
- A server network-switched PDU could be used - but new these start at around $400, and buying off EBay or salvaging presents problems of non-reproducibility.
The PowerUSB Basic controls 3 outlets via USB for $90. Code exists on the internet to control it from Linux (it's some HID variant.) This is cheaper and more convenient than the Switch Box + Power Switch Tail solution ($60 + $25 * n outlets), though more proprietary and less featureful.
The gnome-hwtest code could easily support multiple different power control approaches.