Hardware-in-the-Loop Continuous Integration

How can you tell if your software is doing what it’s supposed to? Write some tests and run them every time you change anything. But what if you’re making hardware? [deqing] has your back with the Automatic Hardware Testing rig. And just as you’d expect in the software-only world, you can fire off the system every time you update the firmware in your GitHub.

A Raspberry Pi compiles the firmware in question and flashes the device under test. The cool part is the custom rig that simulates button presses and reads the resulting values out. No actual LEDs are blinked, but the test rig looks for voltages on the appropriate pins, and a test passes when the timing is between 0.95 and 1.05 seconds for the highs and lows. Firing this entire procedure off at every git check-in ensures that all the example code is working.

So far, we can only see how the test rig would work with easily simulated peripherals. If your real application involved speaking to a DAC over I2C, for instance, you’d probably want to integrate that into the test rig, but the principle would be the same.

Are any of you doing this kind of mock-up hardware testing on your projects? Is sounds like it could catch bad mistakes before they got out of the house.

Process Characterization On The Cheap With A Custom Test Rig

Testing is a key part of any product development cycle. Done right, it turns up unknown bugs and problems, and allows for them to be fixed prior to shipment. However, it can be a costly and time-consuming process. The [Bay Libre] team needed to do some work on power management, but the hardware required was just a little on the expensive side. What else does a hacker do, but build their own?

Enter the Thermo-Regulated Power Measurement Platform. It’s a device designed to control the die temperature of a chip during process characterization. This is where a chip, in this case the iMX8MQ, is run at a variety of temperatures, voltages, and frequencies to determine its performance under various conditions. This data guides the parameters used to run the chip in actual use, to best manage its power consumption and thermal performance.

The rig consists of a Peltier element with controller, a heatsink, and a fan. This is lashed up to a series of Python scripts that both control the chip temperature and run through the various testing regimes. Thanks to this automation, what would normally be a day’s work for an engineer can now be completed in just two hours.

Through a few smart component choices, the team accomplished the job at around one-tenth of the cost of commercial grade hardware. Granted, the average hacker probably won’t find themselves doing process characterization for cutting-edge silicon on a regular basis. Still, this project shows the value in building custom hardware to ease the testing process.

Testing is key to success in production. Custom jigs can make for light work when large orders come in, and we’ve run a primer on various testing techniques, too.

Homemade Test Jig Is Cheaper Than Outsourcing

In the past, [Sjaak] has had his testing and programming jigs made for him in Shenzhen, but realized they weren’t that great of a value. They weren’t terribly expensive in the grand scheme of things, but they didn’t include any wiring, so he was still spending his own time and money. His quest to develop his own in-house jigs not only netted him a considerable cost savings in the end, but also produced a nicely detailed post on his site for anyone else who may be heading down the same path. That’s a win-win in our book.

The idea behind a jig is pretty simple: essentially it’s just a mount that holds the PCB, and a set of pins which contact the appropriate points on the board. The jig can then provide power, programming, status LEDs for testing, etc. Basically anything that you can’t or don’t want to include on the final board, but will help in testing or programming them.

To start, [Sjaak] begins with a blank PCB in Eagle and imports his target board. With the two lined up, he can then mark where he wants the pins to go on the jig, and add labels to the silkscreen to make things a little easier during diagnostics. The target board is then removed, the file converted to Gerber, and it’s sent off for manufacturing. With a few more tweaks, the file is then exported to DXF and laser cut out of acrylic. When the PCBs come back, it’s just a matter of sandwiching it all together with some standoffs and adding the pins.

[Sjaak] mentions that he was inspired by an old post on how SparkFun was internally handling their test jigs, though we think with a dash of automation he could make things even easier for himself.

Bed Of Nails And Accuracy In PCB Manufacturing

A few days ago, we mentioned the new ARM-powered Teensy 3.0 project on Kickstarter. The creator, [Paul Stoffregen], decided to share the trials of building a test fixture along with a shocking comparison of the accuracy of different PCB manufacturers in an update to his Kickstarter.

Because [Paul]’s Teensy 3.0 has more IO pins than should be possible on such a small board, the test fixture to verify if a board is defective or not is fairly complex. To test each board, a Teensy is placed on dozens of spring-loaded contacts arranged like a bed of nails. From there, another Teensy (this time a Teensy 2.0) performs a few tests by cycling through all the pins with several patterns.

Because the spring-loaded contacts require rather precise drill holes in the PCB of his test fixture, [Paul] thought it would be neat to compare the accuracy of several board houses. In the title pic for this post (click to embiggen), [Paul] demonstrates the capabilities of OSH Park, Seeed Studio, and iTead Studio. The lesson here is probably going with a US company if quality drill work is a necessary requirement of your next project.