The "ditch Eagle for Kicad" post is turning into one of my most viewed.
In that post (read it here) I briefly detailed importing files from Eagle format to Kicad.
Kicad Version 7 could ingest most Eagle data into a Kicad Project but not all of it.
Nevertheless, importing a subset of my Eagle data into a new Kicad project was easier and less time consuming than recreating the entire project from scratch.
Good news! With Kicad 8 all the data needed for a new Kicad project can be imported from Eagle. This is hugely beneficial for anyone ditching Eagle for Kicad.
I have a workflow I use for this process; since adopting Kicad I have imported frequently....I felt the steps deserved their own post to help me own efficiency. If this post is useful for you as well, even better! However, if you have no need to import Eagle data into Kicad your time is arguably better spent watching these guys.
GETTING STARTED
For this example I am importing a simple Eagle project with 4x Thonkiconn jacks and a few wirepads.
First up: I needed a name for the new Kicad project.
I made up a name. It could have been anything: Big Fun With Small Jacks, Bored with Inserting, etc.
But instead I got pedantic: "mono 4x1 mixer Euro Jacks".
With the new project name in hand I made copies of the .sch and .brd files I needed to import from Eagle; I left the original Eagle files as-is.
I created a new directory in my Kicad root folder called "Mono 4x1 mixer source files from Eagle".
Then, I pasted the copies of the Eagle .sch and .brd source files into this new directory and renamed the Eagle .sch to .brd files to filenames I want to use for the new Kicad project.
When importing from Eagle Kicad will reuse the names of the files from Eagle but put its own extensions on them. If you want to give your imported Kicad files new names, renaming the copied source files from Eagle is an easy way to do this.
Copy the .brd and .sch files from Kicad to an newly created empty "source" directory. |
Next: I created a new project folder for Kicad.
Under my Kicad Root folder I created an empty folder with the project name--this will be the target for the import; the folder name matched the filenames of the renamed Eagle files.
LET'S IMPORT!
Do you have time to figure out how Kicad's layer matching feature works, beyond just choosing defaults? I don't. |
For any Kicad_pcb fabrication needs check out PCBWAY, this blog's sponsor |
COOKING WITH OIL....
During the import process I got a couple of warnings/errors; hello??New sch file--just like what I had for Eagle! |
New footoprint file! How easy is this? |
EDITING SYMBOLS AND FOOTPRINTS
- Creating Courtyards. Footprints imported from Eagle didn't have them but Kicad wants 'em as a best practice. Courtyards for imported footprints have to be created by hand, so what the heck, I edited the imported footprints and added 'em. Not technically necessary, but, if I started moving things around I figured courtyards were a good thing to have.
- Making Eagle fonts Kicad friendly. By default Kicad wants footprint fonts to be .8mm. Imported fonts from Eagle can be smaller.
- Easy fix: I chose the text causing DRC issues, hit the magic e key, and changed the font width and height to .8mm or greater.
- Then, I reimported the updated footprint from its library into the PCB.
- Silkscreen madness: Eagle allows overlaps of silks and other silkscreening oddities that its DRC doesn't catch but Kicad's does.
- To ameliorate: I edited the footprint, getting rid of or relocating silkscreen artwork that was causing Kicad's DRC to throw errors and warnings. I saved the updated footprint to my custom Kicad footprint library then reimported the updated part into my design.
- Pin name Changes: this now seems obvious but I missed it at first.
- For my own edification: I should never expect pin assignments from Eagle to match much of anything in Kicad.
- Using imported footprints and symbols in a single new project worked, but as soon as I used the part in a different project things occasionally broke.
- Meaning: traces to cathodes went to anodes, traces to transistor emitters went to collectors, traces to a pot wiper went to something other than a wiper--all bad news.
- Modifying symbols and devices from Eagle to work universally in Kicad required a bit of forethought and elbow grease. Diodes in Kicad needed pin 2 for anodes and pin 1 for cathodes, for example, as this seems semi-standard for Kicad.
- I found I needed to carefully examine imported footprints and symbols, then edit them to make them work for a given future design. No easy fix for this, I had to do this extra work or not use an imported Eagle footprint beyond its initial project.
- (BTW: for me--everything I think might be useful for future projects goes in my github custom footprint and symbol repos--e.g., my footprint custom library can be found on Github--here)