The Common Parts Library (CPL) Initiative
The difference between commercial hardware design and hobby electronics has blurred over the last few years. With open source hardware, the newer slate of very affordable and capable CAD tools, and the vast knowledge base available online, most of what can be done in a big corporate lab can also be done in a spare room at home. This has fostered a re-emergence of the hardware startup. It's also brought to light a few problems that still need to be addressed.
By day, I work for a manufacturing company; on the weekends, I design and build small electronic devices. My design projects are typically microcontroller-based, with many having custom Arduino-compatible hardware at the core. Being based on pre-existing open source designs, these aren't terribly difficult projects. That's not to say that aren't any hang ups, though. It's not in the assembly. I've got that handled; either by hand building the simple boards or by sending the complex ones through the plant at my day job. No, it's not design or assembly that gets me down. It's the measly supply chain.
Smaller components, like passives, are easy to put into CAD, but not necessarily easy to keep on hand. You can pick a part on Monday and then discover that it's out of stock when you need more the following Wednesday. The larger components in complex packages, like high pin-count microcontrollers, can also cause problems. The specific package you want may go in or out of stock at the various distributors. As a result, the initial build phase of a project can be a bit like musical chairs, trying to chase down the stock of a sole or limited-source part.
Supply chain issues can cause build delays (Source: Screaming Circuits)
Corporate design organizations have purchasing and manufacturing specialists who make sure that the chosen parts are available and in good supply. The startup engineer or hobbyist doesn't have the luxury of that help. The Common Parts Library (CPL) initiative has recently emerged with the purpose of solving many of these component supply problems.
I recently spoke with Octopart's Sam Wurzel about the supply chain and what they're doing to reduce availability problems. Octopart, if you don't know, is a comprehensive parts search engine that is behind the Common Parts Library. The Octopart engine allows you to search for a part from most of the available distributors, all in one spot with the same search action. So, if the QFN version of your MCU keeps disappearing from one place, and randomly reappearing in some other place, then Octopart will lead you right to it.
Octopart is now owned by Alitum, which puts them in a good position to really understand sourcing issues, from the initial design all the way to manufacturing. Octopart's search and the CPL can help with the initial component selection process before CAD, and then with the purchase process after CAD. The basic idea behind the CPL is that, if you pick a part from the list, it will be in stock and easy to find.
For a real-world example of the problem, I need look no further than one of my own designs. It's a small robot board -- not Arduino-based this time -- with a Microchip MCU and a dual 1-amp motor driver. Amongst all of the other parts, it has a red LED as a power-on indicator, a green LED to indicate that the motors are enabled, and four yellow LEDs for user-defined status indicators; all are in 0603 packages.
Red yellow and green LEDs in 0603 surface mount packages are common enough that availability should never be a problem. However, it's been a few months since I firts built this board and, in the intervening time, all three LEDs have gone out of stock. If I were to send these boards out for manufacture, the company doing the manufacturing would have to stop the process and get in touch with me, than I'd have to come up with a replacement part number (well, three replacement part numbers) and give them authorization to substitute.
That's only three parts on a bill of materials comprising about 35 different parts, but multiply that out for a dozen different boards. Also consider that, if I don't want my job stopped, I need to check every part on the BOM each time I send that board in for manufacture. It all adds up.
Why doesn't the manufacturer just pick something and automatically make the substitution, you ask? They can't, because they don't know what parameters are important to the designer. Say my LED has a 5 mA forward current and they substitute one with a 20 mA forward current. That might totally mess up my battery life, or it could bring me above the total current source limit of the MCU. On the other hand, if brightness is important to me, putting a 5 mA LED in place of a 20 mA LED could ruin the performance of my product.
"Startups are getting frustrated over the same problems -- they don't understand issues with parts availability and would build boards and need to scrap them because they couldn't find some of their parts," said Wurzel. "BOMs get sent to manufacturers that aren't useable because the parts aren't available in the supply chain."
Large companies with a lot of volume manufacturing solve this problem by having a list of approved substitutions. The engineer will pick two or three parts that are all suitable for the design, and the purchasing agents can buy anything on the list without needing any additional approval.
Octopart is working to do the same thing en masse with its Common Parts Library initiative. The idea is that Octopart can look at a large set of purchasing data and determine what kind of parts engineers use the most. From this data, they have come up with two lists: one focused on production and one on prototypes. For each part in the CPL, they try to identify at least two manufacturers' parts that are of equivalent value that will be available. It's not an absolute guarantee, but it's close enough.
With millions of components available, this looks to be a dizzying challenge. To mitigate that, the CPL is starting with a focus on components used in connected devices and will be moving more toward vetted community content. According to Wurzel: "No money is made from CPL. CPL is open and we are trying working to make it easier to contribute. Right now, Octopart is making the decisions about what components are in the CPL, but we're working on decentralizing that process by working with the community that is utilizing it."
At Screaming Circuits, we see the effects of these supply chain issues on a daily basis. In fact, component issues are probably the most frequent cause of build delays. The bad news is that this has become a chronic problem; the good news is what's behind this chronic problem, which is an increasing number of hardware startups.
I'll be watching the CPL's progress with great interest. Meanwhile, as I write this, I'm looking at a set of CPL part numbers that solve the LED problem I mentioned earlier. If you want to learn more, you can find the CPL at octopart.com/common-parts-library.