Migrating from Eagle

After the replacing harddrive and upgrading to latest xubuntu I have hard time to setup my old eagle 4.1 to work again. Long time ago I try to go with KiCad but in that time just didn’t work. Now it’s time to review again. I did read ‘I come from eagle FAQ’ but didn’t find the answer I look. What I really like in eagle is that when I add something in schematics that thing immediate shows in pcb too. In KiCad seems that I need to place part in schematics, then associate the element and after that export netlist. In pcb then import that netlist. A lot of work. Is that still same today? And when you highlight net in schematic the same net is highlighted in pcb too. And is there any chance to import eagle files into kicad? (from eagle 4.16 binary).

Not really. You can follow the same style but also just switch to pcbnew (the layout designer) and update new changes from schematics.

I would never want to see some changes on the layout side without my confirmation. This is engineering change and must be carefully done.

By the way, for a longtime KiCad has been built with wrong compile switches on Ubuntu repos, so to be on the safe side add KiCad PPA to your system and install v5.1.8 from there.

Generating netlists, and then importing in Pcbnew is mostly deprecated. Generating a netlist and importing it in Pcbnew is still possible, but it’s mostly as an interface to external programs and utilities. The normal workflow in KiCad is to press [F8], which opens Pcbnew and puts the footprints in it.

There are still simple, and fully specified symbols in KiCad. KiCad uses simple symbols where it makes sense, such as for resistors, capacitors and transistors. For those come in many different sizes. But from KiCad V5 onwards there are extensive libraries and it’s grown now to some 16000 parts.

A bunch of years ago I was evaluating schematics and PCB programs, and in one of the programs it was not possible to change the value of a resistor, and of course, the first experiment I did was with a 0.2 ohm shunt resistor that was not in the database. I think that program was Eagle, but I’m not sure. I tested some 5+ programs back then before I settled on KiCad. The advantage of the simple symbols in KiCad is that it makes it easy and quick to enter some back-of-a-napkin kind of schematic, and worry about PCB details later. Half the schematics I draw do not even make it to the PCB stage, but are one-offs soldered on matrix board.

Eagle projects can be imported in KiCad. There are still some small issues but it has been working quite good for over a year.

Some time ago I helped someone to port an Eagle project to KiCad.
The initial port took 5 minutes, but I did spend a few hours on cleanup.
The project name is “rosco_m68k” and it’s on Hackaday and github:


eagle import works only with the new eagle file format. I dont know exactly - it may be >V5 ?
It may be worth a try to start an eagle with freeware licence, load your old 4.x files, change or add somthing minor and save again.(dont know if the freeware can save everything)

Personally I like the fact that KiCad does NOT synchronize WITHOUT asking me. I have often destroyed my existing Layout while making changes in the schematic.

There is a slight misunderstanding about kicads capabilities here. The ascociate footprint step is only necessary if you work with generic symbols. Even the official library has most of its symbols made as fully specified which means the footprint is already assigned.

What is true is that you need to trigger the pcb update. I did not like it at first but it grew on me. In general i now like the added control i have.
Something similar to the following example happens to me quite often. I might for example want to add two things and remove one. The state in between is not really a valid state and would break more on the pcb than i really want to be broken. Which is why i prefer being in control when the update happens.

And as others indicated the netlist is no longer necessary. Use update pcb from schematic (F8). The netlist really is only there for interfacing with external schematic capture tools.

KiCad is not Eagle.
It is important to realize that before you start.
If you try to use KiCad in the same way you used Eagle, there is a chance of disappointment.
KiCad does some things differently, and therefore involves a learning curve.
If you invest a bit of time to get to know KiCad and let the pieces settle into a workflow that works for you, then it works quite good.

1 Like

Sadly the documentation of KiCad has timelag with functions. That F8 feature seems to be great one.

About library I assume that each symbol (for schematics) can have more footprints but there should be default.
For example when I place capacitor on schematic I konw that it is SMD0805 by default (and if they have 100nF value as default is nice too).
If I have choice to select on design start to prefer THT over SMD component that’s even greater.

I can’t find difference within fully specified symbols and simple symbols?
For importing I think is there are some automatic way as there are hunderds of projects…

Well I agree that automatic changes can be anyoning but after such use of eagle I know how its behave. Some parts I like some not. When I last time try eagle the workflow to update PCB was just to high.
I do install from PPA.

That seems to be nice news.

Hmm you scare me with that!
AFAIK the project management is very different. (well the eagle nearly doesn’t have that). And having multiple schematics sheets seems non existing in KiCad, but instead use modules. That is not what I want. But having both should be really nice.
I don’t care about autorouter as until now I do all routing manually. Does I miss something else?

The “fully specified” parts are the vast mayority of the parts and have a footprint, and are ready for use. Some of them also have an URL pointing to a PDF for the datasheet (accessible via [Ctrl + D], but Internet changes a lot and those links are not always stable.

Some things are just personal preferences.
I’d much rather have a resistor with no pre-assigned footprint, then a resistor with the wrong footprint pre-defined. Same for the values of R’s and C’s.

The only experience I have with “multi sheet” schematics in Eagle is the port of the rosco_M68K project. The hierarchical sheet design brings much more structure into a schematic and is much preferable above browsing through schematic sheets with “random” info. It’s quite easy to have a “main page” in KiCad with a block diagram of the design, and then you can click on the blocks to go into the hierarchy to see the details. I added the overview sheet in the rosco_m68k project as part from the port to KiCad and that probably was what took the most of the time of the port.

For the “simple symbols”, there are 4 or more methods to add Footprints and change values. The simplest is to assign a footprint to your first resistor, and for all the others simply make copies of that in the schematic (Making a copy is quicker then getting a new resistor from a library).
Another method is a handy spreadsheet overview of all the Schematic symbols and their parameters with: Eeschema / Tools / Edit Symbol Fields

Ah yes, many things :slight_smile:
For example, there are also other tricks you can do with hierarchical sheets in KiCad. Imagine you want to build a graphical equalizer with a bunch of filter banks. You can draw one of the filter banks on a hierarchical sheet, then insert that sheet as many times as you want in the design, and when you get to the PCB part, you only have to do the layout for one of the filter banks and you can use the “replicate layout” script to replicate the component placement and PCB layout to the other filter banks.

Because of it’s Open Source nature there are lots (20+) side projects around KiCad. One of the most praised is the “HTML Bom” script, which is an interactive program that runs in a browser and helps with hand assembly of a PCB. You can keep track of the placed components and more.
Another worthy script is “SKiDl”. It is an alternative method for creating a netlist from a Python script. Think of it as a sort of VHDL for schematics. You can for example use nested loops to create big LED arrays.

And there is much more. But don’t put too much hay on your fork just yet. Start with the basics.

If you start with KiCad, My advise is to start with a few very simple projects, on the level of a blinking LED with a NE555. Doing a few of such simple projects gives you upto speed with how KiCad works fast, and if you make silly mistakes, they’re much easier to fix than on a project with 500 components.


Thanks for all explanations. Starting with simple project is ‘mandatory’ in all PCB programs. I did check KiCad few times when I upgrading my system but I still goes with something I allready know. But I think now is time to change eagle with KiCad. I know that I can’t convert project to new software and for any intervention in future I will need Working eagle as I allready have working version of Tango PCB from year 1990 Even now the customer popup question if I can change that design older than 20 years.

You’ve been looking at KiCad for several years, and weighing whether you should switch now.

It’s a bit complicated…
KiCad is now very close to version 6 (expected in a few months), and the current nightlies (Version V5.99) has been in feature freeze and testing phase for some time now.

Quite a lot of things have improved in V5.99. There is some 2 years of development effort put into it.

Yet, it is not officially released yet for (very likely) valid reasons. While some say it’s getting in a pretty stable state now, it’s still likely to have more bugs then the stable KiCad V5.1.8. I have just installed V5.99 yesterday for the first time (Bot V5.0.8 and V5.99 can be installed at the same time) But I have not yet done any serious work with it.

I am conflicted in which version to recommend, and so are others:

KiCad projects made wit V5.1 can be opened in V5.99, but once saved in V5.99 there is no way to go back to V5.1.

If you’re not in a hurry, maybe the easy way out is to wait a few months until KiCad V6 is officially released.

I’m not sure, (I just installed V5.99 myself) but my best guess is to start with V5.99 now, as it has many enhancements, but postpone doing serious work until V6 is officially released. But keep in mind that you may encounter some bugs as V6 is not yet officially released.

If you find a bug in V5.99, then there is a lot of interest in squashing it. Over the years I’ve made a few bug reports myself and they tend to get squashed in a few days, especially if the bug report is so good that the bug is easily reproducable and can be located in the sourcecode. For stable versions, it of course takes time to propage till the next minor update, but for the nightlies this can well be overnight. :slight_smile:

sadly find bug in 5.1.8. Deleting symbol from library cause segmentation fault. Olso clicking on test-cache.lib in project manager freeze computer. Empty popup window with title Loading Symbol Libraryes appear and nothing else. Not possible to close it. After some time system window appear that there are unresponsive window. Seems that segfault on library edit/delete is known for long time allready.

Do you have a reference for this?
You probably already noticed I intend to make a bug report for this, See:

and any additional info is welcome.

Three years ago I decided to move (slowly) from my old Protel 3 to KiCad. New projects in KiCad, new revisions of old projects in Protel. Just from yesterday - I have to modify some 10 years old design. My decision is that (for the first time) I prefer to copy it into KiCad - I will made schematic and PCB in KiCad looking at the Protel opened at another PC. I didn’t start it yet, but don’t think I will change my mind and went back to Protel. Probably doing it in Protel would take me less time, but I know that in 2…3 years I will have to do the next version of this PCB - then I will certainly have to move to KiCad so I prefer to do it now.


This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.