Pastilda:结果



美国的电子合同制造如何安排?
可以利用众筹吗?
破坏硬件的软件。 神话还是现实?
开源项目有生命吗?

所有这些都是关于开源密码硬件管理器Pastilda开发的侦探故事的最后一部分。

Pastilda还有什么?
Pastilda是一个开源硬件密码管理器。 该设备使您无需使用软件即可存储和输入密码(包括命令行和BIOS'e)。 该数据库是使用KeePass创建的,并以.kbdx格式下载到设备中。 当您输入组合键“ Ctrl + Shift +〜”时,设备将连接至计算机键盘并打开。 这就是为什么该项目被称为“ Pastilda”的原因(来自密码+ tilda“〜”)。

有关该想法和技术实现的更多信息,请参见Pastilda,开放式硬件密码管理器

在开发并生产了一批实验产品之后,我们试图在俄罗斯寻找客户和购买者,但没有得到进一步的讨论。 然后,我们决定通过众筹筹集资金,并选择了专门从事开源硬件项目的Crowd Supply平台。 我们设定了一个目标,结果几乎超过了三倍。 它是怎么发生的? 阅读Pastilda:利基众筹
它仍然需要生产和交付该设备给投资者。

开始生产


在第一批产品发布时,我们有149个投资者申请了182个Pastilds。 来自世界各地的订单:



当前国家统计:
  1. 美国:143个
  2. 德国:64个。
  3. 澳大利亚:14件。
  4. 法国:14个。
  5. 俄罗斯:14个。
  6. 加拿大:13件
  7. 瑞士:13件。
  8. 英国:13个。
  9. 荷兰:9件。
  10. 西班牙:8件。
  11. 奥地利:5件。
  12. 丹麦:5件。
  13. 新加坡:4件。
  14. 中国:3个。
  15. 以色列:3个。
  16. 比利时:2件。
  17. 芬兰:2件。
  18. 爱尔兰:2件。
  19. 意大利:2件。
  20. 日本:2个。
  21. 哥伦比亚:1个
  22. 捷克共和国:1个
  23. 韩国:1件
  24. 马其顿:1件。
  25. 马来西亚:1个
  26. 新西兰:1件。
  27. 挪威:1个
  28. 罗马尼亚:1个
  29. 斯洛文尼亚:1个。
  30. 南非:1个
  31. 越南:1件


有趣的是,尽管我们的文章是俄语的,但俄罗斯只有14个订单。 我们订购了324个Pastilds进行生产,因此这样的数量足以收集到资金。
由于设备的特殊性,我们利用了Crowd Supply的建议,并在Macrofab工厂在美国进行了生产。 关于那里的一切安排的一些知识。 我们转到站点并创建订单。 我们加载ODB ++ ,在设备内部包含所有内容:板层,组件列表(物料清单或BOM表),它们的布置等。 接下来,您需要将BOM与仓库中可用的组件进行比较,并确认组件在板的顶部和底部的正确位置。



在那之后,我们得到了任何一方的成本和生产时间。 详细描述了成本价:多少人工成本,多少零件,多少印刷电路板等:



还正在构建一个图形,该图形说明批次增长时的成本下降:



工厂不仅用于组装,还用于测试设备。 为此,您需要在特殊部分中介绍测试和固件方法。 固件成本约为每分钟1美元。

一批324件的生产耗时约8周。 10%的板未通过测试,并没有明确诊断为“引导加载程序工作不正常”。 沟通非常缓慢,损失可忽略不计,因此我们只是忽略了这个问题,便将这10%的钱报废了。 记住这一刻。 工作费已寄给投资者,未收到任何投诉。

销售继续进行,我们的Pastilda甚至以125美元的惊人利润出现在Mouser上。 当这些板出售时,我们决定推出另一批55台设备。 这次,生产大约需要7周,并且由Crowd Supply员工进行了测试。

以下图表说明了Pastild的订单,发货和生产的时间顺序:



有条件的破折号表示产量。

出了点问题


一段时间后,我们得知一些新政党遇到了问题。 10个Pastilds通过了测试,其余45个没有通过。 设备根据需要闪烁,LED闪烁,但是连接的键盘不起作用。 工厂有问题吗? 测试人员的手歪了吗? 几个月以来,我们试图远程解决问题。 没有取得成功,我们要求给我们寄一些研究资料。 我们得到了样本并发现:电路中出现了一个错误。 在这里:



在D4:5 TPS76333线性转换器的输出上,电压约为4V,而不是3.3V。 C13的输出容量太小。 制造商要求至少4.7微法拉,对我们而言-1微法拉。 从理论上讲,这可能导致激励源并增加输出电压。 用10微法拉替换电容器后,电源似乎恢复正常,但电路板无法正常工作。
是时候“抛出百分比”
这意味着将微控制器从板上移开,然后放一个新的微控制器或从供体那里取走。 在这种情况下,我们从第一批开始就将MK从董事会中删除。 获得。

结论:由于容量错误,MK的功率增加,从而使其损坏。 STM32应该保持这样的电压吗? 该文档说,在不损坏芯片的情况下,最大电压为4V,也就是说,我们绕过了边缘。 但是为什么这个问题没有更早出现呢? 我们将发现的情况告知了美国的同事,并要求比较不同批次控制器的标记。 标记不同:



从标记中学到什么? 根据本文以及微控制器上描述的信息,我们可以说以下内容:
首批产品是中国,于2007年或2017年的第19周生产。 他们不是在2017年而是在2011年才开始生产F4系列。 控制器修订版-2。

第二批是菲律宾,于2017年第25周生产。 控制器版本-Y。
菲律宾的Y版本控制器比中国的版本2控制器对营养增加的抵抗力更弱。 我们决定将所有设备寄回Macrofab,请他们进行研究并更换所有板上的微控制器和电容器。

Macrofab领导调查


在那里,一位工程师处理了这件事,他使用示波器和电压表,发现了我们的问题。 这是他对我们说的:

  1. 75%的电路板正常工作,从而消除了电路板问题或Gerber文件中的错误
  2. 组件的定位(旋转)是有序的。
  3. 没有关于焊接质量的抱怨。
  4. 我们用万用表测量了3.3V和5V的电源电压,该电压是正常的。
  5. 我们检查了25 MHz的时钟频率。
  6. 大多数板在操作过程中会冻结。 可能的原因是微控制器故障或电源波动。
  7. 示波器测量的3.3V功率显示,所有板在启动期间的电压均为4.1V。 调节器似乎无法维持电源电压。
  8. 也许有些控制器对营养增加有抵抗力,有些则不能。
  9. 根据数据表,在稳压器的输出端应至少有4.7μF的电容。 通过该方案判断,D4 TPS76333输出处的电容不足,C13被指定为1μF。 我们将电容替换为10μF,看看这如何影响稳定性
  10. 更换电容器会使非工作板运行一会儿,然后再次崩溃。
  11. 电源电压看起来比预期的嘈杂。 我们建议在下一次生产之前解决此问题。

问题已得到确认,很可能是我们正在处理设计错误。 对于生产没有任何疑问;他们无济于事。 费用返回给人群供应,然后从那里发送给我们。

调查由第三个针脚进行


最后,我们手中有41个板。 好吧,我们现在修复它! 所有板上的第一件事是将C13电容焊接到10 uF。 我们开始依次测试所有板。 我们有各种董事会行为:

  • 它开始,但过一会儿挂起,键盘无法检测到
  • 根本没有开始,没有生命的迹象
  • 打开时,它开始快速闪烁
  • 它打开,闪烁,挂起,微控制器加热

没有工作板。 我们测量了MK的3.3V电源,那里-4伏! 我们突然意识到,在源头更换电容器并不能解决电压升高的问题。 我们看一下示波器,研究电流消耗,将源更改为LM1117-3.3,



移除电源和接地滤波器,但没有任何变化-电源仍然跳至4V。



接通一段时间后,电压正常,没有干扰,没有电压累积,然后突然变为4V,并无限期地持续。

上电时检测到异常的电源行为:电源由〜100ms的脉冲调制。 有一个假设:电源与电源无关,微控制器本身以某种方式破坏了电源总线。 也许来自USB端口的5V通过VBUS支路“流入”微控制器。 在Pastilda的固件中,此支路没有以任何方式初始化。 我们试图在入​​口处强制初始化脚部:



我们走在正确的轨道上! 电源正常,尽管不是立即可用-毕竟,引导加载程序首先对我们有用。 我们去那里。

默认情况下使用OpenBLT加载程序会初始化USART1,它跨过VBUS分支。 这就是Tx,也就是说,脚是出路。 USB端口直接向其输出外部电源。 我们查看了引导加载程序,删除了USART1的初始化-电源恢复正常。 这是胜利!

对于采用3.3V电源的STM32微控制器,某些支脚可以承受5V TTL信号,在说明中它们被指定为FT(耐五伏)。 让我们刷新这些FT腿的记忆:

  • 仅当将脚配置为输入时,此属性才适用于脚。
  • 脚上的最大电压为5.5V。
  • 支脚上的电压不能超过MK的最低电源超过3.6V。

这是“腿”的结构图:



为什么不能将脚调到输出为FT?
可以看出,输出缓冲器包含两个场效应晶体管 ,上臂为P通道,下臂为N通道。 尽管上面框图中的晶体管没有显示反二极管,但是您可以确定它们在那里。 实际上,晶体管如下所示:



如果D沟道晶体管上的电压超过源极(源极)上的电压,则电流将流过该二极管,直到电压相等为止。

AN4899中单独考虑了通过USB通过LDO MK 供电的情况。 仅当微控制器已通电时,5V电源才应接上VBus脚。 我们这样做:



最终导致生产问题的原因是什么?
  1. 微控制器程序调整了腿部自身。
  2. 因此,功率增加并且控制器损坏。
  3. 硬件错误没有表现出来。


现在,我们知道在具有三个连接器和一个微控制器的板上可能会犯多少个错误(您可以任意选择)。
我们有三个:两个硬件和一个软件。 我们花了一年的时间才弄清楚“生产”问题的真正原因。

经济学


让我们看看我们从这个项目中赚了多少钱。

通过人群供应获得的收入-14,610美元。 费用分配方式如下:



大部分预期生产印刷电路板。 其他所有内容:现场佣金,汇款,交付和组装货物的费用的24%。 该平台收取了所有付款的10%的佣金。 我们将所有费用都从网站上收取了,所以这笔钱从未存入我们的帐户。

在上一篇文章中,我们揭示了开发的复杂性-大约1840小时。 想象一下,这个项目是以商业价格完成的。 然后,开发成本估计约为100,000美元。

为了补偿开发,我们需要出售大约3,000个Pastilds。

结论


诸如Pastilda之类的项目诞生于开发人员的心中,其实施与常识相反。
这种方法适用于爱好项目,其主要目标是尝试新事物。 但是,当我们接触商业项目时,我们要做的第一件事就是进行经济效率分析。 如果经济不趋同,我们会阻止从ToR的开发阶段开始该项目的启动。 我们甚至想到了一篇新文章。 诸如“不需要开发设备的10个理由”之类的东西。 热门话题?

接下来是什么?


我们在此项目的工作期间得出的主要结论是:在当前版本中,Pastida仅适合个人使用。 如果我们希望设备在业务级别解决问题-一件硬件是不够的,我们需要构建一个系统。

有以下想法:

  1. 结合物理和服务器(或云)密码存储。 有条件地将密码分为两部分。 第一部分存储在物理密钥上(如现在所实现),第二部分在输入密码时从服务器请求,并例如通过Wi-Fi传输到密钥。
  2. 与第一个选项类似,但是密码没有存储在密钥上,而是专用加密密钥,它将通过Wi-Fi解密来自服务器的密码(密码已使用其他密钥进行了预加密)。

我们欢迎来自信息安全行业的同事的反馈。

给用户的广告


有必要更新Pastilda引导加载程序,以免损坏MK。 更新后的引导程序位于存储库中 。 在Pastilda中,还有关于如何刷新它的说明。 可以焊接电容器以稳定工作,但这不是必需的。

再次,对于仍在等待Pastilds的买家的延迟,我们深表歉意。 在接下来的几周内,所有剩余的40个Pastilds都会飞向您。

明智地初始化引脚,并从小就照顾输出。 当然,请使用复杂的密码。

Source: https://habr.com/ru/post/zh-CN466533/


All Articles