开源项目是怎么练成的:Horizen EDA 的前世今生

描述

 很多人都知道 KiCad,但 Horizen 却鲜有人知。同样是开源的 PCB工具,为什么有了 KiCad 之后还要做 Horizen 呢?Lucas 的演讲让我感慨良多,分享给大家。 

eda   有兴趣的小伙伴可以先看下作者 Lucas 在 FOSDEM 上的演讲: Horizen 简介

和 KiCad 一样,Horizen 也是一个 PCB 设计套件,包括元器件管理、原理图绘制和 PCB Layout。

Horizen EDA 是 GPL3 的 License,官网的地址在这里:

https://horizon-eda.org/

Github 的仓库在这里:

https://github.com/horizon-eda/horizon

有意思的是,Horizen最核心的 PCB 布线器(router)及文件格式解析器(sexpr)参考的是 KiCad 6.04 版本。从某种程度来说,这就是开源的最大魅力之一:没必要重复造轮子,可以基于很多优秀的开源项目,更快速、高效地构建一个新的应用。那你肯定会问,为什么要另起炉灶搞个 Horizen?不能直在 KiCad 上搞吗?答案是不一定可以!规模越大的开源项目,贡献者和维护者越多,他们来自全球各地,但通常会有一个核心的 lead developer 团队。要添加一个新的功能(尤其是比较大的改动),需要大部分核心开发者的认可。那么问题来了,虽然技术没有国界,但每个开发者认可的技术栈或实现方式未必一致。于是乎...

一言不合就开干...

Lucas 说,他以前也一直是 KiCad 的用户,之所以要做一个新的工具,是因为对 KiCad 库管理方式不满意,且迟迟没有改变的计划。这是一个很好的理由... 其实不止是 Horizen EDA,另一个当红的开源 PCB EDA 套件 LibrePCB 的问世也是出于同样的原因。如果你熟悉 AD 或者 EasyEDA,就会发现 KiCad 一直缺少一个重要的概念:元器件(Component),原理图符号和PCB封装是分开管理的,元器件的参数属性(比如MPN、厂商等)只能存储在符号内,且很难关联供应链。这就对元器件管理提出了很大的挑战。且直到 2024 年的 KiCad 8 才出现了类似 DBLib 或 Capture CIS 的 Database Library(说实话还不太好用)。

另一个原因是因为 KiCad 使用了 wxWidget 作为 UI 的框架。虽然 KiCad 社区和 wxWidget 关系很铁,wxWidget 也没有什么大的瑕疵,但很多有情怀、有能力的工程师们总觉得 QT、Electron 等框架可以给 PCB 工具带来更优秀的视觉体验。

既然这样,那就另起炉灶吧!因为同样是开源项目,不仅可以复用 KiCad 中优秀的代码,还可以尝试更新的技术栈。更重要的是,可以按照自己的想法实现自己想要的功能!

我们来看看 Horizon 有哪些和 KiCad 不一样的功能:

edaedaedaedaedaedaedaedaedaedaedaedaeda

以今天的标准来看,其中很多功能 KiCad 也都有了。但如果回到几年前,Horizen 确实有很多创新之处。比如 ODB++ 输出,这对于很多工程师来说是刚需(因为仿真软件需要ODB++格式),而 KiCad 在很长一段时间里一直未能支持。我知道华秋电子的 Eric 为了在 KiCad 中增加 ODB++的功能,前前后后差不多用了半年左右的时间,工作量巨大。Spec 有 600 多页,闭源软件没法参考,当时只有 Horizen 提供了部分开源的 ODB++ 代码。虽然 Horizen 中的 ODB++ 代码并不十分优雅,功能也不全,但仍为 KiCad 9 中 ODB++ 功能的出现提供了巨大的帮助!这也是开源项目的价值所在!

对于元器件的管理及供应链的集成是 Horizen 另一个出彩的地方。时至今日,KiCad 仍然没有添加“元器件”的计划,这并不代表核心开发者们看不到“元器件”的价值。与之相反,大家都希望 KiCad 可以支持这一对象,但对于一个已经存在了 20 多年的开源项目来说,重构这一块的难度和需要的资源实在太大。与其他“重要”的功能相比(比如装配变量、高速走线、API框架等),“元器件”只能一等再等。毕竟相较于元器件管理,更流畅的原理图、PCB绘制体验无疑更加重要。

什么是一个成功的开源项目?

Horizen 在 Github 上的 Star 是 1.2k,从这个角度而言,您可能觉得这是一个不错的项目。 那你知道 Horizen 的用户数么?看一下下面的图表,告诉我你真实的想法。 eda 如果这是一个商业软件,开发了将近10年(Horizen是从2016年开始的),只有不到100个用户在用,你是老板的话你会怎么做? 但开源项目就完全不一样了,只要作者愿意,可以再做10年!Lucas 同学也正是这么做的,下图是 Horizen 的 Commmit 记录: eda 你会发现一个有趣的事儿,从2023年起,Horizen貌似停止进步了。原因是 Lucas 同学突然对 3D CAD 工具感兴趣了,又做了个参数化的 3D CAD 工具 Dune 3D,所以没花太多时间在 Horizon 上了。看到这儿,您可能和我的想法一样,这老外也太能折腾了吧,就一个人可以整那么多活...... 在我看来,无论 Horizen 的用户数有多少,这就是一个成功的开源项目。它的价值不只是提供了一个创新的工具,还为其他的项目提供了很多新的思路甚至是直接可以复用的“轮子”。更重要的是,这种基于兴趣的创新和坚持会鼓励更多的人创造出更优秀的产品,并分享给更多的人!

中国的开源环境如何?

这个问题可能不需要我回答,Deepseek 的出圈就是一个很好的证明。当然在很多垂直领域,我们和国外仍有不小的差距。以电子行业为例,虽然无论设计还是供应链都还不如国外“开放”,但我看到的是越来越多的开源硬件社区和开源硬件项目;虽然还没有 KiCad 这样优秀的开源PCB设计工具,但我看到更多的企业和个人开始为 KiCad 社区做出贡献;我还看到很多高校的学者,开始从理论的角度开始“开源”生态的推进。

在我看来,如果将开源生态与商业逻辑形成闭环,必然可以更高效地推动行业乃至社会的进步。无论是 DeepSeek、RiscV 还是乐鑫科技(ESP)都已经证明了开源的强大!

在 KiCad 的贡献者中,我看到了不少高校的学生,他们不仅有想法,实践能力也非常强,敢想敢干。我想,这就是我们的未来。假以时日,中国的开源土壤一定会孕育出更丰硕的果实!

注意:如果想第一时间收到 KiCad 内容推送,请点击下方的名片,按关注,再设为星标。

常用合集汇总:

和 Dr Peter 一起学 KiCad

KiCad 8 探秘合集

KiCad 使用经验分享

KiCad 设计项目(Made with KiCad)

常见问题与解决方法

KiCad 开发笔记

插件应用

发布记录

审核编辑 黄宇
 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分