Screaming Circuits: Testing (your electronics?) One, Two, Three

PROTOTYPE AND SMALL VOLUME
PCB ASSEMBLY MADE EASY

Testing (your electronics?) One, Two, Three

Card holder programmer together cropped

At Screaming Circuits, we’ve designed our systems with the objective of producing 100% yields. It’s a build to quality rather than a test for quality process. That means we don’t, as a standard process, test (or program) boards we build.

Why is that, you might ask? Well, 15 years ago, we started by just building prototypes. With a prototype, the objective is for an engineer to see if the design works. At that stage of the game, few people are ready with a test fixture. Also, we were often asked to build things really fast - like in a day or two. That doesn't leave any time to build a test fixture.

In the old days, manufactures talked about yield (they still do), but when we're building one or five or ten prototypes, the only acceptable yield is 100%. You can't isolate a design flaw if there's a manufacturing defect. We designed our processes around that. Certainly, we aren't perfect, but we're so close such that many many tens of thousands of projects have successfully gone through our factory.

That's fine for prototypes, but what of the production work we do? Should we offer test and programming?

The world of designing, building, and selling electronics products these days is a lot different than it was 15 years ago. And, a lot of companies are having us build final production products. Again, our yields are good enough to make most people happy, but sometimes that extra bit of confidence is necessary.

Not long ago, I designed, and Screaming Circuits built, what I call an electronic business card holder. It's based on a PIC microcontroller and an accelerometer. You can read about it here and see all of the files on GitHub here.

We built several hundred of them. I started out programming them manually with the Microchip IDE. That process took several minutes per board. Not gonna happen 600 times.

I wised up and designed a fixture, which I then made with my 3D printer.

Card holder programmer in pieces

I combined the fixture with a Microchip PICkit programmer and a blank board with pogo pins to connect power and programming ports. With the PICkit in "Programmer to go" mode, I was able to program and test the boards at a rate of about five per minute. That makes a lot more sense than a few minutes for each of the 600 boards.

Here's what was involved in that process, and who could do it?

  1. I added self-test code into the card holder software. This is a simple design, so that was just an hour or so. Only I, as the designer could do that. It wasn't difficult, but I had to know the system to do so.
  2. I wired up a blank board with pogo pins and headers for the PICkit programmer. Anyone with soldering skills knowledge about programming PIC micros could have done that.
  3. I designed and 3D printed a simple fixture. Anyone with mechanical CAD knowledge and a 3D printer could have done that.

Number 1 and 2 are the challenging parts for a manufacturer. Essentially, the board designer would need to provide the code. Number two requires specific knowledge about programming PIC micros. That step would need different knowledge for each type of processor we might run across. PICs, Atmega, the hundred different ARM variants, and on and on.

It's doable, but still quite challenging in a prototype and on-demand manufacturing world. What do you think? Should we or shouldn't we?

Get an online project quote now

Duane Benson
Step number 2 also involves a trip into the Okefenokee swamp

Comments

Thank you for your kind words. I've seen the Tag-connect devices, but never actually used them. Nice to know that they're a good option. We do sometimes get pre-programmed parts. More often than not, though, it seems the firmware isn't ready in time pre-program the parts.

Duane - great ideas and looks like lots of fun. A couple of thoughts. First, you should have your MCU programmed before placing them on the board. There are places that do just that. We often use ProEx in West Jordan Utah to pre-program our MCU's. The other thing you should look at using is one of the cables from Tag connect (http://www.tag-connect.com/). You plug one end into your programmer and the pogo pins hit pads on your PCB, so no connector. I stated using them a few years ago and really like being able to program a board when I need to but not having to place a connector on a board that may never need it.
Thanks for your Blog post. I love reading them.

Sean O'Leary P.E.

Post a comment

If you have a TypeKey or TypePad account, please Sign In.

« Sometimes, I just want to build it myself | Main | Signal To Noise Ratio - Marketing for the Engineer Entrepreneur »