epro2kicad

Convert your EasyEDA Pro projects to a KiCad-ready zip — from the command line.

License: MIT Python 3.8+ KiCad 8/9/10

KiCad ships an excellent native EasyEDA Pro importer — but it’s buried in the GUI. epro2kicad drives that same importer headlessly through KiCad’s bundled Python API, so you get GUI-quality conversion in one command. No cloud uploads, no re-drawing, no dependencies beyond KiCad itself.

$ python3 epro2kicad.py MyProject.epro --zip
using KiCad python: /Applications/KiCad/KiCad.app/.../python3
converting PCB a7363ec0... ...
  footprints: 45  tracks: 1068  nets: 63
wrote MyProject_kicad.zip
done: MyProject_kicad/

Example

The examples/ folder contains a real conversion: the Daaga V1.3 sumo-robot board (Arduino Nano + TB6612FNG motor driver + QRE1113 line sensors), exported from EasyEDA Pro and converted with this tool:

Daaga 1.3 board rendered by KiCad after conversion

This render was produced by kicad-cli pcb render from the converted .kicad_pcb — every footprint, track, zone and the breakaway sensor panel survived the round trip.

Features

Install

No install. Just KiCad ≥ 8 (kicad.org) and this script:

git clone https://github.com/enkhbold470/epro2kicad.git
cd epro2kicad
python3 epro2kicad.py path/to/YourProject.epro --zip

If KiCad’s Python isn’t auto-detected, point at it explicitly:

export KICAD_PYTHON="/Applications/KiCad/KiCad.app/Contents/Frameworks/Python.framework/Versions/Current/bin/python3"

Getting your .epro out of EasyEDA Pro

In EasyEDA Pro: File → Export → EasyEDA Pro (Professional) Project — that .epro file is what this tool eats.

Usage

python3 epro2kicad.py PROJECT.epro [-o OUTPUT_DIR] [--zip]

  PROJECT.epro   EasyEDA Pro project export
  -o, --output   output directory (default: <name>_kicad/)
  --zip          also produce <name>_kicad.zip
  --version      print version

What about schematics?

KiCad’s EasyEDA Pro schematic importer is GUI-only (there is no headless API for it, and no third-party tool supports the Pro format). The output zip includes your original .epro plus instructions — the one manual step is:

KiCad → File → Import Non-KiCad Project → EasyEDA (JLCEDA) Pro Project → select the .epro

That imports the schematic (and PCB) in about 30 seconds.

How it works

  1. Normalize — repacks the .epro zip with clean \n line endings in every JSON Lines document (.esch, .epcb, .esym, .efoo). Some EasyEDA exports carry CR/LF endings that hard-crash KiCad’s parser.
  2. Convert — invokes KiCad’s bundled Python and calls pcbnew.PCB_IO_MGR.Load(EASYEDAPRO, ...), then saves with PCB_IO_MGR.Save(KICAD_SEXP, ...) (not SaveBoard, which touches project settings and crashes outside a full KiCad session).
  3. Package — writes a .kicad_pro, copies the original .epro, adds a README, and optionally zips it all.

Compatibility

Platform Status
macOS (KiCad.app) ✅ tested (KiCad 10.0.4)
Linux (system KiCad) ✅ should work — pcbnew is on the system Python
Windows ⚠️ untested — set KICAD_PYTHON to KiCad’s python.exe

Contributing

Issues and PRs welcome. Ideas that would be great to have:

License

MIT © 2026 Enkhbold Ganbold