Now that you have a block diagram of your hardware and have built a proof-of-concept prototype using a development board (or two or three), it’s time to take what you’ve learned and start choosing parts for your custom hardware design.The ultimate goal of this step is to discover the best components to implement each block in your block diagram while making sure that all your components will interoperate with each other.
But there are millions of chips out there. How do you go about finding the right one? One way to do it would be to experiment with the several search engines that exist to help with this task. But the reality of many parts search engines today is that they’re not comprehensive enough and I often find out later that I’ve missed a whole family of parts that I should have considered.
So instead, I am going to outline the most reliable method I’ve found over the years, along with some tips and tricks to turn you into a part picking wizard!
First, what’s an ideal part?
An ideal part can be loosely defined as one that:
- Performs the required function at the required performance and quality
- Has an interface that is compatible with the other relevant components in the design (ie: uses the same protocol, runs at the same frequency, same data width, etc.)
- Has power requirements (ie: voltage and current) that can be met by the power system and are similar to the power requirements of other components in the design (ie: runs on the same voltage)
- Has a small package and is conducive to a clean layout
- Is in stock and widely available with acceptable lead times
- Is low cost in accordance with your budget
Keep all these criteria in mind during your part selection process so that you end up with parts that are not only good for your project but are also in stock and cost-efficient for your budget. Let’s get started!
1. Cast a WIDE net and find all your vendors
The first, most basic step would be to find all your vendors. For a given kind of part (ie: a BluetoothLE chip, LED driver, LiPo battery charger), find all the companies that play in that space. A great way to do this is through a combination of Google and distributor websites (like Digikey, Avnet, Arrow, Newark, Mouser, etc.). Simply search for the kind of part you’re looking for and make a note of all the vendors that manufacture components in that area.
How I’ve learned this: On a few past designs, I was well into the design process and a colleague would later suggest a really great part from a vendor I hadn’t considered. It was sometimes too late or a big pain to switch and I felt silly that I missed it in my initial search. This happened because I wasn’t rigorous in enumerating all the vendors that make devices in a given domain.
2. Generate a list of part candidates
Visit each vendor’s website and use their parametric search to find potential candidates. Be aware that these parametric searches are often missing many important parameters, resulting in a search that’s too broad. From the results, make a note of parts that look like they might work based on their titles, descriptions, and parameters. Your list may consist of anywhere from 5 to 50 parts depending on the type of part. That may sound daunting, but don’t worry: the list will shrink fast during the next step.
How I’ve learned this: On some prior designs, I ended up finding out too late that my chosen vendor had other parts in the family that were an even better fit. So these days I very much prefer to use the vendor website rather than some other parts search engine because I can trust that their list of parts is up-to-date and comprehensive.
Tip: One shortcut I often use to narrow down the list is to limit my search to parts that are currently in stock on distributor websites. This works if I know I need to build prototypes ASAP, or if I can’t afford to wait a few weeks for lead times and am okay with potentially spending more money on parts. Oftentimes, my search results from Step 1 on the distributor website will yield really good candidates that are in-stock, leading me to just pick the first one that’s close to “ideal”.
3. Trim to a shortlist
Quickly visit the product page of each part and skim through its feature list, while keeping the “ideal criteria” in mind to see if there are any glaring things that disqualify this part. You’ll find them fast. Most of the ideal criteria are typically listed in these product pages. This should distill your long list of parts to a qualified shortlist pretty quickly.
4. Do a little–okay, a lot of reading (it’ll pay off)
At this point, you should have a small list of parts that look like good candidates. The next step is to read the datasheet of each part to see if it meets your criteria. Datasheets can be long and everyone hates reading them. It’s tempting to rush through this step but it’s one of the most important stages of the whole process. Time and time again, I see people making design errors or spending hours on debugging, simply because they didn’t sit down and read the datasheet slowly. To save time, you can limit your reading to only the sections relevant to judging your ideal criteria. Every component has some quirks and this is the step where you should learn about them. Some quirks are not a big deal while others can render your design useless.
How I’ve learned this: I have too many war stories to tell, but here’s one where I lucked out: I was doing a complex design with a new FPGA family. FPGA datasheets are 1000+ pages so I got restless and skimmed through the important sections rather than reading them slowly. We picked this family because it had internal series termination resistors, which meant we didn’t need dozens of these on the PCB. We were almost finished the schematic design and my colleague luckily discovered a critical detail in the datasheet that this feature only works for I/O levels up to 3.0V. We were planning to use 3.3V I/O on several high-speed interfaces and not having terminations on the PCB would have been a disaster. I always remember this incident when I feel resistance to reading datasheets.
Tip: As you read through datasheets, you’ll start noticing the common words and phrases vendors use to describe these parts. You can go back to Step 1 and reuse these phrases to refine your search string.
5. Iterate: Rinse and repeat
As you learn about available parts, you may discover new constraints. For example, the candidate parts may only support an interface that your processor doesn’t. In this case, you have to find a new processor or change your design. Or you may find an ideal part but its required power rail voltage is different than all the other parts on your board. Expect to iterate on your entire part search and change other parts of the design to accommodate them.
Outsource your search
There are many people in the hardware ecosystem who can help you find the right part. Part manufacturers, distributors, and sales reps all employ technical people who work with these parts every day. Their job is to help you find the right part and they often do a good job about it. Email or call their sales office, describe your application, and ask them to suggest parts. This has saved me lots of time and has introduced me to parts I didn’t know about.
How I’ve learned this: I’ve done a few designs with dozens of DC/DC switching regulators and LDOs. But there are so many vendors in this space, each of which builds hundreds of components that differ only slightly. Finding the ideal part was always a nightmare. So I got fed up and tried emailing all the companies I was interested in and asked them to suggest the best part available for my specs. Within a few days they all sent me detailed reports, came into the office to give presentations, and were overall very helpful. I’ve used this method ever since.
Use FAEs as technical advisors
If you are working with technology that’s new to you, sometimes you don’t even know what tradeoffs to consider when choosing parts. You could spend hours reading on the Internet to get familiar with the technology. But I find there’s a much better and faster way. Simply find one of the biggest vendors in the space, email/call the sales office, and ask to speak with a Field Applications Engineer (FAE) who specializes in this technology. They will be happy to speak to you. Then be honest with her that you don’t know anything and explain what you’re trying to build. They will start asking you all the questions you should be asking yourself. You may not have answers in that moment but you’ll learn what’s important to consider.
How I’ve learned this: I recently did a Zigbee design but I had never worked with Zigbee or any similar RF interface. So rather than spending 30 hours reading about the intricacies of doing a successful Zigbee design, I simply read the Wikipedia article to get familiar with the basics then called a big company that makes Zigbee modules. They put me in touch with an FAE and I told him what kind of product I was trying to build. I asked him to explain all the things I should consider when doing a Zigbee design. By the end of it, I knew what questions I had to answer and felt confident in choosing a module. That single 45 minute conversation saved me many hours of frustrating research and also gave me a sense of confidence that only comes from talking to an expert who has helped several customers be successful.
When reaching out for help it’s important that you look like a legitimate company. This is because all these people are helping you in the hopes that you buy a chip that they sell. But they don’t want to waste time if they think you’re a hobbyist working from your garage. Make sure you have a professional company website or landing page and send emails from your company domain.
Lesson #1: What Type of Hardware Startup Do You Want to Build?
Lesson #2: Exploring Ideas
Lesson #3: Customer Discovery
Lesson #4: The Cardboard Prototype
Lesson #5: The Hardware Lifecycle
Lesson #6: Setting Up Your Business
Lesson #7: Division of Labor
Lesson #8: The Block Diagram
Lesson #9: The Development Board Prototype