KiCad开源的EDA(电子设计自动化)软件套件现在非常流行,很多新项目都是用它来设计的。像 Olimex 这样的公司就将他们的新设计全都换成了 KiCAD 设计。不过,由于很多原理图和 PCB 布局都使用到了其他工具(例如 EAGLE、Orcad Allegro或Altium PCB设计工具),所以如果能够将这些设计导入KiCad EDA里就更完美了。
这个时候,我们就会想到转换器,大家使用转换器的时间也确实挺长了。比如:在2012年的时候,我就尝试过使用转换器将Beagleboard-xM OrCAD原理图转换后导入KiCAD。,当时结果很糟糕,根本无法使用,所以我就放弃了。 但我最近看到Thomas 的一条推特说:现在可以将Altium文件导入KiCAD了。所以,我准备尝试一下。
Thomas推特发布的视频,点击此处可观看。
现在,KiCAD发行版本暂还不支持该功能,支持这个功能的暂时只有开发版本。我估计会在以后的某个 KiCAD 发行版本中才会发布(也许是KiCAD 6.0)。如果我们今天要尝试使用它,就需要先构建 KiCAD。 所以,在开始导入Altium文件并查看其运行方式之前,我会先展示如何在Ubuntu 18.04上构建KiCAD。
在Ubuntu 18.04 / 20.04上构建KiCAD
KiCAD文档网站上虽然有构建软件的通用说明,但并没有完全适用于所有Linux发行版的内容。 一开始我先使用Ubuntu 18.04.3 LTS来实现这一点,之后我又使用Ubuntu 20.04再次测试。
首先,让我们获取最新的源代码:
1 2 |
git clone https://gitlab.com/kicad/code/kicad.git cd kicad |
然后,我们应该安装一些依赖项:
1 |
sudo apt install build-essential libboost-dev libboost-system-dev libboost-test-dev libboost-filesystem-dev cmake freeglut3-dev libglew-dev libglm-dev liboce-foundation-dev liboce-ocaf-dev python-wxgtk3.0-dev libwxgtk3.0-gtk3-dev swig3.0 doxygen graphviz libcurl4-openssl-dev libcairo-dev libpython3-dev libssl-dev |
大家注意,由于我之前构建了其他程序,所以,某些依赖项可能已直接安装好了。 如果你们在缺少了某些依赖项的情况下,尝试自己的Ubuntu 18.04安装,而我又没在本篇文章中提及,请直接留言告知。
我们还需要获取、构建和安装NGSpice库,因为它不是Ubuntu软件包的一部分:
1 2 3 4 |
cd ./scripting/build_tools chmod +x get_libngspice_so.sh ./get_libngspice_so.sh sudo ./get_libngspice_so.sh install |
注意:你们可能需要修改get_libngspice_so.sh脚本后再运行,运行时使用make -j <cores>可以加快构建的速度。
现在,我们可以按以下方式配置KiCAD了:
1 2 3 4 |
mkdir -p build/release mkdir build/debug # Optional for debug build. cd build/release cmake -DCMAKE_BUILD_TYPE=Release ../../ |
如果你在执行cmake命令期间出错,可以尝试使用像aptitude之类的命令去查找丢失的软件包。
成功配置后执行cmake命令,你应该会看到类似以下的输出:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
cmake -DCMAKE_BUILD_TYPE=Release ../../ -- KiCad install dir: </usr/local> -- Check for installed GLEW -- found -- Boost version: 1.65.1 -- Check for installed Python Interpreter -- found -- Python module install path: lib/python2.7/dist-packages -- Found wxPython 3.0.2.0/gtk3 (wxWidgets 3.0.2.0) -- Found wxWidgets: -L/usr/lib/x86_64-linux-gnu;-pthread;;;-lwx_gtk3u_gl-3.0;-lwx_gtk3u_aui-3.0;-lwx_gtk3u_adv-3.0;-lwx_gtk3u_html-3.0;-lwx_gtk3u_core-3.0;-lwx_baseu_net-3.0;-lwx_baseu-3.0;-lwx_baseu_xml-3.0;-lwx_gtk3u_stc-3.0 (found suitable version "3.0.4", minimum required is "3.0.2.0") -- Found wxPython.h in /usr/lib/x86_64-linux-gnu/wx/include/gtk3-unicode-3.0/wx/wxPython -- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE) -- WARNING: Doxygen not found - doxygen-docs (Source Docs) target not created -- Creating linux metadata -- Using Git to determine build version string. -- S3DSG version: 2.0.0 -- Boost version: 1.65.1 -- Found the following Boost libraries: -- unit_test_framework -- filesystem -- system -- Found wxWidgets: -L/usr/lib/x86_64-linux-gnu;-pthread;;;-lwx_gtk3u_gl-3.0;-lwx_gtk3u_aui-3.0;-lwx_gtk3u_adv-3.0;-lwx_gtk3u_html-3.0;-lwx_gtk3u_core-3.0;-lwx_baseu_net-3.0;-lwx_baseu-3.0;-lwx_baseu_xml-3.0;-lwx_gtk3u_stc-3.0 (found suitable version "3.0.4", minimum required is "3.0.0") -- Boost version: 1.65.1 -- Found the following Boost libraries: -- unit_test_framework -- Configuring done -- Generating done -- Build files have been written to: /home/jaufranc/edev/kicad/build/release |
开始构建KiCAD:
1 |
make -j$(nproc) |
构建完毕后,如果要你要在系统上安装它,请运行:
1 |
sudo make install |
现在我只想尝试一下,所以我并没有安装,而是直接在build目录中运行了可执行文件:
1 2 3 |
2 cd kicad ./kicad |
运行之后,我们将会看到“KiCad 5.99”欢迎窗口,然后单击“确定”启动该程序。
导入Altium PCB布局文件到KiCad
Thomas在他的Twitter视频中曾以LimeSDR PCB布局作为案例示范。但我会尝试用BeagleBone Black Altium PCB布局代替,你可以在Github上找到(BeagleBoardBlack_RevA5_Altium.zip)。
起初,我试图启动Kicad打开该文件,但我找不到任何方法导入PCB布局,甚至切换到“编辑PCB”了都没找到。最终我才知道应该以独立模式打开pcbnew,然后在“File”里面存在一个“Import Non-KiCad Board File…”选项。
现在我们可以过滤Altium Designer 的“.PcbDoc”文件,并加载它。
运行后,出现了一些运行错误。 因为Altium PCB导入功能现在仍在开发阶段,所以目前运行中遇到一些错误是可以预见的,我们先忽略这些错误。
导入后,PCB布局的某些部分看起来还是很不错的。
但在其他地方,会发现好多地方出现了相互覆盖的问题。
到这里我们发现,文件确实是可以导入的,但还有更多工作要做,或者说BeagleBone Black原理图基于的是一个较老版本的Altium,而KiCad导入功能却不支持该版本。
【更新:实际上,现在导入工作已经可以像预期那样正常运行了… 这就是Altium文件显示的样子。前面遇到问题可以通过代码仓里已经提交的代码来修复。】
上图相关的推特,点击链接即可查看。
支持Altium原理图转换的功能即将也要推出了。对于希望导入OrCAD Allegro文件的人们,Thomas解释说,还没有针对Allegro的开源解析器,但是可以通过Allegro转 Altium文件,然后再通过Altium转 KiCad这个步骤来导入文件。 他还提到创建Allegro解析器也是有可能的,但是它们的文件格式似乎是一些自定义二进制的文件,这需要一些时间来研究。
文章翻译者:Taylor Lee,瑞科慧联(RAK)高级嵌入式开发工程师,有丰富的物联网和开源软硬件经验,熟悉行业主流软硬件框架,对行业发展动向有着敏锐的感知力和捕捉能力。