Hacker News new | ask | show | jobs
by kiwih 931 days ago
Firstly, well done on making your first PCB - and it looks like you've done a pretty good job besides!

> I passionately hate Digikey’s search interface. It is shockingly bad at having the right metadata for filtering to be effective.

I disagree wholeheartedly. Digikey has amongst the best interface for parts searching that I have ever used.

What exactly about the interface do you dislike?

2 comments

100% this. I shop almost exclusively on digikey at work when I can because their search is *so much* better then everyone else's.

It's certainly not great, but it's definitely the best of any electronics component vendor by a large margin. Mouser's filtering facilities are dramatically worse.

i had no idea how to use digikey until I watched Lady Ada do it on an Adafruit video tutorial.

compared to a lot of other web interfaces, its not exactly intuitive but once i got the hang of it its nice.

It's probably the best there is, but still leaves a lot to be desired. For example, let's say you want to choose, say, a power MOSFET to handle certain large current. In your design you could use one, or you could use multiple in parallel. Naturally, in this case you want to sort parts by amps per dollar, but you can't sort or filter by mathematical functions of combinations of parameters. So first you have to assume you'll use one mosfet, and find the best one; then repeat assuming you're paralleling two, and so on... Same if you're looking for capacitors and so on. You can rank by dollars, you can rank by Farads, but you can't rank by Farads/dollar, or stored energy (farad-volts-squared) per dollar etc. You could perhaps export to excel and do the search yourself, but sometimes that's not easy.

You can specify value (6 mH) and tolerance (+-10%), but not joint values-and-tolerances. So if you really need at least 6 mH minimum, you technically want to search >6.7 mH +-10% and >6.3 mH +-5%, etc, but that's extra work.

Sometimes the parameter you care about simply isn't available in Digikey's filter, because it's a little obscure like... high-frequency CMRR, or something. So you have to dig into each part datasheet one at a time. That's not really Digikey's fault though; they've tried their best to guess the parameters that are most important, and nobody else has done better.

Where it does get very frustrating is when you need to search through ranges of ranges of values. Like, if your application has a supply voltage that could be between 3.3V and 5V, then you want to filter out parts that require an input voltage higher than 3.3V, or are damaged by an input voltage below 5V. But there's rarely an easy way to do this; often Digikey has one column containing value ranges like "1 - 4V", "1 - 4.1V", "1 - 4.2V"... "1.1 - 4V", "1.1 - 4.1V", and so on. Some of their filters have gotten smarter, but many are still like this, and it takes a long time to go through and select all possible acceptable parts and reject all inadmissible ones. So to save time you end up just guessing at a few likely ranges of values, but then later you discover that there's one really good part that's perfect and cheap but it can tolerate voltages all the way up to 25V for some reason, and you just filtered it out early on because it would have taken too long to scroll that far down.

Searching for connectors can be very frustrating, because there's usually no easy way to look through related parts in a connector family, like to find matching male and female crimp pins and their respective housings.

A lot of frustrations like that are very common, especially when approaching a design from a blank slate.

I think you’re in an uncanny valley where you want to have those powerful search features, but haven’t realized you probably wouldn’t actually use them. For ubiquitous passives, the DK search has all the relevant requirements, and then I’m just picking the manufacturer I have a relationship with. The supply chain on a single passive isn’t worth the headache to save a few percent.

Aside from passives though, you’re never going to get exactly what you want from any reasonably bounded database. For a FET you’re trading footprint, thermal impedance (both up and down), SOA, parasitic capacitances, turn on times.

When I’m picking a key part, I’ll start with a DK search, get a sense for which MFGs are leading the field, make a list of 10 or so parts that look promising, and go through the material on each, filling out my own spreadsheet as I go.

That’s even more true for anything with digital logic, where it wouldn’t be possible to sort by the enumerated features in a meaningful way.

I know I'd use them, because I've had to script them myself. Often this comes into play not for random passives, but for key cost-driving components: a big pulse-capable capacitor (eg. for spot-welding), power mosfet, a precision differential amp, and so on. You can end up in a design space where the one-piece component you want is super expensive and rare, but if you make the same thing out of two or three or twenty parts, you can use cheaper and more common components, and benefit from higher volume pricing to boot.

Gate capacitance is a great example because if I'm considering MOSFETs in parallel I'll want to bound the sum of their capacitances. Again, easy to do with expressions, hard with DK's interface.

What other sites do (eg. TI) is have a bunch of extra search fields but make them collapsible.

Optimizing Digikey prices is a bit of an oxymoron, isn't it? They're expensive because they're fast.

Also, specs aren't well standardized between manufacturers. TI has some good videos explaining what their power MOSFET specs mean and how those definitions vary across the industry.

Automatic optimization can only get you so far.

Aware of all this but none of it justifies a poor part search experience. And this isn't pinching pennies; sometimes we're talking about a two order of magnitude cost difference, especially when your initial hoped-for specs result in just a few options that are all rare military-grade things. Furthermore usually, if part A is $10 on digikey and part B is $1, then even when you find a different supplier or order direct from manufacturers, part B will usually be cheaper than part A on a relative basis, even if the price difference becomes something like $2 vs $0.50.

If there's a part that would have worked better, but you weren't able to find it, that's a problem with search.

Furthermore, cost is just as an example, the same applies if you're looking to minimize package size, temperature rise, power loss, etc. Any component selection is an optimization process and ideally, a good search and filtering will enable you to sort for exactly the specs you need to find the best component candidates more quickly. Maybe that doesn't mean filtering by price, but by (voltage*quiescent current + conduction loss + switching loss), and so on. Or (rise time + propagation delay), etc. Of course you still need to read the datasheet to make sure. We're just talking about better search to find the parts that meet your actual requirement. The point of good search is it should do the mechanical work for you of finding parts, rather than making you try different parameter combinations again and again by hand.

Digikey is still the best, but that doesn't even mean it's good.

Maybe a better way of phrasing what I'm trying to say is it sounds like you're relying too much on metadata search for what you're trying to accomplish. I agree that the search is bad for the way you're using it.
I second this. For some things the search is adequate, for a lot of things it's still quite painful, and it's largely an issue of both coming up with an appropriate structure for the database (which has to represent a huge number of different kinds of components with different parameters and different means of specification) and then actually maintaining the quality of the contents of such database to a level where it is actually useful (it's annoying when an incorrect part shows up because of a typo, misinterpretation of a datasheet, or misclassification of a part, and it's even worse when a part doesn't show up for the same reasons). For another example, noise performance on analog components can be specified in multiple different ways, and different manufacturers or even different parts from the same manufacturer may use different means. Generally these can be converted for a useful comparison, but the people maintaining digikey's database do not have the time or necessarily the skills to actually work this out, and so it's easy to miss the best part when you search because the value isn't even populated.

Finding parts is still the slowest and most critical part of a PCB design, and it's especially difficult for a beginner because it's hard to even know what you might want to look for. Even with years of experience I can find myself spending days just trying to find the right keyword or set of different keywords for some functionality or another, and the search is pretty dang useless for this (maybe it is something which LLMs could help with: parsing and understanding a gigantic database of datasheets which I could query by saying "I want a part that does this that and the other, with specs like so. What part or combination of parts can do this?").