wokwi / easyeda2kicad Goto Github PK
View Code? Open in Web Editor NEWConvert EasyEDA designs to KiCad EDA
Home Page: https://wokwi.com/tools/easyeda2kicad
License: Other
Convert EasyEDA designs to KiCad EDA
Home Page: https://wokwi.com/tools/easyeda2kicad
License: Other
i got this output
Running easyeda2kicad v1.9.2:
Reading file C149588.json...
Parsing content...
Detected EasyEDA board (PCB) file.
Warning: unsupported layer id: 101
Warning: unsupported layer id: 100
Warning: unsupported layer id: 100
Warning: unsupported layer id: 99
Warning: unsupported shape SVGNODE in footprint gge30
Writing output to C149588.kicad_pcb...
Conversion done!
but no output file
i attached the file just as a txt because github dont support json as attachment.
thanks for help
based of this instruction:
by getting this plugin, when i tried to export the file saved by easyeda (the json files of pcb and schematics could be seen here) :
My Problem is in exporting the Easyeda file to kicad pcb designing software, i tried to export two pcb and schematic part of easyeda project by
so@so-notebook:~/Desktop/trash/kicad/imported from easyeda/ipt power outler/Project_POWER IOT OUTLET_20200416140429$ easyeda2kicad "1-Schematic_POWER IOT OUTLET.json" board.kicad_pcb
node: /lib/x86_64-linux-gnu/libssl.so.1.0.0: no version information available (required by node)
node: /lib/x86_64-linux-gnu/libssl.so.1.0.0: no version information available (required by node)
node: /lib/x86_64-linux-gnu/libssl.so.1.0.0: no version information available (required by node)
node: /lib/x86_64-linux-gnu/libcrypto.so.1.0.0: no version information available (required by node)
node: /lib/x86_64-linux-gnu/libcrypto.so.1.0.0: no version information available (required by node)
/usr/local/lib/node_modules/easyeda2kicad/dist/board.js:524
var shapes = flatten(input.shape.map(function (shape) { return convertShape(shape, nets); }));
^
TypeError: Cannot read property 'map' of undefined
at Object.convertBoard (/usr/local/lib/node_modules/easyeda2kicad/dist/board.js:524:38)
at Object.<anonymous> (/usr/local/lib/node_modules/easyeda2kicad/dist/main.js:17:84)
at Module._compile (module.js:652:30)
at Object.Module._extensions..js (module.js:663:10)
at Module.load (module.js:565:32)
at tryModuleLoad (module.js:505:12)
at Function.Module._load (module.js:497:3)
at Function.Module.runMain (module.js:693:10)
at startup (bootstrap_node.js:188:16)
at bootstrap_node.js:609:3
so@so-notebook:~/Desktop/trash/kicad/imported from easyeda/ipt power outler/Project_POWER IOT OUTLET_20200416140429$ ls
'1-PCB_PCB_2020-04-16 03:17:41.json' README.txt
'1-Schematic_POWER IOT OUTLET.json'
so@so-notebook:~/Desktop/trash/kicad/imported from easyeda/ipt power outler/Project_POWER IOT OUTLET_20200416140429$ easyeda2kicad "1-PCB_PCB_2020-04-16 03:17:41.json" board.kicad_pcb
node: /lib/x86_64-linux-gnu/libssl.so.1.0.0: no version information available (required by node)
node: /lib/x86_64-linux-gnu/libssl.so.1.0.0: no version information available (required by node)
node: /lib/x86_64-linux-gnu/libssl.so.1.0.0: no version information available (required by node)
node: /lib/x86_64-linux-gnu/libcrypto.so.1.0.0: no version information available (required by node)
node: /lib/x86_64-linux-gnu/libcrypto.so.1.0.0: no version information available (required by node)
Warning: SOLIDREGION with arcs/circles are not supported yet!
so it could convert the PCB part of easyeda project but can not do it for Schematic part of it,a s you can see at above like this:
so@so-notebook:~/Desktop/trash/kicad/imported from easyeda/ipt power outler/Project_POWER IOT OUTLET_20200416140429$ easyeda2kicad "1-PCB_PCB_2020-04-16 03:17:41.json" board.kicad_pcb
node: /lib/x86_64-linux-gnu/libssl.so.1.0.0: no version information available (required by node)
node: /lib/x86_64-linux-gnu/libssl.so.1.0.0: no version information available (required by node)
node: /lib/x86_64-linux-gnu/libssl.so.1.0.0: no version information available (required by node)
node: /lib/x86_64-linux-gnu/libcrypto.so.1.0.0: no version information available (required by node)
node: /lib/x86_64-linux-gnu/libcrypto.so.1.0.0: no version information available (required by node)
Warning: SOLIDREGION with arcs/circles are not supported yet!
Thanks for your attention.
Footprints are always exported with orientation value of 0. This causes issues when exporting a pick-n-place file from the KiCad PCB file
I get an error trying to convert:
$ easyeda2kicad ~/123ADC.json ~/123ADC.kicad_pcb
/usr/local/lib/nodejs/node-v12.14.1-linux-x64/lib/node_modules/easyeda2kicad/dist/board.js:379
var outputObjs = __spreadArrays(nets.map(function (net, idx) { return ['net', idx, net]; }), flatten(input.shape.map(function (shape) { return convertShape(shape, nets); }))).filter(function (obj) { return obj != null; });
^
TypeError: Cannot read property 'map' of undefined
at Object.convertBoard (/usr/local/lib/nodejs/node-v12.14.1-linux-x64/lib/node_modules/easyeda2kicad/dist/board.js:379:118)
at Object.<anonymous> (/usr/local/lib/nodejs/node-v12.14.1-linux-x64/lib/node_modules/easyeda2kicad/dist/main.js:18:42)
at Module._compile (internal/modules/cjs/loader.js:955:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:991:10)
at Module.load (internal/modules/cjs/loader.js:811:32)
at Function.Module._load (internal/modules/cjs/loader.js:723:14)
at Function.Module.runMain (internal/modules/cjs/loader.js:1043:10)
at internal/main/run_main_module.js:17:11
$ easyeda2kicad -v
Version 1.3.4
$ node -v
v12.14.1
OS is Linux Mint 19.2. KiCad version 5.1.5-52549c5~84~ubuntu18.04.1
Attached file is what I attempted to import.
Tried converting this PCB https://easyeda.com/editor#id=fb9c78147b8a4a56ba6e0303a6dab62d|1153f3c588764d92b3224a7e64d7838e
Description:
I tried to convert one of my projects to KiCAD and the process seems to be successful (lots of warnings though). When I try to open the generated kicad_pcb file I get this error message and it refuses to go further.
Expected result:
Should be able to open the generated KiCAD pcb file without issues.
Original PCB:
KiCAD version (latest stable): 5.1.5
easyeda2kicad version: 1.3.2
Source file used for testing:
custom_pcb.zip
Thanks.
In some cases, the EasyEDA board file is missing the routerRule
object with the list of nets. This currently results in no nets being converted. An example for such case is the board from #28.
We should be able to reconstruct the list of nets as we go over the PCB tracks/pads, and save this information in the converted kicad file.
Description:
I just converted one of my designs and some capacitors get a pretty large footprint silkscreen drawing.
Expected result:
Footprints silkscreen should have the right size after conversion.
See attached pictures.
Project files:
project.zip
KiCAD version (latest stable): 5.1.5
easyeda2kicad version: 1.3.2
If any other details are needed please let me know.
Thanks.
Running easyeda2kicad v1.8.0:
Reading file 2.4g telecontrol board_2020-04-23_00-23-43.json...
Parsing content...
Detected EasyEDA board (PCB) file.
Warning: unsupported shape DIMENSION
Warning: unsupported shape DIMENSION
Warning: unsupported shape DIMENSION in footprint gge20f64733a18c5380
Warning: unsupported shape DIMENSION in footprint gge20f64733a18c5380
Warning: unsupported shape DIMENSION in footprint gge20f64733a18c5380
Warning: unsupported shape SVGNODE in footprint gge20f64733a18c5380
Warning: unsupported shape VIA in footprint gge16cbebb8866e1842
Warning: unsupported shape VIA in footprint gge16cbebb8866e1842
Warning: unsupported shape RECT
Warning: unsupported shape RECT
Warning: unsupported shape RECT
Warning: unsupported shape RECT
Warning: unsupported shape RECT
Warning: unsupported shape SVGNODE
Warning: unsupported shape SVGNODE
Warning: unsupported shape SVGNODE
Warning: unsupported shape SVGNODE
Warning: unsupported shape SVGNODE
Writing output to 2.4g telecontrol board_2020-04-23_00-23-43.kicad_pcb...
Conversion failed: InvalidCharacterError: Failed to execute 'btoa' on 'Window': The string to be encoded contains characters outside of the Latin1 range.
Tried to convert this footprint:
https://easyeda.com/modules/Arduino-Pro-Mini-Footprint_1c2d205f5a224e7abd7498291e7a9dd3
Received error:
"Running easyeda2kicad v1.7.0:
Reading file Arduino Pro Mini Footprint.json...
Parsing content...
Error: unsupported file format"
When I upload this file, I receive an error from the website:
https://wokwi.com/easyeda2kicad?utm_source=wokwi&utm_medium=blog&utm_campaign=easyeda2kicad
I changed the extension from .json to .txt, so it could be attached here.
MICRO-USB-SMD_U254-051N-4BH806_2020-12-23_13-34-10.txt
I tried converting a couple of keyboard PCBs but I got these errors:
Here are the two projects I tried:
https://lceda.cn/editor#id=47008868b61d4377add794be58e53865
https://lceda.cn/editor#id=04fc83934db54e4f8cd980bc7668f0e2
Currently, EasyEDA "No Solid" zones are converted to KiCad keepout zones which do not allow copper pours, tracks or vias. EasyEDA seems to permit tracks/vias in these zones, so we should also allow them in KiCad
$ easyeda2kicad PCB1.0.json PCB1.0.kicad
Unsupported shape DIMENSION
Unsupported shape DIMENSION
Unsupported shape DIMENSION
Unsupported shape DIMENSION
Unsupported shape HOLE
Unsupported shape HOLE
Unsupported shape HOLE
Unsupported shape HOLE
/usr/local/lib/node_modules/easyeda2kicad/dist/spectra.js:26
.filter(function (it) { return it !== null; })
^
TypeError: Cannot read property 'filter' of undefined
at encodeObject (/usr/local/lib/node_modules/easyeda2kicad/dist/spectra.js:26:14)
at encodeValue (/usr/local/lib/node_modules/easyeda2kicad/dist/spectra.js:20:12)
at Array.map ()
at encodeObject (/usr/local/lib/node_modules/easyeda2kicad/dist/spectra.js:27:14)
at encodeValue (/usr/local/lib/node_modules/easyeda2kicad/dist/spectra.js:20:12)
at Array.map ()
at encodeObject (/usr/local/lib/node_modules/easyeda2kicad/dist/spectra.js:27:14)
at encodeValue (/usr/local/lib/node_modules/easyeda2kicad/dist/spectra.js:20:12)
at Array.map ()
at encodeObject (/usr/local/lib/node_modules/easyeda2kicad/dist/spectra.js:27:14)
Underlying object:
[
'fp_line',
[ 'start', -7.549997600000012, 3.599992800000038 ],
[ 'end', 1.2500101999999913, 3.599992800000038 ],
[ 'width', 0.049987199999999996 ],
[ 'layer', undefined ],
null,
null
]
Original EasyEDA project:
[(https://easyeda.com/sundbyk/gotek)]
404error
For details: #15 (comment)
Thank you. It's quite a excellent tool. That can convert easyeda pcb file to kicad, include netlist.
Is there any way to covert PCB file to schematic file? Or directly convert schematic from easyeda?
Description:
I noticed that some rectangular pads are rotated also causing collisions with vias (in this case a ground one).
Expected result:
Pads should have the right orientation.
See attached screenshots.
EasyEDA project:
Touch_Switch_2ch.zip
easyeda2kicad version: 1.3.1
Description:
Seems that after the conversion the no copper zones are not taken into consideration and I get a full copper fill for the board. This happens for both sides of the board. See attached pictures and the original project file.
Expected result:
No copper zones should be respected after conversion.
Small note:
EasyEDA project:
Touch_Switch_2ch.zip
easyeda2kicad version: 1.3.1
When converting footprints, the "locked" flag is ignored
Description:
Some parts of the footprint silkscreen drawing seem to be flipped. This may be related to #9 but I'm not sure if it's the same root cause.
Expected result:
Footprints silkscreen should render correctly.
See attached pictures.
Project files:
project.zip
KiCAD version (latest stable): 5.1.5
easyeda2kicad version: 1.3.4
If any other details are needed please let me know.
Thanks.
Description:
If I have in the original design a solid copper region created say for a MOSFET cooling and/or for high current paths which are not tied to GND then those aren't being translated.
Expected result:
The solid region tied to MOSFET drain pad should be present on both sides of the PCB.
See attached pictures.
Another two pictures (top/bottom) for reference:
Project files:
project.zip
KiCAD version (latest stable): 5.1.5
easyeda2kicad version: 1.3.4
If any other details are needed please let me know.
Thanks.
When I convert my EasyEDA board it can be opened in KiCAD just fine. The outline is as expected but when I view the 3D Viewer I get an error "Board outline is not closed: Unable to find edge with and endpoint of (27.221,-0.444)".
Description:
Seems that some silkscreen component labels get shifted and rotated during the conversion process.
Expected result:
Silkscreen elements should have the right orientation.
See attached screenshots.
EasyEDA project:
Touch_Switch_2ch.zip
easyeda2kicad version: 1.3.1
Description:
Mounting holes are not present after converting a board from EasyEDA to KiCAD.
Expected result:
Mounting holes should be present after conversion.
See attached pictures.
Project files:
KiCAD version (latest stable): 5.1.5
easyeda2kicad version: 1.4.1
If any other details are needed please let me know.
Thanks.
Description:
It seems that this QFN 48 package is rotated 180 degree after conversion. This happens with other SMD components on the board also like some decoupling capacitors around the QFN 48 IC.
Expected result:
Should have the right rotation for component packages after conversion.
Please see attached screenshots.
EasyEDA project:
Touch_Switch_2ch.zip
I tested it using latest master code as it was now at this time of writing.
Hi!
Thanks for the COOL tool!
I've just tried your online tool with one of my designs (attached below) and found some minor problems.
The placement of the silk screen texts are off, which is unfortunate as it requires additional manual effort to cleanup the board. As this is a board for experimentations, having correctly placed texts is quite important. Probably what you meant with "... with the exception of texts which may look a bit different."
While importing, I got several messages like:
Warning: unsupported shape SVGNODE in footprint gge4bb415021ae37c69
Probably correspondingly, I'm missing the OSHW logo in the silk screen in the middle of both sides of the board.
... seems to be already mentioned in bug #42
There a some strange texts (e.g. gge638a534c459c248c) in the Cmts.User layer. The texts can also be found in the original .json file, so I suspect this is caused by some "unfiltered content".
Anyway, thanks for putting all the work into this!
Regards, ULFL
P.S: Have you thought about putting this to upstream Kicad? While they are currently busy fixing bugs for the 6.0 release, this seems to be a valuable extension for the future!
P.P.S: PCB .json
PCB_Breakout 40 Pin V2.0.json.zip
To reproduce:
Maybe this is expected from the converter tool. Do I need to further edit the footprint to add drill holes?
Thanks for you contribution!
I have three different JOSN files I tried converting. All of which have multiple lines of the same error type.. 20-100 error code lines! Can you PM me an email I can send the files to? Thanks
Using the online converter, I am getting "Warning: unsupported shape PAD" errors
Subsequently, the pads in question do not show up on the kicad export.
As footprints export doesn't work as seen in #32 , these footprints were put on a board before export.
Files tested:
https://easyeda.com/component/5b28a2cbfe994fc2a6c4874139cdbdfb
https://easyeda.com/component/b74bc13c9ec64e4b81046b13b757c4dd
all pcb file has one footprint , but it also has wrong . maby the lceda's footprintf format has changed
Description:
Seems that some symbols present on the PCB silkscreen (top and/or bottom) are not converted completely leading to an incomplete drawing. See the "high voltage symbols" in the attached pictures.
Expected result:
Any silkscreen symbols should be fully translated.
Project files:
project.zip
KiCAD version (latest stable): 5.1.5
easyeda2kicad version: 1.3.4
If any other details are needed please let me know.
Thanks.
I was able to npm install -g easyeda2kicad, but when I try to build it I am getting errors. I can run the program without issues, but when building to typescript it does not work.
I have made changes to the conversions of holes to via's and I would like to create a pull request, but since I cannot build, I cannot pull.
C:\Users\Anthony\AppData\Roaming\npm\node_modules\easyeda2kicad>npm run-script build
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] build: 'tsc'
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\Anthony\AppData\Roaming\npm-cache\_logs\2020-03-03T21_09_19_260Z-debug.log
It's possible that I did something wrong.
I was able to import this project into vscode and debug it (to test my converter). It would really be useful for others.
Thanks
i got a ‘Error: unsupported file format‘ when using the online converter
the json file is exported from easyeda, and the library name is 'EC11E1834403'
the online converter show
Running easyeda2kicad v1.7.1: Reading file SW-TH_EC11E1820402.json... Parsing content... Error: unsupported file format
also i used the npm version(1.7.1) to conveter the same json file, there is no error but a waring 'Warning: unsupported shape PAD' seem like #34
this is the origin foorprint on easyeda
and this is what it be in kicad(convert by npm version)
Currently, we only convert layer numbers 1...15.
Looking at an EasyEDA board file, it seems like the inner layers are numbered starting from 21:
"21~Inner1~#999966~false~false~false~~",
"22~Inner2~#008000~false~false~false~~",
"23~Inner3~#00FF00~false~false~false~~",
"24~Inner4~#BC8E00~false~false~false~~",
"25~Inner5~#70DBFA~false~false~false~~",
...
Thus, we need to find the corresponding layer names in KiCad, and probably also add them to the generated layers array in the output file.
This tool looks awesome!
I'm able to build it easily, but I have friends that are less software-inclined and the source-only releases are a barrier-to-entry for them using your great tool.
Would you be open to adding releases as part of the Github Actions CI?
https://dev.to/jochemstoel/bundle-your-node-app-to-a-single-executable-for-windows-linux-and-osx-2c89
If you'd like, I could submit a PR, but I wanted to test the waters first.
Hi, Just reporting on an issues with the conversion. I seem to be missing pads and other things. There is a link to the json file on the git hub.
Here is a link to the project
https://easyeda.com/tianfeng/triple-bypass-v2
Thanks for your work
How to reproduce the error:
Description:
I tried to convert one of my projects to KiCAD using this utility but it generates pads with wrong orientation for QFN packages (pads seem to be rotated 90 degree).
Expected result:
Pads should have the right orientation.
See attached pictures.
Thanks for this little nifty tool.
EasyEDA project:
Touch_Switch_2ch.zip
Some PCBs cause an "Missing layer id: 99" error, e.g. missing-layer-99.zip
KiCad only support line lengths up to 1,000,000 characters.
In case of complex PCBs, we generate files with longer lines, e.g.:
line-length-exceeded.zip
This can be fixed by adding some new lines when generating the output.
Thus, when exporting to Pick-and-Place files, the SMD parts are not included.
Description:
Seems that when dealing with an outline that follows an arc path then after conversion the contour is not enclosed properly.
Here I have an example of an arc and a segment that closes the path. At a first glance the arc seems to be rotated thus breaking up the connection with the enclosing segment/line.
Expected result:
PCB outline path should be fully closed.
See attached pictures.
Project files:
project.zip
KiCAD version (latest stable): 5.1.5
easyeda2kicad version: 1.3.4
If any other details are needed please let me know.
Thanks.
Hi.
I developed a simple PCB that I'd like to import in FreeCAD using this addon which seems to works great with some .kicad_pcb files from a KiCad project.
I can generate my EasyEDA file "input.json" an get the "output.kicad_pcb" in both Node library on my pc and the online converter. But FreeCAD can't open the file. As I pointed out it seems to work just fine with another directly generated .kicad_pcb files so I don't think the issue is the addon.
I got two warnings:
Running easyeda2kicad v1.8.0:
Reading file input.json...
Parsing content...
Detected EasyEDA board (PCB) file.
Warning: unsupported shape SVGNODE in footprint ggef90f9c042f2df78c
Warning: unsupported shape SVGNODE in footprint gge5701536e7eb809af
Writing output to input.kicad_pcb...
Conversion done!
I can make FreeCAD open the file if I open the "output.kicad_pcb" in KiCad and save it as another file. The input.json, output.kicad_pcb and the savedAsWorking.kicad_pcb files are attached. It may be an enhancement once it works to open the output in Kicad. But it would be really nice to have this converter to works just like a KiCad "Save as ..". Anyway thank you so much for your time and let me know if I can help you with more info.
inOutFiles.zip
SavedAsWorking.zip
Windows 10 Home
Chrome 83.0.4103.97
EasyEDA v6.3.53
Node v12.16.3
NPM v6.14.4
Running easyeda2kicad v1.9.0:
Reading file 1-Schematic_Lora_end_node.json...
Parsing content...
Error: unsupported file format 5
Project_Lora_end_node_2020-11-10_02-08-58.zip
want to know what i need to do to make it work.
easyeda2kicad did convert the pcb and was loaded into kicad successfully.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.