Summary of Converting from Eagle to KiCad
This article details a set of User Language Programs (ULPs) designed to convert Eagle schematic and PCB files (versions 6.xx to potentially 8.xx) into KiCad formats. The process maintains net-list consistency, handles multi-sheet schematics, converts libraries, and documents unconnected vias to resolve flood fill issues in KiCad. It includes specific warnings about differences in net handling between the two tools and advises backing up files before conversion.
Parts used in the Converting from Eagle to KiCad project:
- renumber-sheet.ulp
- fix_via_hack.ulp
- eagle6xx-sch-to-kicad-sch.ulp
- exp-lbrs.ulp
- eagle-lbr2kicad-1.0.ulp
- eagle_to_kicad_include.inc
Converting from Eagle to KiCad.
- Quick Introduction Video
Recommended video player Firefox 56.0+ with VLC video player plugin - The following 5 ulp (eagle user script file) and one ulp include file, work together or stand alone to convert Eagle sch/pcb version 6.xx*(7.xx-8.xx maybe?)* file(s) and any version of Eagle lib(lbr) to KiCad sch/pcb and lib/mod files.
- The Programs will do
- Eagle multi sheet sch to KiCad multi sheets.
- Global and local net labels for multi sheets. (This is a real nasty bit of hacking!)
- Multi part gates.
- Build KiCad PCB modules and SCH libs from Eagle SCH.
- Make project director to store all the converted files.
- And basic error checking.
- Eagle 6.xx(7.xx-8.xx?) PCB files can be directly import to KiCad.
- Eagle LBRs (any version of Eagle libs or size ) can be converted to KiCad lib/mod using eagle-lbr2kicad-1.0.ulp see Eagle Lib conversion for more details.
- Converts VIA to Pads, which helps with KiCad’s flood fill, when VIAs have no connections.
- Documents fills over SMD pads on Eagle Layer 155,156
- Documents on layer’s 150,152,153,154 of (Eagle) the unconnected VIAs and tracks.
- The examples directory contains a number of converted schs/boards.
- By using the following ulps a consistent link from the SCH to PCB is maintained so forward and backward net-list annotations work under KiCad!
- WARNINGS, AND NASTY SURPRISES, PLEASE READ!!!
- On KiCad Eagle PCB import of vias and tracks don’t retain there NET information if they are not connected to a pad with a track, where as Ealge when they do, (KiCad assigned a null net-name on Eagle PCB import in KiCad’s PCBNEW).
The result will be KiCad flood fill will not connect to them!!! There is an option to convert and document on layers 150,152,153,154 of (Eagle) the unconnected VIAs and tracks which will make finding and fixing the problem much easier. - Schematics wire’s/nets can terminate in a buss or onto another wire/net/pad and not be connected in Eagle!! Where as in KiCad schematic wires to wires and wires to pads which terminates at the same location will be connected!!
- Eagle Oval pads shape’s are not supported in KiCad, you will only end up with a round pad!!
- Eagle PCB design rules are not imported by KiCads PCBNEW.
Installing.
- Download the zip file, and unzip using your favorite zip program to your target directory OR if your prefer git:
- WARNING: The ULPs file-name will conflict with Eagles ULPs file-names so
DO NOT install them in Eagle’s ULP directory - There are 5 ULPs and one ULP include file have been hack together.
renumber-sheet.ulp …………………… stage 1: Add missing number(s) to parts prefixes.
fix_via_hack.ulp ………………………… stage 2: Converts unconnected VIAs to pads.
eagle6xx-sch-to-kicad-sch.ulp …. stage 3: Build sch and project files, etc
exp-lbrs.ulp ………………………………… stage 4: Extract libs from eagle SCH/PCB
eagle-lbr2kicad-1.0.ulp……………….. stage 5: Converts Eagle lbr to KiCad lib/mod
eagle_to_kicad_include.inc ………. Include file used by the other 4 ULP\s
HOW TO RUN THE ULPs
WARNING Always backup your Eagle SCH/PCB files before running this program!
- Start your Eagle program (Make sure your using version 6.xx of Eagle)
- Open the eagle SCH/PCB file you wish to convert. Make sure the eagle SCH and PCB files are both, Correct and pass all ERC/DRC checks in Eagle.
- Next Open the top left hand File menu and select Run ULP
- A file requester window will open. Use this to select find or type the location of the renumber-sheet.ulp ULP you download from this website. We use this script to make sure all part prefixes are ending in a number IE: R0, X1 etc. as KiCad will ask to renumber any prefix which dose not end in a number. (It may do this any way, but don’t worry it wont change any prefixes which have already been numbered unless you tell it too!) Keeping prefixes consistent from SCH to PCB will allow net-list forward and back annotation to work in KiCad. Select OK (this will run the script). When this completes all references with out a number should have a number appended to them. Note: This number will start from the largest reference number on the SCH/PCB.
Read more: Converting from Eagle to KiCad
- What versions of Eagle are supported by these ULPs?
The programs work with Eagle version 6.xx and potentially versions 7.xx through 8.xx. - How do I handle unconnected vias during conversion?
You can use the fix_via_hack.ulp to convert unconnected vias to pads and document them on layers 150, 152, 153, or 154. - Can I convert Eagle library files to KiCad format?
Yes, you can use the eagle-lbr2kicad-1.0.ulp script to convert any version of Eagle LBR files to KiCad lib/mod files. - Why might KiCad flood fill fail after importing an Eagle PCB?
Flood fill may fail if vias and tracks lack connected pad information, as KiCad assigns a null net-name to unconnected items during import. - Are oval pad shapes from Eagle supported in KiCad?
No, Eagle oval pad shapes are not supported in KiCad and will be converted to round pads. - Do I need to run all five ULPs for every conversion?
The ULPs can work together or stand alone depending on whether you need to renumber parts, fix vias, convert schematics, extract libraries, or convert library files. - Is it safe to install these ULPs directly into Eagle's directory?
No, you should not install them in Eagle's ULP directory because the file names conflict with existing Eagle ULPs. - Will net-list annotations work between Eagle and KiCad?
Yes, using these ULPs maintains a consistent link so forward and backward net-list annotations work under KiCad.

