When you build one-off projects for yourself, if it doesn’t work right the first time, it’s a nuisance. You go back to the bench, rework it, and move on with life. The equation changes considerably when you’re building things to sell to someone. Once you take money for your thing, you have to support it, and anything that goes out the door busted is money out of your pocket.
[Brian Lough] ran into this fact of life recently when the widget he sells on Tindie became popular enough that he landed an order for 100 units. Not willing to cut corners on testing but also not interested in spending days on the task, he built this automated test jig to handle the job for him. The widget in question is the “Power BLough-R”, a USB pass-through device that strips the 5-volt from the line while letting the data come through; it’s useful for preventing 3D-printers from being backfed when connected to Octoprint. The tester is very much a tactical build, with a Nano in a breakout board wired to a couple of USB connectors. When the widget is connected to the tester, a complete series of checks make sure that there are no wiring errors, and the results are logged to the serial console. [Brian] now has complete confidence that each unit works before going out the door, and what’s more, the tester shaved almost a minute off each manual test. Check in out in action in the video below.
We’ve featured quite a few of [Brian]’s projects before. You may remember his Tetris-themed YouTube subscriber counter, or his seven-segment shoelace display.
19 thoughts on “Custom Jig Makes Short Work Of Product Testing”
You could have plugged a large number of them in series and tested them together.
Plugging a large number (or any number greater than 1) of them in series has the potential to hide problems. From the article, the device has two functions:
1) strips the 5-volt from the line
2) while letting the data come through
Placing multiple devices in series would allow a few different failure modes to be hidden:
5-volt line input to output short
data+ to 5-volt short
data- to 5-volt short
As any of the above failure modes have greater severity than an open-circuited data line, I think there would be a compelling argument to be made that the time savings benefit of a series test is outweighed by the risk of a failure escape.
Your testing needs to look like:
– Test that ground, data+, and data- have continuity.
– Test that each of those does not have continuity to another line.
– Test that 5v does not have continuity.
Just to be safe, I’d want to test that 5v does not have continuity to another line, but that _should_ be covered by the previous tests. It would probably be sufficient to just test adjacent lines, but with a jig it wouldn’t matter, it’s probably easier to just test all the cases (in fact, it would probably be easiest to just use a truth table, then you could repurpose the code for testing power-only in addition to data-only).
One downside to a jig of this sort is that I’d probably want to test with more current than Arduino output lines can carry, just to be sure (less of a concern for data-only cases, I guess). And I’d also consider using analog pins for input rather than digital pins, so that I can use a lower voltage threshold in the bridge test.
Your correct, the reason I didn’t do them in series is because, as you say, it doesn’t correctly test that each of them pass the 5v test. If you connected 100 of them in series, the first 99 could be passing through the 5v, as long as the last one blocked it, the test would pass.
I’m not sure I actually considered the data to 5v short not being tested!
It is 2 USB connectors and 3 straight traces. Props for his dedication to not even remotely possibly shipping a bad unit, but, that’s a lot of testing for 2 usb connectors and 3 straight traces. There comes a point where your expenses (time) in testing them are significantly greater than your expenses (money) in just refunding/sending a replacement for a dud unit.
Plug all of them in series and just to continuity tests on the 3 traces, then between the traces. Could have tested over 100000000 of them in the time he wasted pissing about
Not true, testing them in series would give you no indication if 5v was being blocked on all the boards. Using your figure, the first 99999999 could be incorrectly passing the 5v through, as long as the last 1 was blocking it, the test would pass.
While it’s true, its very unlikely that there will be a failure (although I did once solder the headers upside down, which I caught before it even got to the testing phase), it’s nice to have the piece of mind that I didn’t do something stupid when assembling a lot of them.
It costs me about $4 in postage and packaging (ignoring price of unit) so you probably right in a pure monetary sense, but you also after to consider reputation as well. The order for 100 units and then 200 units were from a shop, if their end customer is returning it to them, that is hassle that they probably do not want to deal with, which may make them less likely to deal with me in the future.
I would’ve just taped over the +5v pin in the USB plug.
Requires trimming the tape piece to size and a toothpick to put it in place.
Done the same with a powered hub for a rPi that had its own power supply.
Yeah, obviously I like the power Bloughr but I think the tape is a good solution too. I’d prefer that than cutting a cable for sure.
People can’t simply slice open a USB cable and cut the +5V line?
Simple users, who would just buy a 3D printer and expect it to work without having to *gasp* learn things cannot do that. And even for us, when you are installing or servicing a printer/other device ( or a bunch of them ) it is easier to just grab one of these little doodads from your bag than take the time to splice the cable “in loco”.
You could also make your own for less time than it would take you to fill out a purchase form and get a receipt… let alone wait for it to arrive. The only “USB gadgets” worth paying for are USB isolators and USB amp/voltage usage meters. Parts for those are usually more expensive than the device itself.
I’m sure people will take a cynical view to me saying this, but I think if you are not familiar with stripping wires cutting open a USB cable and cutting the 5V line is easier said than done. I don’t know who buys these exactly, but I would imagine a larger portion of them are more into 3d printing than electronics and might not even own a decent pair of snips for the job.
Ha! I remember many years ago “hacking” a power-only adapter so I could charge my iPod at work without the computer trying to mount it (and iTunes it and otherwise do potentially bad things). Basically took a right-angle pass-through adapter and pulled the data pins. Then USB devices got all complicated and started needing to negotiate power over the data lines.
Hadn’t occurred to me to do the inverse for this use case (which I was thinking about just yesterday). Still, I think I’d just rather pull the pin rather than using an adapter…
In the context, though, I think this is a fair project. I mean, do I want to buy 2-3 little adapters to cover the risk of blunt force trauma, or just buy one that works from the get-go? And if I were building them, I would 100% want to automate testing.
I don’t agree with “Just chain them together” as appropriate testing, though. You really want to power up one pin and then test against all the pins on the opposing end to make sure that there are no bridges. It’s true that any bridge on the chain just means you need to break the chain and binary search for the offending item, but manually testing the cross-product seems error-prone to me. It’s not like the automation jig is wicked complicated or anything.
[Just to be clear – my last line wasn’t meant to imply that I don’t think this is a neat solution! I just meant that I think it’s quite appropriate in scale to the problem at hand.]
Another thought that came to mind while I was out-and-about today: if one had built up some confidence in process control and had decided that testing in series was appropriate (that the failure modes I described this morning were adequately unlikely to occur), a properly-detected failure would then require some searching to locate. In that case, the more time-saving the series testing, the more pain-in-the-neck the search for the detected failure. scotthess9422 had that idea too, first (judging by the timestamp on his comment).
I’m pretty sure a device for that existed too! The USB condom, I think it was called :)
Somebody should probably try to explain “[o]nce you take money for your thing, you have to support it” to a whole host of manufacturers out there because that is far less universally true than one would think.
That’s a good part of the reason why you have to “hack” things to begin with, is because there is no longer and documentation or parts and the company went out of business a decade ago. Because despite that, you still need that machine to be able to fabricate other parts in a production line.
Please be kind and respectful to help make the comments section excellent. (Comment Policy)