大佬解读:从Altium到KiCad:将KiCad集成到专业工作流中

描述

 Eli Hughes 是 Wavenumber LLC 公司的负责人,该公司致力于在嵌入式系统、软件、物联网、音频、声学、工业设计及内容创作等领域提供优质解决方案。Eli 精通 OrCad、Expedition、Altium 等各种 EDA 工具,本次演讲讲述了 Eli 如何在公司的流程中应用 EDA 工具及选择 KiCad 的原因。 

altium


Eli 讲述了他从一个被技术 (尤其是视频游戏和硬件) 迷住的年轻人,到电子设计行业经验丰富的专业人士的变革之旅。 他年轻时开始在宾夕法尼亚州农村地区的 Apple II 电脑上进行编程探索,从玩像塞尔达这样的视频游戏到深入研究硬件的复杂性,如 6502 微处理器,后来进入声音和音乐领域。 他在各种 PCB 设计软件方面拥有丰富的经验,包括 Protel、Altium、OrCAD和 Eagle。 他对当前的EDA工具表示不满,批评它们的局限性和成本,并倡导更多的开源解决方案和工具集成灵活性。 Eli 强调了旨在加强设计工作流程的个人倡议,并强调了全栈方法在电子设计中的重要性,集成了硬件和软件开发。 他也强调了所有权、问责制和交付高质量产品的重要性,同时承认不断发展的技术环境带来的挑战。 它们还涉及利用脚本和自动化来优化设计过程。  

将 KiCad 集成到我们专业工作流的决定,是由以下几个因素共同驱动的:

专业许可证“维护”成本与实际获得的支持价值之间存在脱节。

“永久”许可证中原有功能被移除。

对封闭的二进制文件格式感到沮丧,这导致了严重的工作流问题(现场将分享真实案例)。

与 MCAD 格式的互操作性被刻意限制(现场将分享真实案例)。  我们曾多次遇到这样的情况:为了满足客户的特定需求,不得不将 PCB 导入 KiCad,利用其 3D 导出功能。

将工具适配到公司特定的 CI/CD 工作流门槛过高。

认识到大量 PCB 设计师正在退休。  新进入的硬件开发者普遍具备 git、持续集成、Python 和软件开发工作流的经验。EDA 工具行业需要适应这种人员结构的变化。

对项目长期性的担忧(Wavenumber 的某些项目周期长达 20 年以上;我们最近还需要打开 2005 年项目的文件)。

LLM(大语言模型)技术的出现,使得各类工程师能够通过脚本和小型实用工具快速适应和定制流程,而无需成为软件专家。

对于像我们这样的设计组织,真正的竞争优势不仅在于元件库,更在于跨设计积累的关于部件如何配置、连接和实现的知识。 这种组织知识资产,即真正的“制胜法宝”,其价值会随时间推移而日益增长,但有效维护和共享却充满挑战。我们认为,每家公司都需要围绕其自身的组织知识资产制定策略,并且这些知识绝不能被封闭在不使用互操作格式的第三方服务之后。

我们启动 KiCad 项目的一个主要动机是其新的 HTTP 元件库功能。 我们将其视为一个更宏大愿景和企业级功能的开端。我们曾广泛使用数据库元件库,但 Altium 的解决方案已停滞不前,偏向于其专有的云接口。尽管 KiCad 的 HTTP 库功能仍在开发中,但它为我们提供了一种机制,将大约 10,000 个部件及其相关元数据迁移到 KiCad 9。通过利用 kicad-cli 工具,Wavenumber 成功构建了一个并行工作流的原型:在 Altium 中创建的所有部件也能在 KiCad 中使用。

目前,我们的元件库迁移工作已基本完成。 有两个将在 2025 年发布的商用产品设计中使用的电路板正在开发中。我们还将 KiCad 集成到了我们的 PDM(产品数据管理)系统中,这种方式既能支持快速原型设计,又能提供重要的设计可追溯性。长期目标是建立一个全面的工作流, 以追踪公司内所有电路板、装配体及其使用场景,并能进行高效的基于 LLM 的知识查询。

  以下为演讲要点的文字版本:

  对电子设计软件的最初体验是什么?

Eli 最初使用电子设计软件的经验是使用 Protel,这是他在大学里使用的首批基于窗口的程序之一。 这个经历涉及学习使用蚀刻板和电子产品的其他硬件方面,这引发了对硬件设计的更深层次的兴趣。

在软件开发的背景下,所说的 “全栈” 是什么意思?

在软件开发的背景下,对 “全栈” 的含义涵盖了从半导体到在 web 后端上编写 Python 的全面参与,这比行业中的典型用法更广泛。  “全面” 发展方法强调完全的所有权和问责心态。

如何看待他们的责任和公司的协调问题?

将自己的责任视为提供价值,并对公司的成果负责,特别是在小企业的背景下。 Eli 强调了开发工具以保持人们的生产力与电子设计公司利润驱动工具之间的一致性问题,这表明了显著的差异。

评估和支付工具和服务的方法是什么?

评估和支付工具和服务的方法是务实的。 他承认需要付费购买有价值的工具,但也要考虑对他们的职业成功至关重要的其他因素。 他们在工作需要时投资了像 Altium 这样昂贵的软件,并愿意为他们认为有价值的服务付费。

Altium 的哪些特定功能对企业级开发至关重要?

能够在 Altium 中查看和处理开放文件格式的企业级功能对于开发至关重要。 这种能力,像 Altium 这样的其他工具可能缺乏,通过允许开发人员理解和与数据交互,在 web 后端开发中提供了一个显著的优势。

支付设计工具的维护费用的重要性是什么?使用 Altium 的经验如何强调这一点?

为设计工具的维护付费对于获得最新进展和支持非常重要。 使用Altium的经验表明,尽管为这些工具付费,但可能无法提供实际有用的支持,这可以从漫长的等待援助和最终自行解决问题得到证明。

对 Altium 永久许可政策的变化有什么反应,这对公司的做法意味着什么?

Eli 对 Altium 永久许可证政策的变化产生了愤怒的反应,该政策突然要求他们为他们已经在永久许可证下使用的功能支付更多费用。 这一变化表明公司实践发生了转变,可能从价值交付转向关注利润提取。

Altium 有哪些优点?这与最近的负面经历有何对比?

Altium 在某些功能具有优势,例如第一个使用 Direct X 三维可视化、多通道的支持、draftsman 文档处理工具等。 这与公司被瑞萨收购后在支持、许可和潜在变化方面的负面经历形成了对比。

对 PCB 设计的 Corner Case 有什么建议?

大多数电路板设计应遵循标准工作流程,不需要高级功能或高度专业化的工具。 重点应该放在批量工作流程上,而不是在电路板设计中的边缘情况。

如何让 Altium 和 KiCad 两个工具使用同一个共享库?

Eli 建立了一个系统,在这个系统中,同一个库和元数据可以同时在两个工具中使用,确保在Altium中所做的任何更改都能立即在 KiCad 中使用。

为什么自动化和数据库集成在管理大型元器件库时很重要?

自动化和数据库集成非常重要,因为它们可以通过使用单个符号和少量组件来管理非常大的库,例如包含数千个电阻和电容的库。 这种集成允许任务自动化和数据标准化,从而推动替代并使过程高效。

在 KiCad 中实现了什么新功能来管理库,为什么它很重要?

 KiCad 8 中实现了基于 ODBC 的 Database Library(类似 AD 中 DBLib),KiCad 9 有支持了 Httplib。 这个变化意义重大,因为它抽象了数据存储,允许更好的可扩展性和更容易的后端替换,而不影响接口。

视频中提到的 Python 脚本 “lib cruncher” 的作用是什么?

使用Python脚本 “lib cruncher” 来管理库。 它通过将数据本地存储在 CSV 文件中进行操作,这些文件易于合并、升级和与后端同步。 它还可以自动使用 KiCad 转换符号,并为新开发人员提供一致的配置。

“Lib cruncher” 如何促进新开发人员快速提高生产力?

“Lib cruncher” 通过自动生成全局符号表并提供一致的库配置,促进新开发人员快速提高生产力,这意味着新成员几乎可以立即开始使用库。

将本地Http服务器与 “lib cruncher” 一起使用的优势是什么?

使用带有 “lib cruncher” 的本地 Http 服务器可以提供可以在本地访问和管理的库,这可以作为处理大量器件的高效设置。

“Lib cruncher” 如何简化库的管理,它的基础技术是什么?

“Lib cruncher” 通过使用 CSV 文件进行数据存储,简化了库管理,这使得升级和与后端同步变得容易。 它还自动生成 Httplib 文件并处理全局符号表,所有这些都使用 PyQt 作为底层技术构建在 CSV 文件之上。

为什么推动一个项目完成很重要?
Eli 强调了由于获得报酬的经济动机而推动项目完成的重要性。 他用导师的建议来比喻,没有什么能像知道自己的工作会得到报酬那样激励一个人。 Eli 还分享了完成真实项目设计的个人经验,强调了尽管有任何不完美之处,完成的动力。

为什么在成本和开发人员控制方面更喜欢 KiCad 而不是 Altium?
使用 KiCad,可以根据自己的特定需求构建和定制工作流程工具,这比依赖像 Altium 这样昂贵的软件工具更具成本效益。 他们重视控制开发环境的能力,避免局限于 Altium 提供的灵活性较低的脚本引擎。

对电路板设计行业的演变有什么看法?
电路板设计行业正在经历一场代际转变,许多经验丰富的设计师将退休,年轻的专业人士将以不同的技能和观点进入该领域,包括熟悉持续集成和 DevOps 实践。 他们指出,这些工具比以往任何时候都要好,允许一个人完成很多事情,这使得该行业对演讲者来说非常令人兴奋。

机械工程师在扮演什么角色?如何看待他们在电子工程任务中的能力?
机械工程师非常适合电子工程任务,如电路板设计 (PCB),因为他们能够处理原理图和物理等多个方面,这些方面是该过程不可或缺的。

目前正在进行什么设计项目,涉及哪些工具?
正在尝试用 KiCad 设计一个 10层板的光谱仪,其中包含 ddr4 内存、大型 FPGA,还有一些并行的项目仍使用Altium进行设计。

完整的 PPT(含时间戳) 00:00 从视频游戏到PCB设计: 硬件工程之旅

altium

 

altium

 

altium

 

altium

 

altium

 

altium

 

altium

 

altium

 

altium

 

altium

 

altium

 

altium



06:41 从偶然观察过渡到认真投资 PCB 设计软件

altium

 

altium



09:06 软件维护和工程工具支持的挑战和不满

altium

 

altium

 

altium

 

altium

 

altium



15:07 革命性的电路板设计: 将 Altium 库与 KiCad APIs 集成以增强工作流程

altium

 

altium

 

altium

 

altium

 

altium



19:47 用于简化电子设计的 Lib Cruncher 的开发和应用

altium

 

altium

 

altium

 

altium

 

altium



25:09 使用 Altium 进行 PCB 设计的经验和效率

altium



26:00 创新声传感器设计和开发流程

altium

 

altium

 

altium

 

altium

 

altium



29:38 转型电路板设计: 整合新技术和多学科技能

altium

 

altium



34:33 KiCad 需要继续改进的点

altium

 

altium



37:40 在硬件开发中过渡到开源工具和设计

altium

 

altium


 

结束语

Eli 的故事完美地阐释如何根据公司/个人的情况选择合适的 PCB 设计工具。没有最好的,只有最合适的!

 

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

全部0条评论

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

×
20
完善资料,
赚取积分