"Autobox" Hardware Testing Tool

By Daniel Steger | Apr 8, 2015

Have you ever needed to power cycle your hardware remotely? Have you ever wanted to read several different voltage levels remotely? Do you want the ability to remotely control AC outlets? How about toggling events using GPIO remotely? Do you want to talk to a device via I2C remotely? By now you probably guessed that the “you” I am talking to is a fellow electronic engineer; challenges like these are the sorts of things that keep us awake nights! Tired of all those sleepless nights, and unable to find a truly versatile off-the-shelf solution, I created The “Autobox” in my home lab. It currently provides all of this functionality…with more to come!

“Autobox,” which I’m pleased to say now has a home at Nuvation’s hardware testing lab, is used to aid in software development, automated testing, and hardware bring up. It is remotely configured and operated using either a Linux shell or an HTML interface and has proven itself to be a powerful development tool.

AutoBox_Corner_Angle_300x199.jpg
Side of box, I/O: Fused A/C Power Input.

Autobox runs Linux on a Raspberry Pi single board computer and has two “Microchip MCP3424” ADCs installed, which provide a total of 8 channels of up to 18-bit resolution. This is especially convenient when data logging, checking on power-rails, etc. It also has 8 buffered GPIO’s which aid in controlling external events, and has two independently fused AC buses . Each AC bus powers four AC outlets which are independently controlled by “OMRON G8P-1A2T-F-DC12” relays.

 

Autobox_Block_Diagram_300x225.jpg
Side of box, I/O: Fused A/C Power Input.

 

The Autobox is capable of sourcing up to 30 Amps for larger equipment, which makes it possible to also use it for home appliance control. This unit is actively cooled and contains LED indicators for AC outlet events. The I2C bus of the Raspberry Pi is accessible via the front panel. This is handy when trying to debug an EEPROM or communicate with other I2C devices. All of this functionality is available wirelessly or wired; it has an 802.11n wireless adapter as well as a hard wire interface for communication. To top it all off, the Autobox packs 48GB of data storage for extended logging of multiple interfaces.

AutoBox_Top_Angle_300x199.jpg
Autobox Block Diagram

We have used my little home-brewed invention at Nuvation’s labs a few times. Once we were power-cycling an embedded Linux device, verifying that the device fully booted and checking for boot errors. For thorough QA we would repeat this process 1000 times. Can you imagine the wasted manpower if this had to be done manually? Using Autobox we instead fully automated this test and let it run throughout the night. On another project we were monitoring the charge of lithium-ion battery cells. Using Autobox’s ADCs we were able to monitor the voltage level of several cells while charging. Autobox also controlled the charging while waiting for a threshold condition to occur. When one occurred, the charger was disabled. In one final example, we used Autobox to verify that data was written to an EEPROM. New uses keep emerging, so it looks like Autobox will be a part of our testing toolset for some time to come. The Autobox is a flexible scriptable hardware platform home-brewed by an engineer, for an engineer!