I am truly a novice in PCB design, so I am new to all aspects of it. What I am having the most trouble with is actually picking suitable components. The trouble I am having is that I am not really able to use most of the components I find from Google or elsewhere.

To use a component on a board, I want to be able to stick it in some PCB design software and be able to use it in a schematic, place it on the PCB and simulate its behavior. However, this seems to be endlessly difficult. The problems I run in to are:

  • I can't find the part in any component library anywhere
  • I can't find a simulation (SPICE/IBIS) model for the part
  • I find a SPICE model, but it is for some different version of SPICE and doesn't work
  • I find the component in a library, and a simulation model, but it is an outdated component and not recommended for new designs
  • Everything else is fine, but I can't find the SMD version of the component

The end result is that when going over Farnell component listings, I am forced to pick components based on what I can simulate and find in some library, instead of picking the component that is most suitable for the design. This seems like it should not be so.

Is there any way to actually have a large library of components for which all of these things exist? The best I have come across so far Eagle with component libraries for every manufacturer separately from Farnell community site. But even that is severely lacking as I don't usually find the components I want from the manufacturer in the library - and obviously there are no simulation models for these. Eagle also has the nice DesignLink feature, but that doesn't seem to help me any in this case.

As an example: I am looking for a generic opto-coupler with transistor output, 4 pin SMD package and 100% or more CTR. I'd like to be able to compare a few options and not pick the one option that might be available for both my simulation software and my PCB design software.

Commercial solutions are okay.

  • 6
    \$\begingroup\$ This is pretty common, usually we build our libraries of parts, schematics and models ourselves over time. A lot of times if you find a part you like you can find a generic model from the manufacturer (sometimes you have to ask them for it directly). Then your tools should have a way to import and use that model. As for components in a library I usually draw them by hand, although there is software to automate that with data coming from a datasheet. There's also software that automates taking the part data out of farnell, or digikey and putting it into your own database. \$\endgroup\$ Nov 14 '12 at 22:42
  • 3
    \$\begingroup\$ In general though that whole finding the right part, making the symbol, making the schematic, and getting a good simulation model for it is all part of what it takes to do a design. Also if your chosen part manufacturer can't help you get spice models, then why give them any business ;) \$\endgroup\$ Nov 14 '12 at 22:43
  • \$\begingroup\$ I love making new footprints, yay! :) \$\endgroup\$ Nov 15 '12 at 17:16

You will never find an absolutely complete parts library from any vendor. What you need to do is learn how to use the library editor of your tool. There you create packages and symbols that you can place in your schematic and layout, based on the datasheets from the manufacturer.

As far as simulation goes, there is no complete/unified tool for this. You'll really only find SPICE models for basic parts, such as transistors and diodes, and sometimes for bus drivers (like pins in an fpga). You'll use a SPICE simulator for doing timing and frequency analysis for that kind of thing. For code, you'll use the simulator that usually comes with the development environment of the processor. For VHDL/Verilog, you'll need a simulator such as ModelSim for that. And for simulating transmission lines for signal integrity, there are also separate simulators that take in geometric and materials data, and also the bus driver models I mentioned before.

So the idea of simulating the whole design in one go is not really feasible, unless its scope is very narrow. What you end up doing is simulating each subsystem separately in its own suitable testbech environment, and then join everything in the pcb. Once a prototype has been manufactured, you can test, probe and debug the system as a whole.

  • 1
    \$\begingroup\$ It seems very counter intuitive, that even if I'm doing something very basic, that I need to add the components to the library by myself. I mean, that must be a huge number of wasted hours of effort across the globe when everybody reimplements the same component. \$\endgroup\$
    – Nakedible
    Nov 14 '12 at 23:41
  • 3
    \$\begingroup\$ Maybe but I get paid for that effort :) Seriously though not everyone creates a part in the same way often you need to move pins around or conform to different standards. Also a lot of times the vendors don't want the liability of giving you an incorrect symbol, or the hassle of going back and updating and maintaining a huge set of libraries for all the different tools and versions out there. \$\endgroup\$ Nov 15 '12 at 0:01
  • 2
    \$\begingroup\$ @apalopohapa - Awesomely good answer. \$\endgroup\$ Nov 15 '12 at 1:19
  • 4
    \$\begingroup\$ @Nakedible -- About all I can say here is "welcome to the real world of engineering". \$\endgroup\$ Nov 15 '12 at 1:21
  • 3
    \$\begingroup\$ Part of the problem is there's no standard. The closest thing is OrCAD - nice large parts library, but too expensive for hobby use. Sparkfun and LadyAda do what you suggest - but only for Eagle. While Eagle is popular it costs a non-zero amount and isn't open-source (although the design files are now open). The totally free packages rely on volunteers to create libraries. You are one of those volunteers now. Congratulations! \$\endgroup\$
    – AngryEE
    Nov 15 '12 at 17:06

Usually you will need/want to draw your own symbols and create your own collection: some manufacturers do provide symbols, but sometimes they are not available for the CAD package you're using.

Besides, I have seen some CAD packages which come with very low-quality symbols and many symbols for obsolete/not recommended for new designs parts, in order to lure people who prioritize quantity over quality.

As for simulation, the ideal usage is to simulate blocks of your system at a time, not an entire system which might become difficult, or even impossible, to simulate. It is also interesting to learn how to create your own models or modify/improve existing ones.

Part of the "picking a suitable component" process can be done with parametric selection tools which are available from manufacturers (e.g. from TI).


Given there are about a billion electronic P/N's accumulated to date and DigiKey has 3 million of which, there are 10,000 opto-isolators and you are wondering why your free tools don't capture all these? Big companies pay for tools or time to create the common library parts. When I was Operations Mgr for an R&D company, for documentation side, I looked after Eng release controls, Inventory, Standard Database of internal PN's, BOM integrity, stock picks but I told the Engineers to create there own library parts. So they did which included schematic/library/PN creation of a standard part with multiple sources.

With regards to your example there are a couple opto Isolators which easily meet your requirements and in stock. However due to package restrictions there was only 2 out of 10K that matched.

When you build up your design skills , criteria for cost, stable supply/std PN, may change your filter requirements and help minimize your library needs and adding a new part will become a trivial task. That being said, all the basic passive RC SMT library parts ought to be available in generic form. We used internal PN's for BOM so purchasing has flexibility but Eng must specify prefered PN"s and Mfr's.

But I sympathize with your challenges.

added Others in this forum have attemped to define the optimal CAD package, but it all depends on your budget and needs, so it does not exist. Consider that CAD packages range from free to $0.2M per seat, which does mor ethan you specified, your needs may be satisfied with a $5K budget such as Proteus Pro or maybe you just want the Starter kit with 10K schematics, 1500 footprints . DipTrace is one I recommend with 100K library parts, but if you get the cheap version I know one who created their own who might share if you ask him. Also beware that IPC standard library footprints are essential and not free. Footprints vary between SMD reflow and wavesolder for the same device and designed for most equipment to give fewest solder defects.

  • \$\begingroup\$ "Big companies pay for tools or time to create the common library parts." But do they share this? Is it possible to buy this library of parts? Does some (expensive) PCB layout software come directly with it? \$\endgroup\$
    – Nakedible
    Nov 15 '12 at 14:13
  • \$\begingroup\$ So just to confirm... what I ask is indeed available for purchase, but might cost $200000? If that is the answer, I'm fine with that. (Not paying $200000 obviously, just knowing that it exists.) \$\endgroup\$
    – Nakedible
    Nov 16 '12 at 21:32
  • \$\begingroup\$ YOu can pay for a company to create custom library from a BOM and imagine it takes ~<20 minutes per part for small qty from scratch and there is an economy of scale and wealth of accumulation of tools. BTW $200K gets you a lot more than a library.! But then you have 10% annual maintenance costs. \$\endgroup\$ Nov 16 '12 at 22:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.