I'm designing an MCU-based electronic device and have a BOM of the major components (power regulators, MCU, serial communication ICs, etc.).

Is there any piece of software out there that can convert the suggested circuit designs found within an ICs datasheet to a schematic file? I realize it's the engineer's job to design the schematic, but 98% of the circuitry I'm putting on paper is literally the recommended design within the datasheet. Seems like a waste of time to copy over the manufacturer's circuit schematic from PDF to a KiCad schematic file; wire by wire, and components by component.

Ideally I'd want to select all the major components, then let a piece of software perform all the recommended connections (caps on power supplies, resistors on com lines, etc.).

  • 2
    \$\begingroup\$ You could check for schematic files for eval boards for the part, but I don't think a "schematic OCR" type software would be an overall timesaver. \$\endgroup\$
    – vir
    Commented Dec 29, 2022 at 20:16

3 Answers 3


If your circuit is very similar to the one on the IC datasheet, do you check if there is a reference design (eval boards) done by the IC manufacturer that can fit most of your requirements instead of designing your own?

What you request is not a simple thing. I don't know if any software can be that smart. Even if such software exist, you still need a lot of manual checks to make sure what it generates is not a piece of garbage.


Seems like a waste of time to copy over the manufacturer’s circuit schematic from PDF to a KiCad schematic file; wire by wire, and components by component.

You'll spend so much time doing everything else in the design process, that this time should be negligible. Invest time in learning KiCad well enough to be highly productive in it. "Copying" those schematics should take almost no time compared to the time needed to add the component symbols to your project library in KiCad. And even that should go very quickly once you've done it a couple dozen - hundred times.

If you're not productive enough in KiCad, then that's the problem to fix. The schematics would look like utter crap anyway if you just copied and "assembled them" from whatever package the evaluation kit designers had each standard application circuit designed in.

After the design work is done, then for most parts, the time will be spent not connecting them on the schematic, but doing all the bureaucracy: selecting footprints, manufacturer part numbers, hunting for 3D models especially for mechanical and connectors, and finally doing basic 3D modeling of parts no models can be found of. This is a big problem for legacy parts that have been around for a long time - often the manufacturer has no 3D CAD documentation for them, and thus can't easily generate a 3D model. There are 3D modelling services that will make a part model for a modest fee, but there's a wide variation in the quality of such models, and usually I find that it's faster to just do it myself - the model will capture what's important in my application. Now, of course it'll be excruciatingly slow when you do it the first time. Just keep at it and it'll soon enough become a botherless and quick process.

Board design isn't just electrical: you really want to generate a STEP file of the board assembly that the mechanical/thermal people can drop into their CAD to design enclosures, cooling, etc.

The way I've tackled this to have a "Catalog" schematic symbol library that has one part per each physical part that's orderable. Say, a particular capacitor part number has its symbol, and that symbol has data about the footprint, manufacturer part number, distributor part numbers, budgetary cost, etc. You only do it once per part, and then you can reuse the part in many designs. Often, for example, you'd hunt down a "good" 100nF 0603 decoupling capacitor - good meaning it's in huge quantities in stock at various distributors, and is priced well. There's no need to repeat that job. Just look for a C_100nF_0603_X7R_MMMMMMMMM in your library. If you've done the job right, the BOM will contain information that a board assembly house can use directly, the corresponding footprint will have a suitable 3D model of the part, etc. This speeds things up tremendously if you're doing many designs with similar parts. And even for larger, unique designs, it prevents many mistakes.

There's also the potential to integrate auxiliary data into the symbol library - data that transfers to the PCB layout, and can be used - via variable substitution - to provide annotations on the FAB drawings. These annotations would be part specific, and perhaps easy to forget otherwise. You can actually enter them in the schematic symbol's data field, refer to them in the footprint's FAB layer, and finally tweak the location of the annotation on the FAB layer in the PCB you're working on. Those can be e.g. assembly notes for parts that require additional information, etc.

Eventually, you'll probably want to figure out useful KiCad plugins/extensions that integrate/update data from distributors, such as cost, and further you'll try to adapt those for your own workflow. When using KiCad, learning a bit of Python and wxWidgets goes a long way to boosting your productivity. And those are transferable skills!

Some symbols have multiple variants so they can be properly represented on the schematic in a way that makes sense. E.g. a quad line driver may be best represented as a single symbol with 4 input and 4 output pins in some parts of the schematic, while in others it makes sense to have 4 sub-symbols in the part, one for each line driver channel, with 2 pins each.

For connectors: I usually make the connector pinout a part of the symbol - that way the schematic can be more readable, and the connector can be logically split into sub-symbols that capture signal groups that then lay out nicely on the schematic. There's also less potential for mistakes, since the same specific connector symbol can be aliased to mating connectors (e.g. male/female), ensuring the clerical mistakes in matching the pinouts are impossible due to the very process itself. And it's also impossible to mis-label the pin on the schematic: the signal name is the name of the pin in the connector symbol. It's much easier to verify that they match. Furthermore, it takes a very simple ERC script to enumerate all connector pins in the schematic, and ensure that the net names connected to them match the pin names. That way, if you connect, say net labeled CLK to a pin named BUSY, the script will pick it up. KiCad file formats are easy to work with for custom tooling, and there's plenty of Python glue out there to make it happen.

After decades of work, I find that I am much happier at the end of the day if the schematic is beautiful and not just a glorified netlist that has some symbols thrown in.

It's the kind of a setup that then makes the schematic and subsequent layout very fast: all the drudgery is done ahead of time, so if you put a part on the schematic, you know it'll appear on the PCB layout with the right footprint, on the 3D PCB view with the right model, on the BOM with the correct unambiguous part number, etc.

This also prevents mistakes in the often inevitable "race to FAB", where time pressure may induce unnecessary stress. If all the bureaucratic work is done ahead of time, then you can usually trust that a schematic that passes ERC, a layout that passes DRC, will give you a manufacturable and correct assembly back. Without, say, a couple of 10k resistors being populated with 1k resistors - easy mistake to make if your process is manual and there's time pressure!


The schematic itself is the least of your worries.

Even if it a tool existed to take a graphical schematic and translate it to a CAD one, the visual representation lacks other information essential to the design: complete part numbers, physical footprints, operating parameters (voltage, current, temperature, etc.)

Not only that, the reference designators need to merge with the rest of your design.

That said, manufacturers sometimes offer reference designs in CAD form. This makes the process much easier.


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