I write a lot of words about DFM and best practices for PCB layout. Working for a manufacturer, I regularly see the results of not taking DFM seriously. DFM is something never to be taken for granted at any point in the design cycle, and I mean at any point in the process.
To put this into context, as I said, I work for a prototype and on-demand manufacturing company. I don’t work out on the floor, and my primary role is not to design, but I do know these things. I’m exposed to the results of both good and poor DFM every day. Yet, even with all of that knowledge, I can still find ways to mess things up.
A couple of years back, I developed a small demo board for us to hand out at trade shows (Figure 1). It was nothing terribly complex; it just has a microcontroller, an accelerometer, a line of LEDs, and a few other components. It was powered by two coin cell batteries on the back.
Figure 1: Demo board.
At the time of this story, I had had the board successfully built three times by my company. Each time it had run through our shop, though, the folks on the manufacturing floor had let me know that I was using 0402 LEDs on 0603 pads. The parts barely fit. Being so versed in the “make-it-fit” prototype world, they had built it with the wrong pads each time before at my request. It's far, far better to fix the design, but sometimes, I (and many other designers) prefer to leave it be if it works.
The most recent time I sent in an order to be built, I did so at the last minute before heading out of town for the New York Maker Faire. The demo boards weren't for that show but were being built for another one we would be attending shortly after returning from Maker Faire.
Just before I left the office for New York, one of our technicians reminded me of the footprint issue and asked me again to change it. This being the fourth time they had asked, I relented and agreed to update the footprint. I opened the design in my CAD package, found an 0402 LED footprint, and replaced the 0603 footprint with the 0402. Since LED footprints are notorious for being incorrect, I double-checked the polarity, rotation, and silkscreen before saving and creating new Gerbers. I emailed the revised files to the tech and headed out the door.
Fast forward two days. I'm in a hotel lobby in Queens New York, waiting to meet the rest of my crew. I received a phone call from my purchasing department back home. They said that the batteries and battery holders for my board didn't match the footprint on the back of the PCB, which made no sense to me. I had never changed anything about the battery in all of the successful builds. I asked them about the LEDs, which were fine, but the batteries were not.
In the hotel lobby, I pulled out my laptop and opened up the board design in my CAD program. Sure enough, the battery holder footprints were for a CR1216 size part. Again, I was mystified—dumbfounded might even be a better term for my state of mind at the time—and a bit panicked. My teammates were starting to show up, and we’d need to leave for the show in just a few minutes.
I had always used, and put into the bill of materials (BOM), 2032 size batteries—never 1216s. A lot of things were running through my head. Back at the shop, there were 600 blank PCBs that might not be useable and 1,200 (two per board) sets of battery holder and batteries. There wasn’t enough time to respin the boards and still get everything built in time (Figure 2).
Figure 2: Correct and incorrect land patterns.
However, sometimes, fortune favors the fools. Upon closer examination, I found that the circuit traces going to the battery holder pads had rubber-banded into the smaller footprint and were still electrically connected. Thus, the boards would still work, provided I could find a part that could be delivered in time.
I went to Digi-Key and found a new battery holder and battery part numbers to fit the CR1612 pads. I emailed the part numbers to purchasing, and from that point forward, the build went well. So, what happened? I had only changed the LED footprint; I did not touch anything else in the design, or so I thought.
After a lot of head-scratching, I finally concluded that when I brought in the 0402 LED footprint, I did something that triggered a library update. The library update automatically went through my design and updated all of the other footprints on the board, including the battery holder (Figure 3).
Figure 3: Different battery sizes
I'm still not exactly sure how it happened, but I think that the battery holder internal part numbers had been incorrect in the old library version, and the update ended up swapping my CR2032 footprint for the CR1216 footprint. I was incredibly fortunate that the traces followed the footprint pads.
The moral of the story is that any change can be a major change. It is not at all uncommon for a small change in one place to have an effect on a very different area. Always go back and check the key parts of your design before sending it off to manufacturing—always.
Duane Benson is marketing manager and CTO at Screaming Circuits.