硬件黑客-全-
硬件黑客(全)
原文:
zh.annas-archive.org/md5/b0414edcde776ed56d0418443cbd547b译者:飞龙
前言
当《No Starch Press》创始人比尔·波洛克首次联系我,提出出版我写作作品集的想法时,我很怀疑。我当时认为没有足够的素材能填满一百页。看来我错了。
我母亲常说:“如果你不能把脑袋里想到的东西告诉别人,那里面有什么都不重要。”在我七年级时,她把我送进了一门课外作文写作班。那时候我讨厌这门课,但回想起来,我很感激。从我的大学申请作文开始,到今天,我发现将思想组织成文字的能力无价之宝。
本书中的大部分内容最初发表于我的博客,但正如你很快会看到的,那些文章并不是为了推动广告收入而写的宣传文章。我写作的一个原因是为了巩固自己对复杂问题的理解。你很容易相信自己理解一个话题,直到你试图以严谨的方式向别人解释它。写作是我将直觉提炼为结构化知识的方式;我只有在发现有趣的事情可以写时才会写,然后我会用 CC BY-SA 许可证发布它,鼓励别人分享。
本书包括我关于制造业、知识产权(重点比较西方与中国的视角)、开放硬件、逆向工程、生物学和生物信息学的写作选集。《No Starch Press》的优秀编辑们还精心策划了我过去进行的一些采访,特别是那些信息丰富或富有洞察力的采访。这些多样话题之间的共同线索是硬件:它是如何制造的,围绕它的法律框架,以及它是如何被拆解的。没错,生物系统也是硬件。
我一直倾向于硬件,因为虽然我在抽象思维方面并不特别天赋(因此需要写作来整理我的思路),但我在动手方面相当不错。我更有可能理解那些我能用自己眼睛看到的事物。
我对世界的理解一直建立在一系列简单的物理体验之上,从我小时候堆积积木并将其推倒开始。本书分享了我一些最*的经历。我希望通过阅读这些经历,你能够更深入地理解硬件的世界,而无需花费几十年堆积积木并将其推倒。
祝你黑客愉快,
—比尔·波洛克
第一部分
制造业的冒险
我第一次踏上中国的土地是在 2006 年 11 月。当时我完全不知道自己将面对什么。当我告诉母亲我要去深圳时,她惊讶地说:“你为什么要去那里?那只是个渔村!”她没有错:1980 年深圳只有 30 万人口,但不到 30 年,它已经爆炸性地发展成一个拥有 1000 万人的大都市。从我第一次到访到我写这本书时,深圳增加了大约 400 万人口——比洛杉矶的人口还多。
从某种程度上讲,我多年来对制造业的理解与深圳的成长相映成趣。在去中国之前,我从未大规模生产过任何东西。我对供应链一无所知,也不明白“运营和物流”意味着什么。对我来说,这听起来像是数学或编程课本中的内容。
尽管如此,我当时的老板 Steve Tomlin 还是让我负责弄清楚如何为我们的硬件创业公司 Chumby 建立一个合适的供应链。把一个新手派到中国是一个大风险,但我缺乏先入为主的观念反而成为了我的优势,而不是负担。那时候,风险投资家避开硬件,中国只是为那些希望生产数十万件产品的成熟公司服务。我在中国的首次考察确实印证了这一观点,因为我主要参观了服务于财富500 强公司的大型工厂。
Chumby 很幸运成为 PCH International 的首个创业客户,并在其庇护下发展。在 PCH,我得到了来自一些顶尖工程师和供应链专家的指导。我也很幸运能够在我的博客上分享我的经历,因为 Chumby 是全球首批开放硬件创业公司之一。
尽管与传统制造合作伙伴达到最低订单量一直是一个不断挣扎的问题,但我总是注意到一些与传统智慧不符的小细节。不知怎么的,当地的中国公司能够将技术重新组合成精品产品。所谓的山寨将手机技术融入到各种各样古怪的形态中,从打火机到装饰用的金色佛像(更多内容见第四章)。这些产品的利基性质意味着它们必须在小批量生产中具有经济效益。我还注意到,工厂居然能够快速生产定制的适配器电路和测试设备,而且在单件生产中质量出奇地高。我觉得这个生态系统还有更多的故事在讲述着,但很少有人有时间去倾听,而那些听的人也只是听到他们想听的部分。
2008 年的金融危机改变了一切。消费电子市场遭遇重创,曾经忙得不可开交的工厂,现在却有了过剩的生产能力。我在当地几家中型工厂交了朋友,开始询问这些工厂是如何如此灵活地生产内部测试设备的,山寨厂又是如何设计和生产定制手机的。
这些老板和工程师最初都很犹豫,不是因为他们想隐瞒潜在的竞争优势,而是因为他们对自己的做法感到羞愧。外国客户充满了公司流程、文档和质量程序,但他们也为这些管理开销支付了高昂的费用。当地公司则更加非正式和务实。那么,垃圾箱上标着“废品”又怎样呢?如果里面的零件适合某个工作,就用它们!
我想参与其中。作为一个工程师、改装者和黑客,我非常关心生产少量单元的成本,而几个小的组装缺陷相比我必须调试的设计问题根本不算什么。最终,我设法说服一家工厂,让我使用其低质量但超便宜的组装工艺来制造一个零件。
诀窍是保证我会支付所有产品的费用,包括有缺陷的单元。大多数客户拒绝为不完美的商品付款,这迫使工厂承担任何不符合规格的部分的成本。因此,工厂强烈劝阻客户使用便宜但低质量的工艺。
当然,我承诺支付有缺陷的产品意味着工厂没有动力做好工作。理论上,它完全可以给我一箱废品,而我依然需要为此支付费用。但实际上,没有人有这种恶意;只要每个人尽力而为,他们的准确率大约是 80%。由于小批量生产的成本主要由设备调试和组装构成,尽管丢弃了 20%的零件,我的最终支出还是更划算,而且我能在几天内拿到零件,而不是几周。
具有在成本、进度和质量之间进行权衡的选项,改变了一切。我一直致力于发现更多的替代生产方法,并继续缩短从想法到产品之间的路径,同时在成本-进度-质量的范围内提供更多的选择。
在 Chumby 之后,我决定保持失业状态,部分原因是为了给自己留出时间进行发现。例如,每年一月,我不去拉斯维加斯那个喧闹的消费电子展(CES),而是租了一个便宜的公寓住在深圳,进行“修道院式的制造研究”;用一晚在拉斯维加斯的消费,我可以在深圳住一个月。我特意选择了没有英语使用者的街区,迫使自己学习语言和风俗以便生存。(虽然我有中国血统,但我的父母更注重英语流利且没有口音,而非学习中文。)我在晚上四处游荡,观察小巷,尽量理解白天所见的所有奇怪而精彩的事情。深圳的商业活动一直持续到凌晨,但速度较慢。夜晚,我能看到孤独的代理人们在表现他们的兴趣和意图。
如果说那些研究教会了我什么,那就是我还有很多东西需要学习。珠江三角洲的生态系统广阔得难以理解。就像大峡谷一样,单单走一条从山脊到山底的小径并不意味着你已经看到了它的一切。然而,我确实学到了足够的知识,能够组装一台定制笔记本电脑,并开发出一种新的“揭皮粘贴”电子电路的制作工艺。
在这本书的这一部分,你将跟随我多年来学习深圳生态系统的历程,这些内容是我在过程中写的博客文章的再创作。有些文章是对中国文化特定方面的反思;其他则是对特定制造实践的案例研究。我最后总结了一章,名为“工厂车间”,这是为考虑外包制造的任何人提供的一套总结性建议。如果你时间紧迫,可以跳过所有背景内容,直接阅读这一部分。
然而,事后诸葛亮总是特别清晰。走过一条路之后,很容易指出沿途的捷径和危险;同样,更容易忘记所有的错误转弯和错误的假设。没有一种通用的方法适合中国,而我的希望是,通过阅读这些故事,你能得出属于你自己的(或许是不同的)结论,更好地服务于你独特的需求。
第一章:1. 中国制造
在我第一次访问中国之前,我坚信东京的秋叶原是购买最新电子产品、小玩意和元件的首选地。直到 2007 年 1 月,我第一次目睹深圳的 SEG 电子市场,才彻底改变了这一看法。SEG 有八层楼,所有硬件爱好者可能需要的元件应有尽有,后来我才知道,这仅仅是华强电子区冰山一角。
当时作为 Chumby 的首席硬件工程师,我与当时的 CEO Steve Tomlin 一起来到中国,旨在搞清楚如何廉价且按时生产 Chumby(一款开源、Wi-Fi 启用的内容传输设备)。有了 SEG 那样的价格,我们无疑来对了地方,至少这个任务的第一部分得以成功。

深圳的 SEG 电子市场,新的电子圣地。秋叶原,你该吃心脏了!
终极电子元件跳蚤市场
当我第一次走进 SEG 大楼时,我被电子元件的旋风所包围:电阻器和电容器的胶带和卷轴、各种类型的集成电路、 inductors、电磁继电器、Pogo 针测试点、电压表以及内存芯片的托盘。作为一个完全不懂大规模制造的新手,SEG 给我带来的一切让我震惊不已。
所有这些元件都挤进了狭小的六乘三英尺摊位,每个摊位都有一个店主埋头在笔记本电脑前。有些店主在下围棋,有些则在数元件。某些摊位是真正的家庭作坊,母亲们照看着婴儿,孩子们在过道上玩耍。

几家家庭经营的元件店
其他摊位则是专业的布置,配有穿制服的工作人员,这些摊位就像一个酒吧——配有凳子——专门销售电子元件。

一位时尚的专业元件卖家
在 SEG,没人像秋叶原那样说:“哦,你可以买 10 个这些 LED 或几个这些继电器。”不,这些摊位有专业化,如果你看到你喜欢的元件,通常可以购买好几管、好几托盘或卷轴的数量;你能买到足够的量,第二天就能投入生产。
环顾市场,我看到一位女士正在像玩扑克牌一样整理一堆 1GB 迷你 SD 卡。一位男士正在把 1GB 的金士顿内存条放进零售包装中,旁边的女孩则在数电阻器。

这个展示的左下角堆满了各种 SD 卡。
另一个摊位堆满了电源、压敏电阻、电池和 ROM 编程器,还有一个摊位上满是各种芯片:Atmel、Intel、Broadcom、Samsung、Yamaha、Sony、AMD、Fujitsu 等等。有些芯片显然是从旧设备中拆下来的,并被重新标记,有些则是全新的,带有激光标记的 OEM 包装。

在 SEG 的一个摊位上,出售的芯片数量真是令人难以置信。
我看到了我在美国根本买不到的芯片,卷轴上的稀有陶瓷电容器,这些是我只能在夜晚做梦时才能想到的。我感官一阵阵发麻,头脑旋转。当我走到下一个拐角,看到堆得像山一样的商店,满地都是大约 1 亿个电阻和电容时,我忍不住期待地笑了。

每家店窗里都有成卷的元件
索尼 CCD 和 CMOS 摄像头元件!如果我从销售代表那里拔掉牙齿,我在美国也买不到这些。(有些卖家甚至会把数据表放在柜台后面;一定要问问看。)接着,我发现了一堆 Micrel 调节器芯片,随后是一个用于销售的 Blackfin DSP 芯片。附*,一位女士正在数 256Mb DRAM 芯片——每盘 108 个组件,堆得有 20 层,可能有 10 排。

相当于 Digi-Key 整个库存的 DRAM 芯片就摆在我面前!
而在她对面,还有六七家小商店,里面也满是和她一样的芯片。在其中一家商店,一名男子骄傲地站在一盘 4Gb NAND 闪存芯片前。所有这一切都可以通过一点讨价还价、几块现金和匆忙的告别来获得。

一盘 4GB 闪存芯片的特写
这仅仅是 SEG 的前两层楼。还有六层楼的电脑元件、系统、笔记本电脑、主板、数码相机、监控摄像头、U 盘、鼠标、摄像机、高端显卡、*板显示器、碎纸机、台灯、投影仪——你能想到的都有。周末时,穿着闪亮的 Acer 品牌紧身衣的“展位妹子”会在周围游荡,试图吸引你购买他们的商品。这个市场有着一年四季 CES 与 Computex 的能量,除了它不仅仅展示最新科技,重点是把你带入这些展位,购买硬件。交易会总是让人有种脱衣舞的感觉,你的呼吸在玻璃上留下鬼魂般的圈子,而你徘徊在那些无法获得的商品前。
但 SEG 可不是脱衣舞。它是消费类与工业电子元件购买的盛宴,在这里,你可以用足够的*块**从钱包里掏出每一件设备。这里的气味、喧嚣和忙碌,构成了 SEG 最终的电子元件跳蚤市场。就像 DigiKey 疯了,让猴子进了它的明尼苏达仓库, resulting chaos 流淌进了中国的跳蚤市场。
当然,我在 2007 年时惊叹不已的许多零件,现在已经成了古董。例如,4Gb 闪存芯片已经没用了,1GB 闪存盘也过时了。然而,当时这些东西可都是大新闻,而 SEG 依然是获取最新科技零部件的最佳地点。
下一个技术革命
从 SEG 街区往下走三条街就是深圳书城。^(†) 第一个也是最显眼的书架是外文书籍专区,满是像斯坦福大学教授 Thomas Lee 的《CMOS 射频集成电路设计》这样的经典书籍,以及 UCLA 教授 Behzad Razavi 的几本书。我拿起了 Lee 的书,定价 68 元人民币,约合 8.50 美元。天啊!Jin Au Kong 的《麦克斯韦方程组》?5 美元。我曾在 MIT 时,是 Jin Au Kong教会了我麦克斯韦方程组。
我一口气买了六七本书,如果是在美国买的话,大概得花 700 美元左右。结账时,我不到 35 美元就买下了这些书,并且还附带了补充的 CD,节省了大约 665 美元。这相当于买了一张经济舱机票飞往香港!
在中国,知识便宜,零部件便宜。深圳书城里的书籍里的知识是真正的“实货”,而使用这些知识的零部件就在街上的 SEG,北边一小时车程内,可能就有 200 家工厂,可以将任何电子产品的想法变成现实并大量生产。这些都不是落后的工厂。我亲眼看到有名品牌的 1,550 纳米单模长途光纤收发器正在那儿组装和测试。深圳是一个沃土,你需要亲眼见识才能真正理解。
深圳有着类似上世纪 80 年代硅谷跳蚤市场的感觉,那时所有大公司刚刚成立并开始起步,只不过经过 25 年的摩尔定律进步和互联网信息流动速度的放大,这种感觉更加浓烈。在这个 1200 万人的城市里,大多数人都从事技术或制造工作,许多人正在学习英语,而他们所有人都愿意努力工作。
在某个地方肯定有像 Jobs 和 Wozniak 那样的人,悄悄地在构建下一个革命。但我也是深圳的一部分,想到自己能成为那场革命的一员,我依然会在恐惧与兴奋中颤抖。这是我的故事,从那次为 Chumby 前往深圳的启发之旅开始。
与 Chumby 一起参观工厂
2006 年 9 月,Chumby 团队只有大约六个人,我们刚刚在由 Tim O'Reilly 主办的 FOO Camp 大会上分发了大约 200 个早期原型的 Chumby 设备。这些设备受到了 FOO Camp 与会者的热烈欢迎,因此我得到了批准,开始建设亚洲供应链。
我和 Steve 在 11 月去了中国,拜访了潜在的工厂。但在出发之前,我们请了一位美国的可信供应商给出了他们的最低报价,作为与中国制造商谈判的基准。然后,我们联系了许多在中国有经验的朋友,安排了大约六次工厂参观。我们去了各种类型的工厂,从小型的 500 人专业工厂到员工超过 4 万人的大型工厂。
没有什么能替代亲自去中国参观工厂的体验。照片只能讲述由摄影师所框定的故事,而你无法通过仅仅看照片就了解一个设施的规模和质量,只有亲眼看到,才能真正感受到。一般来说,工厂都会欢迎你参观,如果有一家工厂不允许参观,我是不会与之合作的。不过,大多数工厂会感谢你提前一周通知,尽管随着你和工厂的关系深入,事情应该会变得更加开放和透明。
说到开放性,Chumby 的开源性质在工厂选择过程中起了很大的帮助作用。首先,我们不怕别人窃取我们的设计(我们已经公开了),因此在分享关键资料如物料清单时,我们避免了签署保密协议(NDA)的繁琐过程。我认为这让我们在中国的工厂中受到了更好的接待;因为我们愿意向他们开放,所以他们也更愿意对我们开放。其次,任何一家工厂都没有疑虑,认为这是一个竞争性的项目。任何人都可以报价并参与投标(实际上,我们收到了几份非常有竞争力的未经请求的报价),这避免了一轮不必要的争执和拖延。
在评估了几家制造商之后,Steve 和我最终决定与一家名为 PCH China Solutions 的公司合作。PCH 本身只拥有少数几家工厂,但它拥有一个广泛的、可信赖的供应商网络,主要集中在中国,同时也涵盖了欧洲和美国。不出所料,PCH 外包的工厂是我们在中国参观过的最好的几家设施之一。实际上,PCH 总部位于爱尔兰——因此他们的大多数工程师都是爱尔兰人——所以我们之间也没有语言障碍。(PCH 的工程师们也非常勤奋、足智多谋且训练有素——另外一个惊喜是,他们似乎总能找到最好的酒吧,无论身处何地。我完全没想到中国有这么多的吉尼斯啤酒龙头!)
参观哪怕只是一个工厂,也有很多东西需要消化,更别提参观六个工厂了,容易让人感到不知所措并迷失在电子制造的种种复杂性中。但在我为 Chumby 参观工厂和与 PCH 合作将 Chumby 付诸实践的过程中,还是有一些关键细节让我感到最为着迷。
深圳的规模
在中国工作时,一个令人震惊的事实是这里的规模之大。我没去过密歇根的汽车工厂,也没去过西雅图的波音工厂,但我感觉深圳在规模上绝对能与它们一较高下。2007 年,深圳的人口为 900 万。
为了让你了解深圳工厂的规模,新百伦的工厂雇佣了 40,000 人,每月生产超过一百万双鞋。我估计,从原料到成品鞋的整个过程大约需要 50 分钟,每一双完美缝制的塑料和皮革鞋子都是手工用工业缝纫机缝制的。工位设计得很巧妙,每个工序大约需要 30 秒钟完成。
当然,新百伦的工厂与富士康不可同日而语,富士康是生产 iPod 和 iPhone 的地方。

你知道你够大时,才会有自己从高速公路出口的通道。
富士康是一个庞大的工厂,显然有超过 250,000 名员工,并且拥有特殊的自由贸易地位。整个工厂被围墙围住,我听说进入工厂需要出示护照并清关。这个场景几乎就像是尼尔·斯蒂芬森的《雪崩》中描述的,国家公司特许经营的核动力机器人犬。
喂养工厂
有一句中国古话:民以食为天。字面翻译是“民众视食物为神圣”或“对人而言,食物如同天”。你也可以将其视为一条治理建议:“政府的指令[等同于天],只有在民众餐桌上的食物质量足够好时才能有效。”或者,你也可以将其解读为拖延的借口:“先吃饭吧[因为它如同天一样重要]。”
无论从哪个角度看,我认为这句话在中国依然适用。衡量一个工厂如何对待员工的一个重要指标就是食物的质量,因为工厂工人通常会在工厂内住宿、用餐并得到照顾。
一些工厂的食物实际上相当不错。例如,在与制造 Chumby 电路板的工厂工人一起用餐时,我被端上了一道蒸鱼、烤猪肉、春卷、清炒蔬菜和一些腌制蔬菜与肉类的混合菜肴。米饭、汤和苹果也是“自取”式的供应。

来自制造 Chumby 电路板工厂的一顿饭
每个我访问过的工厂都有为来访者准备的单独餐具和餐盘。在一家工厂,我的食物被端在一个泡沫塑料盘子里,并配有一次性筷子,而我与其一名工人一起吃饭时,他的食物则是放在钢盘子里,并配有钢筷子。我还没有通过工厂的身体检查,所以他们给了我一次性餐具,以防我带来外来疾病,污染工厂。
回到规模问题,有些工厂的餐饮运作规模令人印象深刻。我听说富士康的工人每天消耗 3000 头猪。从猪到 iPhone,这一切都发生在深圳!

一车猪,驶离高速公路前往富士康
对质量的奉献
在我开始与 PCH 合作生产 Chumby 时,大约在 2007 年 6 月,我遇到了一种情况,这让我深刻感受到深圳工厂工人对工作投入的专注程度。
我已经更新了 Chumby 的主板,加入了一个电容式麦克风,并配备了一个集成的前置放大场效应晶体管(FET)。麦克风需要按正确的方向插入电路,以确保 FET 能接收到合适的偏置电流。
我从 PCH 工厂收到的第一批样品麦克风是装反的,我打电话给工厂让他们把极性倒过来。下周我会去工厂,我想看到修正后的样品。当我到达并测试麦克风时,令我沮丧的是,麦克风依然没有正常工作。
怎么可能呢?连接麦克风只有两种方式。
结果发现,生产线上有两位操作员在组装麦克风。一位将红色和黑色的电线焊接到麦克风上,另一位将这两根电线焊接到电路板上。操作员们被要求反过来操作,他们都认真地遵从了指示——结果我得到的麦克风依然是焊接反了,不过电线的颜色换了。(这其实是中国常见的问题故事。)
工厂计划第二天制造 450 块电路板的首批试生产板。为了确保 Chumby 的生产时间表不受影响,一切都必须完美无缺。我们重新制作了焊接模板(我们还在调试 QFN 封装音频 CODEC 的良率问题),并大约中午完成,下午 6 点左右,我拿到了第一批电路板进行测试。我进行最终的工厂测试,设备再次失败——问题出在麦克风上。这对工厂的任何人来说都不是愉快的时刻,因为工厂需要对任何制造缺陷负责。
我穿上工作服,走到生产线上开始调试问题。
接下来的整晚,我都待在工厂,参与 Chumby 制造的每个经理和技术人员也都在场。压力巨大:我们旁边的生产线正在生产 450 块可能有缺陷的电路板,而我不愿意停工,因为我还不知道根本原因,而且我们必须按时完成。

我在最终工厂测试的当天凌晨 3 点调试电路。
我几乎整夜都有一组工人随时待命,为我提供任何我需要的东西:电烙铁、测试设备、更多的板子、X 射线机器、显微镜。令人惊讶的是,没有一个人犹豫;没有一个人抱怨;没有一个人对问题失去专注。人们毫不犹豫地取消了与朋友的晚餐计划。任何在特定时刻不需要的人,都忙着监督项目的其他方面。自从我在 MIT 与自主水下机器人团队合作以来,我再也没有见过如此专注的奉献精神。
就这样一直持续到凌晨 3 点。
令人尴尬的是,最后问题并不是 PCH 的错。问题出在我当天从美国团队那里收到的新固件版本。这个固件有一个 BUG,导致麦克风无法使用,因为一个黑客不小心把这个问题提交到了构建树中。
更令人印象深刻的是,当 PCH 发现时,没有人感到生气,也没有人抱怨。(嗯,销售员给了我不少难题,但我活该;她足够友善,陪着我在生产线上整夜工作,并且做我的翻译,因为我的普通话不太好。)他们只是松了一口气,觉得这不是他们的错。
我们各自离开,第二天上午 11 点我在睡了个好觉之后回到了工厂。我见到了 Christy,负责制造 Chumby 主板的工厂项目经理。我问她几点上班,她告诉我她总是必须在早上 8 点之前到岗。我开始感到很愧疚;Christy 因为我们的 BUG 熬夜,而我却睡到中午才来。于是我问她为什么知道自己必须 8 点报到却还这么晚才回去。她完全可以回家休息,第二天继续工作。
她只是笑着说:“确保这个工作完成是我的职责,我想做得好。”
不使用技术来构建技术
这里有另一个有趣的故事。一天我们离开工厂车间时,小李(我们制造 Chumby 的工厂的质量管理经理)问我:“Chumby 是做什么的?”我的中文说得不好,她的英语也不太好,所以我决定先从几个基本问题开始。
我问她知道什么是万维网吗。她说不知道。
我问她知道什么是互联网吗。她说不知道。我震惊了,不知道该说什么。怎么向盲人描述蓝色?
小李是一个擅长构建和测试计算机的专家。在一些项目中,她可能已经重复了十万次构建 PC 和启动 Windows XP 的过程。(天知道在麦克风事件中,我听到了那个该死的启动音无数次,因为就在我旁边有一排最终测试站,负责华硕主板的测试。)但她不知道什么是互联网。
我曾以为,只要接触过电脑,就等于也拥有了互联网的丰富资源。突然间,我觉得自己像个被宠坏的傲慢人和一个忘记了小李可能连电脑都买不起,更别说宽带上网的人,真是有点自责。如果给她机会,她一定足够聪明能学会这些技术,但她实在太忙了,可能每天都得把赚来的钱寄回家给家人。
最终,我能做的最好的事情就是告诉小李,chumby 是一款用来玩游戏的设备。
熟练工人
深圳的工人可能对自己做的每一样东西了解不多,但除了他们的敬业精神,他们的技术也非常高超。我曾经看到一个在同一家工厂工作的人,那家工厂生产 chumby 包,我敢发誓,他能以每袋 5 秒的速度缝制化妆品包。而且他甚至没有百分之百专注于工作,他一边缝制,一边听着 iPod。
显然,他并不是他们最快的员工!他们还有一个员工的速度大约是他的两倍,而且那人已经在公司工作了大约七年。我去看那位更快的工人,但他已经去吃午饭了,因为他已经做完了所有工作;在他的工作台旁边放着两个巨大的装满化妆品包的箱子。
类似的事情让我感到惊讶的是,我了解到中国是如何制作橡胶标签(你在衣服上随处可见的那种)的。我一直以为它们是机器压制出来的,但我错了。所有的文字、颜色和字母都是手工绘制的。工作人员将一个徽标模板放在空白标签上,用惊人的精确度在模板上涂色,然后继续下一个标签。如果是多种颜色,每个颜色都有一个人负责,以确保过程迅速。
我问过 PCH 是否有类似的机械化工厂。他们告诉我,确实有这样的设施,但最小订单量非常大(成百上千万),因为产品成本极低,而自动化过程的工具成本相对较高。这与我听说的麦当劳儿童套餐玩具类似。通常这些玩具是用螺丝固定的,因为让人一个个螺丝地组装玩具,比制造一个钢制注塑模具(符合必要的容差来拼接玩具)要便宜得多。*
在 chumby 硬件内部也有类似的权衡。内部电子设备上有四个连接器。使用我能采购到的美国供应商,一个连接器的最低价约为 1 美元,另外三个则分别为 0.40 美元。而 PCH 那位非常有才华的采购专家(她在每个供应商中都声名显赫)设法为我找到了分别为 0.10 美元和 0.06 美元的连接器,节省了将* 2 美元的成本。唯一的缺点是,这些连接器没有牺牲用的塑料拾取和放置垫子,导致它们无法被机器组装。
解决办法?当然是一个人。

这位先生手工将便宜的连接器装配到每一个 Chumby 上,每个单元大约节省了五分之一的成本。正是因为他,Chumby 便宜了 2 美元,这为我们消费者提供了更多的资金,可以去星巴克消费。
对工匠的需求
我想向你们介绍一位我认识的男人,他就是兆师傅。我在 Chumby 的制造过程中遇见了他,我敢肯定,在你的一生中,你一定使用过或见过他创造的某些东西。
当我进入兆师傅所在工厂的样品室时,我震惊于他们货架上那么多我自己曾在美国购买、使用或在商店里看到的商品。顶级消费品牌的产品就是在这家工厂生产的,据我所知,当时工厂只有一位首席制图师:兆师傅。他曾参与为布劳恩(Braun)设计化妆包,为微软设计配件盒,以及为主要品牌设计药店销售的医疗支架等众多产品的制作。

兆师傅是前景中的那位;背景里是 Joe Perrott,Chumby 的优秀项目工程师,来自 PCH China Solutions。
兆师傅是传统意义上的工匠。曾几何时,最精致的家具只能依靠工匠的直觉和技艺来设计和建造。如今,我们都去宜家,买到的是经过 CAD 设计、供应链管理、图解式组装的家具套件——尽管如此,这些家具看起来也不差。因此,“工艺”这个词被用来形容你在迈克尔斯(Michaels)购买的某些剪贴簿或十字绣套件,花上一个慢悠悠的周末拼凑起来的物品。我们已经忘记,在没有机器的时代,“工艺”是任何优质物品得以制作的唯一方式。
然而,事实证明,传统工艺仍然至关重要,因为 CAD 工具并未带来在我们犯错之前就能模拟出错误的能力。
纺织品的*面图案制作是一个很好的例子,展示了一个需要工匠参与的过程。*面图案是用于指导面料裁剪的二维形状集合。这些形状经过裁剪、折叠和缝合,最终形成复杂的三维形状。将任意三维形状投射到二维表面上,并确保各个部分之间的浪费面积最小,这本身就已经够难的了。更何况,材料会发生拉伸和变形,有时变形方向还不同,而缝合需要足够的公差才能确保产量良好,这使得图案制作成为一个难以自动化的问题。
Chumby 的外壳增加了另一层复杂性,因为它们涉及将一块皮革缝到一个软塑料框架上。在这种情况下,当你缝皮革时,框架会略微变形并拉伸皮革,从而产生依赖于缝制方向和速度的缝制偏差。这个力会在接缝处被捕捉,并影响最终外壳的形状。我挑战任何人制作出一种能够准确捕捉这些力并预测像这样的产品在缝合后会是什么样子的计算机模拟工具。
然而,不知为何,Master Chao 在打版艺术上的精湛技艺使他能够非常快速且通过很少的迭代,制作并调整一个补偿所有这些力的版型。他的成果,全部是用纸板、剪刀和铅笔完成的,聪明且富有洞察力,令人惊叹。要感谢他那种老派技能;它们很可能在你曾经使用过或从中受益的某些产品的生产过程中起到了作用。

在 Master Chao 的办公室里没有一台计算机,但我在这里看到的产品却涉及了各种各样的高科技设备。
电子组装的自动化
在我加入 Chumby 之前,我几乎认为所有的东西都是由机器制造的。当然,参观纺织厂很快就纠正了我的这个印象;然而像电子组装这样的高科技产品,尽管在中国,仍然往往是高度自动化的。我在参观工厂时唯一看到的例外,讽刺的是,竟然是成本最低的产品,比如玩具。这些车间仍然由一条条工人组成,他们手工塞装和浸焊电路板。
与自动化相关的一个有趣的二分法是采用芯片直接封装(CoB)技术的产品的双峰分布。CoB 组装直接将硅芯片与 PCB 焊接在一起。完成的 CoB 组装有着典型的“环氧树脂块”外观,与完成的塑料封装外观不同。高端、密集的电子组装通常采用 CoB 技术。我曾经为一些 10Gb 的光模块设计过几款 CoB 产品,它们可不便宜。
然而,几乎所有玩具也都采用了 CoB 技术,以消除 IC 封装的成本!玩具厂商在成本控制上的坚持令人钦佩,他们甚至会购买自动化线焊机,并将它放置在生产娃娃头和缝制毛绒玩具的生产线上,因为拥有一台内部的线焊机能节省几美分。
一台典型的线焊机将一根细如人类头发的金属丝焊接到硅芯片上,焊接点的大小几乎与金属丝直径相当,而且每秒钟就可以完成好几次焊接。线焊机是非常快速且精确的设备。焊接过程如此迅速,以至于电路板看起来似乎在*滑地旋转,但实际上它在旋转过程中每转 16 次就停一次,每次停下来时,都会有一根金属丝连接芯片和电路板。
然而,在粘接之前,芯片是由人工非常小心地将其粘贴到电路板上的,而在粘接之后,芯片会由人工操作员非常小心地涂抹环氧树脂进行封装。这意味着,线材绑定机是简单玩具生产线中唯一自动化的设备。看到这个过程后,我对那些在 Target 以 10 美元价格出售的会说话的 Barney 娃娃背后的复杂工艺有了全新的认识。
chumby 的制造过程也使用了一些自动化,得益于芯片射手。芯片射手(以及拾放机)将表面贴装元件放置到 PCB 上,以便后续焊接。

chumby 的 PCB 组装工厂在中国有数十条线,配备了经过验证的富士芯片射手
看到芯片射手工作时,真是让人目不暇接。chumby PCB 组装工厂的芯片射手每台机器每小时能放置 10,000 到 20,000 个元件。这意味着每台机器每秒能放下 3 到 6 个元件。机器人组装的速度快得连眼睛都跟不上,所有的动作转瞬即逝,形成一片令人叹为观止的模糊影像。我在 chumby 工厂看到的芯片射手工作原理像是加特林机枪:芯片枪本身是固定的,而电路板在枪下方舞动。芯片射手实际上会“观察”每个元件,并将其旋转到正确的方向后才放置到电路板上。

这就是 chumby 核心板组装的终点!
我们用于 chumby 的 PCB 组装工厂也生产品牌 PC 主板,似乎毫不费力地每天能推出超过 10,000 个这样复杂的组装件。尽管像元件放置这样的工艺可以实现自动化,但有些事情是机器无法做到的。
精准、注塑成型和耐心
在工程设计 chumby 的过程中,我还必须了解注塑成型,因为电路板必须装入某种外壳中。对于一个机械背景较少的电子工程师来说,这可不是一座小山要爬。这个概念看起来很简单:你用钢材做一个腔体,把熔化的塑料在高压下推入其中,等待其冷却,然后—完成的零件就出来了,就像小学时的橡皮泥模具一样。
哦,要是过程真的这么简单就好了。
当然,塑料是可以流动的,但它并不特别稀。它流动得很慢,并且在流动的过程中会冷却。塑料的颜色会受到温度变化的影响,如果使用不当设计的模具,你甚至可以在最终产品中看到流纹和接缝痕迹。还有一系列关于如何从模具中拉出成品、模具的制造和完成、如何在模具中设置进料口和通道等问题。
幸运的是,PCH 在中国有专家,熟悉这一切,我主要是通过观察来学习的。
如果让我用一个形容词来总结注塑成型,那就是精确。当做得对时,模具的精度能达到比头发丝还要薄的公差,然而它们是由坚硬的钢材制成的。从如此耐用的材料中达到这种精度可不容易,看到一台机器从原钢材中切割出模具真的令人印象深刻。
用于切割 Chumby 外壳模具的机器有一个可移动的工作台,迅速推动一块大约几百磅重的钢块;它快速地对金属进行铣削!

*用于制造 Chumby 的模具切割机。
将其与站在旁边的人进行比较,以便获取尺寸比例。*
但机械加工只是模具制造中的粗加工步骤。粗略的形状切割出来后,模具会被放入电火花机(EDM)中,通过电子流的爆发将微小的金属块从钢表面打掉。这是一个非常繁琐的过程:我曾多次观看 EDM 工作,简直就像看油漆干一样慢。然而,EDM 的精度极高,且能够产生卓越且可重复的结果。
从项目管理的角度来看,生产质量的注塑塑料所需的极长交货时间是我最大的震撼。总体而言,Chumby 模具从一块原钢块变成初步成型工具的时间大约是四到六周,而我不得不亲自去中国,看看工具车间的工作,才相信这并不是某种大量虚增的进度。
从风险管理的角度来看,更令人焦虑的是缺乏好的模拟工具来预测塑料如何流过模具。如果我们看到明显的瑕疵,比如流痕和接缝线,我们必须等待四到六周才能看到新的模具是否有所改进。哎呀!
幸运的是,Chumby 在中国的工具制造商预见到了这些问题,他们制作的工具多留了些钢材,因为去除多余的材料来修复问题比增加材料要容易得多。这就像老木匠常说的那样:“量两次,切一次,若切错了,切长点。”
用于制作 Chumby 背面边框的模具非常复杂,因为它涉及到一种叫做过模的工艺。如果你恰好拥有一台 Chumby 经典版,看看背面。那里有一圈橡胶质的 TPE 包围着硬质 ABS 边框。许多人以为这是一条粘上的橡胶带。实际上,这个 TPE 是通过模具直接在背部部件上成型的。这需要一个双模模具。

Chumby 背面边框的最终模具,位于注塑机内
实际上有两个模具,其中一侧的模具会旋转,以便在合适的时刻将交替的材料系统进行成型。
每天看到的这些不起眼的塑料零件背后,其实凝聚了大量辛勤的工作,这也是创造高质量产品的一部分。但与此同时,也有一个非常现实的需求,那就是满足廉价价格的期望。
质量挑战
显然,随着中国制造商品的低成本预期,质量管理面临着巨大挑战。看看媒体关于中国制造的玩具铅漆、食品中的工业化学品等问题的报道,你就能看到为了降低价格所做的一些错误决策。
在考虑类似的案例时,我认为有必要应用汉隆剃刀原则。换句话说,“永远不要将可以用无知充分解释的事情归咎于恶意。”英国人也有一个简洁的版本的格言:“先是失误,再是阴谋。”
的确,某些制造商确实为了赚钱不惜一切代价,但我认为大多数错误是由于无知造成的。大多数工厂的普通员工并不知道他们的产品最终是用来做什么的,在巨大的成本压力下,他们做出了那些错误的决定。工厂还不得不应对规格严重不足的产品,以及那些用各种无关紧要的要求压倒他们的客户——而且大多数客户在这两种情况下都不会跟进。最终,工厂只能玩“发货后再看看”的游戏,如果客户没有注意到缺失的规格,那么这个规格就一定不重要。这并不是一个好游戏,也意味着客户需要时刻保持警惕,进行审计并保持质量标准。
美国与中国之间的脱节
这个游戏背后有一个根本问题,那就是许多中国居民并不理解或欣赏我们在美国认为理所当然的基本事物,反之亦然。许多中国工厂工人受过良好教育,但他们并没有在像我们美国那样的“电子产品文化”中长大,所以你不能假设他们能够主观地理解产品规格。
例如,你可以告诉一位美国工程师:“我想在这个面板上加一个按钮”,你可能会得到一个在外观和手感上都相当接*你预期的东西,因为你和工程师对面板上的按钮有着共同的经验和期望。如果你在中国这么说,你可能会得到一个看起来有点笨拙,手感也很笨重的东西,但它便宜得要命,而且很容易制造和测试。虽然后者的特性在实际操作中有其可取之处,但美国的电子产品爱好者根本不会购买那些外观笨拙或者手感笨重的东西。
然而,最终,正是那些消费者希望——甚至是要求——低价商品,而这种需求推动了在中国制造的决策。问题在于,除了产品上的标签写着“中国制造”或“美国制造”之外,消费者其实并不关心制造过程。你愿意为一个标有“美国制造”的小工具支付多少附加费?美国劳动力的成本比中国高出 10 倍。想一想:美国的普通工厂工人的生产力能比中国的普通工厂工人高出 10 倍吗?这是一个很难对抗的倍数。
我并不是说国内供应商没有价值:如果我在美国制造产品,付出的努力和风险都会小得多。事实上,大多数早期原型都在美国制造,因为国内供应商能够提供巨大的价值。然而,价格却无法适应大规模市场产品。没有人会买它,因为它的价格无法匹配其功能。有人甚至可能指责我懒惰,如果我只是选择一个国内供应商并将更高的成本转嫁给消费者的话。
参与制造过程
最终,在中国制造是保持成本低廉的最佳方式,为了维持质量,唯一的办法就是亲自到中国并直接参与。几乎每个工厂在你来访的当天都会“清理”一番,但凭着敏锐的眼光和正确的问题,你可以看穿任何快速修饰过的外表。
当我为 Chumby 评估工厂时,我总是会去质量控制(QC)室。我期待看到整齐摆放、使用过的设计文档和质量控制标准文件夹,以及金样品,即产品的生产前样品。我会要求查看某个随机文件夹的内容和相关的金样品,并确认员工是否了解文件夹中的内容。(有些工厂确实会随便填充产品文件夹,放一些随机的数据。)我还认为在设备上的大额投资是一个好迹象:我访问过的最好的制造商都拥有几间配备了先进热、机械和电气极限测试设备的房间,当然,房间里会有操作员正在实际使用这些设备。(我完全可以想象某些中国制造商仅仅为了展示而购买一间设备齐全的房间。)
但我怀疑玩具制造商和食品制造商不会像我这样定期派技术人员到中国的工厂监督生产。与此对比的是苹果公司,它定期派遣一批工程师前往工厂(通常是富士康,苹果内部有人亲切地称之为“魔多”)进行为期两周(或更长时间)的高强度工作。因此,我在深圳的外籍酒吧里常常碰到许多苹果的工程师。
PCH 中国解决方案在中国提供西式管理和质量控制对我们 Chumby 来说非常重要。如果我们遇到供应商问题,PCH 会立刻派人到工厂了解情况——没有电话往返,没有快递拖延。而且在中国,当你亲自上门时,工厂老板通常会非常响应。
因此,Chumby 解决质量难题的方法是全方位的。我们从一开始就让一名工程师(我)驻厂,调查现场情况。了解工厂能做什么,不能做什么是非常重要的。我查看了生产线上的构建情况以及使用的技术方法。然后,在产品设计阶段,我尽量使用那些工厂最熟悉的流程和技术。当我需要做一些新事情时(任何好的创新产品都需要做一些新的事情),我会挑选最重要的部分集中精力攻克,因为任何新事物都会是一个几周的挑战,直到做得正确。这种策略甚至适用于最小的细节:如果工厂习惯用塑料收缩膜包装产品,而你想用纸包装你的产品,那么你需要计划重点开发纸包装的过程,因为很可能你的目标工厂的生产线工人从未见过纸包装的产品。
当然,在为 Chumby 开发新工艺时,我更倾向于亲自到工厂去,我至今依然如此。没有什么能比站在生产线上,亲自向将要组装你设备的工人们展示如何制作它更有效了。例如,我亲自培训了 Chumby 的生产线工人,教他们如何将铜胶带附着到 LCD 组件上,形成适当的 EMI 屏蔽。
很难描述如何将胶带折叠在复杂的金属板上,以确保它与接地表面良好接触,同时避免与其他组件发生短路。像胶带一面粘合剂是较差的绝缘体这样的细节,也需要一定的物理学基础,而这正是生产线工人通常没有的知识。更糟糕的是,解释这些概念需要一些技术术语,可能你的翻译员根本不理解这些词汇。
就我而言,即使有一个很好的 3D 图纸或完成品的照片,也无法完全传达整个概念,因为胶带的刚性要求特定的动作才能正确折叠而不撕裂。远程描述这个过程,通过照片批准样品,最终通过 FedEx 批准一个单元,可能需要几周时间,但站在一群工人面前亲自演示过程,只需几分钟。尽管存在语言障碍,我仍然能从他们的面部表情和肢体语言中看出他们是否理解某个步骤的重要性。根据这些线索,我会立刻回顾那些含糊不清或难以掌握的过程。
通常,当你能够以这种细致入微的方式展示一个过程时,工人们会在几个小时内就能完成,而不是几个星期。这也是我在 Chumby 的制造过程中花费那么多时间在中国的原因之一。

每个人都参与了 Chumby 的质量过程。这张照片展示了 CEO Steve Tomlin(左侧)和艺术总监 Susan Kare(中间)在缝纺工厂,讨论 logo 丝网印刷的细节。
自家开发的远程测试
然而,Chumby 并不总是能派人去中国。我个人不太愿意住在中国,所以在 Chumby,我们非常依赖 PCH 来监控质量并确保一切顺利进行,他们做得非常出色。
通常,远程工作意味着如果我不在现场调整和批准,新流程往往需要几周才能逐步推行,因为每一个调整都涉及几乎是通过 FedEx 来回运送某些物品。经过几次这样的过程后,我学会了每次调整都预留两周的时间,而不是我在工厂现场时只需要几个小时。
那两周的时间很快就累积起来了。
由于从美国远程监督中国的操作困难,远程电子监控产品的测试结果变得至关重要。对于 Chumby,我开发了一套测试仪器,它们负责编程、个性化、启动、验证和测量每一台生产线上的设备。所有来自测试过程的数据都会记录在日志中,到了当天结束时,日志会传输到美国的服务器。
这些数据让我能够在车间调试大量问题。我可以判断某个测试员是否在使用条形码扫描仪时遇到问题。我还可以立刻知道当天是否有产量问题,或者生产效率是否低于预期。有这样的自家开发的审计能力非常强大,因为工厂知道我在监控他们。事实上,拥有这样的能力可以使与工厂的关系更加顺畅:工厂承担产量问题的成本(至少最初是这样),因此当设计工程师能够在问题扩大之前提供及时的建议和帮助时,他们会非常感激。

中国工厂中的一对 Chumby 测试站。我们经历了很多困难才把这些笔记本电脑带入中国,背后有一段不小的故事。
进一步的工厂测试
一旦你完成了测试过程的设置,它就可以在工厂中自主运行。例如,在 Chumby 的 PCB 工厂,第一次最终检查是手动完成的——一个人检查每一块电路板,然后在一个纸板模板的帮助下,另一位操作员确保没有缺少任何组件。然后这些单元进入了自动化测试。
定期地,PCH 和工厂也会对 chumby 单元进行有害物质限制(RoHS)测试,以确保没有与指定的一系列潜在有害化学物质(包括铅)污染。RoHS 是欧洲要求的有害化学物质安全标准,但具有讽刺意味的是,美国并没有这一要求。工厂通常会对所有产品进行此项测试,即使这些产品仅销往美国,因为生产线上的潜在污染可能会导致其他产品无法运往欧洲。
即使在所有这些测试之后,在美国,Chumby 仍然会定期抽样检查单位以进行质量控制。为此,我们定期订购、表征和剖析设备,以确保所有操作程序都得到了遵循。
错误仍然会发生
尽管有这些保护措施,任何产品在生产过程中仍然会出现一些错误。每个产品都经历过一个阶段,内部 QA 没有发现的 Bug 会被暴露出来并解决。你必须依赖顶尖的客户服务和支持团队,并且必须在这一阶段保持非常灵活和创新,以解决问题并防止它们再次发生。
当我在 Chumby 工作时,如果我听说某个单位在市场上出现了硬件问题,我会直接联系报告问题的客户。我希望了解问题出在哪里,以便修复并确保以后永远不会再次发生,任何人都不会再遇到!
然而,我对 chumby 的最大期望是避免类似于微软 Xbox 360 的“红环死机”事件,当时控制台发生了重大硬件故障,停止工作,并仅在电源按钮周围显示红色指示灯,导致玩家们的巨大沮丧。这个问题直到 Xbox 360 发售多年后,数百万台设备已经出货时才暴露出来。像“红环死机”这样的情况是产品工程师的噩梦。
所以你看,把 chumby(或任何产品)送到消费者手中只是开始。真正的挑战是在之后开始的。
如果你在制造过程中遇到这一点,我祝你好运!
结束思考
这里讲述的故事分享了我一些冒险——和失败——学习如何大规模生产产品的经历。接下来的两章内容更加反思性,故事性较少。下一章将带领我们进行三家工厂的虚拟参观,看看我们能从中学到什么,第三章则试图总结我迄今为止在制造过程中学到的所有经验。
第二章:2. 在三个截然不同的工厂内部
很难理解一台计算机是如何工作的,除非你把它打开,看看里面的构造。同样,除非你进入工厂并参观生产线,否则很难理解产品是如何制造的。尽管我们常常认为制造是创新之后必要却枯燥的步骤,实际上,两者是紧密相连的。发明者只思考一次产品;而工厂每天都在思考同一个产品,有时长达数年之久。
在当今互联全球经济中,工厂作为创新节点的重要性日益增加。现实是,没有所谓的“苹果工厂”或“耐克工厂”。更确切地说,是一系列精通某些工艺(如 PCB 制造或拉链生产)的设施,这些设施由知名品牌策划。因此,在同一工厂里看到两个竞争对手的产品并排运行在类似的生产线上并不罕见。这种专业知识的集中意味着,学习如何提升你产品某一方面的最佳地方,往往是生产其他公司产品类似方面的同一个地方。
我对改进产品的一些最深刻的洞察来自于观察技术人员在生产线上的工作,并看到他们在重复做同样的事情多年后所开发出的巧妙优化技巧。
本章将带你参观三个生产日常用品的工厂:PCB(特别是用于阿尔杜伊诺的那些),USB 闪存盘和拉链。通过揭开这些产品背后的设计权衡,你将获得一些有助于改进产品的见解。在 PCB 工厂,我发现了他们如何在每块阿尔杜伊诺的背面打印意大利高分辨率地图的秘密;在 USB 闪存盘工厂,我目睹了高科技与低科技制造技术的奇妙结合;而在拉链工厂,我了解了即使是最不起眼的产品也能为产品设计师提供宝贵的经验教训。
阿尔杜伊诺的诞生地
那是 2012 年 7 月,我的前一个创业公司 Chumby 停止运营已经大约六个月了。我决定休息一年,整理思路,并实现一些愿望清单上的项目,其中之一就是去意大利旅行。我的女朋友有个聪明的主意,建议联系阿尔杜伊诺团队,看看是否可以把访问他们位于斯卡尔马尼奥的工厂(那时阿尔杜伊诺/Genuino 还没有分裂)作为我们行程的一部分。Officine Arduino 的成员(特别是执行董事 Davide Gomba)非常友好地抽出时间带我参观他们的工厂。他们耐心地等着我表达我对硬件的热爱和内心的摄影爱好,结果我确实拍了许多精彩的照片。
Scarmagno 是意大利北部的一个小镇,距离米兰大约一个半小时车程,靠*都灵郊区的奥利维 etti 工厂。这个小镇负责所有官方品牌 Arduino 的电路板制造、板材填充和分销。我非常兴奋能参观这些工厂,而我参观的亮点是看到 System Elettronica,这家 PCB 工厂制造了 Arduino 的 PCB 板。
System Elettronica 的一个迷人之处在于,工厂的主人将工厂涂成绿色、白色和红色,以匹配意大利国旗的颜色。在工厂车间,我看到了这种精神的体现,那些沿着厂房长度排列的红色和绿色柱子。

2012 年 8 月,在 System Elettronica 工厂车间的广角视图
但我很快就不再关注装饰了,因为那块工厂车间也是我跟踪 Arduino Leonardo 新批次整个生产过程的地方。以下是这些板是如何制作的。
从一片铜开始
Arduino Leonardo 板从巨大的原铜覆层 FR-4 板开始,FR-4 是一种由玻璃纤维和环氧树脂制成的材料,几乎所有的 PCB 都使用它作为基板,作为铜层之间的绝缘和结构层。这些板的厚度为 1.6mm(PCB 最常见的厚度,等同于 1/16 英寸),宽度大约为 1 米,长度大约为 1.5 米。

一堆等待加工成 Arduino 板的铜片
处理 PCB 的第一步是钻孔——包括焊盘、通孔(连接 PCB 不同层的小孔)、安装孔、电镀槽等等。当制造 PCB 时,钻孔在图案化之前进行,图案化是通过掩膜化学物质在铜板上光学定义的阶段,这些化学物质确定了最终板上需要有铜的位置,包括走线、焊盘等。一些钻孔用于对齐掩膜,这些掩膜稍后会在工艺中对走线进行图案化。钻孔还是一个脏乱的过程,如果走线已经放置,可能会损坏电路图案。

用于钻孔 Arduino 板的 CNC 钻头
空白的铜板堆叠成三层,一台 CNC 钻床一次性处理所有三层,让它能够同时钻孔三块基板。

CNC 钻床使用的钻孔架。如果你曾经需要创建 NC 钻孔文件,这就是所谓的“钻孔架”
Arduino 板上的每一个孔都是机械钻孔,包括通孔。任何带有通孔的 PCB 都是如此,这也是通孔数量成为计算 PCB 成本时一个重要参数的原因。
请注意,我在 System Elettronica 看到的这台特定钻孔机相对较小。我曾在中国见过巨大的钻孔机,它们将四到六个钻头机械连接在一起,组成一个卡车大小的机器,同时处理几十个面板,而这台钻孔机只能处理三个面板。这种做法的原因是,精确的机器人定位系统是钻孔机中最昂贵的部分,而钻头本身很便宜——只是一个旋转的电动机来驱动钻头。因此,一种提高生产效率的方法是将多个钻头组装在一个大型系统中,同时操作。每个钻头仍然会处理自己的一堆面板,但通过使用一个 X-Y 定位器,你可以达到我在意大利旅行中看到的钻孔机的四到六倍产能。那些更大的机器钻孔速度快且力量大,甚至在几米外都能感觉到每个孔的振动。
一旦面板被打孔、清洗并去毛刺,它们就准备好进入制造过程的下一个步骤。

一堆已完成并打孔的 Arduino Leonardo 电路板面板
将 PCB 图案应用到铜层
下一步是将光刻胶这种光敏化学物质涂覆到面板上,并曝光一个图案。在 System Elettronica,这个过程使用了光箱和高对比度的胶片。我也见过使用直接激光成像——通过栅格扫描激光——将图案应用到 PCB 上。直接激光扫描仪在快速原型制作公司中更为常见,而胶片成像在大规模生产公司中更为常见。

前后对比:右侧面板显示了曝光前的光刻胶,左侧面板显示了曝光后的光刻胶。

正在将 PCB 安装到光箱中,光箱将曝光其未处理的背面薄膜
在图案应用后,每块电路板都会送入机器进行显影。在这种情况下,同一台机器用于显影光刻胶和焊接掩膜。

开发光刻胶的机器

这张在 System Elettronica 工厂拍摄的已开发光刻胶面板的照片是我最喜欢的照片之一。另外,“Codice: Leonardo”这个名字听起来也很酷。
蚀刻 PCB
在光刻处理和显影后,面板会通过一系列化学浴,进行蚀刻并镀铜。
电路板在化学浴中轻轻前后摆动,以加速蚀刻过程。该动作还可将已使用的蚀刻液从电路板上循环移走,确保无论要去除的铜量多少,蚀刻速率都保持均匀。在 Scarmagno,电路板的化学浴处理完全实现了自动化。自动化是必要的,因为电路板必须经过一系列强腐蚀性的化学浴,且暴露于氧气的时间要尽可能短。氧气能够在几秒钟内破坏电路板,因此浴液之间的转移需要迅速,电路板在每个浴液中的停留时间必须一致。由于这些化学液体对人类有害,因此由机器人执行此工作要更为安全。

在蚀刻液中移动电路板的机器
一旦电路板经过这一系列溶液处理,所有未涂覆光刻胶的电路板表面,包括之前未镀铜的通孔和焊盘,都会形成一层暗白色的镀层(我猜测是镍或锡)。

经过一系列化学浴处理后的 Arduino Leonardo 电路板
此时,阻焊层和未镀铜的区域会被去除,剩下的只是原始的 FR-4 基板和镀铜部分。最终的处理步骤是产生明亮的铜表面。

已经蚀刻去除不需要的铜的电路板

具有亮丽光泽铜表面的 PCB 电路板。这张照片不是 Arduino 电路板,因为拍摄时这些电路板没有通过这台机器。
应用阻焊层和丝网印刷层
一旦铜表面被抛光,电路板就可以准备好涂覆阻焊层(一种类似清漆的保护层,能隔离下面的铜线路并防止焊料桥接)和丝网印刷层(用于标记组件、绘制标志等的油墨)。这些涂层的施加过程与线路图案的制作类似,都是使用光掩膜和显影/剥离机完成的。

已经涂覆了阻焊层和丝网印刷层的 Arduino 电路板
对于 Arduino 电路板来说,丝网印刷层实际上是第二层阻焊层。Arduino 团队为此采购了一种特定配方的干膜白色阻焊层,以创建一个清晰、美观的层次,解决了 Arduino 电路板上的复杂图案——尤其是背面意大利地图的图形。其他我见过的生产丝网印刷层的技术包括高分辨率喷墨打印,这种方法更适合快速生产的电路板制造商,当然,还有传统的刮刀和油漆丝网印刷工艺。
测试和完成电路板
经过所有化学处理后,电路板会通过热风焊接*整机涂上一层保护性的焊料。
在焊料镀层完成后,每块电路板都要经过 100% 测试。每条走线的连通性和电阻都会使用一对飞针进行测量。我看到的过程叫做 飞头测试(也叫 飞针测试),在这种测试设置中,几对带有针状探头的机械臂快速敲击测试电路板上两条走线之间的连通性。考虑到 Arduino Leonardo 上的所有走线,这需要大量的探测!幸运的是,机器人的机械臂动作迅速,每分钟可以测试数百个点。
注意
飞针测试的替代方法是双夹测试,其中一组 pogo 针被放入一个夹具中,可以通过一次机械操作测试整个电路板。然而,双夹夹具的组装和维护非常费力,并且每次更新描述 PCB 图像的 Gerber 文件时,都需要物理重新接线。所以在低产量情况下,飞针测试比双夹测试更具成本效益和灵活性。

一堆接*完成的 PCB 面板,准备进行最后一步,切割出单独的电路板
这个特定的工厂只负责制造面板;另一个工厂则负责元件的安装。在这种情况下,在面板送往下一个工厂之前,必须先切割出单独的 PCB,以便它们能够适配 表面贴装技术 (SMT) 机器进行元件放置。面板再次堆叠起来,并通过一台使用铣刀的机器批量处理,切割并释放电路板。之后,电路板就可以准备好运送到 SMT 工厂。

几块 Arduino 面板,堆叠起来等待切割

较小的 2×6 面板使得 SMT 处理更加高效。

大约 25,000 块裸 Arduino PCB 堆叠在一起,准备离开 PCB 工厂。从那里,它们被组装、运输并销售给全球的制造者!
我很高兴能顺便参观 Arduino PCB 工厂。我参观过几家 PCB 工厂,每家都有不同的特点和提高良率的独特技巧,也有一些设计师需要弥补的独特限制。看到那个小技巧——使用额外的一层焊料掩膜代替丝印来实现高的外观质量,实在很有意思。丝印的分辨率受限于丝网的网格,无法容纳更多的油漆,而焊料掩膜的限制则来自于光学质量和化学显影,提供了大约一个数量级的分辨率提升,最终带来了更高的视觉质量。通常情况下,丝印的较低质量是可以接受的,因为最终用户看不到电脑内部的电路板,但对于 Arduino 来说,最终产品 就是 电路板。
USB 闪存盘的诞生地
在参观 Arduino 工厂几个月后,我有幸在 2013 年 Linux 大会(LCA)上做主旨演讲。在我的演讲《肉体中的 Linux:嵌入 Linux 硬件的冒险》中,我讨论了 Linux 如何出现在我们每天看到的各种设备中。这个故事并不是关于 Linux 的,但它确实将我和 LCA 与一个工厂联系了起来。
我从 LCA 组织者那里收到的小纪念品之一是一个小 USB 闪存盘,上面印有 Linux 吉祥物 Tux 企鹅的图案。当我看到这个设备时,我觉得这真是个巧合——大约在会议前一周,我曾参观过一个制造与此完全相同的 USB 闪存盘的工厂。我看到了 USB 闪存盘板装配的整个过程,令人惊讶的是,这个过程比 Arduino 的制造过程要少得多的自动化。
USB 闪存盘的起始
USB 闪存盘的起始形态是裸闪存芯片。在安装到电路板之前,这些芯片会被筛选出内存容量和功能。

一个筛选闪存芯片的工作站。
左侧的金属矩形带有圆形切口的是探针卡。*
在这个工厂的一个工作站上,一堆堆裸闪存芯片等待着测试和分选,使用的是探针卡,探针卡上有非常精确定位的小针脚,用于接触硅片表面仅比人类头发宽一点的焊盘。(我喜欢这站的工人用橡皮筋把模拟电流计固定在探针卡上的方法。)

探针卡,*距离观察

在微探测站通过显微镜观察。注意到针头接触到闪存芯片表面边缘的方形焊盘。每个焊盘的边长大约为 100 微米——一个人类头发的直径约为 70 微米。
有趣的是,我看到的芯片根本没有在洁净室环境中进行测试。工人们用镊子和手动吸盘夹具操作芯片,并手动将探针卡安装到夹具中。
手工放置芯片到电路板上
一旦芯片经过功能筛选,它们就会被手工放置到 USB 闪存盘电路板上。这并不是一种不常见的做法;我访问过的每一家注重性价比的线键合工厂,都依赖于裸芯片的人工放置。

一个控制器集成电路(IC)被放置在 USB 闪存盘电路板的面板上。右侧是小巧的裸芯片,它们放置在华夫包里。

一个放大视图,展示了芯片放置工作站
我看到的那位将裸晶片放置到电路板上的女士,使用的是一种类似筷子的工具,它是由手工切割的竹子制成的。我至今还没有完全弄明白这个过程是如何运作的,但我最好的猜测是,竹子棒的表面能量正好适合粘附在硅晶片上,使得硅晶片能粘在竹棒的尖端。裸板上预先涂了一点胶水,当操作员将晶片放到胶水上时,胶水的表面张力会把晶片从竹棒上拉下来。
想到我的 USB 闪存棒内部的芯片是通过改造过的筷子来处理的,真是让人感到有些奇妙。
将芯片焊接到 PCB 上
一旦芯片被放置到 PCB 上,它们就会通过自动化的焊线机焊接到电路板上,焊线机使用计算机辅助的图像识别来寻找焊盘的位置(这也是为什么工厂能够通过人工放置晶圆而没有问题的部分原因)。焊线是将集成电路连接到其封装上的过程,自动化焊线机以极快的速度连接电路板上的芯片,不断旋转电路板。当我观看这个过程时,操作员必须手动将一个焊接错误的线头拆除并重新放入机器中。鉴于这些导线比头发丝还要细,而封装和集成电路上的焊接垫是微观尺寸的,这是一项相当高难度的手工技巧。
仔细观察 USB 闪存棒的电路板
就像 Arduino 工厂使用包含多个 Leonardo 开发板的面板一样,USB 闪存棒工厂使用的是每个面板包含八个 USB 闪存棒的面板。每个闪存棒面板中的每个闪存棒由一个闪存芯片和一个控制 IC 组成,这个控制 IC 负责 USB 和原始闪存之间的桥接,这是一个相当复杂的任务,涉及坏块映射、错误修正等多个方面。这个控制器可能是一个运行在几十 MHz 的 8051 类 CPU。

工厂老板送给我作为纪念品的部分焊接但已完全装载晶片的 PCB。一些焊线在运输过程中被压坏了。

有趣的是,整个 USB 闪存棒的组装在封装之前是灵活的。

来自闪存芯片的晶圆标记。显然,它是由英特尔制造的。

这是 USB 闪存棒内部控制芯片的晶圆照片
一旦面板完成焊接并测试合格,它们会被过模处理并涂上环氧树脂,然后切割成单个部分,准备出售。
但关于电子制造的内容就到此为止,接下来我想展示一种不同类型的工厂车间。
两条拉链的故事
我的朋友 Chris “Akiba” Wang 与我有类似的背景,只不过他年轻时要酷得多:90 年代,他是 LL Cool J 和 Run DMC 等团体的舞者。在经历了一段为大半导体公司工作的时光后,他最终辞职,追随自己的热情,设计并制造自己的硬件项目。作为短程低功耗无线网络的专家(他合著了一本关于蓝牙低功耗的书,并销售一种名为“Freakduino”的 Arduino + 802.15.4 变种),他现在为联合国和庆应大学等机构提供咨询,经营 FreakLabs,并与各种舞蹈团体合作,如 Wrecking Crew,为舞台表演提供独特且引人注目的灯光解决方案。
我很幸运地在 2013 年与 MIT 媒体实验室的学生一起旅行时,向 Akiba 介绍了大深圳地区——就是那次我们参观 USB 闪存驱动器工厂的旅行。从那时起,他便深入探索该地区。由于他的工作涵盖了表演艺术、可穿戴设备和电子技术等多个领域,他的工厂网络与我的大不相同,因此我总是珍惜有机会了解他世界的机会。
2015 年 1 月,Akiba 带我参观了他朋友的拉链工厂。我对这次参观感到非常兴奋:无论产品多么简陋,我总能通过参观工厂学到新东西。这家工厂与 Arduino 和 USB 闪存驱动器的设施完全不同。员工非常少,而且是一家高度自动化、垂直整合的制造商。为了让你了解这意味着什么,这家工厂将金属铸锭、锯末和大米转化为拉链零件。

大约 1 吨铸锭,由 93%的锌和 7%的铝合金组成

用于为铸锭冶炼炉提供燃料的压缩锯末颗粒

用于喂养工人的大米

成品拉链拉头和滑块组件
让我们看看这个过程的一方面是如何实际运作的。
一个完全自动化的过程
在这三种输入材料和输出产品之间,是一条完全自动化的压铸线,用于制造拉链拉头和滑块,还有一套滚筒和振动罐(或者,我喜欢称之为“vibrapots”)用来释放和抛光拉链,还有一套机器用来去毛刺并将每个拉头与其滑块连接。我记得我在工厂里看到的员工不到十个,我猜他们的产能超过了每月百万条拉链。
我被那些将拉链拉头组装在一起的振动锅*迷住了。这里有两个振动锅:一个装着拉头,另一个装着滑块。滑块和拉头都被放置到一个移动的轨道上,我看着这些奇迹般的过程,仿佛滑块和拉头在神奇地自动排成了正确的方向。每个都掉进了自己的轨道,在线的尽头,它们被压在一起,形成了一个熟悉的拉链形状,整个过程完全自动化。
当我把手放进锅里时,我发现没有搅拌器来引发运动;我只感觉到一阵强烈的振动。我放松了手,发现它开始与锅里其他物品一起移动。整个锅呈现出一种偏向性的振动,使得锅里的物品趋向于以圆形轨迹运动。这推动了拉头和滑块进入一组轨道,这些轨道的形状利用了物品的不对称性,仅允许在正确方向上跳上轨道的部件继续进入下一个阶段。
半自动化过程
尽管这家工厂的自动化程度很高,但我看到的许多工人仍然在执行某一操作。他们将另一种拉链的拉头送入与另一个包含滑块的振动锅连接的设备中,而设备则将滑块和拉头组合在一起。
当然,我问了,“为什么有些拉链的组装过程是全自动化的,而有些则是半自动的?”
事实证明,答案非常微妙,它归结为形状问题。

注意这两个拉头的差异,箭头所指示的位置。
一个几乎看不见的小标签,成了全自动化和需要人工将成千上万的滑块和拉头组装在一起之间的区别。为了理解为什么,先让我们回顾一下振动锅操作中的一个关键步骤。一位工人善意地暂停了负责将拉头排序到正确方向的振动锅,以便我可以拍摄这个关键步骤的照片。

拉头通过振动锅
当拉头绕过轨道时,它们的方向是随机的:有的面朝右,有的面朝左。但连接操作必须只将滑块插入两个孔中较小的一个。那个微小的标签让重力使所有拉头以相同的方向挂起,并沿着轨道向左滑落。
半自动化的拉链设计没有这个标签;因此,这种设计对振动锅来说过于对称,无法将拉头对齐。我问工厂老板,是否添加这个微小的标签可以节省人工,他回答说绝对可以。
到这个时候,我恍若顿悟,所有的拉链应该都有这个小标签,但拉链的设计师坚持不这么做。尽管这种标签非常小,消费者却能感受到微妙的凸起,有些人甚至认为这是设计缺陷。因此,设计师坚持要拉链*滑无凸起,结果没有任何特征能够轻松且可靠地让拉链自动对准。
稀缺与需求的讽刺
我想象,大多数人在看到一个人花几分钟将拉链拉头与拉链滑块连接在一起后,应该会很乐意忍受拉链尖端的小小凸起,以节省另一位工人每天下八小时手动将拉头对准滑块的命运。或者,我想工程师可能会花费无数小时,试图设计一种更复杂的方法来对准拉头和滑块,但这有两个问题:
• 拉链的客户可能不会为这种努力买单。
• 可能支付无技能劳动力进行手动排序的成本更低。
这家拉链工厂的老板已经将工厂的其他部分都实现了自动化,所以我猜他们也考虑了这个问题。我猜测机器人建造和维护的成本非常高,而人类是自我复制和大部分自我维持的。还记得工厂的第三个输入——大米吗?任何机器人的备件必须比大米便宜,才能使机器人在这个工厂中占有一席之地。
然而,实际上,将这个概念解释给最终客户听是非常费力的;事实上,市场上正好相反。将光滑拉链装配在一起需要额外的人工,因此拉链的成本更高;因此,它们往往出现在高端产品中。这进一步强化了这样一种观念:没有小标签的非常光滑的拉链一定是质量控制和注重细节的结果。
我的世界充满了这样的微小挫败感。例如,大多数顾客认为镜面处理的塑料比缎面处理的塑料质量更高。其实这两种塑料的结构性能没有功能性的区别,但制作镜面效果的过程要费很多功夫。注塑工具必须仔细地打磨抛光,在工厂的每一步,工人们都必须戴上白手套。为了一丝不苟的质量,很多塑料都被浪费掉,且在运输过程中,为了保护镜面,额外的塑料膜会覆盖在镜面表面上。
为了所有这些努力,为了所有这些浪费,用户做的第一件事是什么?他们把脏手指印弄到镜面处理的表面上。产品从包装盒出来一分钟内,所有的努力都被摧毁了。或者更糟糕的是,用户把保护膜留在了上面,结果反而产生了比缎面效果更糟的外观效果。
将其与缎面处理的塑料进行对比。缎面处理不需要保护膜,更容易让工人和用户操作,使用寿命更长,而且产量更高。在用户手中,它能遮掩小划痕、指纹和灰尘。可以说,缎面效果在长远的客户体验上,比镜面效果更好。
但是那种镜面效果在照片和展厅展示中确实看起来很漂亮!
第三章:3. 工厂车间
前两章充满了我在深圳大湾区制造生态系统中学习、犯错和成长的个人经历故事。2013 年 1 月,当我掌握了基本技能后,麻省理工学院媒体实验室邀请我开始指导研究生们关于供应链和制造方面的内容,我带领他们参观了深圳(就是在这个行程中,我遇到了 Akiba,并参观了 USB 闪存驱动器工厂)。本章试图将我在几周内讲授的所有内容浓缩成几十页。
小批量生产中的挑战和权衡与资金雄厚的企业大规模原型生产有所不同。我是随着时间的推移才学到这一点的,但并非每个人都有六年时间去摸索所有新手错误。如果你已经在一家快速发展的科技创业公司工作,你可能根本没有时间进行任何探索。本章的教训适用于任何希望从初步原型到中等批量(可能是几十万台)打造硬件产品的人。把这份总结当作一个一般性指南,而不是详细的路线图。关键总是在细节中,制作新型创新硬件产品的有趣之处就在于,总是有无尽的新挑战等待解决。
如何制作物料清单
大多数想要快速扩大产量的制造者都意识到,唯一可行的前进道路是外包生产。如果外包生产能像电路图 + 现金 = 产品一样简单就好了!
无论你是和街角的组装工厂合作,还是将工作交给中国的厂商,清晰完整的物料清单(BOM)是外包生产的第一步。你对电路板的每个假设,甚至是焊盘掩膜的颜色,都必须明确无误地列出,才能让第三方准确地复现你的设计。缺少或不完整的文档是生产延误、缺陷和超预算的主要原因。
一份简单的自行车安全灯物料清单
假设你成功发起了一个针对自行车安全灯的 Kickstarter 众筹活动。它包含了一个电路,使用 555 定时器来闪烁一小组 LED 灯。经过一次成功的市场营销活动后,你需要在几个月内完成几百个订单。
最开始,一份由设计工具(如 Altium)自动生成的自行车灯物料清单可能会是这样的:
| 数量 | 备注 | 标识符 |
|---|---|---|
| 1 | 0.1μF | C1 |
| 1 | 10μF | C2 |
| 3 | 白色 LED | D1, D2, D3 |
| 1 | 2N3904 | Q1 |
| 1 | 100 | R1 |
| 2 | 20k | R2, R4 |
| 1 | 1k | R3 |
| 1 | 555 定时器 | U1 |
一个非常基础的自行车安全灯物料清单
这个 BOM 和一个原理图可能足够让任何一位美国电气工程专业的毕业生复现原型,但对于制造成本报价来说,远远不够。这个版本的 BOM 仅仅涉及电子元件。一个完整的 LED 闪烁器的 BOM 还需要包括 PCB、电池、塑料外壳部件、透镜、螺丝、任何标签(如序列号)、手册和包装(例如塑料袋加纸箱)。它可能还需要一个主箱,用于一起运输多个 LED 闪烁器,因为单个纸盒的 LED 闪烁器太小,无法单独运输。尽管纸箱便宜,但并不是免费的,如果没有按时订购,库存将会堆放在码头,直到主箱送到并最终包装后才能发货。
以下关键信息也缺失:
• 每个部件的批准制造商
• 被动元件的容差、材料组成和电压规格
• 所有部件的封装类型信息
• 特定于每个制造商的扩展部件号
让我们更详细地看一下每个缺失的项。
批准的制造商
一个合格的工厂会要求你提供一个批准的供应商列表(AVL),指定每个 PCB 部件的允许制造商。制造商不是分销商,而是实际生产该部件的公司。例如,电容器可能由 TDK、村田、太阳诱电、AVX、松下、三星等公司生产。我仍然对我审查过的许多 BOM 感到惊讶,这些 BOM 将 DigiKey、Mouser、Avnet 或其他分销商列为部件的制造商。
看似有些愚蠢,可能会觉得在电容器的制造商上斤斤计较,但实际上在某些情况下,部件的制造商确实很重要——即使是对于普通的电容器也是如此。例如,盲目替换开关调节器上的滤波电容器,即使替代品具有相同的额定电容和电压,也可能导致不稳定的操作,甚至可能导致电路板着火。
当然,设计中的某些部分可能对制造商完全不敏感,在这种情况下,我会在 BOM 中的 AVL 标记为“任何/开放”。(对于像拉高电阻这样的部件尤为如此。)这可以邀请工厂代表你建议他们偏好的供应商。
容差、组成和电压规格
对于标记为“任何/开放”的被动元件,你应该始终指定以下关键参数,以确保购买到正确的部件:
• 对于电阻器,至少需要指定容差和功率。一个 1 kΩ,1%的容差,1/4 W 的碳电阻器和一个 1 kΩ,5%的容差,1 W 的绕线电阻器是完全不同的部件!
• 对于电容器,至少指定公差、电压额定值和介质类型。对于特殊应用,还应指定一些参数,如 ESR 或纹波电流容忍度。一个 10μF 的电解电容器,公差为 10%,额定电压为 50V,在高频下的表现与一个 10μF 的陶瓷电容器(公差为 20%,额定电压为 16V)相比有很大不同。
电感器足够专业化,我不建议在 BOM 中将其标记为“任何/开放”。对于功率电感器,需要指定的基本参数有核心材料、直流电阻、饱和度、温升和电流,但与电阻器和电容器不同,电感器没有标准的外壳。此外,像屏蔽和灌封这样的关键参数,可能会对电路性能产生材料上的影响,通常隐含在部件编号中;因此,最好完全指定电感器。射频电感器同样如此。
电子元件外形尺寸
始终完全指定外形尺寸或封装类型。规格不清或规格不足的封装参数可能导致组装错误。除了像电子工业联盟(EIA)或 JEDEC 固态技术协会封装代码(如 0402、0805、TSSOP 等)这样的基本参数外,在创建 BOM 时,还应考虑以下封装信息:
表面贴装封装 组件的高度可能有所不同,特别是对于大于 1206 的封装或电感器。要注意电路板是否插入了紧凑的外壳中。
通孔封装 始终指定引脚间距和组件高度。
对于集成电路(IC)来说,尽量指定与封装对应的常见名称,而不仅仅是制造商的内部代码。例如,德州仪器的“DW”类型封装代码对应于 SOIC 封装。这种一致性检查有助于防止错误。
扩展部件编号
设计人员通常会用简化的部件编号来思考组件。例如,7404 就是一个典型的例子。久负盛名的 7404 是一个六反相器,已经服役数十年。由于它的普及,7404可以作为设计工程师中反相器的通用术语。
然而,在进入生产时,必须指定如封装类型、制造商和逻辑系列等信息。某个特定六反相器的完整部件编号可能是74VHCT04AMTC,这表示由 Fairchild Semiconductor 生产,来自 VHCT 系列,采用 TSSOP 封装,且以管装形式运输。这些额外的字符非常重要,因为小的变化可能会引起大问题,例如报价和订购错误封装的设备,最终导致无法使用的零件卷轴或微妙的可靠性问题。
例如,在我设计的一个机器人控制器(代号为Kovan)中,由于错误地将VHC替换为VHCT逻辑系列中的某个组件,导致了一个问题。使用 VHC 零件将反相器的输入阈值从 TTL 改为了兼容 CMOS 逻辑,因此有些单元对输入信号的响应不对称。幸运的是,在生产开始之前,我发现了这个问题。所有其他单元都使用了正确的零件,我避免了大量的潜在返工——或者更糟糕的,是客户的退货。幸运的是,这个错误的唯一成本是重新加工我在生产前验证的一些原型。
这是另一个例子,说明零件编号中缺少几个字符可能会导致数千美元的损失。LM3670 开关稳压器的完全指定零件编号可能是 LM3670MFX-3.3/NOPB。如果省略了/NOPB,该零件编号仍然有效并可以订购——但该版本使用的是含铅焊料。这对于出口到需要符合 RoHS(即无铅等要求)的地区(如欧盟)来说可能是灾难性的。
零件编号中的X是另一个更微妙的问题。带有X的零件编号按 3,000 个一卷,而没有X的零件编号则按 1,000 个一卷。虽然许多工厂会质疑省略/NOPB,因为它们通常在购买零件时会组装 RoHS 文档,但它们很少会将卷轴数量作为问题提出。
但是,你应该关注卷轴数量。如果你计划只生产 1,000 个产品,在零件编号中包含X意味着你将多出 2,000 个 LM3670。而且,是的,你得为这些多余的部件埋单,因为你的 BOM 已经指定了该零件编号。订购多余部件有许多合理的原因,因此工厂通常不会质疑这种决定。
另一方面,按 1,000 个单位一批订购的零件单价比按 3,000 个单位一批订购的零件要贵一些。所以,如果随着数量增加而省略X,你最后将支付比必要的更多的零件费用。不管怎样,工厂会严格按照你指定的 BOM 报价,如果你的数量规格不正确,可能会错失节省成本的机会——或者更糟的是,亏损。
底线是?每一个数字和字符都至关重要,忽视细节可能会带来实际的经济损失!
自行车安全灯 BOM 重新审视
考虑到这四个要点,想一想一个合适、完全指定的自行车安全灯 BOM 可能会是什么样子。

改进后的自行车安全灯 BOM
任何工程师都可以用来生产原型的 BOM,比如我之前展示的自行车安全灯 BOM,和像这样的 BOM 之间存在很大差异,后者是任何工厂都可以用来大规模生产产品的 BOM。特别注意 MOQ(最小订购量)和交货时间这两列。对于低量原型的制造来说,这些列是无关紧要的,因为你通常会从分销商那里购买零件,这些分销商的 MOQ 限制少,且能提供次日交货。然而,在扩大生产规模时,通过批发渠道采购可以节省很多成本,从而削减分销商的附加费用。在批发渠道中,MOQ 和交货时间非常重要。
好消息是,工厂会在报价过程中填写 MOQ 和交货时间。但你会发现从一开始就跟踪这些参数非常有帮助。如果某个部件的 MOQ 非常高,工厂可能需要购买大量的多余部件,这会增加项目的实际成本。如果某个部件的交货时间非常长,你可能需要考虑重新设计,以使用交货时间更短的部件。使用交货时间较短的部件不仅能节省时间,还能改善现金流:没有人愿意在销售收入还没到手的四个月前,就把现金压在长交期的部件上。
这个 BOM 还包括一些非电子物品——例如箱子、条形码标签等——这些物品不会出现在工程原型的 BOM 中。这些杂项容易被忽视,但如果初始 BOM 中缺少用户手册,通常要等到最终样品打开进行审批时才会发现,这会导致最后一刻匆忙把手册加入最终产品。许多产品的延迟,仅仅是因为用户手册或盒子艺术未能及时完成并批准,而导致价值十万美金的库存在仓库中闲置,只因缺少一张纸。
除了合适的 BOM 外,向工厂提供产品的黄金样品以及 CAD 文件是另一个最佳做法。这些工作原型使工厂能够更明智地决策,处理你提交的 BOM 中的任何模糊之处。仅仅为工厂再焊接一个单元,可能看起来有些麻烦,但在我看来,几个小时的焊接时间比与工厂交换一周的邮件要好得多。
注意
当你建立商业模型时,部件和包装仍然不是唯一需要考虑的成本。即使是这个详细的 BOM,也没有列出工厂利润、组装劳动力、包装、运输、关税等。我在《选择(并维护)合作伙伴》中讨论了这些“软成本”,详见第 107 页。
规划与应对变化
当然,即使你的设计完美无缺,BOM 也理想无误,如果供应商停止生产(EOL)你选定的零件,你的设计仍然可能需要更改。坦白说,你的设计假设也总有可能在与真实消费者接触后遭遇失败。
在进入生产前,要与工厂正式化设计更改的流程。最佳做法是使用书面、正式的工程更改订单(ECO),在初步报价之后通知工厂任何更改。至少,ECO 模板应该包括以下内容:
• 每个更改零件的详细信息,以及简要说明为什么需要进行更改
• 一个唯一的修订号,便于将来引用该更改
• 一种记录工厂收到 ECO 文件的方法
对 ECO 要细致,而不是依赖随意的邮件,否则你工厂的采购人员可能会采购错误的零件。更糟糕的是,工厂可能会安装错误的零件,导致你的产品批次全部需要废弃或返工。即使在与工厂工程师排查问题后,我仍然会写出正式的 ECO 并提交给生产人员,以正式化发现的问题。我和其他工程师一样讨厌文书工作,但在生产中,一点小错误可能会导致数万美元的损失,而这一点让我在 ECO 文档上保持严谨。
下一页是我发布的一个实际 ECO,最终为我节省了时间和金钱。
请注意这个 ECO 的日期:2014 年 2 月 27 日。这个 ECO 是在中国农历新年前发布的,那时工厂将放假几周。假期过后,工厂内部的非熟练工人流动性很大,因此很容易出现工单丢失或被遗忘的情况。担心 ECO 会被遗漏,我在工厂恢复生产后与管理人员咨询,确保 ECO 没有被遗忘。他们向我保证已经应用了该 ECO,但我还是有些模糊的不安,于是我要求提供电路板的照片以确认。果然,第一批生产批次中缺少了我 ECO 中的更改。
多亏了详细的 ECO,工厂很快承认了自己的错误,修复了整个生产批次,并支付了返工费用。但如果我仅仅通过一封快速的邮件发送更改订单,没有具体提到批次或工单,可能会有足够的模糊性让工厂避免支付返工费用。工厂本可以辩称它认为我意图将更改应用于未来的生产批次,或者它也可以简单地否认收到确认的订单,因为邮件是一种相对随意的沟通方式。无论如何,几分钟的文档工作为我节省了数天的谈判时间和几百美元的返工费用。

实际用于生产中的 ECO 示例。多亏了正式的文档流程,与这个 ECO 相关的生产混乱最终得以解决,对我有利。
过程优化:面向制造的设计
在设计最终产品并组装 BOM 时,考虑良品率(即从制造过程中获得的合格单元数量)也非常重要。对于许多工程师来说,良品率是一个无聊的话题,但对于企业家而言,成败部分取决于是否能实现合理的良品率。幸运的是,通过在设计时考虑这一点,你可以帮助提高良品率。
为什么选择 DFM?
与软件不同,每个物理商品的副本都有轻微的缺陷。有时这些缺陷会相互抵消;有时它们会积累并降低性能。随着生产量的增加,产品的一部分始终会变得不可销售。在一个稳健的设计中,失败的比例可能非常小,以至于功能测试可以简化,从而进一步降低成本。相比之下,对组件公差敏感的设计需要进行广泛的测试,并且会遭遇严重的良率损失。返工缺陷单元会增加额外的人工和零部件费用,最终侵蚀利润。
因此,在从工程台到大规模生产的过程中,重新设计以提高对正常制造公差的适应性是一个重大挑战。这个过程被称为面向制造的设计(DFM)。

左侧,在没有进行 DFM 之前,几乎一半的单元不符合接受标准,因此会失败。右侧,在进行 DFM 之后,接受标准保持不变,但*均性能得到了提升,导致大多数单元通过测试。
为了理解 DFM 的重要性,考虑这些图表。每个图表都描绘了一个钟形曲线,它表示某个特定参数的假定统计分布。x 轴表示感兴趣的参数,y 轴表示达到该参数的生产物品数量。例如,在描述成千上万个 LED 的亮度的图表中,x 轴表示亮度,y 轴表示达到某一亮度的 LED 数量。钟形曲线相对于通过/失败标准的位置决定了净生产良率。
在右侧的曲线中,大多数 LED 亮度足够,且大部分生产库存可以发货。在左侧的曲线中,可能只有 40%的 LED 通过测试。考虑到大多数硬件公司大约有 30%到 50%的毛利率,废弃 40%的材料意味着业务的终结。在这种情况下,唯一可行的选择就是花费时间和精力重新加工 LED 直到其通过,或者降低性能要求。产品的质量可能无法达到预期,但至少业务能够继续运营。
需要考虑的公差
DFM 的目标是确保你的产品始终通过验收,不会面临降低利润、降低质量标准或关停业务的令人不快的选择。但是,在应用 DFM 时,有一些组件方面需要考虑。
电子公差
被动元件的公差是设计中最显而易见的公差。如果一个电阻的实际值可能在标称值的±5%之间变化,确保电路的其他部分能够应对这种极限情况。
主动元件的规格参数——如双极型晶体管的电流增益(hFE)、场效应晶体管(FET)的阈值电压(V[t])以及 LED 的正向偏置电压(V[f])——也可能有很大差异。始终阅读数据手册,并留意那些最小值和最大值之间差距较大的参数,这种差异通常称为最小最大范围。例如,Fairchild 的 2N3904 的 hFE 的最小最大范围是 40 到 300,而 Kingbright 的超亮 LED 的 V[f]范围在 2V 到 2.5V 之间。
除了名义工作电压外,组件的最大电压额定值对于电容器和输入网络尤为重要。我通常会使用额定电压是名义电压两倍的电容器;例如,在可能的情况下,我会为 5V 电源轨使用 10V 电容器,为 3.3V 电源轨使用 6.3V 电容器。要理解为什么这样做,请考虑陶瓷电容器的介质,它们的电容会随着电压的增加而减少。在靠*陶瓷电容器最大电压的设计中,该组件的工作电容将处于其公差范围的负端。此外,输入网络(电路中用户可以插入设备的任何部分)容易受到严苛的静电放电和其他瞬态损伤,因此在此处选择电容器时,特别需要注意其额定值,以确保实现所需的可靠性。
最后,在确定了将使用的组件之后,设计 PCB 时要特别注意走线宽度和层叠结构的变化。这些因素会影响需要匹配阻抗或处理大电流的系统。
机械公差
然而,电子元件的公差并不是唯一需要担心的,机械公差同样重要。无论是 PCB 板还是外壳,都不可能完全达到精确的尺寸,因此设计外壳时要留有一些余地。如果外壳设计对 PCB 尺寸的公差为零,工厂在生产时往往会强行将 PCB 安装进外壳中,当 PCB 稍微大一些或外壳稍微小一些时,这会导致电路或外壳的非故意机械损坏。
别忘了外观瑕疵!任何制造的产品都可能有小的瑕疵,比如塑料中困住的灰尘、小刮痕、凹陷和磨损。事先与工厂商定这些缺陷的接受标准非常重要。例如,你可能会告诉工厂,一个产品可以被认为是“合格的”,前提是它没有超过两个直径大于 0.2mm 的点状瑕疵,没有超过 0.3mm 长的刮痕,等等。大多数工厂会有一套标准化系统来描述和执行这些标准。如果你提前讨论好这些参数,工厂就可以根据这些标准调整生产工艺,避免出现这些缺陷,而不是采取更昂贵的方案——制造额外的单位并丢弃那些不符合标准的。
当然,避免缺陷并不是免费的。为了降低产品成本,可以避免使用高光泽表面,而考虑使用哑光或有纹理的表面,这些表面天然可以隐藏瑕疵。
遵循 DFM 有助于你的利润
要在现实场景中想象 DFM,可以回到 “如何制作物料清单” 中的自行车安全闪光灯案例研究,见第 74 页。假设原型设计要求并联三颗 LED,每颗 LED 有一个电阻来设置电流。LED 在给定亮度下的正向偏置电压,或V[f],在不同的设备之间可能会有大约 20%的变化;在这个案例中,这个变化范围是从 2.0V 到 2.5V。
使用电阻限制 LED 电流的设计,被称为电阻性电流限制,会放大这种变化。这是因为高效电路会将大部分电压降落在电流限制电阻上,使得设置电流的参数(电阻上的电压降)对 V[f]的变化更为敏感。由于 LED 的亮度与电压并非成比例关系,而是与流过它的电流成正比,因此使用电阻性电流限制来设置 LED 亮度可能会导致 LED 亮度出现令人不悦的不一致性。

比较高 V[f]和低 V[f]极限
在这个例子中,LED V[f]的 20%的变化(从 2.0V 到 2.5V,按照 LED 制造商的规格)会导致在固定 3.3V 电源下,电流设置电阻上的电压变化达到 40%。这将导致流过 LED 的电流变化 40%。由于亮度与电流直接成正比,这种变化会表现为单个 LED 之间高达 40%的亮度差异。这样的设计大多数情况下能正常工作;只有当一个高 V[f]的单元与一个低 V[f]的单元并排观察时,问题才会变得显著。

使用电阻为单个 LED 设置电流可能会导致亮度的剧烈变化。
在开发阶段,实验室台面上准备的一个或两个单位可能看起来很完美,但在生产过程中,可能有相当一部分单位存在严重的亮度不均问题,导致不得不将其退货。由于大多数大型硬件公司只能依靠精益利润生存,因此即便是损失 10%的不合格品,也会造成严重后果。
一个临时解决方案是重新加工失败的单位。工厂可以在 LED 阵列中识别出过暗或过亮的 LED,并将其替换为与其他 LED 更匹配的组件。但这种返工会推高成本,并在制造程序的最后阶段带来意想不到且不愉快的账单。天真的设计师可能倾向于将质量问题归咎于工厂,并争论应该由谁承担费用,但更好的做法是通过对每个设计进行 DFM 检查,并通过小批量试生产来对良品率进行验证,从而主动避免这些问题。
良品率损失的成本量化了为补偿正常组件变异性而需要投入的额外电路费用。例如,一个单价为 10 美元的销售成本(COGS)的产品,如果生产出 80%的合格单位,则每个可销售单位的有效成本为 12.50 美元,计算公式如下:
有效成本 = COGS × 总生产单位数 / 合格单位数
将 COGS 增加 2.50 美元以将良品率提高到 100%可以实现盈亏*衡。但是使用相同的公式,花费 1 美元额外的 COGS 来将良品率提高到 99%实际上会使底线提高 1.38 美元。

通过应用 DFM 创建的电路,用于为三颗 LED 设置电流
以自行车安全灯为例,这 1 美元可以用于购买像 SP6699EK-L/TR 这样的电流反馈升压调节器 IC,使得 LED 可以串联排列而不是并联。与使用单独的电阻器相比,设计会更为复杂且成本更高,但它可以确保每颗 LED 都通过固定电流反馈回路在串联电路中流过一致且相同的电流,从而几乎消除亮度的变化。虽然升压调节器的成本远高于花费在三颗限流 LED 上的一分钱,但生产良品率的提高完全弥补了额外组件的成本。实际上,这种方法是要求 LED 亮度均匀的应用的标准做法,比如 LCD 面板的背光。典型的手机背光使用大约十几个 LED,但得益于像这样的电路,尽管各个 LED 之间的 V[f]差异很大,你从未见过明显的明暗斑块。
产品背后的产品
除了处理公差问题外,另一个常被忽视的设计责任是测试程序。工厂只能检测它被指示去寻找的问题。因此,产品的每个特性都必须经过测试,无论它多么微不足道。例如,在 chumby 设备上,所有用户可见的特性都有明确的工厂测试,包括 LCD 屏幕、触摸屏、音频、麦克风、所有扩展端口(USB、音频)、电池、按钮、旋钮等等。我确保了即使是最简单的按钮也经过测试。虽然跳过测试这些简单组件很有诱惑力,但我保证,任何未经过测试的东西都会导致退货。
我喜欢称工厂测试器为“你产品背后的产品。”因为在某些情况下,工厂测试器比你要销售的产品更复杂、更难以设计。尤其对于简单的产品而言,这种情况尤为明显。
一个真实世界的测试程序
作为案例研究,考虑一下来自 Chibitronics 的这个微控制器贴纸,这是我在第八章中详细讨论的一个项目。

一个微控制器电路——在一个贴纸上
该电路非常简单:它仅由一个 8 位 AVR 微控制器和少量电阻与电容组成。(它也是第 84 页中 ECO 示例中提到的同一产品。)我和我的合作伙伴在 Adobe Illustrator 中草绘了大约两天,才得出该产品的最终形状。接着我们花了一天时间在 Altium 中设计电路,并用 Arduino IDE 编写了大约一周的固件代码。总体而言,开发过程大约花了两周时间。在生产中,微控制器与一组传感器配合使用,这些传感器可以处理声音、光线和触摸,因此测试程序同时在所有四个方面运行。

Chibitronics 微控制器贴纸的测试机
如图所示的测试设备由一台运行 Linux 的 32 位 ARM 计算机组成,图形界面显示在 HDMI 显示器上。其背后是一个 FPGA,一些适配器电子元件用于生成模拟波形进行测试,以及一个机械的探针引脚组件用于接触贴纸。将该测试设备的设计过程分解为各个部分,我们花费了:
• 几天时间在 Altium 中进行设计
• 一周时间在 Xilinx ISE 中进行 FPGA 编程
• 几周时间在 Linux 驱动程序上进行黑客攻击
• 几个月的时间在 C++ 中进行黑客攻击,以创建 Qt 集成框架
• 几天时间在 SolidWorks 中,创建机械装置将整个系统固定在一起
总的来说,制作微控制器贴纸的测试器花费了超过两个月的时间,而制作产品本身只用了两周时间。
为什么要付出这么多努力?因为时间就是金钱,而缺陷和退货处理成本昂贵。测试员可以在不到 30 秒的时间内处理一块板;在这 30 秒里,测试员需要编程两个微控制器;测试传感器的光、声音和触摸;并确认在 5V 和 3V 下的操作。所有这些操作的手动测试可能需要几分钟的熟练劳动,而且不如自动化测试可靠。多亏了这个测试仪,我们没有因为材料缺陷而退货。此外,测试仪上的图形化 UI 使得工厂能够非常容易地确定电路中哪个点出现故障,从而加快了任何不合格材料的返工速度。
创建测试程序的指南
一般来说,对于你制造的每个产品,你实际上是在制造两个相关的产品:一个是面向终端用户的,另一个是面向工厂的测试程序。在很多方面,工厂的测试程序必须像产品本身一样易于使用和防错;毕竟,测试并不是由电气工程师来执行的。但是,如果在消费品中设计了足够的测试功能,那么相关的测试产品将会更快速、更高效地构建。
不,别把测试程序外包给工厂,即使工厂提供这样的服务。工厂通常不了解你的设计意图,因此他们的测试程序往往低效或者测试了错误的行为。工厂也有尽可能快速通过尽可能多的材料的动机,所以他们的测试程序通常是原始的且不充分的。
设计你自己的程序时,以下是一些指南:
努力实现 100%的功能覆盖。
不要忽视一些简单的或次要的功能,比如状态 LED 或内部电压传感器。在创建测试清单时,我采取“外部/内部”方法。首先,从外部看产品:列出消费者可以与之交互的所有方式。你的测试程序是否涵盖了每一种交互方式,即使只是表面上?每个 LED 是否都亮起,每个按钮是否都按下,每个传感器是否都激活,每个存储设备是否都被触及?你的营销材料中的每一个要点都得到了验证吗?承诺“世界级”的射频灵敏度与仅仅宣传有无线电功能是不同的。然后,思考内部:从原理图中,查看每个端口并考虑需要监控的关键内部节点。如果产品有微控制器,检查加载了哪些驱动程序,交叉检查测试清单,确保没有遗忘任何组件。
尽量减少增量设置工作。
优化每个单元设置测试所需的时间。这通常通过使用带有 pogo 引脚或预对准连接器阵列的夹具来完成。需要操作员手动用万用表探测十几个测试点或插入十几个连接器的测试,既耗时又容易出错。中国的大多数工厂可以帮助设计夹具,费用不高,但如果设计本身已经包括足够的测试点,夹具设计会更容易且更有效。
将测试程序自动化为线性流程。
理想的测试只需按下一个按钮,就能得出通过或失败的结果。实际上,总是会有需要操作员干预的停顿点,但尽量减少这些干预。例如,不要要求操作员在每次 Wi-Fi 连接测试时输入或从列表中选择 SSID。相反,将测试目标的 SSID 固定,并将该值硬编码到测试脚本中,使得连接过程自动进行。
使用图标和颜色,而不是文本,与操作员进行沟通。
并非每个操作员都能保证能读懂某种语言。
使用审计日志。
通过将条形码扫描仪集成到测试夹具中,记录与设备序列号相关的测试结果。或者,让设备打印带有唯一时间戳代码的凭证或本地存储的审计日志,以证明哪些单元通过了测试。日志有助于你找出当消费者退回故障产品时出现的问题,并能让你快速检查所有产品是否都经过了测试。经过八小时的测试班次后,操作员可能会犯错,比如不小心将有缺陷的单元放入“良品”箱。能够检查每个出货的产品是否经过并通过了完整的测试,可以帮助你识别和隔离此类问题。
提供简便的更新机制。
像任何程序一样,测试程序也会有 bugs。随着产品的修补和升级,测试也需要演变。要有一种机制,可以在不亲自访问工厂的情况下更新和修复测试程序。我的许多测试夹具可以通过 VPN “拨打回家”,我可以通过 SSH 进入夹具本身修复 bug。即使是我最简单的夹具,其核心也使用 Linux 笔记本电脑(或类似设备)。部分原因是 Linux 比定制的微控制器更容易更新和维护,因为后者需要特殊适配器来进行固件更新。
如果你的产品在设计时就考虑了可测试性,这些指南很容易实施。我设计的大多数产品运行 Linux,我利用产品内部的处理器来运行大部分测试并帮助管理测试用户界面。对于缺乏用户交互界面的产品,可以使用通过 Wi-Fi 或串行连接的 Android 手机或笔记本电脑来呈现测试用户界面。
测试与验证
生产测试旨在检查组装错误,而不是参数变化或设计问题。如果测试因正常的参数组件变化而筛选掉设备,要么购买更好的组件,要么重新设计。
对于消费级产品,你不需要对每个单元进行五分钟的综合 RAM 测试。理论上,你的产品应该设计得足够好,只要所有组件焊接正确,RAM 就能正常工作。通常,一个简单的测试来检查没有卡住或断开的地址引脚就足够了。大品牌芯片供应商的缺陷率通常很低,因此你并不是在验证硅芯片本身;相反,你是在验证焊接接头和连接器,并检查是否有缺失或交换的组件。(但如果你购买了克隆芯片或低品牌、重标或部分测试过的设备以节省成本,我建议为这些组件做一个小型验证程序。)
验证开关
为了说明生产测试和验证之间的区别,让我们看看这两者在开关测试中的应用。
开关的生产测试可能只是要求操作员按几次开关,验证开关的手感是否正确,并通过简单的数字指示器检查是否有电气接触。相对而言,验证测试可能涉及随机选择几个设备,使用精确到五位有效数字的万用表测量开关的接触电阻(也叫做五位数万用表),将设备暴露在较高的湿度和温度下进行几天,然后将设备放入一个自动化夹具中,循环测试开关 10,000 次。最后,可能会使用五位数万用表重新测量开关的接触电阻,并记录闭合状态接触电阻的任何降级。
显然,这种级别的验证不能在每个制造的设备上执行。相反,验证程序评估的是开关在预期使用寿命期间的性能。生产测试则只确保开关的组装没有问题。
注意
在每几千个生产出来的单元中,重新运行验证测试对几个随机抽取的单元是一个很好的做法。你可以使用一些公式和表格来计算需要多少抽样才能达到某个质量水*;只需在线搜索“制造验证测试表格”即可。
那么,多少测试才算足够呢?你可以通过成本论证得出一个测试的阈值。每进行一次额外的测试都需要支付设备费用、工程费用和测试时间的变动费用。因此,测试具有收益递减的特性:到某个时点,退货的成本可能比进行更多测试要低。自然,医疗或工业级设备的测试标准要高得多,因为与故障设备相关的责任也更大。同样,用于赠送的新品可能需要进行的测试要少得多。
设计你的测试夹具
最后一个想法:始终将扎实的工程设计应用于你的测试夹具设计。当我在开发 chumby 8 时,遇到了一个问题:一个 50 针的扁*柔性电缆适配器出现了随机的冷焊接失效。我要求工厂建立一个测试来验证适配器。工厂的解决方案是将 LED 灯挂在适配器的每个引脚上,对电缆的一侧施加测试电压,然后查看另一侧是否有 LED 没有点亮。冷焊接点不仅仅是开路或闭路;有些仅仅表现为高电阻。足够的电流流动可以点亮 LED,但仍然有足够的电阻导致设计故障。
工厂建议购买 50 台万用表,并将它们连接到每个引脚上以手动检查电阻,这样既昂贵又容易出错。期望操作员每天看着 50 个显示屏数百次,并能可靠地找到不合格的数值是不现实的。于是,我选择了将连接线按串联方式连接在适配器上,并使用一台万用表来检查串联电路的总电阻。通过将连接串联,我可以通过一次数值测量来检查所有 50 个连接,而不是主观地观察 LED 的亮度。
正如这个案例所示,即使是检查电缆适配器上的冷焊接这样简单的测试,也有好方法和坏方法。越来越复杂的组件需要越来越微妙的测试,而利用工程技术制定高效且万无一失的测试方案具有真正的价值。
在工业设计中寻找*衡
即使你的产品通过了所有验证测试,表现得非常出色,如果消费者不愿意购买,它仍然可能不会成功。记住:性别销售。对于典型消费者来说,一台设备的 CPU 性能或 RAM 大小,最多也只是比设备外观稍微重要一点。苹果设备之所以能够收取高额溢价,部分原因就是它们光滑的工业设计,许多产品设计师也试图在自己的产品中模仿苹果首席设计官乔纳森·艾夫爵士的成功。
在工业设计中有很多思潮,工业设计是指在实际生产之前设计产品外观的过程。一种思潮提倡修道院式设计师,设计出一个美丽而纯粹的概念,然后生产工程师在为了功能性调整设计时破坏了这种纯粹性。另一种思潮提倡务实的设计师,他们与生产工程师密切合作,在设计中进行艰难的妥协,以生产出价格低廉且高效益的设计。
根据我的经验,极端的方法都不具备说服力。僧侣式的方法通常会导致无法制造的产品,这些产品要么上市滞后,要么生产成本高昂。而实用主义的方法常常会导致产品看起来廉价、手感差,消费者难以赋予其应有的价值。真正的难题是理解如何在两者之间找到*衡,而这始于进入工厂,了解事物是如何操作的。以下是我从 Chumby 和 Arduino 的经验中学到的一些例子,展示了不同的工艺流程如何影响这种*衡。
chumby One 的修整与表面处理
修整和表面处理是比较困难的,因此成为产品外观上的区分点。当我在 Chumby 工作时,我们希望最终的产品具有简约而诚实的表面处理。(诚实的表面处理展现了材料系统的自然特性,避免使用油漆和贴纸。)简约的设计非常难以制造,因为特征越少,哪怕是微小的瑕疵也会显得特别突出。诚实的表面处理也很困难,因为所有的毛刺、浇口、沉陷、接缝、划痕和流痕——这些制造中的必然现象都会赤裸裸地展示给消费者。因此,这种设计理念需要精良的制造工具,并且在生产过程中需要不断地检查和维护。
如果你没有足够深的口袋为工厂投资新设备和新能力(也就是说,如果你不是财富500 强公司),第一步就是学习现有的术语。设计词汇由生产商品的工厂或工厂群体的能力所定义,比如你可以获得哪些材料、可能的表面处理、可达的公差以及现有的紧固技术。这些都与工厂可用的工艺流程密切相关。
因此,我发现,在设计过程中尽早亲自参观工厂能带来更好的设计。参观工厂后,你会摒弃一些设计术语,但你也会发现一些新的术语。那些日复一日在工厂里工作的工程师们,开发了许多工艺创新,能够为设计开辟出新的可能性,除非你亲自去参观,否则是无法发现的。
chumby One 是制造工艺对设计成果产生影响的一个具体例子。在最初的概念图中,前缘加上了蓝色高光,以模仿漫画条中的对话框。这个设计的初衷是希望 chumby 能够用来自互联网的片段来为你的世界加上字幕。

一台完成的 chumby One 设备
但是,在一个凸起的表面上施加蓝色修饰条非常困难。第一家工厂使用了油漆,因为前缘不够*坦,无法选择丝网印刷。垫印(也叫* tampo 印刷*,是一种将墨水从硅胶垫转印到物体上的工艺)能够处理弯曲的表面,但 chumby One 上的凸脊对齐效果不好,哪怕是微小的墨水溢出都能从侧面看得很糟糕。贴纸和贴花同样无法实现我们想要的对齐。最终,雕刻出一个小通道来容纳油漆,工厂通过模板和喷漆完成了高光处理。
成品率非常低。在某些批次中,由于涂漆错误,超过 40%的 chumby One 外壳被丢弃。幸运的是,塑料很便宜,所以在涂漆后丢掉一半以上的外壳,净成本影响大约为 0.35 美元。

两台涂漆效果差的 chumby One 产品
在生产过程中,我们开始在第二家供应商工厂生产 chumby One 单元。第二家工厂拥有不同的塑料成型设备,并且与第一家工厂不同,这家工厂能够进行双注塑模具。双注塑模具需要比单注塑模具更多的工具,但它能够在同一个模具中注射两种不同的颜色,甚至是两种不同的材料。在新工厂,我们尝试了双注塑工艺,而不是涂漆处理薄薄的蓝色条纹。

通过双注塑模具工艺制作的完美 chumby One 凸脊
最终效果非常惊艳。每一台产品都带有清晰的蓝色线条,没有油漆意味着更加干净和真实的外观。但尽管达到了 100%的成品率,每个外壳的成本依然上涨到了 0.94 美元。即使舍弃超过一半的涂漆外壳会更便宜,但即便是最好的涂漆外壳,也无法与双注塑工具所带来的优质表面效果相提并论。
Arduino Uno 的丝网印刷艺术
另一个关于如何通过调整工厂工艺改善产品外观的好例子是 Arduino 主板。背面的精美图案,展示了意大利的轮廓和非常精细的文字,并不是丝网印刷。这些板子由一家公司生产,该工厂实际上为电路板涂上了两层焊盘膜:一层是蓝色的,一层是白色的。

Arduino Uno R3 的底部
当 Arduino 主板生产时,焊盘膜是通过我在“Arduino 诞生地”一文中提到的光刻工艺涂覆的,详见第 44 页。这种工艺可以带来比丝网印刷更好的分辨率、一致性和对齐效果。而由于 Arduino 的外观就是电路板,这种艺术设计使得产品具有了独特的高质量外观,这种外观使用传统工艺方法几乎无法复制。
因此,工厂的工艺能力(无论是喷涂与双注塑成型,还是双层焊盘与丝网印刷)对产品感知质量有实际影响,而对成本的影响却很小。然而,工厂可能并未完全认识到其工艺的潜力,直到设计师与工厂直接互动时,产品才能充分发挥这些潜力。
不幸的是,许多设计师直到出现问题才会去工厂参观。到那时,工具已经切割完成,即使你发现了一个能够解决所有问题的酷炫工艺,也常常为时已晚。
我的设计过程
设计是一项高度个人化的活动,因此每个设计师都会发展出自己的过程。然而,如果你需要一个开发自己设计框架的参考,以下是我可能会用来在紧张的创业预算下开发产品的基本过程:
-
从一本素描本开始。决定设计的灵魂和身份,选择一个适合你概念的材料系统和语言。但不要太过依赖它,因为它可能需要改变。
-
按材料系统拆解设计,并确定能够生产每个材料系统的工厂。
-
参观工厂,并注意实际在生产线上的产品。不要根据样品房中的单件产品做假设。实践出真知,从操作员到工程师,工厂工人执行他们每天做的程序要比那些他们不常用的复杂工艺做得更好。
-
基于对工厂可行性的全新理解重新评估你的设计,并进行迭代。如果小的调整不足以解决问题,回到第 1 步。这是最容易在不牺牲设计纯粹性的情况下做出妥协的阶段。
-
粗略勾画出设计的细节。根据工厂能够做到的最佳效果,选择滑动表面、分模线(即外壳部件拼接的地方)、表面处理、固定系统等。
-
将修改后的图纸交给工厂,并与他们合作,最终确定草图角度、固定表面、内部肋条等细节。
-
使用 3D 打印和广泛的 3D 模型检查来验证设计。
-
确定容易出现公差误差的特征,并修剪初始制造工具,使公差有利于修改,从而帮助你最小化对工具的昂贵更改。例如,考虑注塑成型,其中钢模具是其成型塑料的负模。从工具中去除钢材(加塑料)比加入钢材(去除塑料)更容易,因此在进行初步试射时,应将关键尺寸上的钢材用量增多,而不是太少。按钮就是一个通过这种方式调整的机制:预测一个按钮在 CAD 或 3D 打印件中的感觉很难,完美的触感通常需要稍微修剪工具。
当然,这个过程并不是一套必须遵循的硬性规则。你可能需要根据自己与工厂的合作经验增加或重复某些步骤,但如果你选择了一个好的工厂,这应该是一个良好的起点。
选择(并维持)合作伙伴
就像《哈利·波特》中的魔杖一样,一家好的工厂会像你选择它一样选择你,所以忘掉“供应商”这个词,改用“合作伙伴”。如果你做得对,你不只是单纯地指示工厂工作;而是应该进行坦诚的对话,讨论其中的权衡取舍以及如何改进生产过程。这样才能获得最好的产品。
与工厂建立健康的关系还可以带来更好的付款条件,从而改善你的现金流。在某些情况下,工厂信用可以直接取代筹集风险资本、贷款或获得 Kickstarter 资金。因此,我将优秀的工厂视为与投资者和合作伙伴同等的重要。在此,我为你提供一些选择和与工厂合作的建议。
与工厂建立关系的建议
首先,选择一个适合你产品规模的工厂。如果你和一个过大的工厂合作,你可能会在官僚体制中迷失,或者在关键时刻被更大的客户挤出生产线。如果你与一个太小的工厂合作,它将无法提供你所需的服务。作为一条规则,我会选择一个可以让我定期直接接触到老板(工厂老板)的最大工厂,因为如果你无法与老板沟通,那你就不算什么。如果老板能在第一次见面时就带你参观并在午餐时问你一些关于业务的犀利问题,那是一个好兆头。
其次,遵循“阳光是最好的消毒剂”这条格言。如果一家工厂不愿意提供开诚布公的 BOM 报价,明确列出每个组件、工艺和利润的成本,我是不会与他们合作的。成本降低的讨论如果没有透明度是无法进行的,因为没有透明的地方,成本就容易被掩盖。同样,如果成本讨论变成了打地鼠游戏,一项成本降低被莫名其妙地转移到另一项上,那就赶快离开吧。
这个最终的建议主要适用于初创公司。在早期阶段,大家都知道你的现金供应是有限的。即使你刚刚完成了一轮融资,带着大把的钱进入工厂也是不可持续的做法。聪明的工厂知道你的现金供应有限,如果你提议给工厂带来最大的价值只是堆积的资金,那么你的价值是有限的;在最好的情况下,这些资金也不会真正带来回报,直到几年后,产品开始大规模生产时才会有回报。因此,尽量以非金钱的方式向工厂提供价值是很有帮助的。
听起来可能有些傻,但做一个愉快且具有建设性的人在争取工厂的支持上大有帮助。制造业是一个高压力、低利润的行业,工厂中的每个人每天都必须处理各种棘手的问题。我发现,如果我像对待一个友好的熟人一样对待我的工厂,而不是把他们当作奴隶劳动或单纯的分包商,我能获得比那些资金更充裕的客户更好的服务。错误是难免的,能够将不好的情况转化为学习经验,在你犯下愚蠢(也许还很昂贵)错误的那一天会对你有很大帮助。
报价小贴士
坦率地说,如果报价看起来好得不像是真的,那通常确实有问题。在与工厂谈判价格时,退后一步,检查报价是否合理。那些在交易中亏损的工厂,会不择手段地弥补亏损,许多制造业的噩梦故事都与不健康的成本结构有关。工厂的首要任务是生存,即使这意味着在批次中混入缺陷产品以提高利润,或者将新手工程师分配到停滞的项目上,以便更好地利用他们经验丰富的工程师为更有利可图的客户工作。
在评估报价时,确保其包括以下内容:
• 每个零件的价格
• 由于最小订单数量(MOQ)而产生的多余材料
• 劳动力成本
• 工厂的管理成本
• 非重复性工程(NRE)费用
让我们详细看看其中的几个项目。
关注多余材料
多余是我所说的“热狗和面包”问题的结果。热狗是以 10 个一包出售,而面包则是 8 个一包。除非你购买 40 份,否则你将剩下多余的热狗或面包。
同样,许多组件只有以 3,000 个一卷的形式出售。一个 10,000 个的生产需求需要 4 卷,共计 12,000 个,剩下 2,000 个为多余部分。工厂可以购买切带或部分卷的零件,但切带的单价要高得多,因为多余材料的风险转移到了分销商那里。
然而,多余并不全是坏事:它可以被融入未来的产品生产中。只要你的产品保持一个相对稳定的生产速率,多余的组件库存应该会定期转化为现金。然而,某个时候,生产可能会结束或暂停,多余的费用账单会到来,影响现金流。如果报价中没有多余部分的列项,工厂可能会向你收取整卷的费用,但把多余部分留作自己使用;这就是深圳灰色市场商品的来源之一。他们也可能在后续发出一张意外的账单,这通常是在最糟糕的时候——产品的收入已经停止,但账单还在继续。无论哪种情况,最好在开始时就了解完整的从摇篮到坟墓的商业模式。
计算劳动成本
劳动力成本的估算非常棘手,但好消息是,对于高科技装配,劳动力通常只是总成本的一小部分。在中国,组装一个简单的、由 200 个零件组成的小批量电路板的劳动力成本可能只有大约 2 美元或 3 美元,而在美国,组装的成本则接* 20 美元或 30 美元。即使中国的劳动力价格在一夜之间翻倍,而美国的劳动力价格减半,中国依然可能具有竞争力。
这与从中国出口的低价值商品(如纺织品)形成对比,低价值商品的原材料基础价值已经很低,因此劳动力成本在最终产品成本中占据了重要部分。我通常不会过多争论劳动力成本,因为过度压低劳动力成本最终可能导致质量下降,而过度压低劳动力成本还可能迫使工厂通过削减福利来降低工人的生活质量。
工厂的间接费用
谈判工厂利润也是一门艺术,并没有固定的规则。我会在这里提供一些指导,但总会有例外情况,每个工厂可以根据具体情况为你提供特殊优惠。最终,在审查工厂报价时,重要的是要看大局,并运用一些常识。
工厂的合理利润率取决于它为你的产品增值的多少,以及生产的数量。利润率的定义也因工厂而异。有些工厂将废料、处理开销,甚至研发费用包括在利润率内,而其他工厂可能会将这些费用单独列出。
一般来说,利润率在个位数到低双位数之间波动,具体取决于产量、附加值和项目复杂性。对于非常小批量的生产(少于 1,000 件),你还可能会被收取每批次的生产线费用。这笔费用部分抵消了为短时间内搭建生产线然后又拆除的成本。生产线的吞吐量可能非常快,每天能生产数百到数千个单位,但搭建生产线通常需要几天时间。
非经常性工程费用
非经常性工程费用(NRE 费用)是为了设置生产流程而需要的一次性费用,如模板、SMT 编程、夹具和测试设备。请注意,在不同客户之间重复使用测试设备被认为是不良做法;如果在生产测试中需要万用表,不要惊讶于万用表费用会加到 NRE 费用上。客户在测试设备的维护和使用上有很大的差异,因此优秀的工厂通常不会冒险使用它。
杂项建议
你可以与谁沟通以及工厂对成本的透明程度无疑是关键问题,但随着经验的积累,你将学到更多处理那些不属于特定类别的工厂的技巧。最后,以下是选择工厂时需要牢记的几个重要点。
废料与合格率
理想情况下,你只会为良品支付费用,且工厂会承担不良品的负担。这能激励工厂保持高生产质量,因为每一个不良品的百分比都会侵蚀其利润。但如果你的设计有缺陷,或者产品过于复杂,导致不良品率过高,工厂可能会开始降低质量以满足生产和利润目标。这也可能导致工厂在灰色市场上销售不良品来回收成本,进而在未来造成品牌声誉问题。
为了避免类似的情况,提前与工厂达成协议,明确如何处理废品或异常的良品率损失。这可能包括例如,在报价中增加专门的“废品”项目,明确处理不良品。
订单数量要超过已验证的需求
尽管每个人都在尽最大努力,但错误总会发生,客户会收到坏的设备,你可能需要额外的工作单元来处理退换货。为了完成 1000 件的 Kickstarter 活动而订购 1000 件产品意味着,如果客户想要退换因运输过程中损坏的设备,你唯一能做的就是退款。启动工厂制造几件替换品根本不实际。
一般来说,我会订购比客户所需数量多几个百分点的产品,以备不时之需,用来处理退换货。那些在退货过程中未使用的单元可以转为展示样机或业务发展赠品,以促成下一批订单!
运输需要花费资金
留意运输费用。这些费用通常不包含在工厂的报价中,但它们会影响你的利润,尤其是对于小批量产品而言。通过 FedEx 运输是节省时间的好方法,但它也非常昂贵。快递费用很容易就会吞掉一个小项目的利润,因此需要合理管理这些费用。
注意
快递公司对经常发货的客户提供折扣,但你必须打电话与他们协商特别的费率。
考虑进口关税
未持有进口许可证的元件进口到中国时,将按其价值征收大约 20%的强制性关税。中国的通行规则是:进口时需要缴纳关税,出口时免税。如果某些货物不小心跨境运输到香港,想要重新进入中国,也需要缴纳关税。
找一个报关代理来寻找省钱的方法;例如,一些代理可以根据货物的重量而不是其价值来征税,对于微电子产品来说,这通常是一个不错的交易。我还没弄明白所有的海关规则,因为它们似乎是不断变化的。每个月似乎都会有新的规则、罚款、特殊费用或关税需要应对。也有不少不太正规的方式可以将货物进口到中国,但我晚上睡得更安稳,因为我尽力遵守每一条规则。
报价不包括关税,因为工厂默认假设你会有进口许可证。进口许可证允许免税进口商品。但进口许可证需要几千美元的费用,处理时间通常要几周,并且没有灵活性,因为它们与产品的具体 BOM(物料清单)绑定。小型工程变更订单可能会使进口许可证失效。我曾知道海关官员会检查 PCB 上的去耦电容数量,如果与许可证中的数量不符,就会处以罚款并使许可证失效。即使是用于装饰盒的材料的偏差也可能导致许可证失效。简而言之,这种进口许可证制度更适合高产量的产品,对低产量生产商不利,因此需要谨慎操作。
结语
到中国进行制造显然并不适合每个人。特别是如果你在美国,快递费用、旅行成本、关税和深夜会议的开销会迅速累积。作为经验法则,对于不足 1,000 个单元的生产量,基于美国的小型公司通常更适合在美国组装 PCB,直到生产量达到 5,000 到 10,000 个单元,才会开始看到明显的优势。
当像注塑成型和底盘组装等工艺被引入时,这些对中国有利的因素会出现,因为中国工厂在这些劳动密集型工艺方面具有专业技术。如果你居住在中国或靠*中国,那么盈亏*衡点可能会更低,因为快递费用、旅行成本和时差的影响远远低于从美国发货的情况。这与本地人更擅长利用中国的组件生态系统这一事实相结合,进一步降低了与仅使用美国零件生产的设计相比的成本。
另一方面,使用大量需缴税组件构建的物理上较大的装配或系统,在国内生产可能更便宜,因为它们可以节省运输成本和关税。最终,保持开放的心态,尽量考虑国内与国外制造之间所有可能的间接成本和收益,再决定生产的最佳地点。
第二部分
不同思维:知识产权在中国
中国因知识产权(IP)法律执行不严而声名狼藉,这也导致了假货和模仿产品等问题。本书这一部分细致分析了中国的知识产权生态系统,并提出了一种奖励创新的全新方式,这种方式是传统西方知识产权实践的替代方案。
首先,考虑这个问题:究竟什么构成了假货?这个问题似乎相对简单;任何不是原版的东西都应该是假货。然而,当你考虑到一些合同制造商通过进行鬼班(即未向品牌所有者报告的下班后生产线)来制造假货时,情况就变得复杂了。这些物品在与原始产品相同的设备、相同的人手和相同的工序下生产,但它们直接以更高的利润率卖给客户。
事实上,假货的范围非常广泛。使用过的和损坏的商品经过再利用;有小瑕疵的生产废品经过翻新后作为原版商品出售;原始产品被重新贴标以宣传更高的能力或容量(例如,实际容量为 4GB 的内存卡被当作 8GB 出售),等等。第四章讲述了我在中国遇到的几起假货事件,并深入探讨了促进这些假货兴起的各种问题和动机。
克隆和复制也是中国常见的做法。一群模糊不清且有时颇具阴影的“山寨”创新者,创造出试图模仿原始产品特点和功能的产品,通常会借助原始产品的蓝图。但这些克隆产品会经过大量修改,以降低成本或加入独特的功能。通常,这种做法最令人反感的一点是,克隆产品使用了原始产品的品牌和外观设计。除了商标侵权之外,仔细观察这些产品,你会发现其中有大量的原创工程设计和创新。
将山寨贬低为简单的盗贼和模仿者忽视了一个事实,那就是他们能够做到许多西方公司做不到的事情:他们能够制造出完整的手机,而且预算极其有限。第五章深入剖析了一个典型的山寨工程案例,这是一个针对新兴市场设计的功能手机,售价不到 10 美元。该手机是成本削减的典范,并为那些西方工程技术无法触及的市场提供了全新的制造方式。
其中一种启发性强的精益工程实践是山寨方法,它使得在紧张预算下创造复杂系统成为可能。我将通过对比和对照西方的开放源代码理念与山寨方法(我称之为gongkai)来探讨这个问题。在西方法律中,开放源代码有一个正式的定义,专指由明确的共享许可协议管理的知识产权共享系统。这个许可由版权持有人授予,通常会附带显著的商业限制。开放源代码的支持者 vigorously 捍卫这一理念,并迅速否定任何没有明确使用批准许可的知识产权。
在 gongkai 中,如果你能获得蓝图副本,你可以随意使用它们;谁制作的并不重要。然而,人们仍然分享他们的想法,因为蓝图起到了广告的作用。蓝图通常会明确提到某些芯片,或者包含画图公司联系信息。创作者希望通过传播他们的蓝图,能够在别人订购其中提到的零件或子组件时,或者在别人联系他们的公司以改进或定制设计时,将生意带到他们的工厂。在其他情况下,蓝图也会被交易。例如,有些公告板交换*台,在你下载蓝图之前,必须先贡献一份自己的蓝图。
简而言之,gongkai IP 生态系统是广告驱动商业模型的变种,但它被优化用于硬件导向的企业。就像谷歌提供免费的高质量搜索、电子邮件和地图服务以换取展示广告一样,山寨创新者通过分享想法在他们的工厂中争取后续订单。
这里有一个关键的区别,存在于大多数西方创新者和他们在深圳的同行之间:深圳的每个重要人物都拥有或与一家工厂有密切联系。获得物质财富的最快途径是销售更多的产品。争论谁拥有抽象想法的权利是浪费精力,最适合在晚餐后由白酒驱动的讨论中进行。* 与此相对的是,西方的专利流氓,他们与工厂的联系极为疏远,可能连一个烙铁都没有,却投入数百万美元进行诉讼并收取他们并未发明的想法的专利费。
两种系统都不是完美的,但 gongkai 方法独特地适应了技术的快速发展。在一个芯片每隔几年就变得更快更便宜的世界里,20 年的专利寿命几乎是永恒的。花十年时间将一个产品推向市场根本不可行;中国最好的工厂可以在几天内将餐巾纸上的草图变成原型,并在几周内实现规模化生产。长时间的专利期可能适用于制药等市场,但在快速变化的市场中,花费数月时间和数万美元的律师费用来谈判许可或申请专利可能会错失机会。
或许关于改革西方专利制度的讨论早已迫在眉睫。公开生态系统就是活生生的证明,授予像“滑动解锁”这样微不足道的智能手机创意 20 年的专利垄断,可能并不是激励创新的唯一正确途径。我期待通过这次对中国知识产权的风风火火的巡礼,来开启这场对话,讨论其优点、缺点和丑陋之处。
第四章:4. 公开创新
如果知识产权这个词对你来说听起来像个矛盾修饰法,那你不是唯一一个这么觉得的人。如果我给你一个苹果,并说:“这是你的苹果,”那是什么意思很清楚。你可以随意处置这个苹果:吃掉它、卖掉它,甚至用种子种一棵苹果树,结果收获更多苹果,然后再卖掉或用来喂养家人。但如果我给你一部手机,并说:“这部苹果 iPhone 是你的,”你拥有的只是手中那些原子集合,但对于与手机相关的软件、专利和商标——即知识产权——却几乎没有什么权利。不同于苹果,你不能拿到你 iPhone 里的东西,将那些知识当作种子来制造更多的 iPhone。
然而,知识产权在中国的运作方式完全不同。在那里,你可以(而且人们确实这么做)将手机作为你自己原创作品的种子。我在中国的两次经历让我意识到,处理知识产权并没有一种唯一的正确途径。
我摔坏了手机的屏幕,结果这真是太棒了
我的第一个故事像许多我的冒险故事一样,开始于从出租车下车,来到福田口岸进入中国。那是 2014 年 5 月,我正前往深圳敲定 Novena 开放硬件笔记本的生产计划,更多内容将在第七章中讨论。刚下出租车,我的手被背包绳带挂住,手机跌向了水泥人行道。当手机砸在地面上时,我听到了屏幕破裂的干脆“啪”声。
没有什么地方比深圳的边境口岸更适合摔坏手机屏幕了。不到一个小时,我就以仅 25 美元(包括零件和人工费用)在华强北找到了熟练的技工安装了新屏幕。
我原本打算自己更换屏幕。手机仍然能用,于是我匆忙访问了 iFixit 网站,查找如何更换屏幕的详细信息,然后赶往华强北购买替换部件和工具。我去的摊位报价大约 120 美元来换个新屏幕,但店主突然从我手中抢过手机,通过在拨号界面输入 #0# 启动了内建的自检程序。
她确认我的 OLED 显示屏没有坏点,触摸屏仍然正常工作,只是摔裂了。然后她提出如果她的店铺能为我更换屏幕,她愿意购买我坏掉的 OLED 和触摸屏模块。我说这没问题,只要我能在旁边看着,确保他们不会换掉其他部件。
当然,他们对此毫不在意。不到 20 分钟,他们就把我的手机拆开,取下坏掉的模块,去除手机机身上的旧胶,重新粘贴新的胶,安装了一个“新的”(大概是翻新的)模块,然后将手机重新组装好。整个过程用了吹风机(当作热风枪)、大量接触清洁剂(用于软化胶水),以及一个很长的指甲(代替撬棒/吉他拨片)。不幸的是,我没法拍下这个过程,因为我本来用来拍照的设备正摊开在我面前。
这就是循环利用和修复的力量。我没有花 $120 去买一个新的屏幕,扔掉一个功能正常的电子零件,而是只付了更换破损玻璃的费用。我曾以为数字化触摸屏的玻璃和 OLED 是不可分离的,但显然深圳华强北的那些聪明人找到了一个高效的办法来回收这些零件。毕竟,模块的大部分成本都在于 OLED 显示屏。而触摸传感器电子元件——同样嵌入模块中的——并没有在摔落中受损。为什么要浪费完全可用的零件呢?
我的手机屏幕坏了整整一个小时,但修好它的费用却比把备用零件运送到新加坡(我的居住国)的运费还要低。像这样的经历让我思考:为什么在每个国家都没有这样的服务?是什么让深圳如此独特,以至于你可以在半小时内把坏掉的屏幕修好,且费用远低于一个月的手机账单?这一现象的出现有多方面的原因,其中大部分可以归因于一个群体——山寨人。
山寨作为企业家
中国的山寨最初以生产类似 iPhone 的仿冒产品而闻名,因此历史上它们一直被主流媒体视为“山寨大亨”。但我认为,他们和像休利特和帕卡德,或者乔布斯和沃兹尼亚克这样的团队有某些相似之处,当时他们也在车库里工作。
山寨人是谁?
要理解我为什么这么想,首先需要理解“山寨”这个词的文化背景。山寨(山寨)源自中文中的“山中堡垒”,但字面翻译有些误导。英文中的“fortress”一词通常指的是一个大型的防御性结构或堡垒,可能让人联想到城堡塔楼和护城河。另一方面,它的含义其实是一个简单的加固地方,这更接*中文原意,指的是像洞穴或游击队风格的藏身之处。
在当代背景下,山寨是对那些生活在类似山寨的地方的人的历史性暗示,像宋江和他的 108 位好汉,他们是生活在 12 世纪的群体。我的一位朋友曾把宋江形容为“罗宾汉遇上切·格瓦拉”。他既是一个反叛者,也是一个命运多舛的士兵,但却无私且对需要帮助的人充满善意。这个故事至今仍然广受欢迎;我问我父亲时,他立刻就认了出来。
现代山寨创新者充满叛逆、个性鲜明、地下活动且自我赋能——就像宋江一样。他们的叛逆表现在他们因模仿产品而被称赞。他们的个性表现在他们对大公司有着强烈的反感。(许多山寨公司曾是大公司,既有美国的,也有亚洲的,曾因对雇主低效不满而离开。)他们的地下性表现在一旦某个山寨公司“合法化”并通过传统零售渠道直接做生意时,它们就不再属于山寨的圈子。自我赋能则体现在他们通常都是规模小、依靠最少的资本起步的公司,他们的态度是,“如果你能做到,我也能做到。”
预计到 2009 年,深圳约有 300 家山寨组织在运营。山寨店的规模从几个人到几百名员工不等。有些专注于如工具制作、PCB 设计、PCB 组装或手机外壳定制等工艺,而另一些则具有更广泛的能力。
由于山寨公司规模较小,它们必须高效运作以最大化产出。一家员工不足 250 人的小店每月可以生产超过 20 万部手机,并且产品种类繁多,有时一批产品的生产量仅为几百台。总体来看,2009 年深圳地区的山寨公司每月生产的手机估计达到 2000 万部。这相当于每月接*十亿美元的经济规模。这些手机大多销往印度、非洲、俄罗斯以及东南亚等第三世界和新兴市场。
不仅仅是模仿者
值得注意的是,山寨的产品组合不仅仅包括仿制手机。他们还会对设计进行创新和改造,制作原创产品。这些原创手机集成了像 7.1 声道立体声、双 SIM 卡、实用的香烟盒、高清镜头,或者内置紫外 LED 用于防伪钞检测等奇特功能。
山寨对硬件的处理方式类似于网络对混合编排的处理。那些既是玩具法拉利又是手表电话组合(配备摄像头!)的手机就是很好的例子:它们并不单纯地复制某个想法,而是将来自多个来源的知识产权混合在一起,创造出一种新的异质性组合,原始素材在最终产品中依然可以明显辨识出来。而且,像许多网络混合编排一样,结果可能对大众市场来说看起来荒谬(比如法拉利手机),但却对特定的小众市场非常相关。从某种程度上来说,一些山寨产品其实是走在时代前面;例如,我看到的那些手表电话,实际上早于智能手表几年来。

*顶部:一款外形像香烟盒的手机的正反面。
左下:一款基于 Android 的智能手表,与 Apple Watch 不同的是,它包含一个能够打电话的手机。右下:一款山寨设计的“婴儿 iPhone”,运行 Android 系统,旁边是为了对比大小放置的 Apple iPhone 6*。
社区执行的知识产权规则
山寨还采用了一种叫做开放物料清单(BOM)的概念:当一个山寨公司开发出新产品时,他们会与其他人共享物料清单和其他设计文档。如果该产品是基于已有的产品开发的,那么他们所做的任何改进也会共享。这些规则通过社区口耳相传来执行,以至于如果有人被发现作弊,他们会被山寨生态圈排斥。
这一系统在中国受到非常积极的看待。例如,我曾听一个本地人说,山寨不仅能复制 iPhone,还能通过为克隆机型提供用户可更换电池来改进原版。这种行为在美国法律中被视为非法和侵权,但鉴于网络上混合编排文化的繁荣,我不禁怀疑硬件混合编排是不是一件坏事。在美国确实有一种观念,如果它很奇怪并且发生在中国,那一定是不好的。这种偏见对客观评估一个可能最终与美国非常相关的文化现象投下了长长的阴影。
从某种意义上讲,山寨和经典的西方黑客创业者有相似之处,但带有鲜明的中国特色。我个人最喜欢的山寨故事是关于一个拥有三层楼房的家伙,他让我非常羡慕。他的卧室在顶楼,中间楼层是完整的 SMT 生产线,底层是零售商店,销售楼上一层生产的、楼上卧室设计的产品。真是一个垂直整合的供应链!拥有这样的基础设施肯定会改变我创新的方式。我可以节省生产成本,缩短原型制作时间,并且迅速周转库存,从而减少库存资本需求。如果我的商店位于高流量的城市区域,我还可以去除美国零售商通常要求的 20%到 50%的最低零售利润。
我有一个理论,认为当深圳的知识量和市场规模达到临界点时,中国人将不再仅仅是工人或模仿者。他们将掌握自己的命运,并最终成为创新的领导者。关于山寨和它们的混搭的故事,仅仅是冰山一角,它们有潜力改变商业运作的方式——或许不会在美国,但肯定会在那个庞大且未开发的市场中,这个市场常被称为“世界其他地方”。
12 美元手机
混搭手机展示了山寨的创新精神和实验意愿。但尽管拥有各种花哨的功能,这些手机仍然非常实惠。那么,你可能会问,一个手机究竟能便宜到什么程度?
向东北角的华强北电子市场走一小段路,就能到达名通数字商城。这里是一个四层的迷宫,充满了各种小商店,售卖各种各样的手机,这些手机具有在缺乏稳定电力或有线网络基础设施的经济体中非常有用的功能。例如,有些手机凭借夸张的大电池可以使用一个月。还有些手机配有模拟电视调谐器、内置手摇充电器和多个用户档案,使得一个家庭或小村庄可以共享一部手机。
在 2013 年访问华强北时,我花了 12 美元买了一部完整的手机,配备了四频 GSM、蓝牙、MP3 播放、OLED 显示屏和用于界面的键盘。与智能手机相比,这些功能微不足道,但如果你外出时担心主力手机被弄湿或被盗,它还是非常有用的。对于几十亿人来说,这可能是他们唯一能够负担得起的手机。
请记住,这是无合约价格。在允许运营商锁定手机的国家,如美国,手机通常会以极低的价格赠送或出售给买家,以换取一份价值通常是手机几倍的订阅合同。我付$12 买到了一部无合约、非促销、解锁、全新带充电器、硅胶保护套和数据线的手机,这意味着手机的生产成本必然低于零售价$12。否则,手机制造商就会亏损。据传闻,它的成本低于$10。

我这款简单而实用的$12 手机
这个价格真是太惊人了。大约相当于一大份 Domino’s 芝士披萨的价格,或者在美国城市餐厅里一杯普通的葡萄酒的价格。与 Arduino Uno 相比,这价格甚至显得更便宜。诚然,这种比较有些不公*,但请耐心一下,看看两者的规格比较,见表格 1。
表格 1: 比较$12 手机与 Arduino
| 规格 | 这部手机 | Arduino Uno |
|---|---|---|
| 价格 | $12 | $29 | |
| CPU 速度 | 260 MHz, 32 位 | 16 MHz, 8 位 |
| 内存 | 8MiB | 2.5kiB |
| 接口 | USB, microSD, SIM | USB |
| 无线 | 四频 GSM,蓝牙 | — |
| 电源 | 锂聚合物电池,包含适配器 | 外部电源,无适配器 |
| 显示屏 | 双色 OLED | — |
怎么可能这款手机在规格上比 Arduino 还要好,价格却不到后者的一半?我没有答案,但我正在努力寻找答案。拆解手机后,我们获得了一些线索。
$12 手机内部
首先,这部手机没有螺丝。整个外壳是通过卡扣拼接在一起的。

手机背面,拆开后盖
里面几乎没有连接器。为了运输和存储,你可以切换开关来彻底断开电池。根据我所能判断,电池似乎也没有二次保护电路。不过,这款手机配备了背光键盘和四周的装饰性灯光等配件。

从显示屏到电池的所有部件都直接焊接在主板上。

这块 PCB 板上到处都是小型装饰性 LED。

蓝牙天线是位于左下角的一小段电线。
电子元件主要由两大集成电路组成:联发科 MT6250DA 和 Vanchip VC5276。MT6250 的售价传闻低于 2 美元。我通过向零售经销商购买了几片剪带的 MT6250,每片大约 2.10 美元,从而在某种程度上证实了这一价格*。这个价格打破了我曾经能在用于 Arduino 的 ATMega 芯片上得到的最佳价格。面对这样的价格竞争,西方公司正在提起诉讼以保护自己的市场份额:Vanchip 与 RF Micro 公司发生了一些法律纠纷,联发科也遭遇过几起诉讼。

两颗联发科 MT6250 IC
当然,你不能仅仅打电话给联发科去购买这些芯片。通过“正门”与他们合作进行设计是极其困难的。然而,如果你懂一点中文,并知道一些正确的网站,你就可以下载与这款手机相似的电路图、板布局和软件工具,可能还会有一些不同的零部件……而且是“免费的”。免费的需要加引号,因为你可以获得源代码,但并不意味着你有明确的法律使用权,因为源代码在没有获得版权持有者明确法律同意的情况下分发。但任何不关心或不熟悉这种法律框架的人都可以以最少的现金投入制造出这款手机的版本。它感觉像开源,但其实并不是:这是一种不同类型的开放生态系统。
介绍 Gongkai
欢迎来到中国“开放”源代码的加拉帕戈斯。我称之为gongkai(公开),这是“open”在“open source”(开源)中的中文音译。虽然有“open source”的字面翻译成中文为开源,但gongkai实践和西方开源实践唯一相似之处在于,它们都允许你下载源代码;但推动这种共享的法律和文化框架却截然不同。这就像趋同进化,两个物种可能表现出相似的特征,但它们的基因和祖先完全不同。
Gongkai 是指那些带有“机密”和“专有”标签的版权文档,有时被公之于众并公开共享,但并不一定符合法律的字面要求。这种复制并不是像电影或音乐的复制那样单向的价值流动。相反,这些文档是构建使用版权拥有者芯片的手机所需的知识基础,共享这些文档有助于推广他们的芯片销售。最终,版权持有者和复制者之间存在一种互惠互利的关系。

比较知识产权模式。左边是西方的“广播”模式,由单一所有者控制和传播知识产权,并从社会中获得报酬。右边是中国的“网络”模式,知识产权像商品一样易于交换,支付通常是实物或作为人情回报。
公司与企业家之间这种灰色的关系只是东西方文化差异的一个体现。西方对知识产权和所有权持有“广播”观念:好的创意和创新归功于明确指定的一组作者或发明者,社会为他们的创新和贡献支付版税。而中国则持有“网络”观念:要想拥有创造好创意和创新的眼光,必须站在他人的肩膀上,而人们通过互相交换这些创意来获取利益。在一个对知识产权态度宽松的体系中,与网络共享是必要的,因为明天你的朋友可能站在你的肩膀上,而你将需要向他们寻求帮助。
然而,在西方,法治使得知识产权能够在长期积累中形成,从而创造出难以攻破的垄断地位。这对处于顶端的人来说是有利的,但对新兴公司却是困难的,导致了像现代西方手机市场这样的局面。像苹果和谷歌这样的公司制造出优秀的手机,质量卓越,而初创公司只能希望为他们的生态系统打造一个“应用配件”。
我已经审阅了超过 100 个硬件初创公司的商业计划,大多数公司的基础都是以过时的工艺技术制造的高价芯片。我自己也不例外;Novena 使用的是 Freescale(现为 NXP,经过收购)i.MX6 处理器,在我设计这款笔记本时,它既不是市场上最便宜的,也不是最快的芯片。但它有两个至关重要的特点:任何人都可以自由下载几乎完整的文档,任何人也可以在 Digi-Key 上购买它。
缺乏前沿技术的文档和供应,迫使西方硬件企业家主要依赖 Arduino、Beaglebone 和 Raspberry Pi 作为他们好创意的起点。而中国的企业家则几乎以惊人的速度推出新的手机。

这里展示的每一件物品都是一部手机。
手机型号是季节性变化的。企业家们不断进行实验,把一些古怪的功能集成到手机中,比如香烟点烟器、大容量电池(用于给第二部手机充电)、大按钮(为视力障碍者设计)、仅限紧急呼叫的“回家”按钮(给孩子们用)、手表形式等。这种做法之所以可行,是因为小团队的工程师可以获得完整的手机设计包——包括外壳、主板和固件——让他们能够对设计进行分支,只专注于改变他们真正关心的部分。
作为一名硬件工程师,我希望能够做到这一点。
我希望能够自行修改现有的手机设计。我看到了那款 12 美元的手机,我也想用一个 364 MHz 的 32 位微控制器,配备数兆字节的集成 RAM 和数十个外设,而这款微控制器的单价为 3 美元。相比之下,Arduino Uno 的 ATMega 微控制器,它的主频为 16 MHz,只有几千字节的 RAM 和少量外设,显得相形见绌,但价格却是它的两倍,达到了 6 美元。
从公开到开源
所以,我决定将对手机的研究从拆解更进一步,尝试制作自己的版本——以山寨风格为基础,但通过西方的视角来解读。这就是我和 Sean “xobs” Cross 启动一个名为Fernvale的项目的原因。自从我们在 Chumby 首次相遇以来,Sean 一直是我在多个项目中的冒险伙伴,当时我发现了他作为固件工程师的才华,他向我展示了如何在业余时间将《雷神之锤》移植到 Chumby 上。Sean 一直是个不拘一格的人。他出生在德国,父母是美国人,在大学里学习认知科学,在进入 Chumby 之前,他花了六个月在新西兰和澳大利亚游荡,寻找冒险和工作。在 Chumby,他很容易被认出来,因为他留着马尾辫,穿着苏格兰裙(实际上是 Utilikilt)。
在 Chumby 破产后,我和 Sean 发现我们漂泊到了新加坡的海岸,我在那里创办了一家名为 Sutajio Ko-Usagi 的小型硬件咨询公司,bunniestudios是它的日文翻译并经过罗马字母化后转写成英文字符。Sean 卓越的编程能力与我在硬件设计方面的技能相得益彰,从那时起,我们完成了几个重要的开源项目。
我们一开始认为,至少应该尝试“从正门”进入,直接向芯片制造商咨询,看看获取用于这些山寨手机的西方授权嵌入式开发工具包(EDK)需要什么条件。然而,我们的询问遭遇了冷遇。有人告诉我,我们的小实验量太小,或者我们必须签订带有数十万美元巨额现金存款的最小购买协议。
即使是那些愿意通过这些复杂程序的人,这些 EDK 也不包括中国人可以使用的所有参考资料。数据表不完整,而且你被迫使用公司的专有操作系统移植版。这就像是好人总是最后一个到达终点。我们能否找到一种方法,既能领先一步,又能保持公*竞争呢?
工程师也有权利
因此,Fernvale 有两个部分:技术任务是对手机进行逆向工程和重新设计,法律任务是制定一种通用的方法论,将公开知识产权(gongkai IP)吸收到西方生态系统中。我将在第九章中叙述技术任务,并在本章剩余部分专注于法律任务。
在对法律框架和挑战进行一些研究后,我认为我找到了一个途径,可以将 gongkai 的一部分知识产权带回适当的开源领域。然而,我必须声明:我不是律师。我会告诉你我的看法,但请不要将其视为法律建议。*
我与 Fernvale 的基本思路是谨慎而有教育意义地行使逆向工程的权利,以增加如果情况紧急,法院会支持我行动的可能性。但我也觉得,仅仅因为逆向工程有争议就回避它,是一条滑坡路:要拥有自己的权利,必须行使它们。如果女性不投票,黑人因为害怕争议而坐在公交车的后排,美国至今仍会存在种族隔离和没有普选权的问题。虽然逆向工程相对于种族*等和普选权来说是一个微不足道的问题,但先例已经很明确:要拥有权利,你必须勇敢地站出来并主张它们。
处理专利和其他法律问题
开源面临两类广泛的知识产权问题:专利和版权。专利问题非常复杂,最实际的做法似乎就是在这个问题上采取回避的态度。例如,直到目前为止,我所知道的没有人会在提交 Linux 代码之前检查是否存在专利侵权,事实上,许多公司在工程层面也有类似的政策。
为什么?确定哪些专利适用以及产品是否侵犯专利需要大量资源。即使投入了这些资源,也无法百分之百确定。此外,深入了解专利文献会增加任何侵权行为被认为是故意的可能性,从而增加赔偿金额。最后,甚至不清楚侵权的责任到底在哪里,特别是在开源的背景下。
因此,肖恩和我尽力避免与 Fernvale 发生专利侵权,但我们无法百分之百确定不会有人提出侵权指控。然而,我们确实为我们的工作申请了一个许可证,其中包括一个“毒丸”条款,旨在应对那些可能尝试提起诉讼的专利持有者。毒丸条款使任何提出侵权诉讼的各方无法使用整个开源作品。*
对于版权问题,也同样复杂。电子前沿基金会(EFF)的“程序员权利项目”有一个关于逆向工程的常见问题解答^(†),如果你真想深入了解这些问题,那是一篇值得阅读的文章。简而言之,法院认为,逆向工程用于理解嵌入代码中的思想并实现互操作性属于合理使用。因此,任何人都有权研究 gongkai 风格的知识产权,理解它,创作新作品,并为其申请西方风格的开放知识产权许可。
然而,在我可以解决 Fernvale 的版权问题之前,我必须确保我们不会碰到其他可能妨碍我们公正使用权的法律。首先是数字千年版权法案(DMCA)。DMCA 规定,绕过任何旨在强制执行版权的加密技术基本上是非法的,只有少数未经充分测试的例外情况允许。由于 Sean 和我下载的文件或二进制文件都没有加密,也没有通过任何技术措施进行访问控制,因此我们不需要进行任何绕过操作。没有绕过,就没有 DMCA 问题。
我们获得的所有文件都来自于链接到公共服务器的搜索,因此不会有计算机欺诈和滥用法案(CFAA)的问题。我们在工作中使用的所有设备都没有附带收缩包装、点击协议或其他终端用户许可协议(EULA)、使用条款或可能放弃我们权利的其他协议。
处理版权问题
在解决了 DMCA、CFAA 和 EULA 的顾虑之后,我们终于能够解决核心问题:如何处理版权问题。
我们方法论的基石基于几次法院的判决,法院指出事实不可享有版权。例如,O'Connor 法官在Feist Publications, Inc.诉 Rural Telephone Service Co., Inc.(449 U.S. 340, 345, 349 (1991):*案中写道:
常识告诉我们,100 个无法版权保护的事实在聚集在一起时不会神奇地改变它们的状态……解决这种矛盾的关键在于理解为何事实无法享有版权:版权的必要条件是原创性。
而且:
尽管存在有效的版权,后续编译器仍然可以自由使用他人出版物中的事实来帮助准备竞争性作品,只要竞争性作品没有采用相同的选择和排列。
基于这一观点,任何人都有权从专有文档中提取事实,并在自己的选择和安排中仔细重新表达这些事实。就像“John Doe 的电话号码是 555-1212”和“John Doe 的地址是 10 Main St.”这些事实不能享有版权一样,“中断控制器的基地址是 0xA0060000”和“位 1 控制 LCD 的状态报告”等事实也不能享有版权。Sean 和我从数据表中提取了这些事实,并在我们自己的头文件中重新表达它们,在那里,作为新创建的表达性作品的合法所有者,我们应用了自己选择的适当开源许可证。
创建一门编程语言
但情况因硬件模块而变得更加复杂,许多模块我们完全没有文档。在某些情况下,我们甚至无法通过数据手册了解一个模块的寄存器含义或模块如何工作。对于这些模块,我们提取并隔离了负责初始化其状态的代码。然后,我们将这些代码简化成地址和数据对的列表,并用我们自己称之为 scriptic 的自定义脚本语言表达。我们发明了自己的语言以避免潜在的无意识抄袭——读一段代码后,从记忆中写出几乎完全相同的代码实在太容易了。通过将代码转换成一种新的语言,我们被迫重新审视所呈现的事实,并以原创的方式表达它们。
Scriptic 本质上是一组汇编宏,语法非常简单。下面是一个 scriptic 脚本的示例:
#include "scriptic.h"
#include "fernvale-pll.h"
sc_new "set_plls", 1, 0, 0
sc_write16 0, 0, PLL_CTRL_CON2
sc_write16 0, 0, PLL_CTRL_CON3
sc_write16 0, 0, PLL_CTRL_CON0
sc_usleep 1
sc_write16 1, 1, PLL_CTRL_UPLL_CON0
sc_write16 0x1840, 0, PLL_CTRL_EPLL_CON0
sc_write16 0x100, 0x100, PLL_CTRL_EPLL_CON1
sc_write16 1, 0, PLL_CTRL_MDDS_CON0
sc_write16 1, 1, PLL_CTRL_MPLL_CON0
sc_usleep 1
sc_write16 1, 0, PLL_CTRL_EDDS_CON0
sc_write16 1, 1, PLL_CTRL_EPLL_CON0
sc_usleep 1
sc_write16 0x4000, 0x4000, PLL_CTRL_CLK_CONDB
sc_usleep 1
sc_write32 0x8048, 0, PLL_CTRL_CLK_CONDC
/* Run the SPI clock at 104 MHz */
sc_write32 0xd002, 0, PLL_CTRL_CLK_CONDH
sc_write32 0xb6a0, 0, PLL_CTRL_CLK_CONDC
sc_end
这个脚本初始化了 Fernvale 项目中目标芯片(MediaTek MT6260)的相位锁定环(PLL,产生时钟波形的电路)。为了对比,下面是该 scriptic 代码片段来源的代码的前几行:
// enable HW mode TOPSM control and clock CG of PLL control
*PLL_PLL_CON2 = 0x0000; // 0xA0170048, bit 12, 10 and 8 set to 0
// to enable TOPSM control
// bit 4, 2 and 0 set to 0 to enable
// clock CG of PLL control
*PLL_PLL_CON3 = 0x0000; // 0xA017004C, bit 12 set to 0 to enable
// TOPSM control
// enable delay control
*PLL_PLLTD_CON0= 0x0000; // 0x A0170700, bit 0 set to 0 to
// enable delay control
// wait for 3us for TOPSM and delay (HW) control signal stable
for(i = 0 ; i < loop_1us*3 ; i++);
// enable and reset UPLL
reg_val = *PLL_UPLL_CON0;
reg_val |= 0x0001;
*PLL_UPLL_CON0 = reg_val; // 0xA0170140, bit 0 set to 1 to
// enable UPLL and
// generate reset of UPLL
原始代码实际上有很多页,甚至这个代码片段周围还包含了条件语句,我们将其去除,因为它们与正确初始化 PLL 无关。
我们的权利知识、一个可以提取事实的文档库以及 scriptic 是我们工具箱中的法宝。借助它们,Sean 和我为我们的 Fernvale 项目提供了足够的功能,最终启动了一个名为 NuttX 的小型 BSD 许可的实时操作系统(RTOS),并运行在我们自己定制的硬件上。我将在第九章中详细讲解我们是如何做到这一点的。
结束语
如果不积极行使,权利会萎缩并被相互竞争的利益挤压。Sean 和我做 Fernvale 是因为我们认为行使我们的合理使用权去逆向工程并创造可互操作的开源解决方案是至关重要的。数十年来,工程师们一直袖手旁观,看到越来越多的专利和版权法缩小了他们自由学习和创新的空间。我为我小时候的创客时光不再是下一代工程师合法选择的现实感到难过。
山寨的崛起以及他们惊人的能力是一个警钟。我认为这是一个证据,表明宽松的知识产权环境能激发创新,尤其是在基层层面。如果更多的工程师了解并积极、故意地行使他们的合理使用权,也许这能催生出对专利和版权系统进行更大规模、急需的改革。我们的 Fernvale 项目希望只是一个路标,指引着更大的努力,弥合公开和开源社区之间的鸿沟。
能够将公共领域(gongkai)的积极方面挑选融入到西方知识产权(IP)生态系统中是一个重要的工具。法治有其应有的地位,而过于宽松的制度也存在自身的问题。下一章将探讨过于宽松的知识产权生态系统的一些负面后果:假冒和伪劣商品。
第五章:5. 假冒商品
公开系统在中国催生了大量的创新,山寨厂商能够制作有趣的原创产品,就像我在第四章中展示的手机一样。话虽如此,中国确实生产了大量的假冒电子产品,而且并非所有的都是仿制版的 iPhone。巧妙的伪造者能够制造出假冒的集成电路,包括 microSD 卡甚至是 FPGA。
精良伪造的芯片
例如,在 2007 年(当时我还在 Chumby 工作)我遇到了一些伪造的芯片,制作得非常精良,直到进行调查,我才确定它们是假货。

来自亚洲来源的两颗可疑芯片样本
这些芯片声称是 ST19CF68,是 STMicroelectronics 生产的芯片,在其数据表中描述为“基于 CMOS MCU 的智能卡 I/O,带有模块算术处理器。”ST19CF68 芯片通常以智能卡(例如信用卡前面的芯片)或切割晶圆(将硅晶圆切割成单独的芯片,但没有其他封装)的形式出售,但奇怪的是,这些芯片是 SOIC-20 封装的。为了找出这种奇怪封装选择的原因,我将其中一颗芯片的黑色环氧树脂封装溶解,以便用显微镜检查内部的硅片。
封装内的芯片片段过于小巧和简单,无法匹配 ST19CF68 所描述的复杂微控制器单元(MCU)。芯片上金色矩形的图案过于粗糙;我在低倍放大下通过光学显微镜能够分辨出单个晶体管。这些特征的尺寸被称为芯片的工艺几何。智能卡的工艺几何通常会比最先进的 CPU 落后三到四代,这使得即使在最高倍数的放大下,也很难分辨出晶体管。

假冒 ST19CF68 芯片内部的硅片
除了意外粗糙的工艺几何外,为什么这款零件有 20 个可焊接焊盘和 20 个引脚,而根据数据表,它应该只有 8 个焊盘?对芯片进行更高倍放大后,揭示出了一些有趣的细节。

芯片制造商和版权日期
结果表明,这款芯片并非由 STMicroelectronics 制造!硅片上的标签显示FSC,表明它是由 Fairchild Semiconductor 制造的。当然,我还需要检查硅片上的零件标签。

发现真实的零件编号
该芯片内部的芯片片段被证明是 Fairchild 74LCX244,这是一种“低电压缓冲器/线路驱动器,具有 5V 容忍的输入和输出。”74LCX244 是一款比该封装应包含的 ST19CF68 便宜得多的硅片。
当然,脚位数不匹配是可疑的,但制造商已经知道会将芯片放入更大的封装中,特别是在芯片的早期生产阶段,直到它被尺寸优化为止。真正让我感到震惊的是封装和标记的逼真质量。
通常,重标或伪造的芯片看起来比这个更低劣。原始芯片被打磨掉或喷漆以去除之前的标记,新标记通常是用丝网印刷涂料应用上去的。
但这些芯片完全没有显示出任何重标的迹象。标记是首次生产的质量:某人获取了未标记的 74LCX244 芯片,并将生产激光刻录机编程,以便在原本未使用的封装上加上高质量的伪造标记。他们甚至将ST徽标的比例做得非常准确。

伪造的 ST19CF68 外观特写
重标芯片与首次生产的标记之间的质量差异,就像用喷漆掩盖汽车划痕与汽车原厂新漆之间的质量差异。这款芯片无疑有着“新车”般的外观。
这一发现让我留下了许多未解的问题。某人是如何获得未标记的费尔柴尔德硅片的?那个人是内部人士吗?还是费尔柴尔德粗心大意地丢弃了未标记的废品芯片,没有将它们磨碎或剪掉引脚,以至于它们可以被捡起并转售?用来制作这些标记的激光刻印机也不是便宜的桌面刻录机;它必须是高功率的光栅刻录机,而且图案精确无误。
我仍然难以相信那些伪造芯片是被制造和出售的,但或许我不该这么想。我在 SEG 电子市场看到过肆无忌惮的双列直插内存模块(DIMM,个人电脑中的内存)重标,市场上许多伪造商公开展示着他们的专业级热转印标签打印机和全息贴纸空白标签。
如果这种质量的伪造品变得更加普遍,它们可能会对供应链构成问题。显然,制造伪造 ST19CF68 的人几乎能伪造任何芯片,而且这些伪造品正在逐渐出现在美国市场上。转售商,特别是那些专门购买过剩制造商库存的分销商,通常会默认为芯片上的标记是可信的。
我认为芯片制造商不会在芯片标记上增加防伪措施,但这些伪造品的质量确实让我在发现它们时感到警惕,而且至今仍然如此。并非所有的伪造品在使用前都会被发现,而假冒组件在任何出现的项目中都会带来问题。
美国军用硬件中的伪造芯片
假冒芯片在进入军事项目时尤为棘手。美国军方有一个独特的问题:它是全球最大的、最富裕的采购老旧零件的买家之一,因为军事设计的使用寿命可以长达几十年。和其他任何事物一样,零件越旧,越难找到,有时承包商会买到假冒品。例如,2011 年参议院听证会报告透露,部分用于 P-8 海神(美国海军向波音公司订购的飞机)的零件,如《国防技术》网站的一篇文章所称,是“翻新得很差”,导致关键系统发生故障。
美国政府试图通过 2012 财年《国防授权法案》第 1092 号修正案(H.R. 1540)减少供应链中的假冒产品。该修正案是一个出于良好意图,但却有些误导的条款,列出了旨在减少美国军方供应链中假冒芯片流通的措施。
即使在第 1092 号修正案提出之前,《国防授权法案》因一项允许美国军方无限期拘留美国公民且无需审判的条款而受到批评。讽刺的是,该条款还要求对美国联邦政府欠中国的债务进行评估,视其为潜在的“国家安全风险”(H.R. 1540 第 1225 条)。
根据反假冒修正案,首次违法者可能会面临 500 万美元罚款和 20 年监禁的惩罚,个人罚款为 500 万美元,企业则可能面临 1500 万美元罚款——这一处罚与贩卖可卡因的处罚相当。虽然该修正案明确将假冒*定义为将翻新零件冒充为全新零件,但其措辞不幸地含糊不清,未明确指出是否只有故意贩卖此类商品的人才会承担如此严厉的惩罚。
如果你拿到一枚脏兮兮但未经伪造的硬币,并把它清洗干净使其看起来像新的一样,没人会指责你伪造。然而,该修正案不仅对伪造用于军事用途的芯片行为施加 20 年监禁和 500 万美元罚款,而且有可能对那些无意中分销翻新芯片的人施加相同的处罚,尽管他们本来是将这些芯片当作全新商品购买的。不幸的是,在很多情况下,电子零件可以使用多年而没有外部磨损的迹象。
该修正案还包含了一项创建“检查计划”的条款:
(b) 进口电子零件的检查 —
(1) ... 国土安全部部长应当建立一个由美国海关和边境保护局加强的检查程序,专门检查来自任何被国防部长认定为假冒电子零件重大来源的国家进口的电子零件 ...
检查水果和蔬菜进入国家时是否有害虫或其他问题是合理的,但要求海关官员成为检测假电子元件的专家似乎是误导性的。在伪造者能够轻松制造出高质量的假货的情况下,把检测假货的责任推给供应商,且失败会面临如此高的处罚,也是错误的。
假冒零件的类型
为了更好地理解芯片伪造问题的严重性,让我们看看假货是如何制造的。我见过的假芯片大致可以分为以下几类。
外部模仿
最简单的假冒芯片仅仅是外观看起来真实的塑料外壳,或者是只有物理特征相同的重新标记的零件。例如,一个简单的晶体管-晶体管逻辑(TTL)芯片可能被放置在同一个包装内,并带有与昂贵的微控制器相同的标记。
我认为外部模仿是微不足道的,因为这种方式生产的假货在工厂测试中很容易被发现。最坏的情况是,你被卖了一些大部分是正品的零件,只有少数是伪造的,因此仅仅测试一根管子或卷盘中的一个零件是无法发现问题的。但大多数产品在系统级别上进行百分之百的测试,所以通常问题在任何东西离开工厂之前就会被发现。
翻新零件
然而,假冒产品并不一定非得是完全假的。翻新零件是从电子废料中拆卸出来的正品芯片,经过再加工后看起来像新的一样。它们非常难以辨别,因为芯片本身确实是正品,且经验丰富的翻新商可以制作出外观如新的芯片,只有通过同位素或元素分析才能识别出它们是曾经使用过的。
这一类别还包括那些“新”的零件,它们从未焊接到电路板上,但可能因为存储不当(例如在潮湿环境中)而变质。此类芯片应该被报废,但有时它们被放入带有较新日期代码的全新铝箔包装中,作为新产品出售。
重新标记的零件
假冒者有时会将从未使用过的正品零件(因此可以归类为新产品)重新标记为更高版本的零件。一个经典的例子是将 CPU 磨光并重新标记为更高的速度等级,或者更简单地,将含铅的零件标记为符合 RoHS 标准。
但是重新标记(rebinning)可以变得更加复杂。供应商可能通过逆向工程和重新编程标记芯片内部的保险丝代码,使得芯片的电子记录与顶部伪造的标记实际匹配。供应商还曾通过黑客技术修改闪存驱动器固件,使主机操作系统将小内存识别为更大的内存。这类黑客技术甚至能够“循环”内存,使得超出设备容量的写入操作看起来像是成功的,从而需要费时的完全读取和比较写入的数据来检测问题。
幽灵零件
一些假冒产品是在与正品相同的制造设施上生产的;它们通常是在深夜由不法员工在未经制造商授权的情况下进行生产,且从未记录在账簿上。这些未记录的生产批次被称为幽灵班次。这就像在铸币厂,一名员工在下班后打了额外的硬币。幽灵班次的零件通常会被分配一个与合法生产批次相同的批号,但某些测试步骤被跳过。
幽灵班次通常使用正品生产过程中剩余的边角料,这些材料本该被丢弃,却在送往粉碎机途中被截获。因此,这些材料的标识和特征通常看起来完全正宗。这些假冒产品非常难以察觉。
工厂废料
工厂的次品和原型板可以通过小额贿赂从废料堆中回收,假如它们有正品标记,并重新出售为全新产品。为了避免被发现,工人们通常会将回收的废料替换成外观完全相同的虚假包装,从而使得审计废料的尝试失败。这种用虚假替代品替换可回收废料的做法,推动了“外部模仿”假货市场的形成。一个供应低质量假货的行业,能够规避本应禁止高质量假货的审计,这表明了假冒行业的复杂性和成熟度。
第二来源失败
第二来源是业界标准做法,竞争对手为热门产品创建兼容替代品,以推动价格竞争并加强供应链抵御自然灾害等事件。当劣质零件被贴上高端品牌标志时,这种做法就会变坏。
高价值但功能简单的离散模拟芯片,如电源调节器,尤其容易受到这一问题的影响。美国品牌的高端电源调节器有时价格是亚洲品牌替代品的 10 倍。然而,亚洲品牌的部件以质量参差不齐、偷工减料和参数性能差而闻名。显然,假冒者有充足的机会通过购买无标记的芯片,并用看似正品的美国品牌标记重新标记它们,从而赚取大量金钱。在某些情况下,除了对芯片进行去壳处理并比较掩模图案和横截面,就没有便宜或快速的测试方法可以检测到这些假冒产品,就像我为 ST19CF68 所做的那样。
假冒和美国军用设计
假冒方法种类繁多,再加上许多商品零部件的生产周期通常只有几年,这给像美国军方这样的机构带来了大问题,因为这些机构的设计生命周期往往以几十年为单位衡量。这就像要求某人今天使用仅有的全新部件,且不允许使用任何二手或翻新部件,来建造一块 NeXTcube*主板。我认为这是不可能的。
这种情况的不可能性有时可能导致军事承包商在使用假冒零件时变得共谋,产生不良后果。在 P-8 海神号的案例中,人们迅速将责任指向中国,但通过简单的视觉检查,可能就能发现翻新工作不当的问题。问题的部分原因可能是某个分包商在检查进货库存时疏忽了——或者可能是睁一只眼闭一只眼。如果这些零件是世界上最后一批那样的零件,那么还能做什么呢?
我的猜测是,任何二手电子产品经销商的库存中,早已充斥着未经察觉的假冒品。记住,只有那些劣质的假货才会被发现,而芯片包装并没有考虑到反假冒措施。虽然所有灰色市场的零件都值得怀疑,但这不一定是坏事。
灰色市场在电子产品生态系统中发挥着重要作用;使用灰色市场是一个经过计算的,但有时无法避免的风险。事实上,许多灰色市场的商贩非常直率地承认他们的商品是回收的。许多人甚至在摊位上张贴广告标牌,标明这一事实。然而,这些标牌是用中文写的。在这种情况下,责任应该由谁承担——卖家因为出售回收商品,还是买家因为无法读懂标牌?
反假冒措施
假冒芯片的情况混乱不堪,但一些简单的措施可以解决这一问题。
物理标识符
在批准用于军事用途的芯片中嵌入反假冒措施是一种选择。对于宽度大于 1 厘米的芯片,可以通过在芯片包装设施中相对常见的设备激光刻印唯一的二维条形码。尽管条形码的尺寸极小,但它们背后有 100%唯一性的保障。这些技术在生物技术中非常有效,例如 Matrix 2D 系统用于追踪生物实验室中一次性样本管。
另一个潜在的解决方案是将紫外线染料混入组件的环氧树脂中,使其在暴露于回流温度时改变荧光特性——回流温度是焊料熔化时的一组一致的、明确的温度。这使得在芯片第一次焊接后,无法将其重新加工成“新”状态。如果染料分布在整个封装体内,仅用表面打磨是无法去除的。
改变电子废物的处理方式
更有效地管理电子废弃物也将缓解假冒问题。电子废弃物大量收集用于二手零件。未经精细拆焊的 MSM 系列芯片——许多安卓智能手机的大脑,由高通生产并以“Snapdragon”品牌销售——按磅购买,价格约为每颗芯片 10 美分。假冒者清理这些芯片,重新焊球(即为球栅阵列封装添加新的焊球),有时还会重新标记它们,将其放入带状卷盘中,并作为全新产品出售,售价是原购价的 10 倍。一批翻新的芯片可以赚取数千美元,这使得这一做法成为熟练工人的一个有吸引力的收入来源,他们在工厂做同样的工作时每月可能只能赚 200 美元。*(工厂通常被授权回收那些无法修复的损坏板卡或消费者退货的芯片。)
如果美国停止将电子废弃物运往海外处理,或者至少在运输之前将这些零件粉碎,那么翻新芯片市场的供应将会减少。国内电子废弃物处理还将创造更多就业机会,这是一种与黄金一样宝贵的资源。
另一方面,我认为从长远来看,组件级回收对环境和人类生态系统非常有益。大多数电子零件在消费者丢弃后仍能完美工作多年,新兴经济体则创造了无法负担在主市场购买新零件的技术需求市场。
保持正品零件储备
确保关键军事硬件可信度的最终选择之一可能是建立一个零件的战略储备。军事飞机的生产批次可能只有几百个单元,相较于消费电子产品的生产批次,这是一个较小的数量。我想,某个零件的生命周期需求,包括替换品,可能仅限于几万单元。从物理上讲,零件储备并不难以管理:10,000 颗芯片可以装进一个大鞋盒里。
从财务角度来看,我估计为关键航空电子系统购买替换零件的储备,只会增加飞机成本的一小部分。这甚至可能带来长期的节省,因为制造商可以通过一次性大批量生产来实现更大的规模效益。
显然,防伪措施在民用项目中也将非常有用。我对任何必须处理假冒零件的人深感同情,因为我自己也曾多次遭遇过类似问题。这是我在处理 chumby One 时遇到的一个特别恼人的问题。
假冒的 MicroSD 卡
2009 年 12 月,在 chumby One 的生产过程中,我开始进行法医调查,试图找出一些不规则的金士顿内存卡背后的真相。工厂打电话告诉我,有一批 chumby One 的 SMT 良率大幅下降,于是我开车过去看看能做些什么来解决问题。经过一番检查后,我意识到所有出现故障的单元都使用了来自特定批次的金士顿 microSD 卡。我让工厂把整批 microSD 卡从生产线上拉下来,并重新加工那些使用了这些卡的单元。更换卡片后,良率恢复正常。
故事应该就此结束。在这种情况下,我通常会从制造商那里获得退货授权(RMA)以处理有缺陷的零件,交换掉不合格的部件,然后继续进行。但我遇到了几个问题。
首先,金士顿不会接受这些卡片,因为我们已经对其进行了编程。其次,这批卡片有很多缺陷(大约有 1000 张,而 chumby 已经深度缺货),而内存卡并不便宜。当时这种类型的内存卡大约价值 4 到 5 美元,如果我们无法更换它们,将会造成几千美元的废料。Chumby 无法忽视几千美元的损失,所以我开始进入法医模式。
可见的差异
外部标记的不规则性是我注意到的第一个可疑特征。

*不规则 microSD 卡(左)和正常卡(右)。
箭头和圆圈标出了可疑的差异。*
最奇怪的物理差异是,不规则卡片上的批次代码与主标志使用了相同的丝网印刷模板。丝网印刷批次代码并不罕见,但通常情况下,制造商不会使用相同的模板来印刷批次代码和标志。批次代码的颜色、字体或对齐方式应与其他文字有所不同。这批不规则卡片的批次代码也完全相同(N0214-001.A00LF)。通常情况下,批次代码至少会在每几百张卡片中更换一次。与之对比的是正常卡片,它们的批次代码是激光标记的。正常卡片的批次代码在每个 96 单元的托盘中都有所不同。
第二个奇怪的特征则更微妙,也许并不致命:microSD 标志上的不规则性。像金士顿这样的品牌商非常注重标志的准确性:SanDisk 的卡片有一个断开的D,但在美国销售的金士顿卡几乎都使用一个完整的D。
调查卡片
外部标记的奇异之处只是开始。当我读取两张卡片的电子卡 ID 数据时(通过检查 Linux 中的/sys条目),我发现了在不规则卡片中以下内容:
cid:41343253443247422000000960400049
csd:002600325b5a83a9e6bbff8016800095
date:00/2000
fwrev:0x0
hwrev:0x2
manfid:0x000041
name:SD2GB
oemid:0x3432
scr:0225000000000000
serial:0x00000960
而我在正常卡片中发现了以下内容:
cid:02544d5341303247049c62cae60099dd
csd:002e00325b5aa3a9ffffff800a80003b
date:09/2009
fwrev:0x4
hwrev:0x0
manfid:0x000002
name:SA02G oemid:0x544d
scr:0225800001000000
serial:0x9c62cae6
首先,注意一下不规范卡上的date码。日期是从 00/2000 开始在 CID 字段中计算的偏移量,因此 00/2000 意味着制造商没有指定日期。而且,在 2000 年,2GB 的 microSD 卡根本不存在。另外,故障卡上的序列号非常低:以十进制表示,0x960 是 2400。其他不规范批次中的卡也有类似低的序列号,通常在几百或几千之间。
对于像 microSD 卡这样流行的产品,拿到工厂生产的第一批卡的机会非常小。例如,正常卡的序列号是 0x9C62CAE6(十六进制),或者 2,623,720,166(十进制),这显然是更现实的。而非常低的序列号,像非常低的 MAC 地址,是“鬼班”的标志。
最后,不规范卡上的制造商 ID 是 0x41(ASCII 中的大写A),我没有认出来。*原始设备制造商标识(OEMID)号码是 0x3432—一个 ASCII 42,它比制造商 ID 的十六进制值大了 1。制造商 ID 通常是通过十六进制值表示的 ASCII 字符,而不是十六进制值本身。将十六进制和 ASCII 混淆可能表明有人在做不懂这些字段意义的“鬼班”工作,制作这些卡。
这些 MicroSD 卡是真的吗?
有了这些证据,Chumby 与中国的金士顿分销商和金士顿美国的销售代表进行了对质。我们问他们这些卡是否为正品,如果是的话,为什么序列号不规范。经过一段时间,金士顿发誓这些卡是真的,绝非伪造,但它确实改变了原先不换卡的立场。公司回收了那些已编程的卡,并给了我们新的卡,且没有再问任何问题。
然而,金士顿从未解释过为什么卡的 ID 号码不规范。我知道 Chumby 与诺基亚等大公司相比算不上什么大公司,但公司还是应该回答关于质量控制的基本问题,哪怕是面对小公司。我曾经无意中收到了一款过时的 Quintic 零件,一旦我证明了问题,Quintic 公司就给了我世界级的客户服务。公司详细解释了问题,并立刻为我安排了零件的全额交换。这是值得称赞的服务,我对此表示强烈推荐。反观金士顿,它并没有树立值得学习的榜样。
我通常会把金士顿排除在供应商之外,但我坚持不懈。一个知名且有历史的品牌竟然会支持如此不规则的组件,令我感到不安。谁能说 SanDisk 或三星不会做同样的事情?当时闪存厂商面临严重的价格压力,而作为小买家,我可能会被这些公司利用,把边际材料倒卖给我,以改善它们的利润。考虑到 microSD 卡的相对高成本,我需要制定来料质量控制(IQC)指导方针,依据这些标准来接受或拒绝来自内存供应商的货物。为了制定这些指导方针,我继续深入挖掘这些卡片背后的真相。
进一步的法医调查
首先,我收集了大量的样本 microSD 卡。我想收集常规的和不规则的卡片,因此我去了华强北区域,徜徉在那里的灰色市场。我从小商贩那里买了 10 张内存卡,价格从 30 到 50 元人民币(4.40 到 7.30 美元)。
购买不规则卡片的过程很有趣。在与二十多位商家的交谈中,我了解到,作为一个品牌,金士顿在中国的 microSD 卡市场较为薄弱。SanDisk 进行了更多的营销,因此 SanDisk 卡在市场上更容易找到,而且灰色市场上的 SanDisk 卡质量也相对稳定。
小型供应商也完全无所顾忌地销售精心伪造的卡片。它们将裸卡随意地放在展示柜中的托盘里。(第 11 页在第一章中有照片,展示了 SD 卡商摊的样子。)一旦我与商家商定了价格并决定购买卡片,商家就会把一张松散的卡片放进一个“真实”的金士顿零售包装中,神奇地抽出一张证书——上面有全息图、序列号以及一个kingston.com网址,可以访问以验证购买——然后就在我眼前将证书贴在零售包装的背面。

一张新购买的金士顿 microSD 卡。它看起来就像新的一样!
有一个商家特别吸引了我。摊位里竟然坐着一位妈妈、一位爸爸和一个小孩子,他们正在手机市场的一个小摊位里忙着将数十张非金士顿的卡片装进金士顿的零售包装中。他们并不想卖卡片给我,但我坚持了下来。尤其让我感兴趣的是,这张卡片上也有破损的D标志,但没有金士顿的标记。前面这张照片是卡片和它的包装,它是下一部分中的样品 4,你可以看到对我购物之旅中七种不同 microSD 卡的详细分析。
数据收集
在收集完样本后,我通过检查它们在 Linux 下的 /sys 目录信息,读取了它们的卡片 ID 信息,然后用硝酸将其封装去除(即溶解封装)。正如表 2 中的照片所示,我的去封装技术相当粗糙。卡片大部分的损坏来自用丙酮和棉签去除溶解的封装材料。我不得不稍微粗暴一些,这对连接线并没有什么好处。但对我来说,这已经足够了。
下面是我从这些卡片中提取的所有基本信息:
样本 1 这张不规则卡片是引发整个调查的起点。它是通过中国一家经批准的金士顿代理商购买的,据我所知,没有一张是发给 Chumby 最终用户的。MID = 0x000041, OEMID = 0x3432, 序列号 = 0x960, 名称 = SD2GB。
样本 2 一张我从与样本 1 相同的金士顿代理商购买的正常卡片。这是第一批 Chumby One 实际发货的 microSD 卡的典型代表。MID = 0x000002, OEMID = 0x544D, 序列号 = 0x9C62CAE6, 名称 = SA02G。
样本 3 一张通过美国大型零售商购买的金士顿卡。MID = 0x000002, OEMID = 0x544D, 序列号 = xA6EDFA97, 名称 = SD02G。注意,样本 3 的 MID 和 OEMID 与样本 2 相同,但与样本 1 不同。
样本 4 一张非金士顿卡,看到它被塞进金士顿标志的包装中,是在深圳市场上购买的。MID = 0x000012, OEMID = 0x3456, 序列号 = 0x253, 名称 = MS。注意其较低的序列号。
样本 5 一款来自深圳市场更有信誉零售商的设备。我购买它是因为它有类似我原始不规则卡片的 XXX.A00LF 标记。MID = 0x000027, OEMID = 0x5048, 序列号 = 0x7CA01E9C, 名称 = SD2GB。
样本 6 一张从市场上不太可靠的商店购买的 SanDisk 卡,商店老板是一个抽烟不停、总是发短信的女孩。事实上,我从不同的可疑来源买了三张 SanDisk 卡,但它们的 CID 信息都一样,所以我只打开了其中一张。MID = 0x000003, OEMID = 0x5344, 序列号 = 0x114E933D, 名称 = SU02G。
样本 7 一张我从三星批发代理商那里购买的三星卡。去封装前我并没有扫描这张卡,这张卡外面实际上没有任何标记(它是空白的,背面只有一个激光刻印),所以我没有拍照。单从外观来看,它是最可疑的那张,但它的做工却是最好的。你不能只凭外表判断一本书!MID = 0x00001B, OEMID = 0x534D, 序列号 = 0xB1FE8A54, 名称 = 00000。
这些数据量很大,我需要花费不少功夫才能从中得出有用的结论。
注意
有趣的是,样本 6 中的三张 SanDisk 卡中的一张被发现是二手卡,只经过了快速格式化。在一些恢复软件的帮助下,我找到了属于 Navione Careland GPS 的 DLL 文件、WAV 文件、地图文件和 VeriSign 证书。总有一天,我会收集大量翻新的 microSD 卡并从中收集有趣的数据。
表 2: 调查中收集的所有卡片的详细分类

总结我的发现
以下是我从调查中得出的最有趣的高层结论:
• “普通”金士顿卡(样本 2 和 3)由 Toshiba 制造,通过闪存芯片标记和 OEMID 可确认这一点。在 ASCII 中,0x544D 是TM,很可能代表Toshiba Memory。这些卡片使用 Toshiba 的控制器和内存芯片,质量似乎不错。幸运的是,这些卡片仅限于发送给 Chumby 客户。
• 这张不规则卡(样本 1)使用了与我在市场上购买的完全假冒的卡(样本 4)相同的控制芯片。不规则的金士顿卡和假冒金士顿卡都具有低序列号和奇怪的 ID 信息。在某些情况下,这两张卡都表现出了异常操作。我仍然犹豫是否称金士顿的不规则卡为假卡,因为这是一个非常强烈的指控,但它的结构与另一张明显质量可疑的卡相似,这让我对金士顿选择授权制造商产生了疑问。
• 这张不规则卡是该组唯一没有使用堆叠 CSP 结构的卡。相反,它采用了并排封装——即微控制器和内存芯片仅简单地并排放置。堆叠 CSP 将微控制器放在内存芯片的顶部。这比并排放置复杂得多,因为芯片必须先去除其惰性背面材料,以使堆叠的整体高度适应如此纤薄的封装。尽管如此,堆叠芯片仍然很受欢迎,因为它允许厂商将更多的硅晶体放入同一占地面积中。
• 该样本组中发现的两家内存芯片制造厂分别是 Toshiba/SanDisk 和三星。(SanDisk 和 Toshiba 共同拥有生产内存芯片的工厂。)
• 三星的 NAND 闪存芯片是 microSD 卡中最昂贵的部分,其面积比 Toshiba/SanDisk 的芯片大约大 17%。这意味着三星的 microSD 卡应该比 Toshiba/SanDisk 的卡自然贵一点。然而,三星可以通过将原本通常被压缩进 microSD 卡包装内的裸闪存芯片,转而放置到适合板级机器组装的薄型小外形封装(TSOP)中,从而抵消这一差价。如果 microSD 卡的需求下滑,三星可以将多余的裸闪存芯片放入 TSOP 封装中并将其出售给进行常规机器组装的第三方。此外,三星也不像金士顿那样有中介来削弱利润。
我知道(像许多制造业人士一样)金士顿并不是一家半导体制造商,因为它没有自己的制造设施,但这项研究暗示金士顿没有自己的原创设计。我本希望至少能在金士顿卡中找到一个金士顿品牌的控制芯片,即使该芯片是由代工厂制造的。我还期望看到金士顿从更多种类的公司采购内存芯片。能够*衡供应链,并且不依赖于单一的大型竞争对手采购芯片,将是对客户的重大附加值,这可以为金士顿提供谈判更好价格的杠杆,这是其他公司难以做到的。但我购买的每一张金士顿卡里都装有 SanDisk/Toshiba 的内存芯片。我看到的唯一“附加值”就是控制芯片的选择。
奇怪的是,在所有厂商中,金士顿提供了最好的交货时间和价格,尽管 SanDisk 和三星都在生产自己的硅芯片,因此它们的成本本应较低。这告诉我,金士顿的 microSD 卡可能利润非常低,这也许能解释为什么不规则卡会进入它的供应链。金士顿可能也更愿意与像 Chumby 这样的较小客户合作,因为作为一个渠道品牌,金士顿无法与 SanDisk 或三星这样的 OEM 厂商竞争,争夺来自诺基亚和苹果等大客户的大合同。
因此,我从 Chumby One 生产线中提取的那个不规则 microSD 卡可能并非假冒伪劣产品,但它仍然是中国市场中改标生态系统的产物。金士顿更像是一个渠道商,而不是一个技术提供商,可能被 SanDisk 和 Toshiba 视为其生产产出的需求缓冲区。我也不会感到惊讶,如果 SanDisk/Toshiba 将不完美的零件卖给金士顿,把最好的部分保留给自己。因此,我预计金士顿的卡片可能会有稍微更多的坏道,但由于错误修正和备用道的魔力,这一事实对最终用户是隐藏的。
因此,金士顿在稳定 microSD 卡价格和提高晶圆厂利润方面发挥着重要作用。但是,这种潜在的利益冲突似乎非常惊人,我仍然对这个生态系统是如何形成的感到非常好奇。从竞争对手的晶圆厂购买大量竞争对手的技术,却依然以有竞争力的价格销售,这对我来说是反直觉的,也许我在调查那个不规则 microSD 卡时最大的错误就是期待不同的结果。
假冒 FPGA
在中国做过一段时间制造业的人,都会有不止一个关于供应链不规范的故事。这是我最喜欢的另一个故事,它突显了驱使代理商作弊的一些核心动机。
白屏问题
这是 2013 年 3 月,我正在完成名为 Kovan 的定制机器人控制板的第一批生产运行。*在每次生产运行结束时,我都会回顾生产过程中遇到的问题,以识别改进的领域。制造是向完美迈进的辛勤努力:每次生产总有一些单元是必须报废的,而盈利和亏损的差距取决于你如何管理报废率。
在这次运行中,一个特别的问题,因其最明显的症状被称为“白屏问题”,是主要问题。大约 4%的总运行中出现了这个问题,占单位故障的* 80%。我让工厂给我寄来了一些故障单元的样本,以便进行更详细的分析。
正如我在分析故障单元时常常发现的那样,问题的最明显症状与根本原因只有间接关系。这些单元的 LCD 屏幕显示为白色,是因为 FPGA 未能配置。FPGA,全称为现场可编程门阵列,本质上是一个嵌入在密集电路网络中的逻辑和存储设备块,可以在运行时进行配置,以表现特定的行为。FPGA 的行为通常使用类似于编程语言 C(例如 Verilog)或 Ada(如 VHDL)的高级语言描述,然后被编译成配置比特流。
FPGA 非常适合实现那些软件难以模拟的时间敏感硬件接口。在这个特定的应用中,FPGA 控制了从电机到传感器,甚至是 LCD 屏幕的所有内容。当 FPGA 未能配置时,LCD 没有接收到同步和数据信号,导致它显示一个空白的白色屏幕,而不是预期的工厂测试图案。
FPGA 故障是一个大问题。首先,FPGA 是板上最贵的部分,单芯片价格大约为 11 美元。我也担心这个问题可能指向一个更深层次的设计问题。也许 FPGA 的电源调节器不稳定,或者可能是启动序列存在问题,导致配置时序出现极端情况,随着“良品”生产单位的老化,这个问题可能会显现出来。这种情况肯定需要更深入的调查。
错误的 ID 代码
我连接了调试控制台,深入分析问题,发现故障与 FPGA 未能正确响应 ID 代码有关。ID 代码是通过一种称为JTAG的测试访问总线查询的。大多数用户在编程前不会检查 FPGA 的 ID,但我们在 Kovan 中设计了 ID 代码检查功能,因为我们允许客户指定他们希望在特定生产批次中使用的 FPGA 容量。一些应用对性能要求更高,而其他应用则更加注重成本。因此,客户可能拥有混合的 FPGA 库存,我们希望能够检测并保护硬件免受位流与 FPGA 之间不匹配的影响。
但这是一个单一的生产批次,理论上所有的 FPGA 应该是相同的。那么,FPGA 怎么可能报告出一个不匹配的 ID 代码呢?我思考了一会儿,怀疑是我们的 JTAG 实现存在 bug,直到我查看了报告的 ID 代码。那是一个已知的代码——但它是针对 Xilinx 标记为“工程样品”的硅片。工程样品是 Xilinx 销售的预生产单元,虽然有一些已知的小 bug,但对于大多数应用来说,功能足够,甚至大多数客户不会察觉任何区别,除了ID 代码。
我仔细查看了 PCB,并第一次注意到在 FPGA 的表面上有一个小的白色矩形被激光蚀刻。这个矩形正好位于部件编号下方,通常会标有“ES”字样,表示工程样品。有人把这些字母去掉,并将工程样品当作正式生产单元卖给了我们!

Kovan 板上的工程样品 FPGA

相比之下,一个未经篡改的同类型 FPGA
问题显然是一个供应链问题,而不是设计问题。供应链中的某个人把 ES 硅片拿走,去掉字母,并将它们以大约 3%到 5%的比例混入合法单元中。通常情况下,Xilinx 会要求一旦生产单元可用,分销商库存中的所有 ES 硅片都应销毁,但这些 ES 单元几乎完全功能正常,以至于大多数应用不会受到影响。一个生产位流可以无缝加载到 ES 部件中,任何人都不会察觉到区别。唯一区分它们的方法就是通过进行 ID 代码检查,而这,正如我之前提到的,并不常见。
因此,将 ES 硅片投入生产批次可能不会被察觉。以 3%到 5%的比例混入 ES 零件也非常聪明:低比例的混入使得没有 100%预筛选零件的情况下,很难发现替代品。即便是在生产过程中,如果 ES 硅片的质量边际,根本原因也会因为其稀缺性而变得极其难以查明。
事实上,制造难度和使用 FPGA 之间是有一定关联的。通常,如果你的设计需要使用 FPGA,那就意味着你在多个方面都在突破极限,所以几%的废品率是可以预期的。基于 FPGA 的硬件利润通常也足够高,以至于 4%的故障率可能会被最终客户接受。因此,做出这种决策的人完全知道自己在做什么;这几乎是无风险的赚钱机会。
最后,值得注意的是,供应链中的大多数供应商依靠单一的微薄利润生存,所以在一块板子上找到额外的 3 到 5%的“空闲资金”几乎可以让盈利翻倍。这为作弊提供了强大的动力,尤其是当你认为自己不会被抓住时。
解决方案
这个问题的解决过程非常有趣。我和负责生产 Kovan 的 CM 公司 AQS 的经理和 CEO 见面,向他们简要介绍了问题,并展示了我积累的证据。当我的演示结束时,CEO 并没有指责上游供应商或合作伙伴。相反,他立即直视员工的眼睛,问道:“你们当中有谁做了这个?”他比在场的任何人都更清楚,如果某个买家或经理能够在不被发现的情况下作弊,他们本月的收入几乎会翻倍。
换句话说,这个情况的真正值得注意的部分是,考虑到风险和这些问题有多难以发现,我所经历的问题其实非常少见。而虽然我确实有一些关于供应链假货的趣闻可以分享,但请记住,我也曾发运过成千上万件合格的产品。我在中国合作过的大多数人都是勤奋、诚实的人,他们会放弃轻松的作弊机会,以获得正当的利润。重要的是,不要因为少数人的不当行为就对整体情况做出过度泛化。
说到底,卖给我们芯片的供应商并没有承认责任,但他们确实自费更换了所有被标记过的单元。(我们仍然需要支付更换芯片和重新认证电路板的人工费用。)在中国,像我们这样的小客户要达成友好的解决方案几乎只能做到这一点,除非你像苹果或富士康那样是巨头。我确实向赛灵思总部报告了他们授权供应商可能的不当行为,但最终,我是一个小客户,零件的替换可能在供应链的任何环节发生。甚至是送货的快递员也有可能做了更换。
对赛灵思来说,投入人力、关系和精力去调查这个问题并揭露数百个嫌疑人中的一个坏分子并不值得。但我想象,至少应该有一份备忘录在内部流传,而那个替换 ES 部件的人因为害怕被抓住,最终停止了这一行为。
结语
归根结底,一个宽容的知识产权生态系统有利有弊。作为一名工程师和设计师,我更喜欢处在一个创意可以自由获取的生态系统中,即使这意味着我必须警惕偶尔会遇到假货问题。换句话说,病毒式传播的一个基本前提是能够复制。硬件创业公司兴趣的爆发,部分得益于只有在重视产品而非专利的文化中才能繁荣的高度竞争制造生态系统。
来到中国的西方人,如果不了解公开和关系的原则^**,往往会觉得自己被欺骗。但一旦你了解这些规则,并学会如何利用它们来推动自己的利益,你就不会觉得游戏是对你不利的了。
在美国的知识产权体系中,荣誉几乎没有经济价值,法律凌驾于荣誉之上。例如,专利钓鱼是一种完全合法且非常有利可图的谋生方式。然而,在中国的体系中,声誉可以凌驾于法律之上。这为腐败打开了大门,但也让社会和道德价值观的执行得以众包,推动了荣誉的市场价值,尤其是在地方性、紧密联系的社区中。
当然,通过封锁创意并出售其权利来赚钱的方式显然与一个宽容的知识产权生态系统不相容。幸运的是,创意是社区财产的概念与我的开源哲学相契合。在本书的下一部分,我将更多地讲述我在创建开源硬件和建立根植于这些原则的企业方面的经验。
第三部分
开放硬件对我来说意味着什么
在开放硬件出现之前,硬件本身就是开放的。
一张黄色的、破旧的纸张挂在我的显示器旁——那是 Apple II 计算机的电路图——每天都在提醒我这一事实。当我还是个孩子时拿到这张电路图,它成为了我一生的蓝图。我当时看不懂电路图,但那并不重要;它教会了我硬件是可以了解的。它让我有能力理解我的世界,并掌握我依赖的技术。这个赋能一直推动着我,直到今天。
当 Apple II 被创造出来时,开源法律原则仍处于萌芽阶段,因此,虽然任何人都可以阅读这张电路图,但它并没有开源许可证。它仅显示了专利号 4,136,359。那时,人们只是分享想法——直到带着律师的投资者出现,悲剧性地破坏了公共资源。软件社区用同样的工具来捍卫自己:主要是版权法。
版权法最初适用于文学和艺术作品。如今,它也适用于计算机代码,因为,像文学和艺术一样,代码是一种表现性语言。就像你可以为大峡谷的画作申请版权,但不能为大峡谷本身申请版权一样,你可以为 C 语言中的 Quicksort 实现申请版权,但不能为 Quicksort 本身申请版权。为了确保源代码可以自由共享,软件社区创建了开源许可证。这些许可证从版权反向(也就是说,开放带来开放)协议,比如 GNU 通用公共许可证(GPL),到更宽松的协议,比如伯克利软件分发许可证(BSD),这些协议的基本内容是“给我署名,不起诉我,其他的随你便”。
硬件蓝图也可以受到版权保护,但蓝图是功能性的,因此定义“开放硬件”要更复杂。几乎每一件硬件都会附带电路图。然而,随着时间的推移,用户在不破坏保修的情况下自行修理硬件变得几乎不可能。现在的设备充满了商业机密。这一变化在人为地制造了封闭硬件与开放硬件之间的区别。我之所以说“人为”,是因为虽然软件可以通过加密算法进行加密,强到你得建造一个行星大小的计算机才能破解,但只要有足够强大的显微镜和处理这些图像的软件,你就能将任何硬件设计还原成电路图。
网络上充斥着许多出于良好意图但却错误的尝试,将以软件为中心的开放版权许可应用于硬件。但在硬件上使用软件许可证,就像为公司合并申请结婚证一样:虽然许可证传达了作者的意图,但实际上可能并没有任何作用。例如,GPL 的文本中一次都没有提到硬件,这意味着法院可能会裁定 GPL 不适用于硬件。
一些针对硬件的特定开源许可证已被创建,以帮助解决这个问题(CERN OHL 是一个不错的类 copyleft 风格硬件许可证),但社区对硬件要开放到什么程度才能被认为是开源的问题存在分歧。例如,如果我分享我用闭源工具设计的板子的原理图,很多人会认为这个设计不算开源。但即便我使用符合自由开源软件(F/OSS)标准的原理图捕捉和布局工具来设计板子,那它使用的硅芯片设计或烧录到硅片中的固件怎么办?我们是否需要看到用来将掺杂物射入硅片的粒子加速器的蓝图?用于刻蚀硅生产掩膜的机器呢?问题层层叠加。硬件不能完全开源,因为在某个阶段,创意必须转化为物质,而用于转化和塑造物质的对象很少对社区开放。
然而,针对开源硬件也有更加务实的方法,而不是做电子显微镜检查或要求开放硅厂。仅仅在某一抽象层级上共享蓝图,所需的努力要小得多,更直观,而且仍然能带来积极的效果。我在前面章节中提到的山寨式灰色市场开源(gongkai)就是通过这种共享获得了好处。在中国,蓝图会公开分享,但通常是以可疑的条款。大多数设计仍然标有“机密”或“专有”版权声明,山寨商们用盗版的专业闭源设计软件来创造衍生作品。但最终,这种自由放任的开放创造了一个生态系统,成百上千的小公司通过修理或制造手机谋生。走在深圳的电子市场中,我意识到制造一部手机并不难也不恐怖。只是山寨之外的社区,由于严格的知识产权法律,通常没有动力去探索盒子里的东西。
在第二部分探讨的公开生态系统中,知识产权和物理资产几乎同等重要。没有供应链的原理图是没有用的:你不能通过一张电话的蓝图打电话。同样,如果没有产品使用它们的芯片,芯片制造商也无法开展业务。因此,硬件创造者有着天然的动力去分享信息,特别是设计某个模块或芯片成为更大系统的一部分所需的信息。让客户采用特定芯片的设计 IP 几乎可以确保该客户在准备大规模生产时会购买相同的芯片。IP 和供应链之间的这种*衡在以 IP 为中心的西方生态系统中很难实现,因为在这些生态系统中,创意的价值远高于工厂的价值。这也许可以部分解释为什么那么多制造业岗位流向了中国——一个在产品生产和背后创意之间更具*衡的生态系统。
我乐观地认为,随着持续的努力、日益增长的公众意识和适当的经济条件,全球的硬件生态系统最终会产生一个开放的硅片代工厂。然而,在此之前,“开放硬件”必须是一个更务实的概念,受限于某些抽象层级的存在。毕竟,能够分享蓝图(即使许可证不完美且格式不容易编辑)也会极大地推动创新。山寨产品就是最好的活生生的证明。
无论是公开还是开源,开放硬件的核心是赋予用户掌控自己技术的能力,而不是关于任何特定的法律安排。管它三七二十一,全速前进!学习、尝试和改进技术的自由对我来说是如此根本,以至于我视其为基本人权。如果自由不被行使,它就会萎缩,这也是为什么我积极捍卫这一自由。我公开分享我的工作,希望能够赋能他人,并提高人们对技术可知性的意识。我们不是计算机或那些构建它们的公司的奴隶。
我还挑战那些立法和法律上的尝试,旨在限制我们的自由。我出生在一个没有 DMCA 的世界;我希望通过确保每个人都有权理解、修理和修改他们所拥有的事物,将世界留给后代时保持类似的状态。随着我们对技术的依赖日益增加,这一点变得比以往任何时候都更为重要。如果我们允许技术变成一个黑匣子,那么我们也就将我们的主权交给了生产和监管这些技术的公司和政府。
本书的这一部分描述了我如何构建三个开源硬件*台:chumby、Novena 和 chibitronics。我希望通过阅读我的故事,你们也能意识到硬件是可以了解的,并通过这份知识获得力量。
第六章:6. chumby 的故事
我最早的开源硬件项目之一是 chumby,这是一款支持 Wi-Fi 的内容传输设备,2007 年它带我去中国建立了我的第一个供应链。* 从事 chumby 项目让我个人感到兴奋有两个原因。首先,我有机会构建一款能够以某种方式改善人们生活的产品。对于那些依赖 IM 保持联系、随时在线、随时连接的用户来说,chumby 能够帮助他们更轻松地进行这些连接。同时,chumby 也是我创造一个真正开放*台的机会,它让黑客能够随心所欲地改动和修改设备。
一个适合黑客的*台
黑客有着强烈的愿望去扩展、修改、定制和滥用消费产品,以发现其未预见的功能。在 Chumby,我们希望黑客们能够了解设备的工作原理,并将其转变为我们从未想过的用途,因此我们将 chumby 设计得尽可能开放,欢迎任何想要进行黑客行为的人。我们不仅考虑了开源软件黑客,还考虑了硬件黑客、艺术家和工匠——即那些擅长并热衷于非计算机领域的技能的人,比如金属加工、缝纫或木工。为了鼓励并支持 chumby 黑客,我们将源代码、原理图、板布局、材料清单、*面图案和塑料部件的 3D CAD 数据库免费提供。你仍然可以在 chumby wiki 上找到这些资料 (wiki.chumby.com/).

原始的软体 chumby
这个想法是让黑客摆脱对难以理解硬件的点对点解决方案,转而进行可以与几乎任何人共享的黑客行为。例如,想象你为 chumby 加上一个血压计,并把它交给你的祖母。现在,你可以检查祖母的健康状况,她也可以在测量血压时观看孙子孙女的照片。但如果换成 WRT-54G 路由器而不是 chumby 呢?当然,你也可以为 WRT-54G 加上血压计(事实上,从结构上看,它与 chumby 非常相似),但试着教祖母如何设置和使用它。换句话说,我们认为将 chumby 设计成一个简单的产品,能够让黑客的创意更易于使用,并且更容易为他们身边不太懂技术的人所理解。
让 chumby 开放也给黑客带来了其他好处。这一次,假设你的恒温器离你实际想调节温度的地方有些远。你可以通过在 chumby 上添加一个温度传感器,在一个周末就解决这个问题。Chumby *台有 Wi-Fi,而且我为该设备构建了一个黑客传感器包,所以这个项目所需的硬件工作量非常小:你只需要改装两个 chumby(一个加上温度传感器,另一个加上恒温器接口)并启用这两个设备上的传感器包。这样的设备不仅能帮助你将客厅的温度调节到合适的水*,还能告诉你最新的新闻并帮助你追踪你最喜欢的电视节目。
最令人满意的是,你还可以自由发布你的修改版,甚至转售那些具备自定义功能的改装 chumby。其他人可以受益于你的作品,而你也可以赚些钱。(轻松一点说,原版 chumby 的外壳是由布料制成的,所以你甚至可以将其改装成符合你家装风格的样子!)
原始的 chumby 设计,现在被称为 chumby classic,首次亮相于 2006 年的 FOO Camp,并于 2008 年开始销售。不幸的是,chumby classic 在全球经济自大萧条以来最严重的衰退时期正式发布。它那可爱、亲切的外形和定价让许多消费者难以接受,因此我做了任何一个企业家在经济衰退中会做的事:我缩减了规模。
演变中的 Chumby
在 2008 年雷曼兄弟申请 第十一章破产保护后不久,我们开始开发一款可以应对新经济现实的产品。当我为这款产品(我们后来称之为 chumby One)绘制第一张餐巾纸草图时,股市正在急剧下跌,每天损失几百点。鉴于这种情况,关键目标就是降低成本。我仔细审视了整个设计,力求打造一款更便宜、更快的产品,以便更好地适应市场。我们希望 chumby One 能赢得新客户,同时保持现有客户的忠诚,并计划在 2009 年圣诞节前推出。
幸运的是,Freescale(后来被 NXP 收购)的一位应用工程师联系了我,告诉我他们计划在 2009 年推出一款新型、价格非常实惠的 CPU(i.MX233)。这款 CPU 看起来非常适合 chumby,所以我做了一些初步的设计草图并进行了成本分析。在 2009 年 1 月的 CES 展会上,我们与一些潜在客户分享了新的设计,获取他们对功能和定价的反馈。这个构想慢慢推进,到三月后,我完成了第一个原型板。
注意
i.MX233 的一个非常酷的特点是它内嵌了电源调节器,而这些调节器不仅仅是线性调节器:它们是开关调节器。但它们不仅仅是普通的开关调节器;它们只用一个电感就能生成三种电压!这有多酷?我必须要为设计这个系统的那个人点赞。
大约在五月,我们聘请了一位工业设计师来做一些草图,到六月时,我们有了接*最终的工业设计。那时我们做出了第一批 3D 打印原型,但我们负担不起机械工程承包商。我必须学习 SolidWorks,并亲自进行 3D 原型的机械集成。因为我喜欢学习新东西,这段经历非常有意义。
在七月,我们签订了钢铁工具采购订单,到八月,我们有了首批塑料件。九月我花时间优化和调试设计,十月则是进行更多测试、精细调整和加速大规模生产。到 2009 年 11 月,第一批 chumby One 已经飞行了 35,000 英尺,正飞往洛杉矶国际机场。

完成的 chumby One
chumby One 的零售价格大约是 chumby classic 的一半,而且它有更多的功能,比如 FM 收音机和支持可充电锂离子电池,这是 squishy 和皮革材质的 chumby classic 用户常常要求的功能。对于 chumby One 中电池的初步反应是一个有趣的消费者心理学研究。出于某种原因,尽管 chumby One 比 chumby classic 更小更轻,而且做的事情完全一样,人们并不认为它应该配有可充电电池。他们并没有内在的欲望去拿起 chumby One 并随身携带。这恰好说明了外形因素如何影响消费者对功能的认知!
无论如何,客户当然喜欢所有这些选项,但对我来说,它们并不是最重要的新特性。
更具可黑客性的设备
让我真正兴奋的是,chumby One 比 chumby classic 更容易被黑客攻击。在 chumby classic 上,我们使用了焊接的 SLC NAND 芯片,这虽然成本较低,但让开发变得相当复杂。开发者直接面对 NAND 闪存的所有缺陷,包括坏块和错误校正,如果系统无法正确启动,也几乎没有恢复的选项。我们在 chumby One 上通过将固件存储在 microSD 卡中来解决了这些问题。
如果你恰好拿到了一个 chumby One,你会注意到你无法从外部更换 microSD 卡。我们做出这个选择是为了防止非黑客用户随意拔出 microSD 卡并疑惑为什么设备无法启动。但如果你拆下背面面板(不像 chumby classic 那样有胶封条),microSD 卡是很容易接触到的。得益于这个关键的变化,黑客们不再需要担心会把他们的 chumby 刷成砖块。如果有人搞砸了固件,他们只需拔出 microSD 卡,将其挂载到开发设备上,然后写入新的镜像。
我们还选择将 chumby One 的 microSD 卡设为管理式NAND 设备,这样我们就可以直接将 ext3(一个流行的默认 Linux 文件系统配置)安装到上面。根分区在出厂时仍然被挂载为只读,以防止意外损坏,但管理式 NAND 系统使得将根分区重新挂载为读写并修改 Linux 系统变得非常简单。我们有意将操作系统镜像仅使用 microSD 卡总容量的一小部分,留给黑客超过一 GB 的额外空间来加载自定义应用和库。(记住,在当时,一 GB 可是个大数字。)
在硬件上,对黑客有利的同样也对开发者有利。我们为黑客添加的灵活性使我们能够为操作系统增加大量优秀的功能。例如,chumby One 支持某些 3G 调制解调器,并且能够通过这些 3G 调制解调器作为接入点提供 Wi-Fi 服务。这基本上让该设备成为一个 3G 到 Wi-Fi 的路由器,我在旅行时发现它非常有用,可以为其他设备创建 Wi-Fi 热点。我们最初没有在主流用户层面展示这个功能,但我们知道,只要人们喜欢,它(或者任何人—毕竟这是一个开放项目)可以被包装成一个图形用户界面,变得更易于使用。而且,如果你将 USB 键盘插入 chumby One,它会自动打开一个控制台外壳,你可以在其中输入命令。这在你无法通过 SSH 连接时非常有用,比如在调试网络脚本时。
没有秘密的硬件
与 chumby 经典版一样,我们也尽可能让 chumby One 的设计保持开放。我们在线发布了原理图、Gerber 文件和 GPL 源代码。在下图中,你可以看到一块预生产的试生产 chumby One 主板。量产主板基本相同,只是在某些地方做了小的调整,以增强与我们在中国使用的 SMT 机器的兼容性。
特别注意在主板背面的照片中,位于左下角的标有SETEC ASTRONOMY的那对测试点。你可以利用这些测试点绕过 chumby One 的认证 ROM 的写保护,抹去 Chumby 用来验证设备的密钥。我想不出真正的理由去这么做,但我添加它们的原则是,硬件是你拥有的,应该不会对你保留任何秘密。如果你不喜欢设备上有加密访问代码,你应该能够将它们清除。对于 chumby One 来说,这意味着你将不再有从 Chumby 的服务器获取小部件的代码,但嘿,那是你的硬件。硬件真正属于你时,你可以放弃保修,随心所欲地使用它。当然,我们也公开了 chumby One 用于获取小部件的安全协议。
我还设计了 Chumby One 主板,并加入了安装孔和功能,使其可以重新装入 Chumby 经典款中。虽然 Chumby 从未计划将 Chumby One 主板放入 Chumby 经典款的外壳——手工缝制的意大利皮革实在太贵了,而且集成上也有几个技术问题——但我认为勇敢的黑客们会欣赏自己动手做这个的机会。

Chumby One 主板(背面)

Chumby One 主板(正面)
我继续在 Chumby 系列上工作了好几年,但最终,我希望能有更多时间投入个人项目,并暂时休息一下,远离创业。
CHUMBY 的终结,新的冒险
2012 年 4 月,Chumby 作为全球所知的品牌走到了尽头。我们已经没钱了,而投资者也没有耐心了。我早在 1 月就已经悄悄离开公司;我有过一段不错的经历,但也到了该离开的时候。听到这个消息后,我的好朋友 Phil Torrone,来自Make:,联系了我并要求进行采访,我很高兴答应了他。你可以在网上阅读完整的采访,*,但我在这里摘录了其中的一些部分,如果你对进入硬件行业感兴趣,可能会觉得有用。
Phil:你是怎么加入 Chumby 的?你在公司里负责什么工作?
bunnie:我最初是公司顾问,负责解决一些硬件战略方面的问题。我们每周都会聚餐,讨论产品可能的方向。最终,我对这个产品越来越感兴趣,便在空闲时间自己动手做了一个初步的原型主板。大约在同一时间,我之前公司里的老板开始让我很烦(他批评我每天早上 9 点前必须坐在办公室,完全忽视了我前一天工作到午夜的事实),所以我当场辞职,加入了 Chumby 的创始团队。
我在公司的角色最初是硬件副总裁,听起来很高大上。但当硬件团队只有一个人的时候,你其实也是焊接工和清洁工。现在回想起来,团队真的是在给我很大的机会。当时我没有供应链管理的经验,也从未去过中国。他们冒了很大的风险,把机会交给了我,让我去搞清楚一切。我真的很感激他们给了我那么多在工作中学习的空间。
Phil:制作 Chumby 过程中最棒的部分是什么?
bunnie:制作 Chumby 有很多很棒的地方。我认为最棒的一点是,我必须从构想到分销的整个过程中都自己搞清楚。这意味着我能够亲身体验到每一个环节:工业设计、电子设计、工具制造、供应链、零售和逆向物流。一个产品涉及的环节非常多,而满足对如何制造产品的好奇心是一件很棒的事。
另外,我非常珍惜制作 Chumby 时遇到的所有精彩人物。我结交了很多朋友,也有许多优秀的导师。
最后,我认为制作 Chumby 最棒的部分并不是制作过程本身,而是看到人们使用它,看到人们享受和欣赏这款设备。用户脸上的微笑是最终的奖励。
Phil: 你能谈谈从头到尾制作一款设备的过程吗,从创意到工厂,再到零售货架?
bunnie: 从头到尾制作一款设备的最好部分之一就是,你有一整套完全不受限制的工具来解决眼前的问题。你可以通过电路板布局来解决商业问题,反之亦然。例如,曾经有一个问题,我们如何才能独特且灵活地为设备进行品牌定制,允许更换面板(也就是说,安装 NFL 面板就能看到你的足球比分,安装彭博面板就能看到金融新闻,等等)。这个话题可能需要开几十次会议才能解决。但作为唯一的硬件工程师,我知道嵌入一个 EEPROM 仅需$0.20,而当其他人还在会议中讨论可能的解决方案时,我启动了我的电路板设计工具,添加了一个八脚 EEPROM 到电路板上,放上一个合适的连接器,等到行动项分配时,我已经完成了整个解决方案。实际上,花费我更多时间的是说服他们工作已经完成,而不是实际做这项工作。
我觉得我最终吸收了从头到尾构建产品所需的许多技能,因为沟通需求非常困难。问题总是是否自己做会更快,还是解释给别人听,让他们做,然后可能还得重新解释并让他们修改。这就是我学习机械设计的原因之一;工业设计和塑料模具制作是许多消费品中的“长杆”,能与机械工程团队高效且有效地沟通,使用他们的语言,对于完成工作非常重要。
Phil: 零售销售面临的挑战是什么?
bunnie: 零售和分销是最困难的挑战。以下是我遇到的一些困难:
与商家买手打交道。实体零售商雇佣了专门的买手团队来优化货架空间的盈利。他们通过每单位货架空间的收入来思考产品,而他们并不太关注其他方面。这使得你想要对产品进行改进而导致成本上升时,问题变得尤为突出。商家往往把你的产品看作是若干克的塑料和若干根电线。他们将这些数据与原材料的商品价格相乘,从而设定他们会为把产品放到货架上支付多少费用。虽然有可能谈出更好的协议,但教育商家理解你产品的价值需要付出大量的努力。不幸的是,商家的员工流动性较大,所以你可能会花费数月时间达成协议,却发现与你合作的人已经离开了公司。
利润。供应链中的每个环节都有自己的分成:分销商、商家和工厂。除此之外,市场开发资金和其他一些“灰色”资金也需要考虑进去。归根结底,产品的上架成本大约是你的 BOM(物料清单)成本的三倍。这意味着增加一个$0.50 的零件将导致零售价格增加$1.50。
这种情况因为价格被量化为“魔法”数字(如$19.99、$49.99 或$99.99)而变得更加复杂,你必须瞄准这些价格区间。你不可能把一款产品定价为$127.45。如果产品的零售价格超过$99,它就会在心理上与$149 或$199 的产品归为同一类别。当你的产品 BOM 成本接*这些量化点时,你将会进行许多深思熟虑的权衡,考虑是否值得花$0.50 去提升,比如改进扬声器。要么这一小笔成本将来自你自己的利润,要么你就有可能把产品推向更高的价格区间。
现金流。零售商在按时付款方面口碑不好。你可能谈好了 60 天付款条件,但常常在 90 天甚至 120 天后才收到款项。如果你的产品没有卖完,零售商必须向你下新订单(此时你有一定的筹码来收回未付的款项),你可能就会被拖延。这可以通过金融工具(如保理保险)部分缓解。保险公司会为任何事情提供保险,包括防止零售商未按时付款或在付款前破产的保险。
逆向物流与退货。 许多零售商提供不问原因的退货保证。这对顾客来说是好事,但猜猜谁来处理这些退货?零售商把责任推回给了企业家!这也是支付周期可能很糟糕的原因之一:零售商需要保留现金,以便在顾客退货时退款。一旦退货处理完毕,你就得想办法将退回的物品从他们的码头取走,送到一个可以翻新的地方。通常,大部分退回的商品并不是有缺陷的。它们只是没有达到顾客的预期,或者顾客在冲动购买后产生了购买后悔心理。那些其他方面正常的商品通常缺少配件或者外观有损伤,因此需要进行大量的返工和翻新。
合同。 零售商会给你一份默认合同,里面充满了几乎在任何情况下都非常偏向他们的条款。有时候,合同中甚至可能让你承担一些无法预见的责任。例如,我见过这样的条款:如果一个关联的内容网站停机超过指定时间,那么你可能会因为零售商销售你产品时品牌声誉受损而承担责任。这种开放性责任是不可接受的,谈判这些条款可能需要几个月时间。其他苛刻的条款包括迟延发货的罚款或因产品有缺陷而被罚款。合同谈判过程会非常分散高层管理的精力,可能会对组织带来实际的拖累。
Phil: 你获得过专利吗?它们在开源世界中是如何运作的?
bunnie: 是的,实际上我在 Chumby 任职期间获得了几项专利。专利是保护硬件创意的一种非常自然的方式。就像 F/OSS(自由开源软件)许可证,如 GPL(GNU 通用公共许可证)和 BSD(伯克利软件分发版)依赖版权来保护其力量,开源硬件许可证也可以同样依赖专利来保护其力量。
当我们开始时,没有任何许可证能够解决专利问题,因此 Chumby 创建了自己版本的开源许可证。它基本上是一个自动交叉许可协议,适用于那些创建衍生作品的用户。那些使用我们源代码的人将获得专利许可,前提是任何为衍生作品获得的专利,也必须自动许可回给我们。
该许可协议有一些其他的限制,并不是“真正的”开放式许可,比如要求衍生作品至少要给用户一个选项,让他们能在竞争产品中运行 Chumby 网络(在启动过程中进行一个选择性检查点)。还有一个“如果你想要生产,请向我们咨询”的条款,规定衍生产品进入大规模生产时必须获得 Chumby 的额外授权。我们加入这一条款的主要目的是创建一个检查点来验证与服务器的互操作性,并强制执行适当的商标和品牌规则。将这一条款埋藏在许可中意味着该许可不能被称为开源,因为 Chumby 始终有权说不,尽管实际上它从未这么做过。然而,这种情况突显了开源硬件中的一个持续性问题:如何在一个日益复杂和多样化的生态系统中处理商标和互操作性问题。
此外,我在 Chumby 创办期间创造的专利权都已经转让给了投资者。它们很可能会被卖给出价最高的买家,这个买家很可能是专利流氓。我将这种结果视为不幸,但它是我必须接受的现实。投资者有权通过所有合法途径来收回他们的投资。然而,在理想的情况下,我会以合理的价格回购这些权利,将它们授权给开源社区,并试图建立一个处理开源社区专利的实际先例。
Phil: 你有什么建议可以给考虑接受风险投资的创客吗?如果他们正在做开源硬件,有什么不同之处?
bunnie: 我认为风险投资(VC)资金只适合加速某些类型的增长。它对于早期阶段的研究与开发,或那些增长缓慢但稳定的商业模式并不太合适。
硬件模型与软件模型截然不同。软件天生具有可扩展性。你可以在一夜之间吸引 100,000 个用户。软件中用户基础的货币化更为复杂,但大多数软件项目都是先追求规模,再考虑如何盈利。
因为硬件需要物质的运动才能获得用户,所以其可扩展性受到你能以经济和可靠的方式组装这些物质并将其运送到客户的速度的限制。另一方面,硬件有一个非常自然的盈利点:你在每个售出单元上所收取的利润。钱更早、更频繁地到来,但增长率受到了物理法则、原材料的可用性以及熟练劳动者的数量等因素的制约。这个规则的显著例外是像 Square 读卡器这样的概念。Square 的硬件巧妙地设计得如此便宜,以至于其成本可以说低于通过其他方式(如*面广告和邮寄活动)获取一个客户的成本,使得这个读卡器便宜到可以直接免费赠送。
因此,在硬件领域,首先要问的是:你的分销渠道是什么?将产品送到最终用户有多困难?最终,这条“管道”的大小以及交易中的货币拖累限制了你想法的增长速度。你还需要考虑回旋镖成本,比如退货和客户支持成本。你会惊讶于有多少客户打电话来,是因为他们忘了插上你的产品。
如果你拥有一个出色的分销渠道、稳固的营销活动,并且客户排着队,那么风险投资可能是一个合理的选择。但典型的制造商通常会从在线销售或在精品店销售产品开始。最初,将资金转化为收入所需的时间可能是几个月,而这对风险投资来说是一个残酷的周期。你在供应链上投入的所有资金并没有为你创造任何价值,但你却为了获得这些资金而放弃了公司的一大部分所有权。
我通常会建议制造商首先自掏腰包或通过非常友好的天使贷款来资助研发。一旦你有了原型和生产的稳固计划,借债来资助小批量生产会更聪明,这样你就不会过度扩张,并且可以一步步建立市场。每次周转库存时,你都应该能带回更多的现金,进而投入更多库存的生产。
这样做能培养良好的纪律性。这将帮助你专注于优化供应链,使库存周转更快。最优秀的硬件公司能够在几天内周转库存。如果你每次周转库存时能使资本增长 20%,那么只需要四次周转就能让你的资金翻倍:$100 变成$120,再变成$144,再变成$172,第四次周转后变成$207。这就是复利的魔力。
如果你能每八周完成一次库存周转,并且每次周转时能保持 20%的增长率,那么你的一年内业务就能增长超过 300%。当然,市场从来不是那么理想和可预测的,但你可以通过调整库存周转时间与可用利润来发展你的业务。高利润的业务可能需要更长的时间才能周转库存,但仍能保持可接受的增长率。
这种自筹资金的方式非常辛苦,但到头来,你拥有每一分钱,因为你没有投资者。这种模式的辉煌故事不像 Instagram 或 Google 那样大,但如果做得对,你就能掌控一切,而且你的努力更可能最终得到回报。事实上,许多成功的中国硬件制造企业就是通过这种方式逐步成长起来的。
Phil: 你对 Kickstarter 融资有什么看法?
bunnie: 我认为通过 Kickstarter 或其他众筹*台资助早期的研发并不是一个好主意,因为你必须在早期做出对客户的硬性承诺。Kickstarter 是一个很好的现象,但你也需要小心从那里筹集资金。在某种程度上,Kickstarter 是最终的“傻钱”。客户被一个愿景所吸引并早早购买,而你必须兑现这个愿景。在众筹资金的同时,你也众筹了你的董事会。但产品开发之路从来不是一帆风顺的。因此,Kickstarter 的资金可能会让你早早锁定承诺,而这些承诺你是无法回头的。
我认为,Kickstarter 可以比风险投资更好,但你应该只有在创意已经成熟,并且你主要是想找一个比风险投资或银行贷款更好的生产融资方式时才使用它。事实上,考虑到从 Kickstarter 提取资金的摩擦成本,几百分点利息的银行贷款可能更具吸引力。但当然,银行贷款没有像众筹*台那样的可见性、市场营销和潜在的增值空间。
Phil: 当你为公司提供建议时,你最常建议创始人做什么?
bunnie: 交付或者死亡!特别是如果你已经接受了风险投资的资助。一旦风险投资的钱进入你的账簿,你就处于一个有限的倒计时中。如果倒计时结束,而你还没有创造出实质性的价值,那么就会发生“炸弹爆炸”,摧毁你估值的一部分。如果你筹集了 100 万美元,并计划在一年内消耗完,那每一天“花费”你$4,000。我用这个作为价值的标尺来指导决策:如果$30 的加急费用可以让一个长期任务的时间表提前一天,那么这笔钱是值得花的。这也是为什么即使我身在加利福尼亚,在 Chumby 生产期间,我还是保持着“中国产时”的原因。每晚熬夜到凌晨四五点,和工厂翻译邮件,缩短最长的工期,减少了几天的时间表,这就节省了数万美元的烧钱。
面对“交付或者死亡”的局面时,不要追求完美的产品发布。发布一个足够好的产品比发布一个迟到的优秀产品更重要,特别是在消费电子或其他类似的季节性行业中。在消费电子领域,最多 90%的业务可能发生在第四季度。如果错过了圣诞节,你接下来的三个季度将没有收入;错过圣诞节就等于在你的资本化表格上丢掉了一年的资金消耗。更糟的是,在这一年里,竞争对手会继续改进。
Chumby 就正好遭遇了这个问题。我们在 2006 年 8 月首次展示了设备的 Alpha 版,但错过了 2007 年的圣诞节。我们直到 2008 年 2 月圣诞节之后才发布了我们的软性连接闹钟。
考虑一下这些发生在这些日期附*的全球事件:iPhone 于 2007 年 6 月发布,全球经济在 2008 年 10 月崩溃。我们当时不得不忍受将*一整年的艰难时光,从 2008 年 2 月到 2008 年圣诞节,一直烧着风险投资资金来维持生存。但当经济崩溃时,大家对$200 的圣诞袜子礼物的兴趣也随之消失。我们积压了太多库存,不得不为生存而奋斗。
如果我没记错的话,我们本来能在 2007 年圣诞节发布一款产品。那款产品可能没有那么精致,也缺少一些功能。但也许它已经足够好。回头看,2007 年 iPhone 的势头远不如 2008 年,我们可能已经能够清理掉大量库存。另一方面,也许正是因为 iPhone、它的应用程序和出色的触摸屏会让一款联网闹钟过时,才让我们重新考虑了我们的策略,推迟了发布,专注于加强如流媒体音乐集成等功能。
无论如何,这个教训对我来说非常明确:要么发货,要么死!
我给硬件公司的第二条建议是,定价要高一些。若一开始定价过低,几乎不可能提高价格,而且没有什么比促销更能激发人们购买的了。
主要在线销售的硬件创业公司往往会试图将价格定得尽可能低,以此来激发话题和提高初期销售。将你的$35 设备直接在线销售定价为$49 的诱惑非常大。毕竟,这大约是 28%的利润(除非你的物料清单没有计算软成本)。这看起来不错,直到你从 Engadget 的首页掉下来,销售开始暴跌。
与零售商合作可能有助于带来更多、更稳定的销售,但零售商最初会试图以你的建议零售价(MSRP)的 40%到 60%来向你购买产品。这意味着他们希望以$49 购买产品并以$99 销售。如果你已经以$49 卖出了大量产品,零售商就不可能以$99 销售该产品。要进入零售渠道,你需要将你的$35 产品以$25 的价格卖给零售商,这样零售商才能以你设定的$49 价格出售。如果你能够成功实现如此大的降价,你仍然不会赚到钱!
将你的$35 设备定价为$99,起初可能会吸引更少的顾客,但你的初始利润率将非常可观,并且你有空间让零售商参与或自己进行促销以吸引更多顾客。这也是建议零售价(MSRP)通常这么高的原因之一。零售商也喜欢通过促销来推动产品销量,而$99 的设备降价到$69 就显得像是一个明智的购买。但在$69 时,零售商的利润率仅为 29%。
定价过低实际上剥夺了你使用零售作为潜在分销渠道的机会,同时你也失去了进行销售和促销的机会。促销很重要,因为病毒营销最多只能让你在客户面前出现一两次。因此,当你把心血投入到产品中时,要像认真对待一样定价。
Phil: 如果你能重新来过,你会如何改变 chumby 的硬件?软件呢?chumby 的制作方式呢?
bunnie: 好吧,正如我之前的回答所说,我会更专注于按时发货,也许这意味着要牺牲一些功能。
我学到的一个更反直觉的事情是,配件和包装的开发时间有时比产品本身还要长。那款软绵绵的 chumby 经典版配有一套精美的亚麻和超细纤维袋子以及橡胶挂饰。(我们总共开发了十几种挂饰。)还有一个定制电源适配器,品牌丝带,礼品盒,品牌纸巾……我甚至不得不反复修改硬件设计,并旋转注塑模具,以改善挂饰与设备的连接方式。我至少花了四个月时间,专注于产品的配件和包装。我们的粉丝对这些细节的关注感到疯狂,并且这也帮助推动了销售。
但是回想起来,我在想我们是否可以更好地放弃细节,赶在圣诞节前发货。小公司最痛苦的一个认识就是,他们不是苹果公司。苹果公司每年在工具上花费超过十亿美元。一个注塑模具可能花费约 40,000 美元,并需要两到三个月的时间来制作;而苹果公司通常会同时制作五六个,然后丢弃所有但一个,以便评估多个设计方案。对于苹果来说,花费 20 万美元在工具上,以节省两个月的市场时间根本不算什么。但对于一家融资了一百万美元的初创公司来说,这是难以想象的。苹果公司还拥有数百名员工,而初创公司只有几名成员来做所有事情。苹果产品的精密与精致背后,付出了巨大的成本,而这些成本是初创公司无法承担的。
我并不是说设计不重要。它仍然是产品的一个至关重要的元素,良好的设计和对细节的关注可以让初创公司为产品定价更高,并在竞争中脱颖而出。苹果公司在设计和用户体验方面设定了非常高的标准,用户会据此评判你的产品。但重要的是要记住,你真正的对比标准是其他初创公司,而不是苹果。如果你的主要竞争对手是苹果,要么你需要十亿美元的资金来投资产品设计,要么你需要重新思考你的战略。
这让我想到我可能会改变的另一件事。对于初创公司来说,转型是至关重要的。初创公司必须能够在大公司面前灵活运作。文化上,Chumby 发现自己很难在快速变化的技术环境中保持足够的敏捷性。
当然,事后诸葛亮总是很清晰。我们本可以做得不同,但当我回想起我们所做的所有早期决策以及如何走到今天(电阻式触摸屏、缺少集成电池、使用 Flash 作为核心*台),我并不认为我们当时能做出任何不同的基于事实的决策。
但这确实展示了基于事实的推理的一个缺陷。工程师喜欢基于现有数据和对未来的高度可信模型来做决策。但我认为,真正的远见者要么是因为知识不足,要么是因为拥有足够的信念和勇气,能超越事实,敢于大胆尝试。这可能两者都有。承担风险也意味着幸运的成分在其中。
我确实有一种由事实驱动的*视症。我最*对运营效率、进度和风险管理的专注,消耗了我拥有创意和大胆远见的能力。实际上,我正在暂时休息一年,稍微放松一下,并试图重新发现和发展过去几年中逐渐萎缩的创意部分。
Phil: 既然你已经参与了一个完整周期的 VC 资助公司,且该公司生产硬件,你对公司结构有什么建议,从人员到地点再到整体组织?
bunnie: 结构真的取决于你想要构建的产品类型。硬件有很多不同的专业领域(如消费类、医疗类和工业类)和市场(如高端精品、爱好者物品和大众市场设备)。这些领域都有良好的商业潜力,但你的地理位置、聚焦点和团队组成需要根据你的产品和能够提供竞争优势的因素来调整。在 Chumby,硬件只是让应用能够在你家中运行的一个门槛,所以它很快就成为了一个低价竞争的局面。公司的硬件部分必须精简(记住,Chumby 只有一名硬件工程师和一名运营总监),并且从一开始就需要采取以中国为中心的战略。
通常,如果你能忍受通过自筹资金来做硬件初创企业,那是值得的。许多种类的硬件产品一开始都可以通过自筹资金启动——然后通过 Kickstarter、债务融资或风险投资来扩展。例如,MakerBot 完全依靠天使资金开发并发货了它的 3D 打印机,之后才完成了风险投资的融资。创始人之一 Bre Pettis 曾提到,他们有一个月的时间就只靠杯面度日。
任何通过了创意阶段并进入扩张阶段的硬件公司,都必须对运营和现金流保持高度关注。维持按需生产模式至关重要,但也很困难:对于任何硬件公司,无论大小,一个关键指标是你能多快地将库存转化为现金。这个问题有两方面。第一是精简供应链并缩短交货时间,这样你不需要持有太多库存,同时能快速满足新订单。第二是优化现金管理,以便能快速向客户开账单,同时尽可能延伸信用额度。这是一个多维度的优化问题,如果没有合适的团队,可能会让你头疼不已,因此你的团队应该包括一位优秀的运营总监和精通半特殊金融工具(如保理保险、担保信贷额度和贸易合同)的人员。
早期有效地进入中国市场为你的初创公司提供了一个颠覆性的优势(很难忽视中国在组装成本上相对于美国的数量级优势),但与中国合作确实会给组织带来巨大的成本和风险。这可能并不适合每个人,特别是在第一天。
我把自己外包到了新加坡,以便更接*中国,因为我知道我永远无法摆脱中国的生态系统。中国在硬件制造上有着如此强大的控制力,我认为他们要失去这一优势可能需要几十年。这种地理多样性也意味着,任何有效的硬件初创公司都必须能够与分散的团队高效合作。
Phil: bunnie 接下来有什么计划?你最期待做的是什么?
bunnie: 对我来说,这就是问题!我其实并不太清楚接下来会做什么。正如我在采访中提到的,我正在休假一年,做一些并非特别创业性的事情。我目前的优先事项是:首先享受我的工作,其次尽量不亏太多钱,第三是通过黑客行动、志愿工作和开源方法做一些对社区有益的事情。我希望在这一年中,我能找回我在路途中失去的一部分灵魂,找到一些新的灵魂,并重新学习生活中魔力的价值。我也在相当大程度上关注自我调整,增强体能,改变饮食习惯,并减肥。你将拥有的最酷硬件就是你的身体,如果它不能正常工作,其他一切都没戏。一旦我完成了这些没有目标的游历,希望我能更清楚地知道接下来该做什么!
在为本书回顾那次采访时,我忍不住笑了。到那时,我休假的一年已经变成了四年。几位关心我的同事问:“你什么时候才能停止中年危机,去找一份真正的工作?”但回头看,不回到公司世界是我做过的最好的决定。
我现在的生活比当时拥有风险资本/企业支持时要简朴得多,但我拥有了更多的独立性。这是一个在黄金手铐和 Aeron 椅子,或者背包和接*地*线的有趣地点之间的选择。我仍然在努力收集我的灵魂碎片,仍然在慢慢重新学习魅力和惊奇的价值。但至少,我有自由去思考除了投资股东财富之外的其他价值观。值得庆幸的是,我在调整饮食习惯和身体健康方面取得了一些成功;调整身体状况是一个痛苦的过程,包括卡路里追踪、肌肉酸痛和起泡的手,但最后得到了丰厚回报。我的母亲曾经告诉我,没有健康,你一无所有;她说得完全对。如果你没有足够的体力去工作,就很难把机会转化为成果。希望我的健康能够维持下去,未来我将有更多故事与大家分享。
开放硬件的最佳日子尚未到来
我进行了一年的灵魂探索,最关键的收获之一就是意识到开放硬件的最佳日子仍然在前方。当我与 Phil 的采访中深思熟虑时,Chumby 的失败并不是因为其开放硬件模式。最糟糕的情况是,这个模式对产品的消费者吸引力几乎没有影响;最好的情况是,它成了一个不错的话题点。在那次采访中,我没有抱怨由于我们宽松的开源政策导致市场上出现廉价克隆品,从而导致销量骤降。
相反,我们面临的最大挑战之一是无法跟上摩尔定律的步伐。作为一个初创公司,Chumby 根本没有足够的资源去跟上这种变化。每次推动一个重要的硬件*台更新都需要两到三年,而到那时,该更新已经过时。我的博士论文*正是围绕摩尔定律及其对计算机架构的影响展开的。最强大的计算机是 1970 年代设计的处理器(Intel 8085)的后代,今天仍作为烤面包机的大脑使用。为什么?因为在向后兼容的 CPU 上运行现有代码几乎总是比将旧代码移植到新的微架构上更快。鉴于这一事实,在我的论文中,我设计了一个当时没人能实现的微架构,但这个架构可能适用于 10 到 15 年后才能建造出来的计算机。一小队研究人员将有充足的时间开发出这种新型计算机所需的基础设施,并且这种计算机在启动的那一天将是切实相关的。我曾在 90 年代末花费数月时间研究摩尔定律的基础原理,试图理解它在哪些方面变得薄弱,在哪些方面依然强大。当时,最强的限制是光速,因此我的论文围绕如何减少通信延迟的架构技巧展开。
在 2011 年,大约在我毕业十年后,恰逢 Chumby 结束时,我有机会在开放硬件峰会上做“愿景”主题演讲。我决定回顾一下我大学时的笔记,看看摩尔定律是否还能再延续十年。答案是否定的,这对开放源硬件的未来有着深远的影响。这一部分是我在 2011 年撰写的一篇博客文章的改编版本,分享了我的想法;幸运的是,到了 2016 年,我仍然没有撤回当时所做的任何声明。
我们的过去:从开放到封闭
开放硬件是一个利基行业,某些趋势导致硬件行业更倾向于支持大型封闭型企业,而牺牲了小型或个人创新者。然而,展望未来 20 到 30 年,我看到一种基本的趋势转变,这可能使权力的*衡倾向于创新而非规模。
正如我在这一部分的前言中所说:最初,硬件是开放的。早期的消费电子产品,比如真空管收音机,通常会附带包含完整原理图、替换零件清单和服务说明的用户手册。在 80 年代,计算机通常会附带原理图。例如,Apple II 随附的参考手册中包含了主板的完整原理图,这一资料是我非常推崇的,它对我进入硬件领域产生了强烈影响。

一份真空管收音机原理图
但现代的用户手册缺乏这样的深度信息。我在 Mac Pro 用户指南中见过的最复杂的图示,是教你如何坐在电脑前:保持“大腿稍微倾斜”,“肩膀放松”等等。
发生了什么?是电子学变得太难和复杂了吗?恰恰相反,电子学的改进变得太容易:摩尔定律的速度太快,小规模的创新者跟不上。
我们现在的位置:“坐等”与“创新”
请看这张摩尔定律的快照,它指出“优秀”(几乎任何衡量标准:性能、晶体管密度、每单位价格等)每 18 个月翻一番。

摩尔定律:每 18 个月翻一番,与每年线性改进 75%的对比。两条线之间的阴影区域代表了线性改进超过摩尔定律的机会窗口,t < 2 年
这张图表的特点是纵轴是线性的。大多数展示摩尔定律的图表使用对数纵轴,这会将曲线的急剧上升趋势压*成一条看起来不那么突兀的直线。另一方面,阴影部分代表了时间的线性改善。这可能代表一个小型创新者以每年 75%的恒定、非复合性但可敬的速度,在一个*台上添加或改进特性。被曲线包围的微小(几乎不可见)的空间代表了小型创新者与摩尔定律之间的市场机会。
这两条曲线的并列凸显了小型创新者面临的核心挑战。长时间等待和观望往往比创新更有利可图。如果需要两年时间来使一个系统的性能翻倍,那么你不如等两年后直接升级到最新的硬件。与摩尔定律赛跑是一项辛勤的工作。
这种指数增长机制有利于那些拥有大规模资源的大公司。竞争性企业不仅要一次性开发一个产品,还必须有足够的资源和远见同时开发三到四代产品。要在单一技术代际的时间范围内覆盖全球市场,就需要拥有能够每月生产数百万单位的供应链和分销渠道:以每月 10,000 单位的销售速度,仅在美国,接触到“仅仅”百万用户(大约是美国家庭的 1%)就需要八年的时间。值得注意的是,关闭设计并迫使竞争对手反向工程产品所带来的短暂障碍(几个月时间),可以成为一种优势,尤其是在摩尔定律的节奏下。
因此,随着个体在科技跑步机上努力跟上技术进步,而大公司则不断关闭设计以获得微薄的竞争优势,科技市场已变得对小型创新者难以接*。然而,这一趋势正在发生变化。
我们的未来:传家宝笔记本电脑
戈登·摩尔(Gordon Moore),观察到摩尔定律的人,是英特尔的共同创始人之一。摩尔定律最著名的是描述晶体管密度,以及由此推导的 CPU 性能,如何随着时间的推移而增加。例如,考虑一下英特尔 CPU 时钟速度与时间的关系图。*

CPU 时钟速度随时间变化。自 2014 年以来,*台期一直保持稳定。
注意到时钟速度停止增加的突兀*台期。在那个时刻,CPU 制造商开始使用多核技术来推动性能,但这并非出于选择。CPU 遇到了物理限制,阻碍了时钟频率的实际扩展,主要与功率和线路延迟扩展相关。晶体管密度,以及核心数量,随着时间的推移持续增加,但增速正在放缓。晶体管数量曾经每 18 个月翻一倍;后来放慢到每 24 个月不到翻一倍。最终,晶体管密度扩展将实际上终止。晶体管扩展的绝对终点是一个有争议的话题,但一项研究^(†) 表明,扩展可能会在大约 5 纳米的有效门长度处停止。那大约是 10 个硅原子之间的距离,所以即使这个猜测不准确,偏差也不会太大。
这一点的意义深远。总有一天,你无法再依赖明年买一台更快的电脑。你的手机不会变得更小或更强大。你明年购买的闪存驱动器将与今年购买的相同,价格相同,存储的比特数也相同。今天听起来很荒谬的“传家宝笔记本电脑”一说,或许有一天我们会将我们的电脑视为珍贵且有用的传家宝,作为我们遗产的一部分,传给我们的孩子。
开源硬件的机会
这种放缓趋势对小型企业以及开源硬件实践来说都是有利的。为什么这么说呢?让我们重新回顾一下摩尔定律与线性改进的图表。这次,我将叠加两个新的情景:技术每 24 个月和 36 个月翻倍一次。

三种不同的摩尔定律情景。在 t=18 个月情景下,线性改进与情景之间的阴影部分变成了在 t=36 个月情景下的大区域机会。(请注意,纵轴是对数刻度。)
曲线和底部直线所围成的区域代表了线性改进与摩尔定律相比的市场机会。在 36 个月的情景中,线性改进不仅有超过八年的时间才能被摩尔定律赶超,而且在大约两到三年时,优化后的解决方案明显优于摩尔定律。换句话说,小型企业可以在一个创新解决方案的市场窗口期内,按照自己能应对的节奏进行盈利化。
随着摩尔定律的放缓,*台的标准化潜力也会增加。现在看,创造一个标准化的*板电脑或手机机身,并配有可互换的组件,似乎是荒谬的,但当组件不再急剧缩小和变化时,这就成为一个合理的提案。随着技术的放缓,手机硬件和嵌入式 CPU 模块(如 Arduino)之间会出现融合。看看 2012 年推出的树莓派吧。2016 年发布的型号配备了四核 1.2GHz 的 CPU,其性能与当时的入门级智能手机相当。
创建稳定、性能竞争力强的开放*台将赋能小型企业。当然,小型企业仍然可以选择闭源,但这样做的话,它们必须建立一整套垂直的专有基础设施,而实施这种技术堆栈所带来的焦点分散可能会带来不利影响。
在后摩尔定律时代,FPGAs 可能在性能上与其硬件化的 CPU 同类相较,表现得相当不错,至少有两个原因。首先,FPGA 灵活而又规律的结构可能会赋予它更长的扩展曲线,部分原因在于 FPGA 能够围绕制造公差的小范围波动重新配置电路。其次,为硬件加速优化代码所付出的额外努力,将随着 CPU 性能扩展越来越依赖于像大规模使用并行核心这样的复杂技术而变得更加有利。大规模多核 CPU 架构看起来与 90 年代学术界提出的粗粒度 FPGA 架构非常相似。FPGA 与 CPU 性能的*衡将极大促进开放硬件的深度渗透。
随着技术变得不再是一次性消费品,而是更具永久性的,修复文化将会兴起。五年后更换电脑部件时,如果替换件的规格和价格几乎与旧部件相同,那就不再显得那么荒谬。这种修复文化的兴起将会推动对电路图和备件的需求,从而促进开放生态系统和小型企业的发展。
个人而言,我期待着工艺工程的回归,在那里优雅、优化和均衡比功能膨胀更受重视,我可以使用同一工具十年而不会被视为过时。(大多数人听到我坚持使用 Eudora 7 作为我的邮件客户端直到 2012 年,才转向目前的客户端 Thunderbird 时,都会笑出来。)
摩尔定律的减速已经对那些对性能不那么敏感的市场产生了影响。以 Arduino 的崛起为例,它花了几年的时间才获得流行,而它的核心硬件几乎保持不变。幸运的是,Arduino 的主要市场(物理计算、教育和嵌入式控制应用)的需求没有增长,这使得*台保持了稳定。这种稳定性使得 Arduino 在一个繁荣的用户社区中扎根,并推动了开放和互操作标准的发展。
通过一些努力和一点运气,我相信开放硬件生态系统一定会蓬勃发展。摩尔定律的不可避免减速可能对科技巨头造成麻烦,但也为开放硬件运动提供了一个成长的机会,可能会引发一些非常大的事情。为了抓住这个机会,开放硬件的先驱们需要通过建立一个可扩展的宽松标准和习惯文化来为未来奠定基础。
我期待成为开放硬件光明未来的一部分。
结束思考
尽管 chumby 在 2006 年构思时略显超前,而公司最终也未能逃脱摩尔定律的影响,但我对摩尔定律放缓的思考促使我尝试了另一个开源硬件的实验。下一章关于 Novena 的内容,讲述了我在打造一款定制开源笔记本电脑过程中的不切实际但充满冒险的经历。
第七章:7. Novena:打造我自己的笔记本电脑
那是 2012 年,我失业了。我的上一家创业公司失败了,我正在休息一年,思考接下来应该做什么。我的朋友 xobs(在第四章介绍过)和我有一个至今保持的传统:每周五,我们会在午餐时喝几杯啤酒,闲聊一番。在一次“啤酒星期五”的讨论中,我们决定打造属于自己的笔记本电脑。我表达了对自己从未被雇佣去做一个我真正想要每天使用的产品的失望。作为一名设计工程师,你通常是由市场需求驱动的,而不是自己的独特口味。我们开玩笑地谈论了我们会觉得有用的东西,并意识到,由于摩尔定律的逐渐放缓,或许我们并非那么疯狂,能为黑客们打造一款带有一些奇特功能的开放笔记本电脑。于是,我们开始了一个业余项目,打造一台只为我们自己设计的电脑,能够每天使用,且易于扩展和修改——我们自己的电子瑞士军刀。我们给这个项目起了一个代号:Novena,这个名字来源于新加坡的一个地铁站,同时在拉丁语中意为“九”。

在 Crowd Supply 上线的第二代 Novena 设计
完成后的 Novena 是一台 1.2GHz、Freescale(现为 NXP)i.MX6 四核 ARM 架构的计算机,紧密集成了 Xilinx FPGA。它是为那些希望修改和扩展硬件的用户设计的:所有文档和 PCB 都可以公开免费下载*,我们还为它提供了多种促进快速原型制作的功能。
不是心脏脆弱者的笔记本
然而,当我与更多人谈论 Novena 时,我意识到其他人也对拥有这样的笔记本感兴趣,但或许他们不想(或者不知道如何)制作自己的电路板。为了回应我们收到的关于这一主题博客文章的极大积极反馈,xobs 和我在 2014 年发起了一个 Crowd Supply 活动,在设计稳定并经过测试后上线。超过 1000 人支持了这个项目;我很高兴地报告,我们完成了每一项承诺,大多数都在承诺日期的几个月内兑现。活动结束后,我们决定维持完整笔记本配置的供应链将使我们有限的资源过于分散,但我们会在活动启动后的至少五年内销售并支持 Novena 主板硬件。
需要说明的是,Novena 不是一个适合胆小者使用的机器。它是一个开源项目,这意味着这台设备的乐趣(以及挫折感)在于它在不断改进。它也许是唯一一款出厂时带有螺丝刀的笔记本电脑。购买了原始设计版本的用户必须自己安装电池并选择绿色或蓝色的 LCD 边框。扬声器是以套件形式提供的,用户不必使用我们设计的扬声器盒。如果有人有 3D 打印机的使用权限,他们可以制作并微调自己的扬声器盒。
尽管有这些 DIY 选项,我并没有打算用 Novena 打破任何低价记录。它是作为一款低产量、手工制作的笔记本电脑,使用独特的开源组件设计的,成本与设计相匹配。我们提供了三个版本:
• 一个“一体式桌面”版本,售价 1195 美元,开箱即用,配有键盘和鼠标,但需要插电使用
• 一个“笔记本电脑”版本,售价 1995 美元,包含电池控制板,适合外出黑客使用
• 一个“传家宝笔记本电脑”版本,售价 5000 美元,配有精美的手工木铝外壳
在第六章中,我提到随着摩尔定律的放缓,我预测父母将把计算机传给他们的孩子。Heirloom Novena 就是按这种方式设计的,尽管它与其他两种选项有相同的内部硬件。
但这些价格与高端消费类笔记本电脑的价格并没有太大差异。最大的挑战是如何在低量生产的情况下,以这个价格提供如此定制且复杂的产品。我们并不是希望在筹款活动中回收研发成本;那是一个沉没成本,因为任何人都可以自由下载源代码并从我们经过彻底审核的设计中受益。我们的最低筹款目标是 25 万美元,仅为传统笔记本电脑开发和制造所需百万美元投资的一小部分;我和 xobs 通过技术专长、独特的设计和与供应链的强大关系迎接了这一挑战。
设计早期的 NOVENA
我们优化了 Novena 的设计,减少了所需昂贵工具的数量,同时仍然保持它易于破解和修改的主要目标。我们花了一年半的时间,仔细研究了三次 PCBA 修订版,直到我们确信这个复杂的设计既能正常运作,又能实现生产。我们还优化了某些棘手的组件,例如 LCD 和内部显示端口适配器,以确保在低量生产时能够可靠地采购。最后,我花了几个月的时间周游世界,建立了一条能够提供此设计(即使在低量生产下)并且价格与其他高端笔记本电脑相当的供应链。
当然,所有的设计文档都是开放的,因此,凭借足够的技能和资源,你可以从零开始自己构建一台 Novena。我选择了这些硬件及其子组件,使其成为我能够实现的最具实用性的开放硬件笔记本,采用了最先进的技术。你可以下载所有组件的 datasheets,无需签署保密协议,并且关键外围选项的选择使得你可以从源代码构建完整的固件,而不需要使用任何封闭源代码模块。
引擎盖下的内容
这块主板的尺寸大约为 121 毫米 × 150 毫米;它的大小适合标准尺寸的笔记本键盘下方(尽管图像与安装方向相比有所旋转)。正如本章前面展示的完整笔记本照片所示,端口群位于笔记本的右侧,而不是底部。主板厚度稍低于 14 毫米,这个高度由以太网连接器的厚度决定。我的联想 T520 的底部厚度稍低于 24 毫米,当键盘和塑料部件堆叠在这块主板上时,Novena 的底部厚度大致相同。

最早的 Novena 主板
现在让我们来看一下这块主板的一些特点。
初步特点
Novena 主板的第一次迭代使用了 Freescale iMX6 CPU,它拥有无需保密协议的 datasheet 和编程手册。在接下来的列表中,带有双星号(**)的项目需要一个封闭源代码的固件模块,但系统可以在没有该模块的情况下启动并使用。
我们使用的 CPU 封装支持以下四核和双核版本的 iMX6:
• 四核 Cortex A9 CPU,配备 NEON FPU,主频为 1.2 GHz
• Vivante GC2000 OpenGL ES2.0 GPU,200Mtri/s,1Gpix/s**
这个版本的 Novena 从 microSD 固件启动。至于其他内部存储,它配备了一块 64 位的 DDR3-1066 SO-DIMM,可以升级到 4GB,另外还配有一个 SATA-II(3Gbps)硬盘。
Novena 从一开始就配备了丰富的内部端口和传感器。这些是亮点:
• 一个 Mini PCI-express(mPCIe)插槽,用于无固件模块的 Wi-Fi、蓝牙、移动数据等
• 一个 UIM 插槽,用于 mPCIe 移动数据卡
• 一个双通道 LVDS LCD 连接器,支持高达 QXGA 分辨率(2,048 × 1,536 像素)并支持 60Hz 刷新率,同时还配有 USB 2.0 侧通道,用于显示器侧摄像头
• 一个电阻式触摸屏控制器(而电容式触摸显示器通常配有集成控制器)
• 1.1 瓦,8 欧姆内部扬声器连接器
• 两个 USB2.0 内部连接器,用于连接键盘和鼠标或触控板
• 一个数字麦克风
• 三轴加速度计
• 一个可选的 AW-NU137 Wi-Fi 模块的连接头**
我们使以下端口可以外部访问:
• HDMI
• SD 卡读卡器
• 耳机和麦克风插孔(兼容大多数手机耳机,这些插孔还支持感应内嵌电缆按钮)
• 两个 USB 2.0 端口,支持高电流(1.5A)设备充电
• 一个 1Gb 以太网端口
当然,由于 xobs 和我是在为自己制作 Novena,我们加入了许多其他“有趣”的功能,我们知道这些对于黑客来说会非常有用:
• 100Mb 以太网(双以太网功能使得 Novena 可以作为内联数据包过滤器或路由器使用)
• USB On-the-Go(使得 Novena 可以通过 USB 与其他 USB 主机的设备接口模拟或干扰以太网、串口及其他连接)
• 一个实用的串行 EEPROM,用于存储崩溃日志和其他有用的数据
• 一个 Spartan-6 CSG324 封装的 FPGA,具有多个与 CPU 连接的接口,包括一个 2Gbps(峰值)类 RAM 总线——用于比特币挖矿,或者你可能想要放入 FPGA 的其他应用
• 八个由 FPGA 驱动的 12 位、200ksps 模拟输入
• 八个由 FPGA 驱动的数字 I/O 引脚
• 八个由 FPGA 驱动的 PWM 头,与爱好者的 ESC 和 PWM 引脚兼容(使得与各种 RC 电机/舵机配置以及四旋翼控制器的直接连接成为可能)
• 兼容树莓派的扩展头
• 十三个由 CPU 驱动的辅助数字 I/O
• 三个内部 UART 端口
在进入生产阶段时,我们对这些规格进行了调整,最大的变化发生在 FPGA 扩展连接器上。我们没有选择一组以运动控制为重点的连接头,而是选择了一个能够支持高速数据传输的连接头,xobs 和我在未来的 Novena 相关项目中将其充分利用。
电池板
为了提供最大限度的电源管理灵活性,我将电池接口功能实现到了一块子卡上。我采用了一个便宜且常见的 SATA 样式连接器,将电源和控制信号从主板传输到子卡。为了防止用户将硬盘意外插入电池端口,我将电池-SATA 连接器的插头与实际的 SATA-II 大容量存储连接器性别进行了反转。
第一版 Novena 主板上的电池卡是为了与大多数 RC 爱好者使用的电池包兼容的:从 2S1P 到 4S1P 的 LiPo 电池包(即,从两节到四节电池)。RC 电池包非常适合,因为它们设计用于超快速充电,且价格便宜、易于购买。对于主板端的电池插口,我决定使用经典硬盘驱动器上的 Molex 连接器,因为它们便宜、常见且易于用简单工具组装。我不能使用标准的 RC 连接器,因为绝大多数 RC 连接器设计用于内联使用,而为数不多的具有板载安装功能的连接器要么太厚,要么不适合这个应用。

初步的 Novena 电池板
电池板可以以超过 4A 的速率为电池充电;例如,给一个三节 45 Wh(4 Ah)的电池充电大约需要一个小时。如果典型的功耗约为每小时 5 到 6 W,那么充电一个小时后,运行时间大约为七到八小时。当然,由于整台笔记本电脑都可以由用户自定义,典型的功耗很难估计。如果用户安装了一个巨大的 LCD 屏幕和一个功耗很大的磁性硬盘,以及大量外设,功耗会更高。
xobs 提出了另一个很有意思的与电源相关的功能,并成功地将其融入了设计中。他认为如果在笔记本电脑的掌托部分嵌入一个复古的模拟指针表,用来实时显示功耗,会非常酷。我觉得这是个好主意,于是我把这个设计加到了电路板中。当然,模拟表是由电池微控制器上的 DAC 驱动的,因此可以配置为执行多种有用(或不那么有用)的模拟读数,例如剩余运行时间、电池电压、温度、时间(以模拟值表示)等。
在花了几个月的时间验证所有功能(那是一长串需要一一验证的功能)之后,我们将驱动程序和 Linux 发行版移植到了这块主板上。这也不是一项小任务,但幸运的是,我得到了 xobs 的高超帮助,我们顺利完成了这项工作。
外壳
从那时起,我真的很期待设计外壳。对于第一个版本,我考虑制作一个激光切割的亚克力外壳,外形有点像*板电脑,这样可以避免第一次制作机壳时需要处理摩擦离合器问题。最终,我手工制作了我们的第一个原型机壳,由铝和皮革构成,用于验证 Novena 的笔记本电脑使用场景。那个设计很粗糙;正如 Cory Doctorow 在 Boing Boing 上所说的,它是“光辉而丑陋的”。*

我喜欢我的笔记本电脑在运行时散发出皮革的气味!
我之前展示的第二代 Novena 机壳更加简洁。你可能首先注意到的设计特点是,它的开口方向“错了”。这个设计特点使得 Novena 在屏幕关闭时可以作为壁挂单元使用。它还解决了我在原始翻盖原型机中遇到的一个主要问题:由于键盘安装板的阻挡,要访问硬件进行黑客攻击非常麻烦。
在我们通过 Crowd Supply 销售的版本中,屏幕会随着闩锁滑动自动弹开,得益于内部的气弹簧。(Novena 不仅仅是一台开放的笔记本电脑——它是一台自开屏幕的笔记本电脑!)我们故意在这种模式下让内部组件裸露,以便轻松访问,但裸露的内部也清楚地表明,Novena 并不适合普通的家庭用户。
我们还包括了一组安装支撑——我们称之为Peek 阵列——以方便黑客使用。通常,笔记本只有为原始设计图中的少数几个功能设计的安装点。但一台可黑客化的笔记本必须容纳大量可能的外设。我们没有要求用户在笔记本外壳上钻孔或粘合物品,而是提供了一个常规的螺纹插口阵列。这有点像面包板,但用于快速的机械原型设计。为了定义这个阵列,我向 MIT 比特与原子中心的研究生 Nadya Peek 请教,她是一位数字制造专家——因此这个阵列被命名为Peek 阵列。
第二代设计的另一个特点是,LCD 边框由一整块简单的铝合金板制成。这样,任何能进入一个基本机器加工车间的人都可以修改或制作自己的边框;无需定制工具。我设计这一点的初衷是让 Novena 的黑客们可以更轻松地添加旋钮和连接器,或者更改 LCD。为了鼓励用户进行实验,我们将桌面和笔记本型的 Novena 都配备了两个 LCD 边框,这样如果用户在实验过程中损坏其中一个,便不用担心机器无法使用。
大多数笔记本都有与外壳连接的键盘和鼠标,但 Novena 则配备了独立的键盘和轨迹点,因为这个特性对我个人来说非常吸引。我一直想要一个可以在飞机或公交车上“挂”在前排座位上的显示器:这样对脖子来说轻松得多,而且如果前排座位的人把座椅后仰时,这种布局反而更好。
当我还在考虑是做一个贝壳设计还是其他一些有趣的外观设计时,我也想过尝试使用木材和黄铜制作外壳。毕竟,制作自己的笔记本电脑的初衷就是为了尝试一些新奇的想法!如前所述,我们实际上确实推出了一款限量版的木质外壳 Novena,我们称之为传家宝笔记本。

传家宝 Novena 笔记本
传家宝笔记本的定制木材复合材料
当 Novena 的主流生产终于在 2015 年 4 月开始顺利推进时,我在俄勒冈州波特兰花了一周时间,与 Kurt Mottweiler(专门制作木质外壳相机的设计师和木工)一起工作,解决传家宝设备的所有最终未决问题。我和 xobs 对传家宝 Novena 的成果感到非常自豪!

与 Kurt 一起工作,打造传家宝笔记本
成长中的 Novena
从字面意义上讲,Heirloom Novenas 是“生长出来的”。木质外壳意味着重要的结构元素来自树木。制造每台笔记本完全相同是很容易的,但我们认为,为了体现定制产品的意义,更合适的做法是通过挑选最优质的木材,匹配它们的表面处理和颜色,以一种品味十足的方式使每台笔记本都独一无二。因此,所有 Heirloom 笔记本看起来都不相同;每一台都独具美感。

一些精心挑选的木材,等待成为 Novena 外壳
Heirloom 笔记本中也投入了大量的科学与工程技术。首先,Kurt 通过将软木、玻璃纤维和木材分层,创造了一种独特的复合材料。为了帮助表征这种新型复合材料,我们将一些材料样本送到比特与原子中心,在那里,纳迪亚·皮克和威尔·兰福德对材料的性能进行了表征。我们取了一些木质复合材料的样本,使用 Instron 4411 电子机械材料测试机进行三点弯曲测试。

Heirloom 复合材料加载到测试机中
机械工程细节
从测试数据中,我们能够提取出材料的弯曲模量(也叫做杨氏模量)和弯曲强度。我不是机械工程师,所以像模量和比强度这样的术语我有点不太理解。但纳迪亚非常友好地为我提供了一些见解。她指给我看了阿什比图表,正如一些 xkcd 漫画面板一样,我可以盯着看一个小时,却依然无法完全吸收其中的信息。

阿什比图表绘制了杨氏模量与密度之间的关系,标注区域大致显示了 Heirloom 复合材料的位置。
图表的左下角展示了像软木这样弯曲的轻质材料,而图表的右上角则是刚性较强、较重的材料,如钨(W)。对于笔记本电脑外壳,我们想要一种具有软木密度但具有塑料刚性的材料。木质材料在图表中占据的位置在塑料的左侧,意味着它们的密度较低,但有一个问题:它们在垂直于纹理的方向上较弱。根据应变的方向,木材可以像聚乙烯(用来制造塑料购物袋的材料)一样柔软,或者像聚碳酸酯(用于与玻璃层压制造防弹窗户的材料)一样刚性。复合材料很棒,因为它们允许你将多种材料的特性结合,以达到所需的特性。在 Heirloom 笔记本的案例中,Kurt 结合了软木、玻璃纤维和木材。
Heirloom 复合材料的测量数据显示其弯曲强度约为 33 兆帕,弯曲模量约为 2.2 到 3.2 吉帕。*该材料的密度为 0.49 g/cm³,约为 ABS 塑料的半密度,ABS 塑料是乐高积木的原料。从 Ashby 图表中可以看到,这些数字显示 Heirloom 复合材料在塑料左侧占据了一个很好的位置,并且提供了基于纤维方向的刚性折衷。而且在测试中,该材料并未发生灾难性的失败。

Heirloom 笔记本复合材料的负载与伸长关系图,由 Instron 测试机绘制
即使在超过最大负荷的弯曲之后,复合材料仍然大部分完好无损,且提供了一定的抗力。这个结果有点出乎意料。我们本以为材料会像天然木材一样在断裂时折成两半。此外,当我们重置测试后,材料恢复到了原来的形状。我们将复合材料弯曲了超过 10 毫米,但一旦卸下负载,我几乎无法察觉它经历过测试。这种高断裂韧性和恢复力是笔记本外壳所需要的理想特性。
当然,看着机器在材料上运作很有趣,但没有什么比自己亲手拿到它更令人激动。我仍然记得拿起材料,感受它的轻盈,给它一个弯曲,结果被它的刚性和坚固性惊讶到了。
成品的变化
从 Novena 成功完成众筹的那一刻起,一个令人难以置信的团队开始努力将其变为现实。在我们制造合作伙伴 AQS 的工程师和产品经理的帮助下,Novena 的外壳从原型阶段到试生产仅用了四个月时间。

我们在中国东莞进行 T1 塑料评审的会议室
当然,xobs 和我在开始众筹之前就做了很多工作,但要制造出如此复杂的产品,必须要有很多人共同努力。没有 AQS 那支敬业且努力工作的团队,我们是不可能做到这一点的。我之前就说过,你的工厂是你的合作伙伴,得益于一个优秀的合作伙伴,我们才能在短时间内完成这项工作。
外壳结构与注塑问题
到 2014 年夏末,我们手上的 Novena 外壳已经完全由生产过程中的硬件制成——不再是手工制作的原型。为了实现这一点,我们共开设了 10 个注塑模具;作为对比,像 NeTV 或 chumby 这样的产品大约只有 3 到 4 个注塑模具。
正如我在第一章中简要描述的那样,注塑成型是将塑料模制成网状形状的过程。热的、高压的液态塑料被迫注入一个叫做模具的硬化钢腔中。钢模具本身就是一项工程杰作:它是一个约重一吨的水冷却块,能够承受类似马里亚纳海沟底部的压力,且其内表面加工的公差精度优于一根人发的宽度。除此之外,模具内部还包含一系列精密的活动部件,包括数十根推出销、滑块、提升器和分模面,这些部件在数千次循环中会顺畅地分离和重新组合。令人惊讶的是,像这样复杂精密的工具竟然能在几个月内制造出来。
由于有这么多的活动部件,工具需要多次迭代以达到完美也就不足为奇了。在模具术语中,这些迭代被称为 T0、T1、T2 等。如果你能在 T2 阶段进入全生产阶段,那就已经做得相当不错了;幸运的是,我们的 T1 塑料已经达到 99%的完美度,这意味着我们可以轻松进入全生产阶段。T1 阶段仅存在一些与流动性和接缝线相关的小问题,以及一些因冷却过程中的变形或在脱模时与模具粘连而导致的变形。这些问题表现为外壳接缝处不如预期紧密,但只需稍作调整,我们就准备好进入生产了。
大多数人只见过成型工具的成品,因此我将分享一个典型的 T0(首次尝试)注塑样品,特别是像 Novena 外壳底座这种大型复杂工具的样品。像这样的测试样品通常使用废料树脂,且颜色较浅以突出缺陷。我们在这里使用了灰色塑料,以便于调整模具,但最终的成品底座是黑色的。

一些 T0 版本的 Novena 外壳底座照片。顶部照片中左侧的规则圆形阵列构成了 Peek 阵列的基础。为了形成这个阵列,注塑后将带螺纹的黄铜嵌件热铆进了圆形凸台中。
这块塑料的设计包含了很多细节。让我们聚焦于一些工艺特征。

T0 外壳底座变形的视觉指南
圆圈标出了沉陷痕,这种情况发生在塑料的另一面有特别薄或厚的特征时。这些区域的冷却速度与塑料的大部分区域不同,导致它们略微起皱,形成一种阴影效果。沉陷痕在镜面光泽的部件上特别明显。在这种情况下,沉陷痕是因为 Peek 阵列下方的螺母座部分的塑料比周围的塑料薄得多。为了解决这个问题,我们稍微加厚了该区域,使得外壳的总体内空减少了 0.8 毫米。幸运的是,我在设计外壳时就预留了一些额外的间隙余量,所以这一调整是可行的。
直线箭头指向的是接缝线。这是塑料流动在模具内汇合的区域。当塑料被注入模腔时,它通常会从一个或多个注入口流入,而当熔融塑料相遇时,会形成一条细小的疤痕。接缝线通常位于注入口之间的对称点上。在这个模具中,四个注入口位于橡胶脚位置的下方。由于注入口在外观上通常不美观,因此我们将它们策略性地安排在不显眼的地方。
曲线箭头指示的白色羽毛状物质是流痕。这些条纹出现是因为塑料在模具内冷却过快。通常可以通过调整注射压力、循环时间和温度来解决这个问题。最好的方法是在模具机上进行试射,以调整这些参数。可以一次调整一个参数,一次一次地测试,直到找到最佳的冷却速度。这个过程有时需要数百次试射,过程中会产生少量废料塑料作为副产品。
这些明显的缺陷大多数已经在 T1 阶段得到了修复,此时塑料的外观更接*于生产级别。我们还开始使用黑色塑料,这种塑料能更好地隐藏缺陷。
当然,仍然存在一些装配和外观上的问题。但是尽管如此,外壳感觉比原型更加坚固,气动活塞机制终于一致且非常顺畅。

T1 外壳底座,在将硬件转移到塑料部件后进行的初步测试
前面板的更改
Novena 外壳的前面板(不要与铝制 LCD 面板混淆)在众筹之后经历了一些变化。当我们关闭资金时,它有两个朝外的 USB 端口和一个开关。Novena 发货时则配备了两个开关,一个朝外的 USB 端口和一个朝内的 USB 端口。
一个开关用于电源:它直接连接到电源板,可以在主板完全关机时用来开关系统。另一个开关则连接到用户按键,用于方便与键盘的蓝牙配对,一些键盘在连接之前可能需要花费半分钟的时间来循环“某些东西”(大概是与安全相关)。虽然有绕过这个过程的黑客手段,但需要在主机上运行脚本。我们的想法是,通过按下这个按钮,用户可以触发一个便利脚本,从而绕过蓝牙的麻烦。这个开关还可以作为唤醒按钮,唤醒系统从挂起状态。
至于 USB 端口,设计总共有四个,但其配置变更为如下:
• 右侧有两个更高电流承载能力的端口
• 正面有一个标准电流端口
• 一个标准电流端口朝向 Peek 数组
换句话说,我们将一个 USB 端口面朝机器内部。由于 Novena 的一大乐趣在于硬件改装,我认为在内部安装一个 USB 端口至少和外部端口一样有用。
对于不进行硬件改装的用户,内部的 USB 端口也可以作为插入小型适配器的理想位置,这些适配器通常保持连接,例如键盘的无线电收发器。初次插入适配器时稍微有点不方便,但将无线电收发器适配器朝内放置有助于在将笔记本放进旅行包时避免其受损。
DIY 扬声器
我们为 Novena 考虑了多种扬声器选择。设计背后的核心理念是鼓励每个用户选择自己的扬声器。有些人在旅行时确实会在笔记本电脑上听音乐,但其他人则仅依赖扬声器用于通知音效,并且更倾向于使用耳机来播放媒体内容。物理学规定,高质量的声音需要一定的空间和质量。我们希望那些对音质要求较低的用户能够收回更好的扬声器所需的空间和重量。
Kurt Mottweiler 为 Heirloom 选择了一个既好又非常紧凑的现成扬声器 PUI ASE06008MR-LW150-R。当我们发现同款扬声器可以很好地安装在标准 Novena 的 Peek 数组中,且音质在其体积范围内也令人满意时,我们决定将其作为标准音频配置。但我们随产品附赠了一个安装套件,方便拆卸,以便需要回收空间的用户(或想要更换更大扬声器的用户)能够轻松实现。
PVT2 主板
Novena 主板在量产之前经历了小幅修订。主板的第四个也是最终修订版本被称为 “PVT2” 版本。大部分更改集中在更换或更新那些接*寿命终止的组件。从设计角度来看,两个最重要的新增功能是:一个用于连接前面板集群的内部柔性印刷电路(FPC)接口,以及一个专用的硬件实时时钟(RTC)模块。
我们添加了内部 FPC 接口,以改善从主板到前面板集群的信号传输。我们需要将两个 USB 端口以及一些 GPIO 和电源引出到前面板,而原来的连接方案需要多条电缆。更新后的设计将这些功能压缩成一条 FPC,简化了设计并提高了可靠性。
我们添加了专用的硬件 RTC 模块,因为 i.MX6 内建的 RTC 性能较差。CPU 在 RTC 上的漏电流高于数据手册中报告的值,并且系统关闭时 RTC 的使用寿命,最好的情况也仅能维持几分钟。我们认为继续使用板载 RTC 存在太大风险,因此选择了一个外部的专用 RTC 模块,我们知道它能正常工作。为了提高与其他 i.MX6 *台的兼容性,我们选用了 Solid-Run Hummingboard 使用的相同模块,即 NXP PCF8523T/1。
还需要注意的是,我们在主板的第二次修订中完全重构了 FPGA 扩展接口。本章开头展示的主板版本包含了一组针对运动控制应用优化的接口。我们认为主板的尺寸对于任何人来说都太大,无法将其放入四旋翼飞行器中,而且 FPGA 可能会作为高速数据采集和处理设备使用。为了实现这一功能,我们为 FPGA 配备了专用的 256MB DDR3 内存,并将高速差分信号引出到一个连接器上,该连接器能够以超过每秒一千兆比特的速率传输信号。用户仍然可以将 FPGA 用于运动控制应用,但需要插入一个简单的扩展板(如我接下来讨论的 GPBB)来将我们的信号引导到运动控制系统常用的连接器格式。

更新版的 Novena 主板
初学者的扩展板
每位支持我们的资助者都会收到一个作为感谢的扩展板,我们将其称为GPBB,即通用扩展板。我们在 Novena 上重新设计了 FPGA 扩展头,以针对高速应用,这也使得入门级黑客在使用设备时更加困难。由于物理学的限制,高速连接器通常有非常密集的引脚排列,对初学者不友好。我们设计了 GPBB,帮助入门级用户与 FPGA 配合使用。GPBB 将 FPGA 上密集的高速信号头转换为适合初学者使用的 0.1 英寸间距、40 针头,并且还包括一些 LED 和模拟数据转换器。

最终生产版 GPBB
对于初学者来说,一个日益增长的挑战是摩尔定律不断压低数字 I/O 的允许电压范围。新一代的晶体管在更低电压下运行,这使得它们与大多数入门级项目使用的传统+5 V 标准不兼容。例如,我们的 FPGA 只能处理高达+3.3 V 的信号。因此,我们在 GPBB 中内置了电压转换器,可以安全地处理+5 V 并将其降低到 FPGA 所接受的+3.3 V 水*。
最终版的 GPBB 包括了一项调整,使用户能够调整 I/O 电压,而不是将其固定在+5 V。我们提供了一个软件设置,允许用户选择 GPBB 的外部 I/O 默认是 5 V 还是 3.3 V,我们还设计了该板,使得用户可以通过更换一个单独的电阻(R12)将较低电压调整为 2.5 V 或 1.8 V。我将该电阻标记为“I/O 电压设置”,并将其做成 1206 封装,这样即使是焊接新手也能自行更改。
桌面 Novena 的电源通电板
“一体化桌面”配置最初仅包含桌面外壳、Novena 主板和前面板扩展。但这种配置使得电源管理变得尴尬,因为我为外壳设计的整体电源管理系统假设会有一个辅助微控制器来管理主切断开关。
复杂性是魔鬼,单单为一个配置启动软件就已经够难的了。最终,我们发现向桌面电源管理系统引入一个新的硬件比处理多种代码配置更为便宜。
因此,桌面系统随附了一个电源通电板。它是一个简单的 PCB 组件,仅包含完整电池板的 STM32 控制器和电源开关。这使得我们能够在桌面和笔记本系统中使用一致的总电源管理架构。

桌面通电板
这种方法就像用大锤打苍蝇——但是那把大锤的价格和苍蝇拍一样贵。而且同时携带苍蝇拍和大锤也很不方便。所以,是的,我们用了一个 32 位的 ARM CPU 来读取按钮的状态并切换 GPIO,是的,整个系统底层运行的是一个完整的多线程实时操作系统(ChibiOS)。
不过,这确实有点傻。这就是为什么我们启用了部分未使用的 GPIO 引脚,让 Novena 变得更加可修改。希望某个聪明的用户能发现这些未开发的潜力的应用!
定制电池包问题
Novena 的电池包无疑是该项目中的一个变数。构建 Novena 是 xobs 和我第一次制作如此高容量的电池系统,而且要处理所有的运输规定以确保电池顺利交付给客户,是一项挑战。
一些国家对于进口锂电池有特别严格的规定。在最糟糕的情况下,我们不得不给一些客户发送没有电池的笔记本电脑,然后我们从专门销售 RC 电池包的供应商(如 Hobby King)处单独按我们自己的成本把电池包邮寄给他们。他们收到了众筹活动中使用的相同电池包,但需要他们自己安装。这是我们最安全的备用方案,因为 Hobby King 每天会向全球发运成千上万的电池包。
然而,运输问题并没有阻止我们开发定制电池包。保持电池包的库存是困难的,因为电池需要定期进行保养,所以只有支持我们的项目的资助者才能获得这个电池包——前提是他们所在的国家允许进口。我们无法在尝试之前确定,但我们确实获得了定制电池包的 UN38.3 认证。从理论上讲,这个认证允许我们通过空运运输电池,但电池运输的规定总是处于不断变化之中。似乎各国和运输公司总是在不断创造新的规则,尤其是在对锂电池作为引火装置的潜在用途的恐惧之下,而我们并没有足够的资源跟上这种变化。
定制电池包的容量为 5000 毫安时,大约是我们在众筹活动中展示的电池包的两倍容量。(那个电池包外标写的是 3000 毫安时,但实际提供的容量大约是 2500 毫安时。)在实际测试中,定制电池包提供了大约六到七小时的运行时间,且启用了最少的电源管理。而且,由于我可以指定电池,我知道它内置了正确的保护电路,并且了解其电池单元的来源,因此我对其长期性能和稳定性充满信心。
选择硬盘
众筹活动中提到为笔记本和传家宝型号提供 240GiB 的 Intel 530(或等效产品)和 480GiB 的 Intel 720 驱动器。我们将规格描述得有些模糊,因为 SSD 市场变化迅速。我们知道,在制定规格时最好的驱动器可能与我们实际购买时能得到的最好驱动器不同。
经过一些研究后,我们认为在购买时最合适的驱动器是 240GiB 的三星 840 EVO(用于笔记本型号)和 512GiB 的三星 850 Pro(用于传家宝)。xobs 和我个人在自己的设备中使用了 840 EVO 几个月,表现非常出色。
对我们来说,一个重要的指标是驱动器在意外断电时的表现。断电事件发生得相当频繁,例如,当你在做电源管理子系统的开发工作时。一些硬盘在经历了几次意外断电周期后,表现出了相当高的故障率(这算不算自相矛盾?)。
对于传家宝型号,我们使用了三星的 850 PRO 系列。这款驱动器提供了一个适合传家宝的严苛保修:10 年。三星能够提供如此高的可靠性承诺,因为该驱动器使用了公司称之为 V-NAND 的技术,我认为这是首个真正的生产级 3D 晶体管技术。
注意
Intel声称它制造 3D 晶体管,但这不过是市场宣传而已。是的,栅极区域有一个凸起的表面拓扑,但你仍然只得到单层设备。从设计角度来看,你依然在使用一个二维的设备图谱。Intel 本应坚持我认为更为“原始”(也更具描述性/不易误导)的名称,FinFET,因为如果将这些称为 3D 晶体管,我不知道如果 Intel 最终制造出真正的3D 晶体管阵列,它会如何命名。
Chipworks,一家专注于专利支持的公司,对 V-NAND 做了出色的初步分析,*,显示这种技术并不仅仅是堆叠几个晶体管。V-NAND 堆栈是一个 38 层的有源晶体管三明治,全部集中在一个地方。这是工艺技术的巅峰之作。这就像是 Neo 解码矩阵,这就像是 Mal 先开枪。这是一个游戏规则改变者,而且它并非虚假宣传。传家宝的支持者收到了包含超过 4 万亿个这种晶体管的笔记本电脑。
固件定稿
从软件方面来说,下一步是最终确定内核、引导加载程序和发行版的选择,并决定当 Novena 第一次启动时显示什么内容。
Marek Vasut 将 Novena 支持集成到主线 U-Boot(通用引导加载程序)中,U-Boot 是最流行的开源引导加载程序之一。(Marek 是 U-Boot 的维护者之一。)这个过程涉及了大量补丁,部分原因是很少有 ARM 板卡能够像 Novena 那样支持这么多的内存。通过这些补丁,Novena 获得了完整的 U-Boot 支持,包括 USB 和视频。
我们决定将 Debian 作为 Novena 的出厂默认发行版,并使用了带有这些补丁的标准 Linux 内核。任何我们认为可能对其他项目有用的补丁都会提交到上游,并将继续提交。上游意味着一个属于衍生操作系统的包成为其衍生来源发行版的一部分。
我们确实保留了一些本地补丁,从专门的黑客手段到实验性特性,包含那些还没准备好推送到上游的特性,或者那些依赖于当时尚未上游的特性。例如,笔记本的显示系统与 ARM 设备上通常看到的显示系统非常不同。在大多数 ARM 设备中,屏幕在启动时是固定的,无法在运行时热插拔显示器。像典型的笔记本电脑一样,Novena 支持同时连接两个显示器,并允许在不重启的情况下插入 HDMI 显示器。对这个特性的支持需要一个仅限本地的内核补丁,因为它依赖于当时尚未上游的 ARM *台特性。
最后,我们只需决定在 Novena 开机时显示什么。在 Linux 中,首次启动设置界面(用于创建用户、设置时间和配置网络)并不常见。这在预装系统的 Windows 和 OS X 中很常见,但在 Linux 中,安装程序通常会处理这些事情。
我们在打造良好的桌面风格体验和提供实用的嵌入式开发者体验之间左右为难。桌面风格的体验将作为一个空白状态发货,并提示用户通过本地连接的键盘和显示器创建账户。但嵌入式开发者可能永远不会插入显示器,而更倾向于通过控制台或 SSH 连接;对于他们来说,默认的用户名、密码和主机名会更加有用。无论如何,我们希望创建一个在所有*台上都通用的固件,并避免为特定目标发布特别定制的版本。
最终,我们决定创建一个桌面风格的体验,并为高级用户提供跳过用户注册流程的途径。这让我们同时享受了两种体验的优点。它提高了 Novena 对入门级用户的可访问性,同时高级用户仍然可以直接进入工作状态。
构建社区
从一开始,xobs 和我就将 Novena 打造为赋能黑客的工具,因此我很高兴,即使在发货前,Novena 就有了活跃的 alpha 开发者。Jon Nettleton 和 Russell King 负责图形处理,U-Boot 的 Marek Vasut 也提供了帮助,另外几个 alpha 用户组实际上为该系统制作了硬件。
MyriadRF,一个专注于无线技术的开源硬件和软件社区,为 Novena 创建了一个软件定义无线电板。我们购买并将这些板卡与我们首次发货的桌面和笔记本单元集成。
CrypTech 团队也在 Novena 笔记本发货之前就开始将 Novena 应用于他们的项目。CrypTech 项目开发了一个硬件安全模块,提供了一个 BSD 和 CC BY-SA 3.0 许可的参考设计。该团队希望创建一个经过广泛评审、为加密设计的设备,任何人都可以为其应用程序定制,并使用自己可信赖的供应链轻松构建。CrypTech 使用 Novena 原型验证其设计的部分元素。

一个原型 CrypTech 扩展板,插入到 Novena 主板上
此处展示的扩展板是一个基于板中间晶体管的雪崩噪声的原型噪声源。CrypTech 使用该噪声在 Novena 的 FPGA 中生成熵。然后,将该熵与 FPGA 中由环形振荡器生成的熵结合,并通过例如 SHA-512 进行混合,生成种子。之后,这些种子用于初始化 ChaCha 流密码,最终生成一串具有加密安全性的随机值。其结果是一个高性能、最先进的随机数生成协处理器。
结束语
作为最后一点,如果有一件事是我和 xobs 在硬件行业中学到的,那就是你不能在蛋还没孵出来之前数小鸡。尽管在某个阶段我们取得了良好的进展,但这并不意味着我们会有一条容易的路走向最终的产品。即使我们在筹资结束时有了完全功能的原型,仍然花了数月的时间付出巨大努力,才能将数百个单位交付给最终用户。
现在,Novena 已经完成了发货,我们继续支持我们那群热情但非常耐心的用户群体。这是一项巨大的工作,主要由 xobs 承担,但我们一直在回答用户的问题,推送补丁,并保持 Novena 内核的更新。
我们这么做,尽管从 Novena 销售中没有获得任何新的收入。在回顾我们的众筹后销售数据时,显然没有可行的路径能通过销售 Novena 经营硬件业务;我们每月大约只会卖出几台单位。尽管通过最初的众筹活动我们满足了供应商的最小订单要求,但如果销量少于几百台,和供应商的合作将非常困难。以每月卖几台的最低采购量销售,意味着我们将背负着库存债务大约一百个月。我们将欠供应商几年的债务。几年来无法偿还供应商的债务,也被称为破产。
当然,我们会遵守最初的承诺,至少在初始资助活动后的五年内继续支持 Novena 主板。我们已预留了相当大一部分资金,以确保主板的稳定供应。我们的原始众筹伙伴,现在的在线销售合作伙伴 Crowd Supply,已经接手了剩余的外壳和配件库存。得益于我们的开源硬件模式,Crowd Supply 在最终用户需求出现时,可以选择为 Novena 制造和销售配件。
最终,我非常高兴看到一些新的项目像嫩绿的嫩芽一样萌发,旨在为终端用户提供更好的开源笔记本解决方案。与其与他们竞争,我认为 Novena 最适合做的事是让路,支持那些充满热情的新开发者,帮助他们通过销售自己的解决方案找到机会和财富。毕竟,我们最初开始这项冒险,主要是为了看看是否能够做到。我们想要打造一个很酷的工具,专为我们的日常使用场景量身定制;我们并不想开创一项出售具有可持续大众市场吸引力的笔记本电脑生意。如果 Novena 项目最终的影响是提高开源硬件的标准,甚至可能鼓励新一代与笔记本相关的项目,那么这本身就是一种巨大的回报。
第八章:8. chibitronics: 制作电路贴纸
在如今的合同制造和交钥匙服务提供商的世界里,设计师通常会从现有工艺中挑选一套方案来开发产品。大多数消费电子设备是由刚性 PCB、表面贴装焊接(SMT 回流焊)或穿孔波峰焊接、ABS 或 PC 注塑成型、钣金成型以及一些后处理工艺(如喷漆或电镀)等工艺组成的混合体。这些选项涵盖了大多数产品所需的功能。然而,真正出色的产品通常会引入新材料或创新的制造工艺。
开发这些新工艺并不一定要昂贵——只要你愿意亲自走到工厂车间,指导改进过程。换句话说,工艺开发中昂贵的部分通常是支付那些开发和认证工艺的专家费用,而不是设备或材料本身。
为了向自己证明这一点,我开始探索将柔性电路作为设计媒介。与使用 1 毫米或 2 毫米厚的刚性基板(由编织玻璃纤维和刚性环氧树脂组成)不同,柔性电路通常使用厚度只有几分之一毫米的可弯曲聚合物基板。聚酰亚胺是柔性电路中常见的基板材料,因为它能耐受高温焊接。尽管柔性电路技术在消费类产品中应用广泛(比如一部手机可能至少包含六个以上的柔性 PCB,连接按钮、摄像头和显示屏等外设与主板),但这种技术在爱好者和 DIY 产品中的应用仍然较少。但我认为这并非必须如此。
我有预感,设计出合适的柔性电路产品可以启用新的创意应用,但我不完全确定该如何实现,于是我决定进一步了解设计柔性电路的独特优势和挑战。在一个项目中,我深入研究了 SD 卡的内部结构,更多内容将在第九章中讨论,我需要为我的 Novena 开发一个适配器,以便让我能够监听并模拟某些旧款 SD 卡中内置的 NAND 闪存。柔性电路的薄度和可弯曲性非常适合这个工作。
结果适配器非常薄,完美地贴合在 NAND 的 TSOP 封装下。电路板的可弯曲性意味着我还可以适应各种各样的目标板形状,甚至是比典型 SD 卡大得多的板子。尽管这是柔性电路的一个有用应用,但我仍然觉得自己只是触及了可能性的表面。

我的定制柔性适配器
然后,幸运的时刻来了。在做 SD 卡项目时,我遇到了 Jie Qi,那时她是 MIT 媒体实验室的博士候选人,她正在将纸艺与电子学结合作为她研究的一部分。她是 2012 年 1 月我带领的一组 MIT 媒体实验室学生的成员,我带他们参观了深圳,看到她的纸电路实例让我脑中灵光一闪。

Jie Qi 的纸电路艺术作品的最终艺术作品,蒲公英图

花朵的特写

撕开画作揭示电路

蒲公英图中的花朵电路
只使用铜带、纸张和一些焊锡或胶带固定元件,Jie 就能创作出辉煌的艺术作品,这些作品会发光并与观众互动。这些迷人的杰作展示了电子技术不仅可以作为功能性媒介使用,还可以作为表现性媒介,激发惊叹与敬畏。这里的照片展示了她一件著名早期作品的内部,蒲公英图,其中电路本身与覆盖在其上的画作一样,都是一件艺术品。
Jie 也非常热衷于教育,她看到纸电子技术在使技术更具相关性并且更易接触到非工程领域观众方面具有巨大潜力。在我们去深圳的旅程中,我们讨论了在柔性电路上构建电路,然后将柔性电路焊接到纸张上的可能性。最终,她觉得那不过是一个微小的改进。虽然焊接并不是一个难以掌握的技能,但涉及的高温、化学物质和专用设备对初学者来说是一个巨大的障碍。真正神奇的是,如果电路能够像贴纸一样粘贴在页面上,那该多好!如果我们能使用柔性电路技术与传统的 SMT 回流工艺相结合,创造出用户可以粘贴到铜带电线上的模块,那该多棒!
这就是我们如何开始合作开发 Chibitronics 的过程。我们在这个项目中设计了一套撕贴式电子电路,用于手工制作和教育。Chibitronics 从一开始就是一个开源硬件项目,你仍然可以通过项目的 wiki 在chibitronics.com/wiki/上找到所有来自Circuit Sticker Sketchbook的活动、使用的所有微控制器的源代码以及其他技术细节。

Chibitronics STEM 入门套件包括 Circuit Sticker Sketchbook,LED 贴纸,铜带,电池和电池夹。

如何制作 DIY 压力传感器的解释

制作的 DIY 压力传感器

带纸覆盖的 DIY 压力传感器
与电路一起创作
我们在 2012 年初找到的解决方案基于麻省理工学院教授 Leah Buechley 的高低技术研究小组的研究成果。我们决定在柔性聚酰亚胺基板上构建电路,并在背面贴上各向异性胶带(也叫Z 胶带,因为电流仅能垂直通过胶带,而不能横向流动)。

在显微镜下的 Z 胶带
使用 Z 胶带可以让终端用户无需高温工艺,如焊接或回流焊,就能组装电路。仅需简单地将元件粘贴到位,对于艺术项目来说,这种方法极为有用,因为艺术项目通常涉及热敏感和/或可弯曲的材料基板,如纸张、织物和塑料。电路贴纸和铜胶带也很灵活,进一步使任何人都能在非传统材料中融入电子元件。这样友好且富有表现力的材料鼓励创作者将电路本身转变为美丽的艺术作品。

纸上的电路贴纸

织物上的电路贴纸
制作这些电路贴纸的过程主要围绕着 Z 胶带的限制。在这里展示的 Z 胶带附着在聚酰亚胺基板上的放大部分中,银白色的小斑点是微小的金属颗粒,它们根据统计分布从胶粘层的一侧延伸到另一侧。鉴于金属颗粒的分布特性,为了确保良好的电气接触,每个电路贴纸上的焊盘必须相当大。此外,彼此非常接*的电路轨迹可能会被嵌入的金属颗粒短路,所以在设计电路时,我必须小心地在裸露的焊盘之间留出足够的空间。Z 胶带材料的数据表中包含了最小焊盘尺寸和间距的规定,因此我以此为指导。
开发新工艺
设计包含工作电路的贴纸是一回事,实际制造这些贴纸则是完全不同的挑战。我们设想的电路贴纸并没有现成的标准制造工艺可以实现。最终,我有机会亲自验证我的理论——如果你愿意亲自操作,新工艺的开发可以以较低成本完成。所以,我开始了自己的小型研究项目,探索柔性电路介质及其制作电路贴纸的挑战,所有这些都在有限的研发预算下进行。
参观工厂
作为第一步,我参观了生产柔性 PCB 的工厂。这次参观让我大开眼界。

工人在手动对准盖层到柔性电路材料上
与焊接掩膜不同,柔性电路的线路由一种称为盖覆层的聚酰亚胺薄膜保护。焊接掩膜太脆弱,如果弯曲会破裂,但盖覆层能够在数千次弯曲循环中可靠地保持完整。然而,有时你需要使柔性电路的部分区域变得坚硬;例如,电路的某部分可能需要保持坚硬以便机械安装,且坚硬的电路对于表面贴装技术(SMT)加工也非常有帮助。

钢板被层压到柔性电路材料的背面
我知道聚酰亚胺加固件可以层压到柔性电路上,但事实证明,钢层压也是可能的。如果我没有亲自参观工厂,我可能永远不会知道这一点。亲自参观工厂还让我有机会亲眼见识到通过模切可以生产的各种复杂形状。形状的多样性是关键,因为我们还希望让电路贴纸看起来很酷。像如何切割材料的宽度,或者在模切中允许的最小半径等问题,单纯通过邮件是很难回答的,但在亲眼看到整个过程之后,这些答案变得直观易懂。

通过模切技术实现的复杂柔性电路形状
执行工艺能力测试
参观完工厂后,下一步是进行工艺能力测试,以突破制造工艺的极限。我们设计了一种非均匀的贴纸变体,涵盖了各种工艺能力的考验:长的导电孔链、3 毫英寸的线宽、0201 元件(小型表面贴装封装)、0.5 毫米间距的 QFN 元件(所有接触点都在底部的表面贴装元件)、体积较大的元件、使用焊接掩膜代替盖覆层、丝印的精细细节、固定标签、弯曲切口、混合型 SMT 和插孔焊接技术、Z 型胶带层压等。我们的工艺能力测试故意破坏了部分制造过程,目的是发现可能阻碍设计成功的薄弱环节。

我们为工艺能力测试制造的电路贴纸设计
当我第一次提出设计方案时,工厂直接拒绝了,称其无法制造。但在我解释了我的目标后,工厂同意生产该设计,前提是我愿意接受并支付所有生产的单元费用,当然包括不合格的部分。通过分析不合格单元的故障模式,我制定了一套设计规则,以保持高产率(从而降低成本)并成功生产电路贴纸。
根据这些设计规则,Jie 和我创建了我们的第一套“生产候选”贴纸。它们包括四种不同颜色的 LED(白色、红色、蓝色和黄色),以及两套智能贴纸。第一套智能贴纸包含一个预编程的微控制器,可以生成光的图案,例如渐变、心跳、闪烁和眨眼。我们称这些为“效果”贴纸;它们是一种物理编程,使非编程人员也能定制他们项目的行为。第二套贴纸包含一个用户可编程的微控制器,并加载了一个有趣的录音和回放功能作为演示,以及三个传感器。我们称这些为“传感器与微控制器”贴纸。
我们运行了少量生产候选批次,以找出在需要扩展时可能遇到的问题,并彻底调查任何会影响可靠性、产量或可用性的问题。特别是,我们必须开发一种新颖的方法,将 Z 胶带层压到贴纸的背面,以便与制造贴纸所需的模切工艺兼容。
在经过两轮生产候选方案后,我们感觉准备好了,想看看其他人能用电路贴纸做些什么。由于这是 Jie 的博士研究的一部分,我们有两种选择进行用户测试。传统的学术方法是向她的导师申请预算,制作有限数量的贴纸,并举行一系列闭门研讨会,研究年轻而富有创意的人们如何与这种新媒体互动。但这发生在 2013 年,所以可行的众筹*台开启了将我们的研究直接提供给感兴趣的用户的可能性,从而使我们能够进行大规模研究。Jie 所研究的麻省理工学院媒体实验室也非常关注通过大规模研究所能带来的可能性,这一点体现在他们的“部署”计划中。2011 年,当 Joi Ito 成为媒体实验室的新主任时,他开始将媒体实验室的文化从“展示或死”转变为“部署或死”,最终简化为不那么具有威胁性的“部署”指令。在旧的“展示或死”制度下,研究小组被鼓励创建炫目的技术演示,以帮助筹集资金。在伊藤的指引下,目标是通过众筹和精益硬件等工具,将技术从实验室带到外部世界,从而进行大规模研究。
2013 年 11 月,我们与 Crowd Supply 启动了一项众筹活动。对于我们来说,保持电路贴纸背后的学术使命是非常重要的,所以我们将资金目标定为仅仅 1 美元。如果即使只有一个人觉得电路贴纸可能有趣,我们也会制作这些贴纸,并与那个人合作收集反馈。当然,我们还会将这些研究成果公开,以便有些人可以分叉这个项目或以其他方式修改他们的电路贴纸。
我们超额完成了谦虚的目标,在不到一个月的筹资时间和非常低调的活动中,募集了接* $60,000。
履行承诺
在我们的众筹活动中,我们声明会在 2014 年 5 月前发货,感谢上帝,我们准时达成了目标。

62 个箱子,里面装有超过一千个 Chibitronics 入门套件,等待提货
然而,按时交付对任何众筹项目来说都不是一件简单的事。我做出有争议的选择,部分原因是因为 Crowd Supply 在审核硬件产品方面更具经验,而且他们为项目提供的服务(履行、一级客户支持、后期预售支持、根据需求与产能调整交付日期)对硬件初创公司来说是一个福音。将履行、客户支持和持续的电子商务网站作为配套服务意味着我们不必雇人来处理这些事务。无论你的“公司”是由两个人尝试一个学术项目,还是几个人在车库里工作,这都意味着很多。
Crowd Supply 的媒体影响力和品牌实力远不如 Kickstarter,这可能使筹集资金变得更加困难。但归根结底,我认为建立一个可持续的众筹实践示范非常重要,这对企业家和消费者都有好处。这不仅仅是今天为了赚钱;这关乎于打造一个可以信赖的品牌和声誉,让它能够持续多年。
为什么按时交付很重要
我为 Chibitronics 设置了一个个人挑战,那就是非常认真地对待我们对支持者的交付承诺。我已经见识过太多表现不佳的众筹项目,我深感担忧硬件众筹正在成为骗局和垃圾邮件的代名词。
Kickstarter 和 Indiegogo 一直被拖欠交付和骗局困扰,而它们对待众筹项目那种轻松的态度,caveat emptor(买者自负其责)突显了消费者与众筹网站之间的利益冲突。众筹网站基本上是在对支持者说:“嘿,谢谢你的零钱,但你那美元的去向是你的事。”我真心担心,众筹会因此背上坏名声,最终不再是有意图的企业家和创新者可行的*台。
关键是:如果我不能向当前和未来的支持者证明我能按时交付项目,我将失去一个宝贵的发布未来产品的*台。幸运的是,我们通过 Chibitronics 证明了自己的能力,之后我继续使用 Crowd Supply 进行其他众筹项目。
经验教训
我们并不是因为容易而按时交付 Chibitronics 的。当我制定原始的项目时间表时,我的交付时间范围从 2014 年中国春节(2 月)之后一直到 4 月左右。我在时间表的最大时间上多加了一个月以防万一,结果我们确实用尽了这个额外的时间。
在这个过程中,我犯了很多错误,但通过辛勤工作、运气、规划和与工厂的良好关系,我们成功克服了许多困难。以下是我在这个过程中学到的一些经验。
并非所有简单的请求对每个人来说都是简单的
每个 Chibitronics 入门套件都包括了一本 Jie 所写的精彩书籍的实体副本,这本书是一本逐步指导设计电路贴纸的自学指南——电路贴纸素描本(见 第 256 页–257 页)。这本书不同寻常,因为它的设计是让你把电子电路贴进去,因此我们需要定制印刷的多个方面。纸张需要具备合适的厚度,以便在 LED 放置在纸张下方时能有良好的光线扩散效果。装订也需要特别关注,以确保更好的电路制作体验,甚至在书籍的后面有一个小口袋,用来存放作为书中项目一部分的工艺材料样品。
印刷商发现大多数请求都相对容易满足,但有一个请求特别让他们感到困惑。书籍的金属螺旋装订需要是非导电的,这样在装订线上放置铜带时就不会意外地造成短路。
对于一个专门设计电路的人来说,检查电线的导电性看起来是个足够简单的请求,但对于一个书籍印刷商来说,这就显得有些奇怪。传统的书籍印刷或装订并不需要这样的知识。印刷商最初表示,他们无法保证装订线的导电性。果然,第一根样品线是非导电的,而第二根则是导电的,印刷商也无法解释为何如此。
面对面的会议在这里是无价的。我们没有通过邮件对印刷商发火,而是在我每月去深圳的行程中安排了一次与他们的会议。我们进行了富有成效的讨论,解决了他们的顾虑,会议结束时,我们为他们订购了一台价值 5 美元的万用表,作为确保书籍脊背不导电的交换条件。最终,印刷商只是因为没有相关的质量控制程序,无法保证这一点,这完全是合理的。我们只是需要教他们如何使用万用表。
这个不寻常的非导电要求确实将我们的交货时间延长了几天,并增加了几分钱的书本成本,但总体来说,我愿意接受这种妥协。
永远不要跳过检查图
电路贴纸的焊盘形状是复杂的折线几何图形,而我使用的 PCB 设计软件 Altium 处理这些形状时不太流畅。我通过艰难的经验发现,在 Altium 中,焊盘的焊膏层有时会因为几何形状复杂而消失。我设计的旧版本中,焊膏层是存在的,但在保存设计文件后,这一层会悄无声息地消失。虽然这种 Bug 比较罕见,但它确实会发生。通常,我会将 Gerber 文件导入第三方工具中作为检查图,在下单之前进行验证,但这次因为时间紧迫,我只是重新订购了一个之前已成功的设计,所以跳过了检查图的步骤。
结果呢?价值数千美元的 PCB 被废弃,我们的进度也因此延误了四周。真是痛啊。
幸好我提前预留了交货日期——而且我也备着一瓶上等威士忌,帮助我更轻松地接受那些因为自满而带来的痛苦提醒。
如果一个组件可以被放置错误,它就会被放置错误
我对零件放置错误非常敏感,因为这个问题曾让我吃过很多亏。Chibitronics 效果贴纸页就是一个典型的“潜在问题”例子。

Chibitronics 效果贴纸
该贴纸页是四个闪烁不同图案的 LED 贴纸,它们的其他部分是完全相同的。闪烁的图案由软件控制。试图管理四个独立的固件文件,并确保它们正确加载到测试器中的各个位置,简直是一个灾难。为了解决这个问题,我设计了这些贴纸使用完全相同的固件。它们的行为则由一个外部电阻的数值设置,这个电阻在启动时通过微控制器的集成 ADC 进行测量。
我的逻辑是这样的:如果所有贴纸使用相同的固件,就不存在“错误”的编程方式,对吧?
不幸的是,我还设计了主 PCB 面板,使其完美对称。你可以将面板以 pi 弧度的角度旋转后放入组装机器人中,组装程序依然可以完美运行——只不过,设置固件行为的电阻会与丝印标签的顺序相反。尽管 PCB 上有用于提供参考框架的基准孔,并且有中英文文本作为独特的方向标识,这个问题还是发生了。在首批效果贴纸样品中,“心跳”贴纸在“闪烁”,而“闪烁”贴纸在“褪色”,反之亦然。
幸运的是,工厂一贯地将板子加载到反方向,这是这种问题的最佳情况。我急忙发布了一个固件补丁(这也是一个有风险的举动),该补丁反转了电阻值的解释,并通过 FedEx 将一批新的样品寄到了新加坡进行检验。我们还在中国生产线上建造了一个二次测试夹具,用于手动双重检查闪烁行为是否正确。
效果表的问题解决了,但在做那个额外的测试时,我们发现了另一个常见问题。
有些概念在中文中难以翻译
我用中文编写了说明,向工厂描述了渐变(慢速闪烁模式)和闪烁(快速闪烁模式)之间的区别,但结果发现中文中blink和twinkle的翻译很相似。Twinkle翻译为闪烁(“闪烁、闪亮”)或闪耀(“闪光、闪烁、发光”),blink翻译为闪闪(“闪烁、发光、闪亮”)或闪亮(“明亮、闪闪发光、闪耀、闪烁”)。
我总是害怕用中文为测试操作员编写主观描述,这也是我尽量将测试自动化的原因之一。正如我一个中国朋友曾经说过的,中文是一个非常适合诗歌和艺术的语言,但对于精确的技术交流来说却相当困难。
所以,挑战就是提出一个万无一失的跨文化解释,清楚地描述渐变和闪烁之间的区别,使用简单的术语,任何人都能理解;也就是说,我必须避免使用random、frequency、hertz和periodic这样的技术术语。
我给工厂发了一段不同 LED 模式的视频,我们的工厂建议我们用渐变(“渐变变化”)来表示fade,用闪烁(“闪烁、发光”)来表示twinkle。我仍然不相信这是一个万无一失的描述,但它比我想到的任何翻译都要好。而且直到今天,我们仍然在为向质量控制人员解释这两种效果的区别而烦恼。结果发现,故障的贴纸也能产生相当不错的闪烁效果——至少有一段时间是这样。
有趣的是,杰和我也很难达成一致,关于“闪烁”效果应该是什么样子。她形容我们第一次尝试的效果是“更像雷电风暴,而非闪烁”。我们就这个问题进行了几次长时间的讨论,然后看了些示范视频来明确想要的效果。我们基本上是不断调整代码,直到它看起来对我们两个人来说都差不多合适。鉴于我们在相互描述这个效果时遇到的困难,毫不奇怪我在中文中很难准确描述这个效果。
消除单点故障
当我们制作测试夹具时,我们为每个夹具做了两个副本,尽管通量需求只要求一个。为什么?因为可能会有一个失败。
结果怎么样:一个测试夹具确实失败了。我至今也不知道为什么。幸好我们做了两个副本,否则我就得在短时间内赶到中国去诊断为什么我们唯一的测试夹具不起作用了。
一些临时的更改是值得的
在我们与工厂敲定奇比电子套件的订单大约六周前,杰建议我们在传感器和微控制器套件中加入一张贴纸图案的模板。她认为,对于像微控制器这样有七个接触点的复杂贴纸,如果没有接触点图案的图纸,布置铜箔带的图案会非常困难。我最初拒绝了这个提议;我不想因为没有在最初承诺的范围内增加内容而推迟发货。正如杰所发现的,我的情绪变化很大,尤其是当涉及到延期时。(抱歉,杰!感谢你忍耐我。)
但她的论点是有道理的,所以我指示我们的工厂去寻找模板供应商。两周后,我们还没有找到愿意承担这项工作的供应商,但我们的工厂采购部门并没有放弃。最终,他们找到了一家供应商,这家供应商有足够的原材料来准备模切机,并在两周内完成大约几千个模板——几乎刚好赶上计划的进度。

传感器和微控制器工作表及模板
当我收到带有模板的传感器和微控制器套件样品时,我试用了它们。杰完全正确地指出了它们的实用性。当我有了一个模板来操作时,尤其是在处理那个有七个紧密排列的接触点的微控制器贴纸时,我发现我的工作效率大大提高,我觉得用户们也会认同。正因为如此,尽管模板在最初的活动中并没有承诺作为一部分,但所有订购传感器和微控制器套件的支持者都收到了一个免费的模板,帮助他们布局设计。
春节影响了供应链
尽管春节假期是为期两周的假期,我们最初的计划几乎已经排除了二月份的时间。现实也与这一预期相符,但我想分享一下春节是如何影响这个项目的,万一你打算在中国制造产品的话,希望你能从中汲取一些经验。
我们的书籍草稿本来在一月份就准备好了,但直到三月我才拿到完整的样品。这并不是因为印刷厂停工一个月;像其他所有人一样,他们的假期大约也只有两周。不过,纸张供应商的假期在印刷厂之前大约提前了 10 天,而装订厂的假期则在印刷厂之后延长了 10 天。尽管每个供应商的假期都只有两周,但定制书籍的整个供应链实际上停工了大约 24 天,或者说几乎整个月的二月。春节假期的错峰安排是因为假期期间的庞大人口流动。
运输昂贵且困难
当我初步计算发货成本时,我意识到我们并不单纯是在卖电路贴纸——考虑到书籍的体积和重量,我们的主要产品其实是印刷纸张。为了优化物流成本,我推动将启动套件(包含书籍)和额外的单独书籍订单通过海运,而不是空运。
实际上,我们几乎在第一个套件发货前四周就准备好了启动套件和书籍,但我们就是无法得到合理的海运报价。我们花了差不多三周的时间与海运公司讨价还价并报价。最后,他们的价格基本和空运差不多,但需要多花三周时间,并且风险更大。显然,海运的运费只是其中的一小部分,真正让你吃亏的是各种附加费,从支付码头工人费到支付所有中介经纪人和仓库处理费用。那些固定成本累加起来,即便我们发货超过 60 个箱子,空运仍然更具成本效益。
注意
作为参考,一个马士基 40 英尺的海运集装箱可以容纳超过 1250 个箱子,每个箱子里装有 40 个启动套件。我们距离能够有效利用海运还差一个数量级。
直到你发货之前,你还没走出困境
在这个项目的每一个里程碑上,我都不得不提醒自己不要过早地高兴。各种问题, 从常规的 UPS 失误到一场悲剧性的航空事故,再到 Crowd Supply 仓库的物流问题,甚至是海关问题,都可能阻碍按时交付。但至少,我们尽了最大努力确保按时交货。
幸运的是,最终我们的支持者准时收到了他们的订单。从那时起,Chibitronics 一直超出了我最疯狂的预期。虽然我们最初将这个项目作为一个学术实验,但草根用户的采用促使我们将实验发展成了一家完整的公司。由于电路贴纸是一个开源硬件项目,规格可以供精明的黑客玩弄,但大多数用户都是非技术人士,他们从基础使用的支持中能获得更多的帮助。因此,公司努力为用户提供帮助、活动和更多的贴纸,帮助他们继续学习和制作美丽的电子工艺品。
总结思考
Chibitronics 对我来说是一次持续的学习经历,因为我从未有过公司像这样成功成熟的经验。我很期待看到公司未来的发展,但作为一名工程师,我也知道自己的局限:我并不适合做生意。当公司足够大,能够以可持续的方式支持自己的员工时,我期待着将公司交给别人,回到我的工作台,继续构思新的开源硬件发明。
第四部分
黑客的视角
工程学和反向工程是同一枚硬币的两面。最好的制造者知道如何破解他们的工具,而最好的黑客则经常制造新工具。我可能开始设计一个电路,结果却发现自己在反向工程一个芯片,因为数据手册模糊、不完整,甚至是错误的。工程学是一种创造性练习;反向工程是一种学习练习。当你将它们结合起来时,即使是最棘手的问题也能作为一种创造性学习的练习来解决。
我在学校里花了超过四分之一的世纪,但我从反向工程中学到的电子学知识更多。我喜欢尝试搞清楚为什么一个随机硬件背后的工程师做出了某些设计选择。高技能的工程师常常会无意识地创造出巧妙的技巧,而他们自己并没有意识到这些技巧有多么创新。这些技巧往往没有被记录下来或申请专利,唯一能获取这些知识的方法就是从完成的设计中解密。
看过足够多的电路板后,我开始识别出一些几乎具有文化性质的模式和个人风格。例如,苹果的电路板简洁而黑色,外观几乎像史蒂夫·乔布斯的黑色假高领衫一样具有标志性。设计电路板时有许多决策要做,大多数工程师只能从他们的文化影响和工具链中汲取灵感,来约束字体和零件选择等风格方面的东西。
这种学习对我来说非常重要,以至于在过去的十多年里,我每个月都会在我的博客上展示一块电路板,并挑战读者从它的设计中推测出它的功能。我定期举办这些比赛的部分动力,是为了让反向工程在文化上变得对读者更为可接受。人们经常问我,阅读他人的设计或修改和破解硬件是否合法。但任何养育过孩子的人都知道,通过模仿来学习是人类天性的一部分。我不同意那些将软件许可证条款置于你拥有硬件权利之上的法律解释。如果你不能破解它,那你就不拥有它。
随着我们对智能手机和计算机的依赖日益增加,民主化技术的可获得性变得愈发重要。技术在本质上对人类伦理是中立的;掌控技术的人有责任将其伦理化应用。有一种观点认为,技术应由一小部分受信任的大师控制;另一种观点则认为,控制技术应该属于任何具有动机和意愿去学习它的人。我们的技术基础设施正越来越成为一个单一文化,由技术提供商的卡特尔管理。每个人都携带着运行相同操作系统、基于相同库的智能手机,并使用一两个云服务来存储他们的数据。但历史已经证明,缺乏免疫力的单一文化注定会导致灾难。一种病毒足以摧毁整个群体。虽然普及技术可能让偶尔的坏分子开发出有害的漏洞,但这一苦涩的药丸最终会为我们的技术免疫系统接种,使我们变得更强大、更有韧性。无论威胁来自何方,拥有强大且充满活力的自由思考技术文化,将是我们应对任何攻击的最终防线。
说到病毒和免疫系统,硬件系统和生物系统之间有着惊人的相似之处。正如黑客攻击的核心就是重新思考 API 以实现意想不到的功能,生物学的一个中心原则——进化——也正是关于“API”优秀实现超越较弱的解释。
我常常阅读关于生命科学的期刊,不仅因为我觉得这个主题很迷人,还因为这对我有好处。寻找你主要领域之外的新鲜想法对解决问题非常有帮助。弄清楚一个生物体是如何工作的,实际上是一个非常困难的逆向工程问题:没有文档,没有设计师可以咨询,你的诊断工具大致等同于将一箱又一箱的智能手机扔进搅拌机,然后通过各种筛子筛出混合物。生物学家们开发了一系列非常巧妙的技巧,来在没有示波器的情况下绘制出复杂系统的地图,在高层次上,其中一些原则是可以应用于电子系统的。
随着我们对生物学理解的逐渐深入,计算机工程原理有着广阔的机会来推动这一领域的发展。我们已经达到了定制生物体的阶段;破解人类基因或设计我们的继任者的技术,可能会在几十年内到来。这些强大的工具值得我们更仔细地审视,以便做出独立的判断,分辨什么是事实,什么是虚构。
虽然工程是一项创造性的活动,但黑客行为是一个重要且常常被低估的学习练习。从正向到逆向工程的模式切换能力是一项强大的工具,而拥有黑客的权利则是健康技术文化的基础。本节的第一章回顾了我自己的一些黑客方法和努力,并讨论了一些保护这些活动的法律框架。第二章试图解构一些生物学中的关键概念,并从电子学的角度进行框架化。书中的最后一章是一系列访谈,在其中我讨论了对我来说“黑客”意味着什么,并回顾了一些我在制造业和硬件初创公司的经历。这个合集并不全面,但我希望你能喜欢阅读我一些随意的思考。
第九章:9. 硬件破解
破解的最大障碍通常是担心在试探过程中弄坏某些东西。但你必须打破鸡蛋才能做出煎蛋卷;同样,你必须愿意牺牲一些设备才能破解一个系统。幸运的是,获得多台大规模生产的硬件样本非常容易。我经常做一些垃圾桶潜水,或查看分类广告,以获取研究用的样品。我通常会从三台设备开始:一台拆开并永远不再组装, 一台用来探测,还有一台保持相对完好。我使用完好的设备来检查某种行为是否是由于我的探测所引起的,或者仅仅是硬件的正常表现。
我对任何硬件破解的典型方法是,首先打开设备,然后将探针放在正确的位置,而不影响设备的功能。当你研究计算机芯片时,这几乎就是全部挑战。 本章中的第一个破解示例是硅片破解,你将看到,一旦包装去除,裸露的硅片暴露在眼前,攻击者就拥有了巨大的优势。
一些硬件破解需要更多的系统工程,特别是当你想逆向工程并重新利用一个设备时。在这些情况下,我倾向于开发额外的定制工具,让我能够接*实时地调整和观察系统,或者至少在我能输入命令的速度下,尽量减少验证假设所花费的时间。目标是让主要的限制变成你能多快想到要测试的想法,而不是多长时间才能上传一个改变以测试这些想法。本章中的第二个破解讲述了如何逆向工程一种相对简单的系统单芯片(SoC)设备,这种设备常见于 SD 存储卡中,以及我为辅助这一过程而开发的一些工具。
最后,一些破解不可避免地会突破法律的边界。本章中的第三个破解讲述了 NeTV,一个我开发的系统,它对高清内容保护(HDCP)加密标准进行了全新的解读,HDCP 标准用于保护大多数 HDMI 视频连接。NeTV 是一个既涉及法律问题又涉及硬件系统的破解。它通过重新解释 HDCP 标准,绕过了 DMCA 所带来的棘手问题,从而实现了中间人攻击(MITM),可以在不绕过加密的情况下修改视频数据。没有绕过加密,就没有 DMCA 问题。破解经常突破法律和司法判决的边界。就像任何其他系统一样,法律系统也可以被破解,本章的一个重要收获是如何将法律看作是实现某个特定目标时需要应对的另一个约束条件。
本章的最后一个破解结合了硬件渗透、工具创作和法律考量,旨在逆向工程一个复杂的手机 SoC。这是我和 xobs 一起做的另一个项目,再次证明,构建定制的破解工具是非常宝贵的,因为它使我们能够在系统运行时进行实验。
破解 PIC18F1320
保守秘密是任何安全系统面临的常见挑战。为了应对这个挑战,安全系统设计师经常将秘密隐藏在硅芯片内部,因为芯片的坚固环氧封装和微小的几何结构很难穿透和检查。
这个理论上听起来不错,但在实际操作中却有问题。芯片设计师会犯错,当芯片出现问题时,设计师需要一种方式来打开芯片并进行调查。这种情况非常普遍,以至于有专门的商业服务,专门为此目的打开芯片。它们被称为故障分析服务,已经掌握了多种去除芯片上顽固环氧树脂的技术。
在我开始学习如何搭建中国供应链并与 Chumby 合作之前的几年,我决定展示一下如果知道故障分析服务,破解一个芯片其实有多简单。当时,Microchip 的 PIC 系列微控制器非常普及,所以我决定尝试一个流行的 PIC 型号。PIC 芯片通常有配置保险丝,你可以激活它们来防止某些内存区域被读取或写入。但是,通常会有合法的需求需要读取已加密、已编程的 PIC 内容。例如,一家公司如果丢失了产品文档或失去了原来编写加密 PIC 代码的人员,就无法读取芯片。这对需要修订或升级旧款产品线的公司来说是一个问题。
我想弄清楚如何从加密的 PIC 中转储内存。我知道要想做这件事,必须打破一些规则。所以我从朋友那里拿到了四个 PIC18F1320 并开始拆解它们。这是我发现的。

原始状态下的 PIC18F1320
去封装 IC
首先,我需要去掉顶部才能看到芯片内部的硅。许多自制的去封装芯片技术通常涉及使用硝酸或硫酸,但这些化学品你不希望在家里存放,而且它们也不容易获得。特别是硝酸,是制造炸丨药的重要化学品。所以,我发现最简单、最可靠的去封装方式就是直接把芯片送到故障分析实验室。大约 50 美元,你可以在两天内获得一个去封装的芯片。
我为这个项目去掉了三个芯片的封装。其中两个是功能性去封装(在保持设备仍在引脚框架中的情况下揭示硅芯片,完全可操作),最后一个是完全去封装(只是裸硅芯片,没有封装)。我去掉了一个芯片的封装,因为我的检查显微镜在最高放大倍数下工作距离非常短,封装上剩余的环氧树脂会干扰镜头。

*功能性去封装的 PIC18F1320。
中间的小方块(现实中呈金色)是硅芯片。*
仔细观察
手中拿着已经去掉封装的集成电路(IC),我用显微镜仔细观察了其中一个芯片的表面,注意到了一些显著的特征。由于物理规律在任何地方都是相同的,硅芯片中的大多数精细结构看起来几乎是一样的,不管是哪个厂家制造的。这些限制条件会一直延续到系统层面,通过一点训练,你可以像读书一样阅读硅芯片。

我对于这个芯片中各种结构的功能的最佳猜测。我可能是错的。
有一组结构立即吸引了我的注意:一些晶体管上方有金属屏蔽,按照规律的图案排列,正好有足够的设备数量来对应所有的安全位。完全覆盖设备的全金属屏蔽在硅芯片中非常罕见,因此它们像一个大大的 X,标记着存放非常重要内容的地方。

放大观察金属屏蔽
擦除闪存
屏蔽层之所以重要,是因为闪存技术的一些有趣事实,这种技术被这款 PIC 设备用来存储安全熔丝信息以及内部程序代码。闪存技术使用的浮动栅极晶体管结构,与老式的紫外可擦除可编程只读存储器(UV-EPROM)技术非常相似,比如 1970 年代的陶瓷封装 2716 芯片,这些芯片上有石英窗口,因此可以进行擦除。
在闪存和紫外 EPROM 设备中,数据是在电子隧穿到浮动栅极时写入的,电子会在栅极中停留数十年。浮动栅极中的额外电子会在存储晶体管的特性中产生可测量的偏移。不同之处在于,闪存可以通过电脉冲将存储的电子抽回(擦除设备),而紫外 EPROM 则需要高能光子将电子从浮动栅极中撞出。完成此操作所需的紫外光通常波长大约为 250 纳米。你需要昂贵的石英光学器件来操控这种波长的紫外线,以避免过多的损失,这使得利用这种光源有些困难。
从这些事实中我得出了一个重要结论:闪存设备通常也可以通过紫外光擦除,因为它们的晶体管结构与紫外 EPROM 设备相似。闪存设备周围的封装通常会阻止紫外光有效到达芯片表面,但由于这些 PIC 设备的塑料外壳已被去除,我可以尝试施加紫外光并观察发生了什么。
我进行了一次简单的实验,通过为 PIC 设备编程一个逐步变化的模式,反复存储从 0x00 到 0xFF 的十六进制数值。然后,我将 PIC 放进紫外线 EPROM 擦除器中烘烤……大约是洗个长时间的热水澡和查点邮件的时间。当我从擦除器中取出设备时,闪存确实恢复到正常的全 1 状态,安全熔断器则没有受到影响。经过几次烘烤 PIC 设备后,我发现如果我没有烘烤足够长时间,擦除的数据阵列会出现奇怪的读数,例如全 0,这种现象我至今无法解释。
擦除安全位
很明显,覆盖在安全熔断器上的金属屏蔽是为了阻止尝试选择性擦除安全熔断器,同时不影响闪存阵列的操作。

一张示意图,展示了屏蔽如何妨碍熔断位的操作,以及如何绕过这些屏蔽
我的难题在于,为了擦除闪存晶体管,必须有高强度的紫外线光照射到浮动栅极。金属屏蔽有效地反射了所有入射光,因此光线无法到达栅极。但我知道,覆盖在芯片上的光学透明保护介电层——二氧化硅与硅本身之间存在折射率不匹配,这意味着光线在某些角度下会从光滑的硅表面反射回来。要了解这种反射效果的例子,你可以跳进游泳池,潜入水下,抬头看水面与空气接触的地方。由于水和空气之间的折射率不匹配,光线在倾斜角度下会发生全内反射,因此水面在这个角度下看起来非常反光。
我计划利用这种反射效应将紫外线反射到氧化层上,再打到金属屏蔽上并反弹回浮动栅极。我认为通过调整 ROM 擦除器内部的 PIC 角度,我可以让足够的光反射到闪存晶体管区域,进而擦除安全位。在用各种小材料调整芯片角度尝试了几次后,我开发了一种意外有效的简单技巧:将芯片按一定角度推入紫外线擦除器的防静电泡沫内。

紫外线擦除器中的芯片与防静电泡沫
保护其他数据
然而,这种技巧并没有保护我想保留的闪存数据。为了避免擦除这些数据,我用一小块精确裁剪的电气胶带制作了一个硬掩膜,并用稳定的手法、两只镊子和显微镜将掩膜贴在芯片表面。电气胶带阻挡了紫外线直接照射到闪存代码存储区,并且部分从硅基底反弹回来的光线被胶带吸收。

封装中的芯片,闪存 ROM 数组上覆盖着电气胶带
这个掩码让我只重置了安全熔丝,而不会对闪存代码阵列造成太大的影响。以下截图展示了我使用的编程和读回工具根据内存阵列的状态。

我的 PIC 编程工作区,显示了擦除前的设备设置 和擦除后的设备设置

擦除后的设备设置
在前图中,请注意配置位窗口中的安全熔丝设置,以及在程序内存窗口中显示的闪存 ROM 中编程的值。在后图中,安全熔丝切换为禁用状态,而程序内存窗口中的闪存 ROM 内容与之前编程的内容完全一致。实际上,代码阵列的另一部分仍然被擦除了,但我可能可以通过剪下一块更大的电气胶带来解决这个问题。
我听说自从这个黑客攻击被公开后,Microchip 开始在代码内存阵列以及熔丝上放置金属屏蔽,使得实施这个攻击变得有些困难。尽管如此,这个攻击仍然突显了硅黑客的一个事实,那就是最难的部分往往是去除外包装,幸运的是,仍然有一些便宜但可能不太为人知的服务可以帮助解决这个问题。
破解 SD 卡
几年后,我发现自己又在破解一个有趣的设备——SD 卡。我曾在调查一批可能是伪造的 SD 卡时拆解过 SD 卡,这些卡被发现进入了 Chumby 生产单元,我在《伪造 MicroSD 卡》中对此进行了讨论,见第 156 页。这次,我的目的是弄清楚如何让 SD 卡做一些它原本不应该做的事情。这个黑客攻击是我与我的朋友 xobs 合作的另一个团队项目,资金来自 DARPA 的网络快速跟踪(CFT)计划。CFT 是超级黑客.mudge(L0pht 的原始成员之一)的构思,它是对美国政府的一次黑客攻击,目的是让政府在创新方面变得更聪明,尤其是在与互联网安全相关的问题上。我们在做 Novena 项目时差不多也同时完成了这个任务,而我当时还在与 Jie Qi 合作 Chibitronics 项目。
我和 xobs 发现一些 SD 卡存在漏洞,允许在内存卡上执行任意代码。我们还发现类似的漏洞存在于相关设备中,如 USB 闪存驱动器和固态硬盘。在暗面,这种内存卡上的代码执行使得中间人攻击(MITM)成为可能,其中卡片看起来以一种方式工作,但实际上却做了别的事情,攻击者通过拦截并操纵卡片与设备之间的通信来实现这一点。然而,从积极的方面来看,这个漏洞也为硬件爱好者提供了一个非常便宜且普遍存在的微控制器来源。

我们打开的其中一些“蛋”——或者说 SD 卡——找到了漏洞
SD 卡是如何工作的
要理解这个黑客技巧,你需要了解 SD 卡的结构。我接下来要解释的信息适用于所有受管理闪存设备,包括 microSD、SD 和 MMC,以及通常焊接在智能手机主板上的 eMMC 和 iNAND 设备,用于存储操作系统和其他私人用户数据。
闪存被宣传为一种连续、可靠的存储介质,而且它非常便宜——便宜到这个前提几乎好得让人难以相信。实际上,所有闪存都充满了缺陷,毫无例外。它通过复杂的错误修正和坏块管理功能制造出了可靠性的假象。这个系统是工程师和大自然之间持续博弈的结果:每次制造过程缩小晶体管尺寸时,内存变得便宜,但也更加不可靠。同样,每一代芯片,工程师都会创造出更加复杂的算法,以弥补大自然在原子尺度上对熵和随机性的倾向。
这些算法过于复杂且设备特定,无法在应用程序或操作系统层面运行,因此每个闪存磁盘都会配备一个相当强大的微控制器来运行一套定制的磁盘抽象算法。即使是微小的 microSD 卡,也包含不止一个,而是至少两个芯片:一个控制器和至少一个闪存芯片。(高密度卡会堆叠多个闪存芯片。)

microSD 卡内部。右上角的小方块是一个微控制器 SoC,它安装在更大的闪存芯片上,负责管理该闪存芯片。
根据我的经验,集成在存储卡中的闪存芯片质量差异很大。芯片的质量可以从高品质、全新的硅片,到含有超过 80% 坏扇区的材料。如果你关心电子废弃物,可能(或者可能不会)高兴地知道,存储卡供应商通常使用回收的闪存芯片,这些芯片是从废弃的零部件中回收的。较大的供应商往往提供更一致的质量,但即使是最大的厂商,也坚决保留将不同控制器和闪存芯片混合搭配,然后将组装品以相同的零件号出售的权利。如果你正在处理与特定实现相关的错误,这无疑是一场噩梦。
内存卡中的嵌入式微控制器通常是一个经过重度修改的 Intel 8051 或 ARM CPU,接* 100 MHz 的性能水*,并且在芯片上集成了多个硬件加速器。令人惊讶的是,将这些控制器添加到内存卡上的成本仅约为$0.15 到$0.30,特别是对于那些能够在同一业务单元中生产闪存和控制器的公司来说。更有趣的是,由于在晶圆级别测试芯片的高成本,添加一个管理坏块的微控制器可能比彻底测试和表征每个原始闪存芯片的成本还要低。而事实上,尽管功能更多,管理型闪存设备的每位成本往往低于原始闪存芯片。
每种闪存实现都有独特的算法要求,这增加了微控制器必须处理的硬件抽象层的数量。这种复杂性不可避免地会导致漏洞,这意味着将静态代码烧录到片上 ROM 中并不可行,特别是对于第三方控制器而言。
因此,固件加载和更新机制几乎是必须的。最终用户很少接触到这个过程,因为它通常发生在工厂里,但这个机制是存在的。在中国电子市场上,我曾看到店主将固件烧录到卡片上,以“扩展”卡片的容量。换句话说,他们加载的固件报告的卡片容量要远大于实际可用存储。这种在销售时就能做到的事实表明,更新机制可能并没有得到很好的安全保障。
反向工程卡片的微控制器
我和 xobs 在使用 AppoTech 的 AX211 和 AX215 微控制器探索内存卡时,发现了这个漏洞的一个例子。我们发现了一个简单的“敲击”序列,它通过制造商保留的命令(一个名为CMD63的命令,后面跟着字节A、P、P、O)将控制器置于固件加载模式。收到敲击序列后,卡片接受接下来的 512 字节,并将数据作为代码执行。
注意
我在这里描述的 AppoTech 芯片技术上集成了足够的功能,从学术角度来看,它们不仅仅是微控制器;它们是完整的 SoC。但对我来说,称 AppoTech 为 SoC 有点奇怪,所以我不会这么称呼它。对我而言,它永远是一个微控制器!
这个特定内存卡上的 AppoTech 系统也使用了 8051 微控制器。通过“敲击序列”突击,我们使用了分析代码的工具 IDA(交互式反汇编器)和模糊测试(即给微控制器输入无效或随机数据,看看它如何响应)相结合的方法,反向工程了 8051 的大部分功能特定寄存器。这使我们能够在没有制造商专有文档的情况下为控制器开发新型应用。我们大部分工作是使用我在第七章中描述的 Novena 笔记本硬件完成的。
正如我在本章开头提到的,我们开发了几个定制工具来帮助我们逆向工程 SD 卡。我们(严格来说是主要由 xobs)制作的一个更有趣的工具是一个交互式 REPL(读取-评估-打印-循环)外壳,用于在 SD 卡上执行任意代码。以下列出了该环境的外观。
root@bunnie-novena:~/ax211-code# ./ax211 -d debug.bin
FPGA hardware v1.26
Debug mode APPO response [6]: {0x3f 0x00 0xc1 0x04 0x17 0xab}
Result of factory mode: 0
00000000 0f 41 1f 0f 0f 0f ff ff |.A......|
Expected 0x00 0x00, got 0x0f 0x41
Loaded debugger
Locating fixup hooks... Done
AX211> help
List of available commands:
hello Make sure the card is there
peek Read an area of memory
poke Write to an area of memory
jump Jump to an area of memory
dumprom Dump all of ROM to a file
memset Set a range of memory to a single value
null Do nothing and return all zeroes
disasm Disassemble an area of memory
ram Manipulate internal RAM
sfr Manipulate special function registers
nand Operate on the NAND in some fashion
extop Execute an extended opcode on the chip
reset Reset the AX211 card
help Print this help
For more information on a specific command, type 'help [command]'
AX211> help disasm
Help for disasm:
Disassemble a number of bytes at the given offset.
Usage: disasm [address] [bytes]
AX211> disasm 0x200 16
.org 0x0200
nop
nop
reti
nop
mov R7, A
reti
mov R7, A
nop
mov R7, A
nop
mov R7, A
nop
在这个环境中,我们可以在调试器中运行程序,通过输入 help 获取可用命令及其功能列表,输入 disasm 反汇编代码段。虽然开发这样一个功能丰富的交互工具花费了大量时间,但这个努力很快得到了回报,因为我们能够使用自动化模糊测试框架测试复杂的假设。
代码上传的大小限制为 512 字节,这意味着我们必须在主机 Novena 计算机和目标设备之间划分 REPL 环境。* 例如,反汇编某个特定内存区域的操作会分解为在主机端执行的脚本,脚本向 AX211 发出请求,以转储请求的内存部分,接着在主机 ARM CPU 上运行反汇编算法。

将 SD 调试功能在主机和目标之间进行分配
我们构建的工具从 SD 物理仿真层开始,我将其称为 PHY。我们使用 Novena 中内置的 FPGA 为 SD 主机 PHY 提供类似 GPIO 的寄存器 API。这里有一个寄存器用于数据输出,一个寄存器用于数据输入,还有一个寄存器用于按位设置数据方向。AX211 卡通过定制的柔性电路适配器连接到 FPGA。*

连接到 Novena 的柔性电路适配器
SD 命令通过 AX211 接收,并由连接到嵌入式 8051 CPU 的硬件状态机处理。状态机负责接收数据,并计算和检查循环冗余码以进行错误检测。一旦状态机接收到完整的数据包,它会通过中断通知 8051 数据包的到达。
我们劫持了中断处理机制,并将默认处理程序重新映射到我们自己的 512 字节代码存根。这样,我们就能够定义一组新颖的 SD 命令,用于实现 REPL 环境所需的回调函数,例如 peek、poke、jump、NAND 寄存器操作等。这些回调也为实施 MITM 攻击提供了理想的挂钩。

REPL 的回调函数,显示在 IDA 中
我不清楚还有多少其他厂商没有保护他们的固件更新过程。AppoTech 是 SD 控制器行业中的一个相对较小的玩家;还有一些你可能从未听说过的公司也生产 SD 控制器,包括 Alcor Micro、Skymedi、Phison 和 SMI。当然,还有 SanDisk 和 Samsung。每家公司都有不同的固件加载和更新机制。但我知道至少有一个使用 ARM 指令集的三星 eMMC 实现存在一个 bug,需要通过固件更新器推送到 Android 设备上,这也暗示着另一个可能的、有前景的探索方向。
潜在的安全问题
从安全角度来看,我们的研究表明,虽然存储卡看似无害,但它们运行的代码可以被修改,用来执行难以检测的中间人攻击(MITM)。目前没有标准协议或方法来检查和验证存储卡微控制器上运行的代码内容。如果你在高风险、高敏感度的环境下使用 SD 卡,不要认为运行security-erase命令(或其他某些安全擦除工具)就能确保完全擦除敏感数据。如果你真的需要让数据彻底消失,我建议通过完全物理销毁来处理你的存储卡。如果有需要,可以用研钵和杵把它碾碎。
爱好者的资源
从 DIY 和黑客的角度来看,我们的研究表明,存储卡可能是一个有趣的来源,可以为简单项目提供便宜而强大的微控制器。一个 8 位、16 MHz 的 Arduino 克隆板大约需要花费$20。而一张带有几 GB 内存的 microSD 卡和性能是其几倍的微控制器则只需花费极小的价格。尽管 SD 卡的输入输出性能的确有限,但通过巧妙地破解 SD 卡上的微控制器,可能会为基于 I2C 或 SPI 的传感器提供一个非常经济且紧凑的数据记录解决方案。
破解 HDCP 保护的链接以允许自定义叠加层
“那很酷,但这合法吗?”这是我在破解时经常被问到的问题。就像工程系统有破解一样,法律系统也有漏洞。有些法律漏洞是设计使然;而有些则是无意中产生的。无论是哪种情况,它们都能为创新提供重要的喘息空间。在考虑破解时,我会像考虑工程限制一样考虑法律问题,这就像必须将某个东西装入特定高度的机箱,或者让它在给定的电池上运行特定时间。
大约在 2011 年,当我还在 Chumby 时,我们在思考如何应对 iPhone 和安卓手机占领我们希望进入的市场细分。成本是用户接受的永恒障碍,而 Chumby 中集成的 LCD 屏幕无疑是最昂贵的部分。我们当时的首席执行官 Steve Tomlin 指出,家里最大的屏幕仍然没有以任何有意义的方式连接到互联网。于是,这个问题被抛给了我:我们能否找到一种方法,一举两得,既去掉屏幕这一部件,同时把电视带入互联网时代?那时像 Google Chromecast 和 Logitech Revue 这样的产品还未问世。
我们想到,或许可以把一台便宜的计算机装进一个可以插入 HDMI 端口的棒子里。这样就解决了将 Chumby 显示到电视屏幕上的问题,但当选择 Chumby 时,你就不能看你最喜欢的电影或电视节目了。我们认为人们真正想要的是某种方式,既能看电视,又能在屏幕上弹出比如 Twitter 或 Facebook 的通知。
这个概念非常简单。获取来自机顶盒、蓝光播放器或 AV 接收器的现有输出,传入一个将 Chumby 内容与视频信号融合的盒子,然后将合成后的信号传送到电视上。但由于 HDCP 加密技术在数字视频信号中的广泛应用,如果你采用错误的方法混合内容,从法律上讲是非常危险的。找到正确的方法就是 NeTV 诞生的原因。

带有 Chumby 标志的 NeTV

NeTV 内部
背景与 context
NeTV 是我对如何在法律框架内将现有视频与互联网内容混合的回应,得益于 2010 年 9 月公开发布的 HDCP 主密钥。为了帮助你理解这个黑客行为,我们先从 HDCP 的背景开始讲起。
高带宽数字内容保护(HDCP)是一种用于加密通过 HDMI 传输的视频信号的像素级加密系统。HDCP 让广播公司和电影公司掌控其内容播放的屏幕,因为这些公司利用加密作为版权控制机制。HDCP 限制了合法的视频内容操作,比如画中画显示、内容叠加、第三方过滤和图像修改。将 HDCP 与数字千年版权法案(DMCA)结合起来后,你会意识到,在观看某些视频时,擅自修改屏幕上的内容是非法的。这也是为什么实际上没有多少 HDMI 视频混合解决方案能够操作广播或电影内容。
回顾一下,我为 NeTV 设定了四个目标:使消费者能够进行内容重混,允许用户消除广告或将其替换为与自己相关的广告,创建互动电视体验,并使其与任何电视兼容。为了实现这些目标,我将 NeTV 设计为中间人,从例如 Blu-ray 播放器获取数据,并应用主密钥以提供自定义叠加效果。视频叠加有许多应用场景,但基本的场景是,当你在享受内容 X 时,你还希望能够了解内容 Y。将这两个内容源结合起来需要一个视频叠加机制。
通过我的 MITM 攻击,NeTV 在任何视频流上叠加了一个 WebKit 浏览器(Safari 和 Chrome 使用的引擎)。这个技术的具体应用案例是将 Twitter 动态作为新闻滚动条覆盖在电视节目上,实时观看社区评论,并且是在你观看节目的同一屏幕上。有些电视节目已经尝试将 Twitter 动态结合进来,但他们仅在源端做了这些;用户只能观看节目显示的标签。然而,通过这个黑客技术,相同的广播节目(例如一场政治辩论)就能根据观众 Twitter 爬虫中输入的标签,提供截然不同的观看体验。
一个简单的事实是,简单的视频叠加是一个有趣的话题,这说明了 DMCA 所带来的对传统权利和自由的扭曲。然而,与人们猜测主密钥发布后可能出现的 HDCP 去除器不同,我的黑客行为从未解密它操作的原始视频数据。因此,它没有绕过版权,DMCA 无法适用。漏洞找到了!
NeTV 的工作原理
当然,我将该漏洞作为一个完全开源的项目发布,*,包括硬件以及我用来创建 TMDS 兼容源和接收器的 Spartan-6 FPGA 的 Verilog 实现。TMDS 是 HDMI 和 DVI 使用的信号标准。FPGA 内部的基本流水线将输入的视频进行反序列化,然后再序列化到输出端。在这个简单模式下,NeTV 仅仅是视频的信号放大器:加密的像素输入,加密的像素输出——没有解密,也没有视频处理。
NeTV 可以将用户生成的内容流与加密视频流混合,因为 HDCP 加密时不进行验证。换句话说,如果中间人篡改了加密流,接收器会直接接受篡改后的像素作为有效数据,解密后并将其呈现给用户。缺乏链路验证是有意为之,也是必要的。HD 视频链接的自然比特错误率非常高,但人眼即便在每 10,000 个比特中有 1 个错误时,也无法察觉(在高错误率下,用户会在屏幕上看到“闪烁”或“雪花”效果,但图像基本完好)。允许一些像素级的损坏能保持消费者成本低廉,否则将需要更高质量的电缆并采用 FEC 技术,才能实现与严格的加密验证技术(如全帧哈希)兼容的比特错误率。
因此,NeTV 的主要挑战是生成与发射器密钥流相同并同步的密钥流,使用该密钥流加密用户生成的内容,并在飞行过程中选择性地将发射器的像素交换为用户加密的像素。如果一切对齐,接收器将解密出看似完美的图像,即用户生成的内容叠加在原始视频流之上。

NeTV 工作原理的高级概念图
创建覆盖层
为了生成用户覆盖内容,我们将一台小型嵌入式 Linux 计算机连接到 FPGA。从 Linux 计算机的角度来看,FPGA 模拟了一个并行 RGB LCD,可以通过使用帧缓冲区 /dev/fb0(Linux 中第一个帧缓冲区的文件路径)来访问。Linux 计算机将在启动时自动启动一个全屏的 WebKit 浏览器,从而将 /dev/fb0 填充为用户的内容。
系统通过观察 WebKit 覆盖层视频的颜色来选择交换哪个像素,这个技巧被称为 色键技术。覆盖层视频没有被加密,并且是用户生成的,因此查看覆盖层视频的颜色是完全合法的。然而,其他更具表现力且在美学上更具吸引力的像素合成方法(如 alpha 混合)则需要解密原始视频,这将是非法的。
如果覆盖层视频匹配某个特定的色键颜色(在这种情况下,是特定的亮粉色),则显示传入的视频;否则,显示覆盖层视频。按照这一系统,用户可以在自定义 UI 中创建透明的“孔”,以展示底下的原始视频。由于 UI 是通过 WebKit 浏览器渲染的,用户可以通过简单地在 UI 页面 CSS 中设置背景色为那种魔法粉色来实现色键效果。使用这些设置后,网页的默认状态将是透明的,所有渲染在其上的项都是不透明的,只要 UI 元素避免使用色键颜色并关闭像抗锯齿这样的增强效果。
构建密钥流
当然,色度键控发生在加密域中。因此,FPGA 的第二项任务是窃听 HDMI 连接,并制作一个与发射器完全相同的密钥流。首先,FPGA 观察了 HDMI 上的 I2C 连接,该连接被称为数据显示通道(DDC)。DDC 使得显示器能够报告其能力记录(称为扩展显示识别数据,或 EDID),并且也是加密密钥交换的地方。
通过观察发射器和接收器之间的密钥交换握手,NeTV 可以借助 HDCP 主密钥数学地提取发射器和接收器的私钥。一旦私钥向量被推导出来,它们可以像源或接收端一样被相乘,以推导出共享的秘密,称为 Km。当共享的秘密写入 FPGA 的 HDCP 引擎时,密码状态就绪,从而使 NeTV 能够加密视频源和视频显示设备之间传输的视频叠加层。
通过将法律约束视为另一种工程约束,我能够创造出一种全新的设备,这证明了一个观点:自动将绕过 DRM 系统的黑客行为与规避版权的尝试等同起来是错误的。NeTV 从不解密之前加密的视频,并且在没有有效的 HDCP 连接的情况下无法操作,这使其成为 HDCP 主密钥的真正合法且商业上有用的应用。

更详细的框图展示了 NeTV 的 FPGA 如何工作
到目前为止,在本章中,我们已经看到了不同硬件黑客方法和技巧的示例,从物理渗透到系统级工具构建与分析,再到将法律约束视为工程问题。在“谁是山寨?”一节中,位于第 122 页,我讨论了一个名为 Fernvale 的项目如何采用法律手段逆向工程一个手机芯片。在将法律视为工程问题的同时,我和 xobs 不得不竭尽全力,运用我们掌握的所有技术手段来逆向工程如此复杂的系统。本章的其余部分深入探讨了其中一些技术。
破解山寨手机
当我和 xobs 在 Fernvale 项目中工作时,我们的目标是从我那台$12 的公开手机硬件中衍生出一个新*台,并将技术信息重新引入开源 IP 系统。我们对一些芯片的部分内容没有任何文档,但这并没有阻止我们。我们航行在复杂的法律水域中,并创造了自己的自定义脚本语言,以编程芯片的固件,避免无意识的剽窃。
然而,与固件相比,硬件的逆向工程任务相对简单。我们搜集到的文档给了我们芯片引脚布局的概念,且引脚命名方案足够清晰,以至于我可以凭借常识和经验猜测如何连接这些引脚。对于不明确的部分,我使用万用表测试了一些拆解的手机,或者通过显微镜观察它们以确定连接情况。在最糟糕的情况下,我会用示波器探测一个工作中的手机,以确保我正确理解了连接方式。更难的问题是如何设计硬件架构。
系统架构
我们并不是要制造一部手机,而是做一个更接* Particle 的 Spark Core(现在的 Photon)的产品,即一个为物联网应用设计的通用系统模块型单板计算机。事实上,我们最初的设计和引脚布局是为了兼容 Spark 硬件扩展生态系统的,直到我们意识到公开手机的 MT6260 微控制器有太多有趣的外设,无法在这么小的体积中容纳下。

Fernvale PCB 的早期草图
最终,我们选择了一个单面核心 PCB,称之为 Fernvale Frond,嵌入了 microUSB、microSD、电池、相机、扬声器和蓝牙功能(以及必备的按钮和 LED)在一块板上。Frond 设计得既薄又小,厚度为 3.5 毫米,长度为 57 毫米,宽度为 35 毫米。我们在板上设置了安装部分引脚头的孔位,孔距适配 Arduino,尽管这块板只能插入 3.3V 兼容的 Arduino 设备。

Fernvale Frond 的实际实现,图中搭配 Arduino Uno 以便对比尺寸
我们将剩余的外设分开到一对连接器中:一个专门用于 GSM 相关信号(GSM 是 2G 手机网络的协议),另一个用于 UI 相关外设。我们把 GSM 板称为 Fernvale Spore,UI 板称为 Fernvale Blade。我们将 GSM 拆分成一个模块,提供多种 RF 前端选择,使 GSM 成为一个真正由用户安装的功能,从而将监管和排放问题推到用户层面。将 UI 相关功能拆分到另一个板卡也降低了核心模块的成本,让用户在多种场景下尝试 Frond,而不必被限制在特定的 LCD 或按钮布局中。

一张 Fernvale 系统图,展示了三个板卡的各自特点
MT6260 内部结构
我让人对 MT6260 进行了 X 射线检查,帮助我们识别假冒组件。我们不得不从灰色市场采购 MT6260,并且我们希望防止买到空的环氧树脂块或者其他芯片的伪造版本。MT6260 有-DA 和-A 两种变种,区别在于芯片内嵌的闪存大小。

*MT6260 芯片的 X 光图像。
仔细观察,可以发现多个集成电路(IC)在引线焊接之间的轮廓。*
令我们吃惊的是,这款 3 美元的芯片并不包含单个集成电路(IC),而是将至少四个(可能五个)芯片集成在一个包含数百根引线焊接的多芯片模块(MCM)中。我记得 1990 年代末,Pentium Pro 的双芯片封装问世时,曾引发关于 MCM 产量成本与使用单一大芯片的争论;通常认为,MCM 是异国情调且昂贵的。
我还记得在那个时候,Krste Asanović——当时是麻省理工学院人工智能实验室的教授,后来在加利福尼亚大学伯克利分校任教——曾告诉我,电子产品的未来并不是单芯片系统(System-on-a-chip)设备,而是“以芯片为主的系统”(system-mostly-on-a-chip)设备。他主张这一观点的根本原因是,将 DRAM、闪存、模拟、射频和数字功能集成到单一工艺中,增加掩膜层的经济性并不理想;将多个芯片合并成单一封装既更便宜又更容易。
这仍然是一场关于半导体厂商在制造过程中添加更多步骤所带来的成本影响(包括单件成本和非重复工程成本)与组装模块的产量影响、相对可重工性以及更低的非重复工程成本之间的竞赛。在 Krste 提出这一观察时,单芯片系统(System-on-Chip)设备是时代的产物,而且它们至今仍然是,所以看到一个重要的数据点验证了他的洞察力,确实很有意思。
理解芯片的内部结构对于反向工程系统也非常有帮助。得知联发科仅仅是将多个芯片结合在一个封装中,给我们提供了关于其 API 的目的和组织结构的宝贵线索。它还提示我们,系统中的某些元素会在多个产品类别和代际间重复使用,因此我们知道可以从老旧或相关芯片的文档中得出有意义的结论。在拼凑这样复杂的难题时,每一条线索都很重要,包括仅仅通过观察芯片的物理结构得到的线索。
反向工程引导结构
中国的山寨工程师似乎仅仅能接触到足够的文档来组装手机并自定义其用户界面,但却没有足够的资料进行完整的操作系统移植。在拆解了足够多的手机后,我最终意识到,所有基于某一特定芯片组的手机都会有相同的后门代码,并且它们的图形用户界面(GUI)通常与实现的硬件不一致。例如,我在第四章拆解的那款 12 美元的手机就让我不得不把耳机插入耳机插孔才能使用 FM 收音机,然而它根本没有耳机插孔。
为了通过开源许可使 Fernvale 能被西方工程师访问,我们不得不从零开始重建所有内容,包括工具链、固件闪存工具、操作系统和应用程序。但所有中国的手机实现都仅依赖于联发科的专有工具链,这意味着我们不得不进行一些逆向工程,以弄清楚启动过程和固件上传协议。
我逆向工程芯片的第一步通常是尽可能地转储 ROM。我们找到了一款具有外部 ROM 的手机型号,可以将其焊接下来(它使用的是-D 无 ROM 版本的芯片),并通过传统的 ROM 读取器读取其数据。我们在 ROM 中几乎没有看到密文,但却有很多压缩数据。这是我们对 ROM 镜像进行静态分析后记录的一个页面:
0x0000_0000 media signature "SF_BOOT"
0x0000_0200 bootloader signature "BRLYT", "BBBB"
0x0000_0800 sector header 1 ("MMM.8")
0x0000_09BC reset vector table
0x0000_0A10 start of ARM32 instructions
– stage 1 bootloader?
0x0000_3400 sector header 2 ("MMM.8")
– stage 2 bootloader?
0x0000_A518 thunk table of some type
0x0000_B704 end of code (padding until next sector)
0x0001_0000 sector header 3( "MMM.8") – kernel?
0x0001_0368 jump table + runtime setup (stack, etc.)
0x0001_0828 ARM thumb code start – possibly also
baseband code
0x0007_2F04 code end
0x0007_2F05 begin padding "DFFF"
0x0009_F005 end padding "DFFF"
0x0009_F006 code section begin "Accelerated
Technology / ATI / Nucleus PLUS"
0x000A_2C1A code section end; pad with zeros
0x000A_328C region of compressed/unknown data begin
0x007E_E200 modified FAT partition #1
0x007E_F400 modified FAT partition #2
左侧的十六进制数字是内存地址,右侧的文本描述了 xobs 和我认为存储在每个地址上的内容。逆向工程 SoC 时的一个问题是,它有一个在从外部设备加载代码之前始终运行的内部引导 ROM。这个内部 ROM 还可能有签名和安全检查,防止篡改外部代码。
为了快速评估逆向工程这个系统的难度,我们想弄清楚在跳转到外部启动代码之前,CPU 内部运行了多少代码。一台 Tek MDO4104B-6 示波器让我们在短短几个小时内完成了这一任务。

*Tek MDO4104B-6 的截图。
顶部四分之一显示了整个捕获的缩小视图。
注意 SPI ROM 访问时如何通过控制台输出进行标注。*
这款特定的示波器具有一种神奇的能力,可以对深度、高分辨率的模拟波形进行后捕获分析,并将结果输出为数字数据。例如,我们可以在芯片周围用万用表探测,同时反复开关电源,直到看到类似 RS-232 编码信号的东西,然后进行后捕获分析,提取出任何在模拟波形中编码的 ASCII 文本。同样地,如果我们捕获了 SPI 波形,示波器也可以通过类似的方法提取 ROM 访问模式。通过观察文本输出的时序与 SPI ROM 地址模式之间的关系,我们迅速确定,如果内部引导 ROM 进行了任何验证,那也只是非常有限的,远未达到 RSA 加密的计算复杂度。
接下来,我们需要加快度量-修改-测试循环的速度。拆下 ROM、将其放入刻录机并重新焊接到板上,这样的工作很快就会变得枯燥。幸运的是,我们已经在 Novena 上实现了一个 NAND 闪存 ROM 模拟器(我们亲切地将其简称为 ROMulator),之前我们曾用它来逆向工程某些 SD 卡中包含的 AX211 芯片。我们只是重复使用了那个代码库,并制作了一个 SPI ROMulator。我们修改了一个 GPBB 及其对应的 FPGA 代码,增加了在原始引导 SPI ROM 和一个双端口 64KiB 模拟区域之间切换的功能,该模拟区域也被映射到 Novena Linux 主机的地址空间中。然后,我们将手机连接到笔记本电脑,并启动了 ROMulator。

SPI ROMulator FPGA 的框图

我的 Novena 里有一部手机!它怎么会在那里?
通过 Tek 示波器确定的地址流、ROMulator 快速的 ROM 修补以及使用 IDA 进行静态代码分析时发现 ROM 中存在一个 SHA-1 函数的提示,我们确定了初始引导程序(我们称之为 1bl)是通过 SHA-1 附录进行哈希检查的。
注释
哈希函数的汇编代码通常具有非常独特的形状或一组指令,而且给定的哈希值也有一些独特的“魔法数字”。鉴于这些事实,当黑客试图逆向认证方法时,最先做的事情之一就是使用 IDA 在哈希函数附*搜索这样的常量。
建立立足点
下一步是创建一个小型交互式 shell,我们可以用它作为在目标硬件上运行实验的立足点。正如他在 SD 卡逆向工程项目中所做的那样,xobs 创建了一个紧凑的 REPL 环境,称为 Fernly,支持诸如查看内存、写入数据和转储 CPU 寄存器等命令。
设计 ROMulator 使得模拟的 ROM 呈现为一个 64KiB 的内存映射窗口在 Linux 主机上,从而使得像mmap()函数、open()函数(通过/dev/mem)、read()函数和write()函数等 POSIX 抽象变得可用,用来访问模拟的 ROM。xobs 利用这些抽象创建了一个 I/O 目标,用于 radare2,一个便携式逆向工程框架。每次我们修改 1bl 代码区时,I/O 目标都会自动更新 SHA-1 哈希。有了这个系统,我们就可以做一些有趣的事情,比如在模拟的 ROM 空间内交互式地修补和反汇编代码。

在 ROM 中修补一些代码
我们还将手机的电源开关连接到 FPGA 的 I/O 端口。这使我们能够编写自动化脚本,在更新 ROM 内容的同时切换手机的电源,从而自动模糊测试未知的硬件模块。
附加调试器
我们不得不采用一种非常规的方法将调试器附加到 ROM 中的代码,因为定位关键块很困难,而 JTAG 与目标设备上的关键功能是复用的。xobs 模拟了 ARM 核心,并使用 Fernly Shell 将虚拟的加载和存储反射到实际目标上。通过这种方式,我们能够将远程调试器附加到模拟核心,完全绕过了 JTAG 的需求。这也让我们能够使用像 IDA 这样的跨*台工具,在 x86 上进行反向工程的界面操作。
这种调试技术的核心是 QEMU,一个多*台系统模拟器。QEMU 支持模拟 ARM 目标,特别是我们的目标设备使用的 ARMv5 芯片。我们创建了一个新的虚拟机类型,称为 Fernvale,它实现了目标设备上部分硬件的模拟,并将未知的内存访问直接传递到设备上。
Fernly Shell 被简化为只支持三条命令:写、读和零内存。写命令将一个字节、字或双字的数据写入实际目标的 RAM 中。读命令从实际目标中读取一个字节、字或双字的数据。零内存命令是一种优化,操作系统会将大量零写入一个大范围的内存区域。
我们还钩住并模拟了串口寄存器,使得主机系统能够像在目标设备上打印一样显示串行数据。最后,我们模拟了 SPI、IRAM 和 PSRAM 的行为,仿真它们在真实设备上的表现。其他内存区域则被捕获并传送到实际设备,或者保持未映射状态并由 QEMU 报告为错误。

调试器的架构
调用调试器是一个多阶段的过程。首先,我们使用 Fernly Shell 环境对实际的 MT6260 目标进行初始化。然后,我们启动了 QEMU 虚拟 ARM CPU,加载了一个经过初始化并处于启动过程中的已知寄存器状态的原厂镜像。在此时,虚拟机开始执行代码,直到发生对未知地址的加载或存储。此时,虚拟机执行暂停,查询通过 Fernly Shell 接口发送到真实的 MT6260。然后,加载或存储操作在真实机器上执行,结果会传回虚拟机,代码执行得以恢复。
我们无法直接从 SPI ROM 运行 Fernly,因为供应商二进制的初始化例程修改了 SPI ROM 的时序。当然,如果存储操作恰好发生在 Fernly 的内存区域内,Fernly 就会崩溃。为了避免加载或存储操作覆盖 Fernly Shell 代码,我们将代码隐藏在一个被捕获并模拟的 IRAM 区域中。模拟目标 CPU 让我们能够通过 GDB 在 TCP 上连接远程调试器,如 IDA。调试器完全控制模拟的 CPU,并可以访问模拟的 RAM。这是混合 QEMU/实际目标调试系统的输出示例。
bunnie@bunnie-novena-laptop:~/code/fernvale-qemu$ ./run.sh
~~~ Welcome to MTK Bootloader V005 (since 2005) ~~~
**===================================================**
READ WORD Fernvale Live 0xa0010328 = 0x0000... ok
WRITE WORD Fernvale Live 0xa0010328 = 0x0800... ok
READ WORD Fernvale Live 0xa0010230 = 0x0001... ok
WRITE WORD Fernvale Live 0xa0010230 = 0x0001... ok
READ DWORD Fernvale Live 0xa0020c80 = 0x11111011... ok
WRITE DWORD Fernvale Live 0xa0020c80 = 0x11111011... ok
READ DWORD Fernvale Live 0xa0020c90 = 0x11111111... ok
WRITE DWORD Fernvale Live 0xa0020c90 = 0x11111111... ok
READ WORD Fernvale Live 0xa0020b10 = 0x3f34... ok
WRITE WORD Fernvale Live 0xa0020b10 = 0x3f34... ok
该输出显示了控制台上出现的串行写入操作,以及由模拟的 ARM CPU 执行的写入和读取日志,这些操作被转发到运行精简版 Fernly shell 的实时目标。这是我们的登陆点。
从那里,xobs 和我通过搜索内存中已知的前 MediaTek 芯片的“签名”,发现了几个 IP 块的偏移地址。签名可以是像开机默认寄存器值这么简单,或者更复杂一些,比如由于位设置或清除寄存器的副作用,在 IP 块地址空间的偏移处出现的位模式变化。通过追踪这些签名,帮助我们找到了几个外设的寄存器偏移,并生成了内存映射。
| 起始地址 | 结束地址 | 区域大小 | 描述 |
|---|---|---|---|
0x00000000 |
0x0fffffff |
0x0fffffff |
PSRAM 映射,在 0x00800000 偏移处重复并镜像 |
0x10000000 |
0x1fffffff |
0x0fffffff |
内存映射 SPI 芯片 |
?????????? |
?????????? |
?????????? |
???????????????????????????????? |
0x70000000 |
0x7000cfff |
0xcfff |
片上 SRAM(可能是缓存?) |
?????????? |
?????????? |
?????????? |
???????????????????????????????? |
0x80000000 |
0x80000008 |
0x08 |
配置块(芯片版本等) |
0x82200000 |
?????????? |
?????????? |
|
0x83000000 |
?????????? |
?????????? |
|
0xa0000000 |
0xa0000008 |
0x08 |
配置块(镜像?) |
0x10010000 |
?????????? |
?????????? |
(?SPI 模式?) ???????????????????? |
0x10020000 |
0xa0020e10 |
0x0e10 |
GPIO 控制块 |
0xa0030000 |
0xa0030040 |
0x40 |
WDT 块 |
+ 0x08 -> WDT 寄存器 (?) + 0x18 -> 启动源 (?) |
|||
0xa0030800 |
?????????? |
?????????? |
???????????????????????????????? |
0xa0040000 |
?????????? |
?????????? |
???????????????????????????????? |
0xa0050000 |
?????????? |
?????????? |
???????????????????????????????? |
0xa0060000 |
?????????? |
?????????? |
?? 可能的 IRQ 位于 0xa0060200 ?? |
0xa0070000 |
========== |
========== |
== 空(全零) =========== |
0xa0080000 |
0xa008005c |
0x5c |
UART1 块 |
0xa0090000 |
0xa009005c |
0x5c |
UART2 块 |
0xa00a0000 |
?????????? |
?????????? |
????????????????????????????????? |
这个内存映射展示了芯片不同地址范围内存储的内容。例如,映射中的第二个地址范围(0x10000000 到 0x1FFFFFFF)由 0x0FFFFFFF 字节组成,对应一个内存映射的 SPI 芯片。
启动操作系统
在找到寄存器偏移后,我们在多个方面迅速取得了进展,但我们的目标(将基于 BSD 的实时操作系统 NuttX 移植到该设备上)依然未能实现。关于中断控制器的文档在山寨数据手册的规范中并不存在。我们通过对二进制文件的静态分析找到了安装中断处理程序的例程,但无法确定中断控制器本身的地址偏移。
我们能做的就是打开联发科技的代码库,参考其中包含中断控制器寄存器偏移和位定义的头文件。这符合我们自己设定的“不侵犯版权”的限制,因为事实是不可版权的。我在第四章中的“处理版权问题”部分,位于第 138 页中描述了这一思想背后的法律推理。在查阅了这些事实后,我们创建了自己的定制脚本语言——Scriptic,以避免无意中抄袭现有代码库中的任何内容。
构建新的工具链
然而,要求用户拥有一个 Novena ROMulator 来破解 Fernvale 并不是一个可扩展的解决方案。为了完成这个故事,我们创建了一个完整的开发工具链。编译器相对简单明了;许多标准编译器支持将 ARM 作为目标,包括 clang 和 GCC。但制作用于刷写 MT6260 的开源工具则要复杂得多。我们知道的所有现有支持 MT6260 所需协议版本的工具都是专有的 Windows 程序。这意味着我们必须逆向工程联发科技的刷写协议,并编写自己的开源工具。
幸运的是,当你将一个空白、未熔断的 MT6260 连接到 Linux 主机时,它会显示为/dev/ttyUSB0。换句话说,它作为一个通过 USB 模拟的串口设备出现。这解决了向设备发送和接收字节的低级细节,剩下的就是逆向工程协议层。
xobs 定位了 MT6260 的内部启动 ROM,并进行了静态代码分析以深入了解协议。他还对联发科技的刷写工具进行了静态分析,并使用 USB 协议分析仪捕获了实时数据,以澄清剩余的细节。以下是他提取的命令的总结,这是我们在开源版 USB 刷写工具中使用的。
enum mtk_commands {
mtk_cmd_old_write16 = 0xa1,
mtk_cmd_old_read16 = 0xa2,
mtk_checksum16 = 0xa4,
mtk_remap_before_jump_to_da = 0xa7,
mtk_jump_to_da = 0xa8,
mtk_send_da = 0xad,
mtk_jump_to_maui = 0xb7,
mtk_get_version = 0xb8,
mtk_close_usb_and_reset = 0xb9,
mtk_cmd_new_read16 = 0xd0,
mtk_cmd_new_read32 = 0xd1,
mtk_cmd_new_write16 = 0xd2,
mtk_cmd_new_write32 = 0xd4,
// mtk_jump_to_da = 0xd5,
mtk_jump_to_bl = 0xd6,
mtk_get_sec_conf = 0xd8,
mtk_send_cert = 0xe0,
mtk_get_me = 0xe1, /* Responds with 22 bytes */
mtk_send_auth = 0xe2,
mtk_sla_flow = 0xe3,
mtk_send_root_cert = 0xe5,
mtk_do_security = 0xfe,
mtk_firmware_version = 0xff,
};
这只是一个 C 语言的enum结构,因此它是一个非常极客的方式来指定数字与命令含义之间的映射。例如,mtk_cmd_old_write16是命令 0xA1,mtk_command_old_read16是命令 0xA2,以此类推。
Fernvale 结果
在大约一年间,经过在 Novena 和 Chibitronics 项目之间的断断续续努力后,我们成功地在 MT6260 上启动了 NuttX 的移植,支持了一组最基本的硬件外设。这足以让我们大致复现类似 Arduino 环境中使用的 AVR 的功能,但也仅此而已。
xobs 和我在第 31 届混沌通信大会(CCC)上展示了我们的成果,而事件在我们撰写提案时意外发生了转折。在提交前的一周,我们得知联发科技发布了基于 MT2502A 的 LinkIT ONE 开发*台,并与 Seeed Studios 合作。LinkIT ONE 是一个为创业者和爱好者设计的物联网*台。它集成到 Arduino 框架中,拥有一个开放的 API,能够提供芯片的完整功能,包括 GSM 功能。但在 LinkIT ONE 上运行的核心操作系统仍然是专有的,并且在没有通过 Arduino shim 提供的 API 调用的情况下,无法直接访问硬件。
现实来说,我们仍然需要一些时间才能将 MT6260 的部分功能移植到开源领域。我们很可能永远无法实现不依赖二进制代码的 GSM 呼叫功能实现,因为这些功能由一个数字信号处理器(DSP)单元控制,该单元比 MT6260 更为隐晦且没有文档支持。考虑到 LinkIT ONE 相比于 Fernvale 的强大功能,我们决定将是否继续逆向工程 MT6260 的价值问题交给开源社区来判断。最终,尽管这个项目吸引了大量的热情,但行动却并不多。LinkIT ONE 的发布让 Fernvale 项目失去了很多动力,Fernvale 项目也在此后实际上被停用了。
事实上,这正是大多数开源项目的命运。尽管有数十个,甚至数百个开源操作系统,但只有一个 Linux。事实是,比起能够实现这些创意的开发者,实际上有更多有趣的创意。为了让一个开源项目成功并自给自足,它不仅需要通过最小可行产品(MVP)阶段,还要遇到有真正需求的、愿意接受这个项目的受众。有时,你的项目能引起共鸣,成千上万的社区成员会推动它向前发展;而有时,你会得到许多友好、乐于助人的旁观者,他们会欣赏地点头,但却不愿意或太忙于日常工作而无法参与。还有其他时候,你只是对着空洞大喊,或者更糟的是,在某个互联网论坛上被撕得粉碎,指责你的项目多么有缺陷和无意义。
结束思考
鉴于开源项目的性质,我倾向于借鉴我在创业时期的一些经验,遵循“快速失败,迅速前进”的理念。尝试不同的事情,看看哪些行得通,从错误中学习,并再次尝试。重要的是不要过于固守某个想法,尤其是当这个想法并未取得成功时。最后,你会发现,重要的是享受过程,而非只专注于结果。Fernvale 无疑是一次史诗般的旅程;xobs 和我学到了很多,磨练了一套工具和技能,这些我们至今还在其他项目中使用,最重要的是,我们玩得非常开心。
在下一章,我们将探讨另一种黑客技术,它将在未来几十年对我们所有人变得越来越相关——即生物系统的黑客技术。
第十章:10. 生物学与生物信息学
我曾在Science**上看到一幅美丽的图表,展示了最小细菌之一——肺炎支原体*的代谢途径。这让我想起了在不到十岁时凝视 Apple II 原理图的情景。那时,我知道 Apple II 原理图中复杂的线条群是计算机的地图,尽管我还不知道如何利用那张地图。但要点在于,地图是存在的,尽管它看起来很复杂,却让我有希望能够解开这种复杂性。像下一页的生物学“原理图”给了我同样的希望。

肺炎支原体的代谢途径

我墙上的 Apple II 原理图
M. pneumoniae的图表不如 Apple II 原理图那样精确,但从 1 万英尺的高度看,它们在复杂性和细节上有相似之处。代谢图表足够详细,让我能够追踪从葡萄糖到乙醇的路径,而 Apple II 原理图足够详细,让我能够追踪从 CPU 到扬声器的路径。正如生物学家不会对带有 74LS74 的盒子产生太多兴趣一样,电气工程师也不会对内部有 ADH 的盒子产生太多兴趣。(74LS74 包含两个同步电子存储设备,而 ADH 是由基因MPN564编码的醇脱氢酶,可以将乙醛转化为乙醇。)
然而,为了进一步推动计算机类比,Science 文章的作者们还在他们的补充材料中列出了类似于肺炎支原体(M. pneumoniae)物料清单的表格。图中的五边形框表示酶,即催化特定化学反应的蛋白质。每个酶都列出了一个功能描述及其基因序列,相当于源代码。
在那个列表的最末端,我看到了一个未表征基因的表格。如果你做过一点反向工程,你可能也做过类似的表格,列出电子系统中的部件或功能调用。这些表格是我遇到瓶颈时寻找新线索的第一站。我发现,看到生物学家和黑客使用类似的技巧去反向工程复杂系统,令人振奋。
将 H1N1 与计算机病毒进行比较
将生物系统与计算机系统进行比较,不仅仅停留在代谢层面。我曾在Nature**上读到一篇令人着迷的文章,文章将新型 H1N1 病毒(更广为人知的是猪流感*)的致病成分与其他流感病毒株进行比较,这篇文章让我开始思考数字病毒与有机病毒之间的异同。例如,有机病毒相对于数字病毒有多大?换句话说,多少比特可以杀死人类,或者至少让人相当生病?在探索这个想法时,我发现绘制一些数字和有机世界之间的类比非常有帮助。
DNA 和 RNA 作为比特
当 2009 年 H1N1 流感大流行爆发时,病毒被全面测序并记录在国家生物技术信息中心(NCBI)的流感病毒资源数据库中,那里收集的数据令人惊叹。我喜欢这些记录的具体性。例如,一个名为 A/Italy/49/2009(H1N1)的流感实例的完整序列,该病毒是从一名 26 岁女性智人的鼻子中分离出来的,她从美国回到意大利,整个序列可以在 NCBI 网站上找到。以下是该 DNA 序列的前 120 位:
atgaaggcaa tactagtagt tctgctatat acatttgcaa ccgcaaatgc agacacatta
总共 120 位,每个符号(A、T、G 或 C)代表 2 位信息。在基因中,这可以替代地表示为一个氨基酸序列,其中每三个 DNA 符号组成一个密码子,对应一个氨基酸。长链的氨基酸折叠成复杂的结构,称为蛋白质,为细胞提供结构和功能,而那些太短无法成为完整蛋白质的氨基酸链通常被称为肽。通过生物学家所称的标准遗传密码翻译查找表,我将之前的序列转换成了以下肽链:MKAILVVLLYTFATANADTL。
在这个序列中,每个符号代表一个氨基酸,相当于六位或每个氨基酸三个 DNA 碱基。标准密码子表中有 20 种氨基酸,每个字母对应一种不同的氨基酸。M 代表甲硫氨酸,K 代表赖氨酸,A 代表丙氨酸,依此类推。
现在,考虑 RNA,它将 DNA 中的蛋白质合成信息传递到细胞的其他部分。与 DNA 一样,RNA 中的每个碱基指定四种可能的符号之一(在此为 A、U、G 或 C),因此单个碱基对应于 2 位信息。DNA 和 RNA 在一对一映射下具有信息等价性。可以把 DNA 看作存储在硬盘上的程序,把 RNA 看作是加载到 RAM 中的相同程序。当 DNA 被加载时,蛋白质合成指令被转录到 RNA 中,但所有的 T 碱基都会被 U 碱基替代。
因此,蛋白质是运行 RNA 程序的输出。蛋白质根据 RNA 中的指令通过三比一的映射合成。你可以把蛋白质想象成帧缓冲区中的像素,如下所示:
• 完整的蛋白质就像屏幕上的图像。
• 每个蛋白质上的氨基酸就像一个像素。
• 每个像素的深度为六位,因为这种存储每个碱基有两位的介质采用三比一的映射。
• 最后,每个像素都会通过一个颜色调色板(密码子翻译表)将原始数据转换为最终渲染的颜色。然而,与计算机帧缓冲区不同的是,不同的生物蛋白质在氨基酸的数量上有所不同(类似于像素数量)。
为了将这个概念具体化,假设你硬盘上存储的六个位(ATG)被加载到 RAM(RNA)中时,T 会转录为 U,变成 AUG。当 RAM 中的 RNA 程序执行时,AUG 被翻译成一个颜色为 M 的像素(氨基酸),即甲硫氨酸,它是生物学中的“起始”密码子——也就是每个有效 RNA 程序中的第一条指令。
作为一种简写方式,由于 DNA 和 RNA 是一对一等价的,生物信息学家在表示基因序列时通常使用 DNA 格式,即使生物机制实际上是以 RNA 格式存在。流感病毒的结构是 RNA,而不是 DNA,我之前展示的 120 位 DNA 对应的是流感中的 RNA 子程序。该子程序编码 HA 基因,产生 H1 型血凝素蛋白。这就是猪流感中 H1N1 命名中的H1。
生物体具有独特的访问端口
基于这些背景信息,如果你把生物体看作是拥有 IP 地址的计算机,那么生物体中每个功能性细胞组通过自己的活动端口监听环境。就像端口 25 专门映射到计算机上的 SMTP 服务一样,H1 端口专门映射到人的气管区域。有趣的是,相同的 H1 端口在鸟类中映射到肠道。因此,相同的 H1N1 病毒会攻击人的呼吸系统和鸟类的肠道。相比之下,H5——存在于 H5N1 致命禽流感中的血凝素蛋白变体——指定了你内肺的端口。因此,H5N1 比 H1N1 更致命,因为它攻击的是你内脏的肺组织,导致严重的肺炎。H1N1 的致命性较低,因为它攻击的是一个相对无害的端口,只会让你不断流鼻涕和咳嗽。
注意
研究人员仍在发现更多关于 H5 端口的信息。我读过的《自然》杂志文章指出,也许某些人类突变体的肺部不会监听 H5 端口。那些肺部忽略 H5 端口的人在感染禽流感时存活的机会更大,而那些肺部开启 H5 端口的人则无法存活(你的时间到了……所有的碱基对都属于 H5N1)。*
了解一个病毒是否致命,你可以通过计算病毒基因组中的位数来推算它杀死一个人(或至少让人相当生病)所需的位数。那么问题是,这个 H1N1 实例中有多少位?根据我的统计,原始的位数是 26,022;实际编码的位数大约是 25,054。我之所以说“大约”,是因为在某些地方,病毒会做自我修改的代码,将一个基因转换为两个蛋白质。很难说哪些算作代码,哪些算作为了自我修改代码所需要的非执行 NOP 指令。
这意味着大约需要 25Kb 或 3.2KB 的数据来编码一种具有非凡致死几率的病毒。比起像 MyDoom 这样的计算机病毒,它的大小大约是 22KB,这种编码方式更为高效。知道自己可能会被 3.2KB 的基因数据杀死,令人感到震撼。话说回来,考虑到我的基因组大约有 800MB 的数据,肯定会有一两个漏洞。
猪流感黑客攻击
阅读这篇Nature文章并且能够访问病毒序列的一个有趣后果是,理论上我现在知道如何修改病毒序列使其更致命。例如,Nature文章指出,在序列位置 627 处具有谷氨酸的 PB2 流感基因变体具有低致病性,意味着它们并不是非常致命。然而,PB2 变体如果在相同位置具有赖氨酸,则会增加死亡的可能性。
让我们看看 H1N1 的 PB2 序列。回到 NCBI 数据库,我找到了位置 627 附*的以下氨基酸序列:
601 QQMRDVLGTFDTVQIIKLLP
621 FAAAPPEQSRMQFSSLTVNV
641 RGSGLRILVRGNSPVFNYNK
左侧的数字表示每行序列中第一个符号的位置;在接下来的讨论中,我将遵循这一惯例。查看标记为 621 的那一行,并注意位置 627 的 E。E 是谷氨酸的符号。幸运的是,H1N1 似乎是流感的一种较不致命的版本;也许这就是为什么感染 H1N1 的人比媒体所宣传的要少死亡的原因。
现在,让我们将其逆向回 DNA 编码:
621 F A A A P P E Q S R
1861 ttt gct gct gct cca cca gaa cag agt agg
注意 GAA 是编码 E 的。要使这个基因组变得更致命,你只需将 GAA 替换为赖氨酸(K)的编码之一。赖氨酸的编码可以是 AAA 或 AAG。因此,一个更致命的 H1N1 变种将具有如下编码序列:
621 F A A A P P K Q S R
1861 ttt gct gct gct cca cca aaa cag agt agg
^ changed
所以,一个简单的碱基对改变——仅仅翻转两个比特——可能就是将 H1N1 猪流感病毒转变为更致命变种所需要的全部。理论上,我可以应用一系列已知的生物学程序来合成这个菌株,并实际实施这个黑客攻击。作为第一步,我可以访问 DNA 合成网站,订购修改后的序列,花费大约 1000 多美元,启动我的致命小项目。虽然一些公司有筛查程序来防止用于实现生物危害产品的 DNA 序列,但即使他们筛查 HA 变种,仍有一些著名的定点诱变协议可能会用来修改从正常 H1N1 提取的 RNA 的单个碱基。
可变流感
当然,我也得给流感一些赞赏。它在 3.2KB 的大小下就能打出致命一击,尽管科学家们付出了巨大的努力,但我们仍未消除它。流感是否已经能够像我刚才描述的那样自行进行黑客攻击?
简短的答案是“是的”。
实际上,流感病毒进化出了允许这种适应的机制。通常,当 DNA 被复制时,一个错误检查蛋白质会扫描被复制的基因组,以确认没有出现错误。这使得错误率保持在一个较低的水*。但请记住,流感病毒使用的是 RNA 结构。因此,它需要一种不同于 DNA 复制的机制。
流感病毒在其蛋白质外壳内携带着一种名为RNA 依赖性 RNA 聚合酶的蛋白质复合体代码,这是一种从 RNA 模板上复制 RNA 的微小机器。通常,RNA 是通过转录 DNA 生成的,而不是通过复制现有的 RNA 片段,因此这一机制对基于 RNA 的流感复制至关重要。值得注意的是,RNA 依赖性 RNA 聚合酶省略了一个错误检查蛋白质,这个蛋白质会阻止突变的发生。结果是,流感每复制 1 万对碱基就会出现一个错误。流感基因组大约有 13,000 对碱基,因此*均而言,每一个流感病毒的拷贝都含有一个随机突变。
其中一些突变没有任何影响;另一些使得病毒变得无害;还有一些可能让病毒变得更加危险。由于病毒以极其庞大的数量被复制和传播,这种小小的“漏洞”自然发生的机会实际上是相当高的。我认为这也是卫生官员对 H1N1 如此担忧的部分原因:人们对其没有免疫力,即使它并不像可能的那样致命,这一株病毒也可能只差几次突变,就能变成一个更大的健康问题。
除了高突变率外,流感病毒 RNA 结构还有另一个重要的细节:该病毒的遗传信息以八个相对较短的 RNA 片段存储。在许多其他病毒和简单生物中,遗传信息通常是以一条连续的长链形式存储的。
为了理解这点为什么重要,可以考虑当宿主同时感染两种类型的流感病毒时会发生什么。如果基因存储为单一的 DNA 或 RNA 片段,那么两种类型的基因之间几乎没有重组的机会。但由于流感病毒将其基因存储为八个独立的片段,这些基因在被感染的细胞内自由混合,并在病毒颗粒形成时随机重新组合。如果你不幸同时感染了两种流感病毒,结果可能会是一个全新的流感株,因为 RNA 链在复制、混合、从“隐喻中的抽奖箱”中挑选出来,然后包装进病毒颗粒。这一过程非常巧妙,因为相同的机制允许在一个宿主中混合任意数量的流感株。如果你能同时感染三种或四种流感病毒,结果将是更加多样化的流感颗粒。
这一机制是新型 H1N1 被称为三重重组病毒的部分原因。通过一系列双重感染,或者可能是多种流感品种的单次灾难性感染,新型 H1N1 获得了混合的 RNA 片段,使其具有高传染性,并使人类天生无法免疫。这正是大流行的完美风暴。
如果要用计算机类比这个 RNA 重组模型,那它就像是一个病毒,它以未链接的目标代码文件加上一个小的辅助程序的形式传播,在感染宿主后,重新链接其文件,并以随机顺序复制和重新分发自己。它还会寻找已经可能感染该计算机的相似病毒,并偶尔与其他病毒中匹配功能模板的目标代码链接。这种代码的重新排列和新链接将使基于固定代码模式搜索病毒特征的病毒防护软件失效。它还将使野外产生多种多样的病毒,具有更不可预测的特性。
流感病毒的多层次适应机制非常令人惊讶。该病毒既有缓慢进化的点突变机制,又有通过与其他病毒基因级混合在单代中大幅改变其特性的机制。它的作用方式与性别繁殖不同,但结果可能与性繁殖一样好,甚至更好。令人惊讶的是,这两种病毒的重要特性正是由于使用 RNA 而非 DNA 作为遗传储存介质所导致的。
一线希望
由于流感变异种类繁多,没有疫苗能针对所有类型的病毒,但 H1N1 的故事确实有一个希望。显然,在大流行期间感染猪流感的患者创造了一种新型抗体,具有赋予所有 16 种甲型流感亚型免疫能力的非凡能力。一组研究人员筛选了该患者的白血球,并成功分离出四个含有生产这种抗体代码的 B 细胞。他们克隆了这些细胞并生产了抗体,从而促进了对一种可能提供广泛流感防护的疫苗的进一步研究。
我从本能上觉得这个非常有趣,因为它让我有了希望,如果一种致命病毒真的消灭了大部分人类,也许只有一小部分人会幸存下来。
逆向工程超级病毒
2011 年,一种名为 EHEC O104:H4 的“超级细菌”菌株(属于大肠杆菌,一种可以引起食物中毒的细菌亚种)在欧洲爆发。当我得知位于深圳的 BGI 科学家已经将 O104:H4 的完整序列免费发布到网上供任何人查看时,我对这一情况感到非常好奇。我禁不住想知道,生物信息学家究竟使用什么工具来分析 DNA 序列。手动检查相对简单的流感病毒序列是一回事,但一定有计算工具来帮助解析像大肠杆菌这样复杂的生物体。
幸运的是,我的女朋友(s/perl/girl/)也是一位著名的生物信息学家。她从忙碌的工作中抽出时间,向我展示了一些行业工具。事实证明,大多数用于分析 DNA 的工具都可以在线免费获取。由于 DNA 仅由 A、T、G 和 C 这四种碱基组成,标准的数据交换格式就是普通的 ASCII 文本,这意味着你可以使用命令行工具,如grep、sed和awk,进行大量的分析。
O104:H4 DNA 序列
BGI 提供的原始序列数据是一组过采样的子序列,我们需要通过匹配重叠区域将它们拼接在一起。将子序列拼接在一起有点像从随机拍摄的小照片组成一幅大图。通过足够的采样,最终你会创建一幅几乎完整的图像,但图像仍然会有一些模糊,特别是在具有规律性图案的区域。
O104:H4 的基因组以超过 500,000 个短 DNA 样本的形式提供。拼接过程将这些短 DNA 样本拼接成 513 个连续的 DNA 片段(称为contigs),总基因组长度为 530 万碱基对。像大肠杆菌这样的生物只有一条大的 DNA 环,因此在 513 个位置上,测序技术的限制(或者仅仅是运气不好)错过了一个未知数量的碱基对,导致我们无法知道完整的、没有中断的序列。值得注意的是,典型的非超级细菌株大肠杆菌基因组大约有 460 万碱基对,所以 O104:H4 的基因组可能至少长 15%。同样,这个菌株复制所需的时间也会比非耐药菌株更长。来看一下拼接的 contig 34:
AAATGGTATTCCTGTTCACGATACTATTGCCAGAGTTGTATCCTGTATCAGTCCTGC
AAAATTTCATGAGTGCTTTATTAACTGGATGCGTGACTGCCATTCTTCAGATGATAA
AGACGTCATTGCAATTGATGGAAAAACGCTCCGGCACTCTTATGACAAGAGTCGCCG
CAGGGGAGCGATTCATGTCATTAGTGCGTTCTCAACAATGCACAGTCTGGTCATCGG
ACAGATCAAGACGGATGAGAAATCTAATGAGATTACAGCTATCCCAGAACTTCTTAA
CATGCTGGATATTAAAGGAAAAATCATCACAACTGATGCGATGGGTTGCCAGAAAGA
TATTGCAGAGAAGATACAAAAACAGGGAGGTGATTATTTATTCGCGGTAAAAGGAAA
CCAGGGGCGGCTAAATAAAGCCTTTGAGGAAAAATTTCCGCTGAAAGAATTAAATAA
TCCAGAGCATGACAGTTACGCAATTAGTGAAAAGAGTCACGGCAGAGAAGAAA
我本可以选择任何一个 contig,它可能对你来说和这段字母一样没有意义。除了做一些无关的流行文化引用(比如GATTACA这个词在 O104:H4 的基因组中出现了 252 次),原始 DNA 序列并没有太多启发性。这有点像盯着二进制机器代码。要分析这些数据,你需要“反编译”代码中的“方法”。
在这种情况下,我们正在寻找编码蛋白质的 DNA 序列。正如我之前提到的,蛋白质是复杂的、通常交织在一起的分子链,组成这些链的小单元被称为氨基酸。细胞通过蛋白质完成工作:有些蛋白质将糖转化为能量,其他的利用这些能量进行运动或改变细胞的形状,还有一些负责复制和修复细胞。
幸运的是,蛋白质序列在 DNA 中高度保守。大自然倾向于在不同生物之间重复使用蛋白质结构,并做很少的修改。因此,通过生物学实验已知的某种功能,即便是在另一物种中,也常常能够与一段 DNA 序列相关联。例如,确定一个序列功能的常见实验是从细胞中切除一段 DNA,并观察细胞会发生什么变化;缺失的 DNA 导致的功能丧失通常能够表明该蛋白质在细胞中的作用。
生物学家已经将几十年的研究成果关于某些蛋白质功能的知识汇集成了庞大的数据库。因此,要搞清楚一段 DNA 的意义,你可以通过模糊匹配的方法,将你感兴趣的 DNA 序列与已知蛋白质的数据库进行比对。
生物学的逆向工具
我需要两个工具来逆向工程 DNA:一个蛋白质数据库和一个叫做 BLASTX 的软件。两者都可以在线免费下载。
UniProt 数据库
我从通用蛋白质资源库(UniProt)下载了已知蛋白质的列表 (www.uniprot.org/)。2011 年,针对“耐药性”并限定在大肠杆菌(E. coli)种群中的数据库搜索,得到了一个包含 1,378 种蛋白质的列表,这些蛋白质是科学家多年来发现的大肠杆菌耐药机制的一部分。每年,新的发现都会被加入到数据库中。
这里是数据库中的一个片段,描述了一种使 O104:H4 对某种你可能认识的药物具有耐药性的蛋白质:
>sp|P0AD65|PBP2_ECOLI Penicillin-binding protein 2
OS=Escherichia coli (strain K12) GN=mrdA PE=3 SV=1
MKLQNSFRDYTAESALFVRRALVAFLGILLLTGVLIANLYNLQIVRFTDYQTRSNENRIK
LVPIAPSRGIIYDRNGIPLALNRTIYQIEMMPEKVDNVQQTLDALRSVVDLTDDDIAAFR
KERARSHRFTSIPVKTNLTEVQVARFAVNQYRFPGVEVKGYKRRYYPYGSALTHVIGYVS
KINDKDVERLNNDGKLANYAATHDIGKLGIERYYEDVLHGQTGYEEVEVNNRGRVIRQLK
EVPPQAGHDIYLTLDLKLQQYIETLLAGSRAAVVVTDPRTGGVLALVSTPSYDPNLFVDG
ISSKDYSALLNDPNTPLVNRATQGVYPPASTVKPYVAVSALSAGVITRNTTLFDPGWWQL
PGSEKRYRDWKKWGHGRLNVTRSLEESADTFFYQVAYDMGIDRLSEWMGKFGYGHYTGID
LAEERSGNMPTREWKQKRFKKPWYQGDTIPVGIGQGYWTATPIQMSKALMILINDGIVKV
PHLLMSTAEDGKQVPWVQPHEPPVGDIHSGYWELAKDGMYGVANRPNGTAHKYFASAPYK
IAAKSGTAQVFGLKANETYNAHKIAERLRDHKLMTAFAPYNNPQVAVAMILENGGAGPAV
GTLMRQILDHIMLGDNNTDLPAENPAVAAAEDH
PBP2_ECOLI*与青霉素耐药性相关,是一个突变基因,决定了细菌的形状。似乎这种耐药变体在青霉素存在的情况下仍能正常工作;而未耐药的基因型细菌在青霉素的作用下无法正确形成细胞壁,最终被药物杀死。其他基因可能引发更积极的对抗措施,比如将抗生素泵出细胞或修改抗生素使其对细胞的毒性降低。浏览 UniProt 数据库可以让你感受到大自然中各种各样的基因,这些基因能够使细菌对药物产生耐药性。
反编译器
接下来,我需要实际的反编译器。这时 BLASTX(最终更新为 BLAST+)派上了用场。BLASTX 是 BLAST 的一种变体,BLAST 代表基本局部比对搜索工具。首先,我让这个分析程序计算所有可能的大肠杆菌DNA 到蛋白质序列的翻译。DNA 翻译结果会产生六种可能的蛋白质序列:DNA 可以正向和反向读取(分别称为 5′→3′和 3′→5′),每个方向有三种可能的框架位置。然后,我让程序检查生成的氨基酸序列中与已知能提供药物抗性的序列数据库匹配的模式。(我也可以检查其他类型的模式,只需在数据库查询中输入不同的内容。)结果是一个排序后的已知药物抗性蛋白质列表,连同与这些蛋白质最佳匹配的大肠杆菌基因组区域。
以下是青霉素示例的 BLASTX 输出结果。
# BLASTX 2.2.24 [Aug-08-2010]
# Query: 43 87880
# Database: uniprot-drug-resistance-AND-organism-coli.fasta
# Fields: Query id, Subject id, % identity, alignment length,
mismatches, gap openings, q. start, q. end, s. start, s. end,
e-value, bit score
43 sp|P0AD65|PBP2_ECOLI 100.00 632 0 0 29076 30971 1 632 0.0 1281
43 sp|P0AD68|FTSI_ECOLI 25.08 650 458 21 29064 30926 6 574 2e-33 142
43 sp|P60752|MSBA_ECOLI 32.80 186 120 6 12144 12686 378 558 6e-17 87.0
43 sp|P60752|MSBA_ECOLI 27.78 216 148 5 77054 77677 361 566 8e-14 76.6
43 sp|P77265|MDLA_ECOLI 27.98 193 133 6 12141 12701 370 555 2e-10 65.5
--snip--
Fields 行描述了表格中每一列的内容。在% identity(百分比相似度)列中,你可以看到 PBP2_ECOLI 基因在 O104:H4 基因组中的匹配度为 100%。
用 UNIX Shell 脚本回答生物学问题
有了这个列表,我可以回答一些有趣的问题,比如“已知的抗药性基因有多少在 O104:H4 中?”这是我的女朋友写的回答该问题的一行程序:
cat uniprot_search_m9 | awk '{if ($3 == 100) { print;}}' | \
cut -f2 |grep -v ^# | cut -f1 -d"_" | cut -f3 -d"|" | \
sort | uniq | wc -l
从该脚本的输出结果中,我们得知 O104:H4 中的 1,138 个基因与包含 1,378 个能够赋予药物抗性的基因的数据库中的基因完全匹配。当我们放宽标准,将 99%的匹配也列入其中,允许每个基因有一到两个突变时,列表扩展到 1,224 个基因,出现在 1,378 个基因中。这个“超级细菌”O104:H4 获得了大约 90%的已知抗性基因,名副其实!
我还想回答相反的问题:哪些药物抗性基因肯定不在 O104:H4 中?通过查看超级细菌中缺失的抗性基因,我们或许能够找到哪些治疗方法可能对这种细菌有效的线索。
为了排除药物抗性基因,我们创建了另一个搜索,旨在揭示数据库中与 O104:H4 序列匹配度低于 70%的抗性基因。这个 70%的阈值只是我随便选的一个数字;科学家和临床医生可能使用的是更为严格的标准。
这是在我的终端中显示的列表:
A0SKI3 A2I604 A3RLX9 A3RLY0 A3RLY1 A5H8A5 B0FMU1 B1A3K9 B1LGD9
B3HN85 B3HN86 B3HP88B5AG18 B6ECG5 B7MM15 B7MUI1 B7NQ58 B7NQ59
B7TR24 BLR CML D2I9F6 D5D1U9 D5D1Z3 D5KLY6 D6JAN9 D7XST0 D7Z7R4
D7Z7W9 D7ZDQ3 D7ZDQ4 D8BAY2 D8BEX8 D8BEX9 DYR21 DYR22 DYR23
E0QC79 E0QC80 E0QE33 E0QF09 E0QF10 E0QYN4 E1J2I1 E1S2P1 E1S2P2
E1S382 E3PYR0 E3UI84 E3XPK9 E3XPQ2 E4P490 E5ZP70 E6A4R5 E6A4R6
E6ASX0 E6AT17 E6B2K3 E6BS59 E7JQV0 E7JQZ4 E7U5T3 E9U1P2 E9UGM7
E9VGQ2 E9VX03 E9Y7L7 O85667 Q05172 Q08JA7 Q0PH37 Q0T948 Q0T949
Q0TI28 Q1R2Q2 Q1R2Q3 Q3HNE8 Q4HG53 Q4HG54 Q4HGV8 Q4HGV9 Q4HH67
Q4U1X2 Q4U1X5 Q50JE7 Q51348 Q56QZ5 Q56QZ8 Q5DUC3 Q5UNL3 Q6PMN4
Q6RGG1 Q6RGG2 Q75WM3 Q79CI3 Q79D79 Q79DQ2 Q79DX9 Q79IE6 Q79JG0
Q7BNC7 Q83TT7 Q83ZP7 Q8G9W6 Q8G9W7 Q8GJ08 Q8VNN1 Q93MZ2 Q99399
Q9F0D9 Q9F0S4 Q9F7C0 Q9F8W2 Q9L798
你可以将这些蛋白质代码输入 UniProt 数据库,了解更多信息。例如,BLR 是β-内酰胺酶,一种导致对β-内酰胺类抗生素产生抗性的酶。UniProt 这样描述它:
对于多种参与肽聚糖生物合成的抗生素的敏感性有影响。与β-内酰胺类药物、D-环丝氨酸和杆菌肽一同作用。对四环素、氯霉素、庆大霉素、福美沙星、万古霉素或喹诺酮类药物的敏感性没有影响。可能通过作为多亚基外排泵的一部分增强药物排出。也可能参与细胞壁的生物合成。
不幸的是,初步检查显示,O104:H4 缺乏的大多数功能只是一些小的、理解不深的药物抗性机制的碎片。因此,在其基因组中并没有明显的超级细菌杀手候选基因。
更多问题而非答案
好消息是,任何人都可以访问分析基因组的工具,并且一些工具,如 grep、awk 和 sed,计算机工程师已经熟悉。坏消息是,尽管我们可以用这些工具提问关于基因组的问题,但我们仍然面临更多问题而非答案。例如,抗生素耐药性看起来对细菌的生存有利,那么为什么不是所有细菌都有这种能力?而细菌是如何获得(或丧失)这些基因的呢?
抗生素耐药超级细菌的崛起是我们热衷于抗生素的产物。由于大肠杆菌的 DNA 复制速率大约为每秒十多个碱基对,即使丢失一个未使用的基因,也能在指数增长的竞争中提供有意义的优势;毕竟,在最佳条件下,大肠杆菌的种群每 20 分钟就能翻倍。因此,存在选择压力,促使细菌丢弃那些对生存没有必要的基因。O104:H4 的基因组比典型的大肠杆菌菌株长 15%,这意味着在七代之后,典型的大肠杆菌菌株的数量会是 O104:H4 的两倍。在没有抗生素的最佳生长条件下,半天之内,缺乏抗生素抗性基因的大肠杆菌菌株的数量会是 O104:H4 的 20 倍以上。因此,保留抗生素抗性基因的细菌就像是在比赛中穿着防弹背心的短跑运动员。同样,超级细菌最大的天然威胁之一就是一种精简、快速复制的常见细菌,它仅凭数量就能超越超级细菌。
然而,杀菌性和抑菌性抗生素分别通过杀死或抑制非耐药性细菌的生长,从而仅留下耐药性细菌自由生长。随着时间的推移,并暴露于多种抗生素中,可以推测耐药性细菌种群将继续选择性繁殖多重耐药基因,形成超级细菌。
尽管如此,我还是觉得很惊讶,耐药性细菌似乎能够如此迅速地发展出抗性基因。我们被教导进化是一个缓慢的过程,因此细菌能够偶然地进化出一系列抗生素抗性基因,总计数以十万计的碱基对,确实令人感到不可思议。新基因的确需要很长时间才能自发产生(这一点有很少的明确记录,比如理查德·伦斯基的长期进化实验)。相反,大多数抗性基因是通过水*基因转移从环境中获得的。
我们的环境中充满了 DNA 片段。生物学的 GitHub 无处不在,从泥土到海洋再到我们呼吸的空气中都有。某些 DNA 片段编码有用的特征;有些则是垃圾。当细菌处于压力下(例如暴露在抗生素中时),它可能开始吸收来自环境中的随机 DNA 片段,并根据这些代码制造蛋白质。如果它反正要死了,那就试试看吧,对吧?大多数时候,吸收的 DNA 片段并没有帮助,但如果某个幸运的细菌从环境中获得了所需的抗性基因,它就能在充满抗生素的环境中迅速超越其他细菌。
因此,尽管没有耐药性的细菌株会迅速超过抗药性细菌株,但那小部分残存的耐药性细菌群体(或许它们已经是漂浮在环境中的尸体)形成了一个基因库,在压力时可以被动员。而且,由于基因代码在所有物种间是可互操作的,抗性基因甚至可以从无关的生物体中获得。
发现 O104:H4 缺失的功能尚未完全理解,实际上本身就是一个有趣的教训。小说作品通常将知道 DNA 序列与知道一个生物可能具有的疾病或特征混为一谈。但即使我们知道许多蛋白质的序列和一般特性,将蛋白质与特定的疾病或特征联系起来却要困难得多。最终,总得有人亲自动手,做涉及实际生物体的实验,才能为给定的蛋白质家族赋予生物学意义。
大众文化中提到 DNA 分析时,往往忽视了这个过程中的缺失环节,这导致了对基因分析的期望过高,尤其是在它诊断和治愈人类疾病以及应用于优生学方面。让我们更仔细地看看这些神话。
破除个性化基因组学的神话
在很多方面,我们的确生活在未来。例如,我们有电动汽车!但好莱坞在 60 年代和 70 年代的电影也预测到,到现在我应该是用飞行汽车来代步,而不仅仅是地面上的电动汽车。当然,汽车技术并不是好莱坞炒作的唯一受害者。
电影如《基因命运》大大夸大了个性化基因组学的潜在影响,制造出一种神话,认为你的基因组就像水晶球一样,你的命运似乎是由你的基因程序注定的。我之前提到的女朋友共同撰写了一篇在《自然》期刊*上发表的论文,研究了 23andMe 的直接面向消费者(DTC)个性化基因组学服务。让我们来看看她的论文,揭开这个神话的面纱吧!
误区:读取你的基因组就像是对你计算机的 ROM 进行十六进制转储
一种查看基因组部分的廉价技术叫做基因分型。在这里,基于你的基因组和参考人类基因组进行选择性的差异比对;换句话说,你的基因组仅在可能有趣的地方进行采样,以查找称为单核苷酸多态性(SNPs,发音为“snips”)的单点突变。基因分型的概念自然会引出两个问题。首先,你如何决定哪些 SNPs 值得进行采样?其次,你如何确定参考基因组是一个准确的比较基准?这就引出了两个被破除的误区。
误区:我们知道哪些突变预测疾病
人类基因组中的一些突变仅与某些疾病相关,它们并没有被证明具有预测性或因果关系。事实上,我们真的不理解许多遗传性疾病发生的原因。对于那些我们理解不深的疾病,我们能说的就是,患有某种疾病的人往往有某种 SNP 模式。重要的是不要将因果关系与相关性混淆。
因此,尽管科学家可以根据 SNPs 预测疾病,但大多数这些预测都是相关性的,而不是因果关系(而且相关性较弱)。因此,基因型不应被视为预测你未来疾病的水晶球。相反,它更像是一张罗夏墨迹图,你必须眯起眼睛盯着它一会儿,才能说出它的含义。例如,在我女朋友撰写的那篇论文中,她发现不同公司在疾病风险预测上的结果往往不一致,因为他们对突变意义的解读不同。
误区:参考基因组是一个准确的参考
参考基因组中的参考一词应该让你意识到一个问题:它暗示了存在“参考人群”。实际上,今天的参考基因组是通过对少数几个人进行测序所创建的,而其中大多数人都具有欧洲血统。随着时间的推移,更多的全基因组数据将被收集,参考基因组将被合并和调整,以呈现出更准确的整体人类种群图像,但现在,我们需要记住,基因型研究实际上是与一个源存储库进行的比对,而这个存储库的普遍有效性是值得怀疑的。
例如,一些 SNP 在不同人群中的频率不同。碱基 A 可能在欧洲人群中占主导地位,但在非洲人群的同一位置,碱基 G 可能占主导地位。还需要记住,参考基因组的总体错误率大约为每 10,000 个碱基对中有 1 个错误,尽管公*地说,发现疾病变异的过程通常会清理参考基因组中相关序列区域的任何错误。
在我们完全理解人类基因组中所有序列的意义之前,可能还需要几十年时间,即使那时,这些序列也可能无法真正预测疾病风险或其他健康信息。这里或许包含了最重要的信息,也是我不能过多强调的一点:在大多数情况下,环境对你是谁、你将成为什么样的人以及你将患上哪些疾病的影响,远远大于你的基因。个人基因组学的任何好处,不会来自于水晶球式的预测,而是由于了解自己的遗传倾向可能会鼓励更多人做出生活方式的改变,从而帮助他们保持健康。如果我从和一位杰出的生物信息学家约会中学到了一件事,那就是无论你的基因组成如何,大多数常见疾病都可以通过适当的饮食和锻炼来预防或推迟。
基因组修补
到目前为止,在这一章中,我已经给出了基因组排序和分析的示例。这在某种程度上相当于能够将一个程序可执行文件转储并在 IDA 中进行分析。通常,在分析完一个可执行文件后,你可能会想要对其进行修补以实现新的功能。软件修补相对简单且可靠:只需要启动十六进制编辑器并更改文件。在最坏的情况下,你可能需要使用聚焦离子束(FIB)来修改芯片内部掩膜 ROM 的单个电路。
但历史上,修补基因组的能力一直受到严重限制。细胞中的信息以分子级别存储,改变基因的特定部分可能是一个艰巨的过程。正如真空管和晶体管早于集成电路的出现一样,锌指核酸酶(ZFNs)和转录激活因子样效应核酸酶(TALENs)使基因编辑成为可能,但在效率、性能和最终成本上存在显著的局限。2012 年,基因编辑的集成电路问世:CRISPR/Cas*系统。
细菌中的 CRISPR
CRISPR,意为成簇的规则间隔短回文重复,描述了一种特定的 RNA 结构,而 Cas 则是与 CRISPR 相关的蛋白质。根据生物学家的了解,CRISPR 只在细菌和古菌(例如真菌)中常见,它们是简单生物免疫系统的一个极其巧妙的部分。像人类一样,细菌有可以通过接触病原体来编程的免疫系统。当细菌遇到病毒侵入时,它们有可以剪切出病毒 DNA 短序列的蛋白质,并将这些序列存档为 CRISPR 中的间隔序列。
那些用 TALENs 编辑基因几个月都没有成功的实验室,改用 CRISPR/Cas 后第一次尝试就成功了。他们之所以能够如此迅速成功,是因为这个过程仅涉及设计一个短小的 RNA 片段,并将其插入到 CRISPR 中,这个简单的操作可以完全在计算机上完成,或者我敢说,也可以手工完成。这个 RNA 片段本身大约一周内就能在不到 50 美元的费用下通过几家服务提供商制造出来,用这种方法可以用信息学的工作代替大量湿实验室的复杂操作。
每个 CRISPR 区域都有一个领导序列,紧接着是 CRISPR 本身。一个 CRISPR 由引导 RNA(gRNA)或“间隔”序列组成,该序列被一个明确的 DNA直接重复序列所界定,而这个序列是回文的。
注意
“间隔”这个术语用于讨论免疫系统,而引导 RNA用于讨论基因组编辑。称一个感兴趣的区域为间隔是令人困惑的,但在反向工程中误用术语是常有的事。我不能责怪科学家们最初注意到一组重复分隔符的模式,并把这些分隔符之间的内容称为“间隔”。毕竟,物理学家也搞错了电流的流向符号,并且坚持使用它。我们又有什么资格去评判呢?
回文通常意味着一个字符串在简单反转后仍然相同,比如词语racecar。当生物学家说一个序列是“回文的”时,他们的意思是该序列在首先互补(A→T,T→A,G→C,C→G)然后反转后仍然相同。例如,GAATTC 被认为是生物学上回文的,尽管它在字面上并不是回文的。
CRISPR/Cas 系统是在 Chumby 死后不久被描述出来的,而那时我正在新加坡基因组研究所 Dr. Swaine Chen 的感染性疾病实验室实习。除了其他工作,我在 Lu Ting Liow 的指导下,研究了诱发尿道感染的各种大肠杆菌菌株。在协助调查一些进入大肠杆菌的噬菌体病毒 DNA 片段时,我被要求写一个脚本来识别大肠杆菌基因组中的回文和重复序列。我的脚本显示基因组中到处都是这些序列;我以为代码有错误,对结果没怎么在意。但也许我看到的一些直接重复序列是 CRISPR 的一部分。
现在让我们来看一个来自 大肠杆菌 菌株的 CRISPR。以下是 大肠杆菌 O104:H4 的 CRISPR 直接重复序列:
GAGTTCCCCGCGCCAGCGGGGATAAACCG
加粗的碱基对是回文区域。当这段 DNA 序列被转录成 RNA(使得 T→U)时,回文区域可以与自身配对,形成发夹或茎环结构,如图所示。

茎环结构
这种形状暗示了 CRISPR 中重复的回文结构的重要性:当翻译成 RNA 时,序列可以自我折叠,形成 二级结构。需要记住的是,基因不仅仅是代码的串联,它们是具有物理形状的分子,这种整体结构对其功能有着重要影响。生物学家使用四层次的系统来描述像 DNA、RNA 和蛋白质这样的分子所具有的物理结构,这些结构基于它们的源代码。一级结构只是单体(碱基或氨基酸)的序列。二级结构指的是由于单体之间的局部相互作用(如分子间氢键的间距和数量,或者某些单体对水的亲和力)而产生的物理形状。在 RNA 和 DNA 中,这意味着像发夹环这样的结构;在蛋白质中,这意味着像螺旋和片层这样的结构。三级结构指的是分子因主序列中远端部分之间的长距离相互作用而形成的复杂三维形状。三级结构特别适用于蛋白质,因为某些氨基酸(如半胱氨酸)能够在更长距离上交联。四级结构指的是由多个分子相互作用形成的结构。Cas9/RNA 复合物就是一个四级结构的例子。只有当 Cas9 蛋白与 gRNA 合并时,最终的化学活性和靶向分子才会产生,而 gRNA 的茎环二级结构对于 Cas9 识别它是必需的。
确定切割基因的位置
从 CRISPR 区域通过转录得到的 RNA 被整合到一个蛋白质复合物中,和其他 Cas 蛋白一起。特定的 Cas 蛋白(如 Cas9)将 RNA 用作搜索和破坏模板:Cas9/RNA 复合物在细胞中漂浮,当它们找到与 RNA 模板匹配的 DNA 序列时,它们会选择性地在模板位点切割 DNA,有效地中和入侵的病毒。但是你可能注意到一个递归问题:Cas9/RNA 复合物也应该切割宿主生物基因组中的 CRISPR 区域,因为该区域也具有目标模式。这将有效地摧毁 CRISPR 区域,导致它无法用于未来。
为了避免破坏 CRISPR 区域,Cas9/RNA 复合体针对模板 DNA 和一个短的、定义明确的三到五个碱基对序列,称为 原空间邻接基序(PAM)。例如,来自 链球菌 的 Cas9 蛋白的 PAM 是 [AGTC]GG,用常规表达式格式表示;而生物学家使用不同的约定 NGG 来表示相同的意思。只要 CRISPR 档案中不包含 PAM 序列,它就不会被复合体切割。
PAM 的要求意味着你能切割基因的位置有一些限制。这有点像只针对以 0xC3 结尾的十六进制字符串,或寻找返回导向编程(ROP)小工具。就像黑客寻找 ROP 小工具时,寻找的是以 RET 操作码结尾的短指令序列一样,生物信息学家也必须寻找以 PAM 结尾的短 DNA 序列进行编辑。
尽管存在这些限制,CRISPR/Cas 仍然被证明是一种多功能且可靠的基因编辑工具。它已经被改编成既能切割基因,也能插入新的序列。在 DNA 中任意位置进行精确切割是插入新 DNA 最困难的步骤。但结合像非同源末端连接(NHEJ)或同源定向修复(HDR)等经过充分研究的技术,CRISPR/Cas 可以用于在基因中插入修改。
对人类工程学的影响
尽管 CRISPR/Cas 是一种天然存在于细菌和真菌中的系统,但普遍的遗传密码意味着该系统与所有物种(包括人类)是二进制兼容的。在这一系统被发现之前,基因基本上是只读的,尤其是在活的生物体中。CRISPR/Cas 为我们提供了一种更可靠、更高效的工具,用于修补和修复基因,而不一定会破坏宿主生物体的生存能力。生物学家们已经成功地将 CRISPR/Cas 操作所需的 DNA 包装到病毒中,使它们能够通过活体复杂生物(如小鼠、植物和人类)的细胞壁将这些基因编辑工具悄悄地送入细胞中。CRISPR 的结构还允许科学家在一次实验中进行多次编辑,扩展了该技术在实验和治疗中的多功能性。
这项技术已经在人类细胞,甚至人类胚胎中得到了验证,其影响简直令人难以置信。不管你所在国家的科学和法律界设定了什么样的道德标准,我认为定制设计的孩子,免除曾经困扰父母的遗传疾病,诱惑力实在太强。即使大多数国家禁止这种做法,我觉得总会有某个地方,有人,或许是一个无法拥有自己健康孩子的富有亿万富翁资助的项目,开始尝试定制设计的人类。如果结果是积极的,它很可能会比摩尔定律更深刻地改变人类的未来。而这还得在一个名为 基因驱动 的机制抢先实现之前。
利用基因驱动劫持进化
基因驱动重写了性别繁殖的规则,因此也重写了进化的规则,这种变化在自然界中前所未见。你可能知道,每个基因都有两份拷贝:一份来自母亲,一份来自父亲。每份拷贝被称为等位基因。如果两份等位基因相同,你被称为纯合子;如果两份不同,你是杂合子。通常,孩子从每个父母那里继承哪个等位基因是随机的,而孩子在特定环境中的适应性是决定其基因能否传递给下一代的主要因素。
基因驱动消除了这种“硬币抛掷”的不确定性。环境选择被绕过,从而使得可能具有负面副作用的基因能够迅速在种群中传播。这一利用方式得以实现,是通过为目标等位基因配备 CRISPR/Cas 辅助的基因编辑机制,该机制能够针对并转化杂合等位基因为纯合等位基因。例如,如果母亲携带一个带有 CRISPR/Cas 辅助基因驱动机制的基因,那么父亲的基因无关紧要。在孩子体内,母亲的基因副本将表达 CRISPR/Cas 编辑机制,寻找父亲的副本并将其编辑成与母亲相同。
在颠覆性力量方面,如果 CRISPR/Cas 是rm命令,那么基因驱动就像调用rm -r *命令一样。
这对自然选择产生了深远的影响。忘掉“适者生存”吧;变化不再需要严格地有益于生物的适应性才能在种群中传播。此外,基因驱动的变化可以以指数速度在自然种群中传播(远远快于典型的突变),因为它们不依赖于“硬币抛掷”和自然选择来放大突变。
从积极的一面来看,基因驱动可以用来推动有益的变化,比如创造无疟疾的蚊子。从消极的一面来看,这种以前在自然界中未曾出现的新机制,可能会对进化和生态系统造成严重破坏。虽然我们的改变可能经过精心设计并且有良好的意图,但自然通过突变、自发重排和水*基因转移来“扰乱”事物。如果基因驱动的生物体在负载区域获得了额外的基因,结果可能是无法预测的。
例如,无疟疾的蚊子对人类有益,但蚊子在地球生态系统中也扮演着重要角色,是鱼类和鸟类的食物来源。如果改造过的蚊子无法繁衍生息并占据它们的生态位,可能会产生多米诺效应,伤害到其他物种。这一切可能发生得如此迅速,以至于即便我们想逆转,也可能无能为力。此外,像蚊子这样的生物并不承认地缘政治边界。因此,在大多数地区禁止基因驱动并不能让任何人免受其潜在后果。如果有一个经过精心设计的生物进入野外,所有人都必须应对它。
也许并不是偶然,CRISPR/Cas 只在细菌和古菌中被发现——这些生物是已知的无性繁殖生物。也许能够快速绕过性繁殖中的适应性要求,迅速退化携带 CRISPR/Cas 突变的任何种群的整体适应性,使得该种群在接管整个群体之前就已经灭绝。毕竟,任何意外的基因或自发突变,如果进入 CRISPR/Cas 载体,也会像初始驱动一样迅速传播到整个种群中。
那么问题是,这种退化和灭绝需要多长时间才能发生?如果改造后的蚊子在几年内灭绝与在几千年后灭绝,根除疟疾传播者的结果将会有很大不同。
结束语
很明显,生物工程的前沿有许多未解答的问题,而且这一切正在发生。无论是好是坏,今天实验的结果很可能会像摩尔定律和互联网一样深刻地影响人类。电子技术重塑了我们思考和交流的方式,而生物技术将重塑我们的身体和环境。最大的不同在于,在生物技术中,我们尚未发展出备份的能力,但我们正在开发的技术具有rm -r *命令的潜在力量。
就个人而言,我是乐观的;我认为这些技术可以并且会被用来改善我们的生活。但要实现这一点,我们需要社会理解其中的利害关系,并进行积极而开放的辩论。即使这些生物技术对我们的健康和安全具有可怕的影响,不披露和讨论其漏洞只会引发零日攻击。谁愿意在某天早晨醒来时,发现自己感染了致命的恶意软件,而且没有可行的补丁呢?
硬件突破已经改变了我们熟知的生活,但摩尔定律正在放缓,而 DNA 测序已经超越了它。谁知道生物技术的进步会创造出什么新的世界呢?就像社会从负责披露和共享漏洞与利用中受益一样,参与科学讨论比试图审查它更具建设性。也许,过去 50 年从口袋计算器到口袋超级计算机的硬件产业的成熟经验和视角,可以帮助引导生物技术走向类似的积极结果。
第十一章:11. 选定访谈
多年来我做了几次访谈,本章汇集了几篇我认为你可能会喜欢的访谈。第一次访谈最初由中国软件开发网(CSDN)发布,它自称是一本“程序员杂志”。最后,你会看到来自Blueprint的故事,这是一本汇集硬件领域创始人和创新者访谈的书籍。
ANDREW “BUNNIE” HUANG: 硬件黑客(CSDN)
这次访谈最初于 2013 年以中文在CSDN上发布,杂志方也友好地允许我在博客上发布英文翻译。在第一部分中,我讨论了当时相对新兴的创客运动以及我在制造硬件产品方面的经验。第二部分则更多地讨论了硬件黑客以及我认为拥有什么样的黑客精神。你可以在CSDN网站找到原版中文文章,链接为www.csdn.net/article/2013-07-03/2816095。
关于开源硬件与创客运动
创客和开源硬件运动吸引了大量关注。克里斯·安德森写了一本书叫做《创客》,保罗·格雷厄姆称这一时期为“硬件文艺复兴”。你认为这一运动将如何影响普通人、开发者以及我们的 IT 行业?
在我看来,这一运动更多的是一种症状而非原因。首先,让我们回顾一下我们是如何走到这一步的。
在 1960 年,只有硬件,而且它们都是开放的。当你购买一台晶体管收音机时,背面会印有电路图。如果收音机坏了,你必须自己修理。当时购买自制收音机的套件非常流行。
在 1980 到 1990 年间,个人计算机革命开始了。计算机开始变得足够强大,可以运行有趣且具有启发性的软体。
从 1990 年到 2005 年,摩尔定律推动计算机的速度每 1.5 到 2 年翻倍,内存也翻倍。那时只有软件才重要,因为除非你能负担得起用最新技术生产芯片,否则做硬件没有意义。等你把组件收集齐全,一个新芯片就会让你的设计看起来很慢。优化软件的重要性也低于功能、便利性和创意。用户可以直接购买更快的计算机并让旧软件运行得更快。“制作”不再流行,因为没有时间去做:你得发布代码,否则就得“死”。
从 2005 年到 2010 年,计算机的时钟速度没有显著提升,但它们变得更小了。智能手机诞生了。一切都变成了应用程序,而且一切都变得更加互联。
从 2010 年左右到现在,摩尔定律的进展已经放缓。这一放缓正在波及创新链条。个人电脑在速度、性能或价格方面并没有显著提升。我们购买新电脑只是为了替换坏掉的,不是因为最新的型号有多好。现在还为时过早,但智能手机也可能正在稳固成为一个*台:iPhone 5 与 iPhone 4 非常相似,三星手机的各个版本在外观上也差别不大。
那么,问题是如何创新?如何创造市场差异化?随着摩尔定律放缓,硬件创新不再因为新芯片的发布而显得迟缓。你可以将硬件创意投向稳定的*台(PC、智能手机、*板等)。你不必自己制造芯片来获得优势。如今,每个人都在回顾技术的过去,寻找那些被忽视的市场空白。即便是过时的智能手机主板,当你将它放入四旋翼、卫星、HVAC 系统、汽车、能源监控系统、健康监控系统等设备中时,也显得非常惊艳。
此外,作为人类,我们对物理物品和虚拟物品的感受本质上是不同的。应用程序很棒,但人们的家不止是智能手机、餐盘、床和厕所。人们依然会围绕着小摆设、朋友的照片以及特殊场合的实物礼物。我认为永远不会有一天,虚拟的泰迪熊应用会取代晚上抱着的实物泰迪熊。
因此,始终会有一个空间供人们制造满足对有形商品需求的硬件。这些硬件将融合更多技术,运行更多软件,但最终,依然会有创客和硬件初创公司存在的空间,随着硬件技术的稳定,这个空间现在正变得越来越大。
Arduino 和树莓派似乎降低了设计硬件的门槛。你认为这将如何影响硬件行业?你认为这些*台会使行业取得飞跃式发展吗?如果不会,真正创新的硬件产品需要什么?
Arduino 和树莓派服务于特定的市场细分。
Arduino 的主要贡献是将计算简化为易于使用的物理形式。它最初由设计师和艺术家们制作,而不是技术人员。这种对技术的独特视角非常强大,因为那些不是程序员或硬件设计师的人也希望接触硬件技术。通过 Arduino 制作出了一些非常感人、深刻的互动艺术作品,让硬件能够将单调的控制应用转变为改变情绪或让你以不同方式思考生活的艺术作品。我认为 Arduino 只是迈向将“技术”从科技中剥离的第一步,让普通人不仅能使用技术,还能与技术共同创造。未来肯定还会有其他*台。
树莓派是一款非常廉价的嵌入式硬件参考模块,我认为其他*台会跟随它的步伐。它的价格足够低,以至于对于许多应用,直接使用树莓派而不设计和制造自己的硬件,反而不会带来净成本优势。对于硬件专业人士来说,这个*台的好处在于,与你购买参考设计然后自己开发电路板不同,你可以直接购买树莓派并将其用于你的产品中。对于那些产品量较小的人来说,这种做法是有意义的。
我看到产品设计朝着低产量更加可行的方向发展。虽然像智能手机和咖啡机这样的大宗百万级设备仍然有市场,但最终也会出现一些市场,专门生产 1,000 到 10,000 台的小批量设备,且这些设备的利润率要高得多。这些小批量产品将由只有一两个人的小团队开发和销售,这样利润仍然足够让这些人过上体面的生活。成功的关键在于,这些产品高度定制化,能够帮助解决少数用户群体的特定问题,这些用户愿意为此支付更高的费用。
当新的概念或技术首次出现时,它们总是引发乐观的讨论,但大多数技术只有经过长时间的发展才能真正影响我们的生活。在讨论创客和开源硬件运动时,我们是否过于乐观了?普通人对这个领域是否存在常见误解?
是的,技术的确需要很长时间才能真正改变我们的生活。
我认为创客运动更关注的是培养人,而不是开发产品。它旨在帮助人们意识到,因为技术是人造的,每个人都可以通过一点点知识掌控它。技术没有什么魔法,你也可以说,只要经过一点训练,任何人都能成为魔术师。
开源硬件更像是一种哲学。一个产品的成败在很大程度上与硬件是开放的还是封闭的无关。封闭硬件并不会阻止人们进行克隆或复制,而开放硬件也不意味着坏的想法会因为它是开放的就被复制。与软件不同,硬件需要供应链、分销和一整套关系网络才能低成本地制造出来。这些开销意味着开放或封闭只是其中的一小部分,是否开放项目的核心问题在于你希望让最终用户或第三方在多大程度上参与修改或与产品互操作。
展望开源硬件的未来,您认为它会像开源软件行业一样,许多商业公司也支持开源软件吗?它们之间有什么区别?
我认为它们并不完全类似。在软件中,复制、修改和分发的成本基本为零。我可以克隆一个 Linux 源代码库,运行make命令,然后在我的桌面上运行与顶级服务器和超级计算机相同的高质量内核。
但是,复制硬件是有实际成本的:零部件、工厂和用于制造的熟练工人;质量控制程序;以及制造过程中的所有因素,都会对最终产品的成本、外观、手感和性能产生重要影响。仅仅把我的原理图和图纸给别人,并不意味着他们能做出和我完全一样的产品。即使是注塑成型也有其艺术性。如果我将相同的 CAD 图纸交给两个模具制造商,最终结果可能会有所不同,这取决于模具制造商决定将浇口、脱模销、模具冷却、模具周期时间、温度等安排在哪里。
然后你还需要考虑分销渠道、逆向物流、融资等问题。即使在全球物流效率不断提高的情况下,你也永远无法像下载你在电视上观看的电影那样轻松购买一台电视。
你认为哪种商业模式最适合开源硬件公司?能否举个例子?
我关于开源硬件的一个核心理论是,不论许可证如何,硬件本质上是开放的,至少在原理图和 PCB 布局层面上是开放的。花费相对少量的钱,你可以支付服务费来提取复制 PCB 设计所需的细节。因此,你可以假设,一旦你发货,硬件就能被复制。如果你接受这个假设,那么就会得出结论,不发布原理图和 PCB 布局并不会阻止人们复制你的产品。如果有人想复制某个硬件,无论你是否分享设计文件,他们都会去复制。
但是,分享设计文件对另一个独立且重要的群体确实有所不同。还有其他企业和个人创新者可以利用你的设计文件来设计配件、升级或依赖于你产品的第三方增强功能。在这种情况下,分享设计文件可以提升你建立新业务关系的机会,这使得(使用开源硬件许可证来保留一些基本权利和保护)成为一个实际的建议。
很明显,一些硬件策略与开源并不兼容。如果你对消费者的唯一价值是你能够制造独立的硬件,并且在成本方面没有战略优势,那么你可能希望保持计划的机密,以尽可能长时间延迟低成本的复制。
但今天最具创新性的产品不仅仅是硬件。它们还涉及软件和服务。开源硬件商业模式在这种混合型产品中效果更佳。在许多情况下,消费者愿意每年支付费用(比如订阅、广告、追加销售、配件、版权费或升级费用)来购买许多产品。事实上,最有利可图的是收取这些费用,而不参与硬件制造部分。控制对持续服务的访问也比控制硬件产品的计划要容易得多。
因此,如果你将一个盈利的在线服务与硬件结合在一起,开源硬件就显得很有意义。让其他人复制硬件、销售它,并为你的在线服务增加更多用户,实际上意味着你获得了更多收入,却没有更多的风险。
你经常来中国,并且对这个国家了解很多。中国的软件技术并不先进。你认为成为世界工厂中心会帮助中国提高其整体技术水*吗?这个国家如何从仅仅是制造中心,转变为一个专注于设计、研发和创新的地方?中国缺少什么?
我不能说我对中国了解很多。我了解一些关于中国的知识,尤其是在一个特定领域——硬件制造。如果我知道一点事情,那就是中国是一个非常大的国家,拥有多种不同的人群,且有着悠久的历史,而我只是刚刚开始理解它。然而,我经历了几乎整个高科技历史,所以我可以评论高科技与人类之间的关系,从中可以得出一些关于中国的观点。
首先,今天成为技术强国的每个国家都是从制造业起步的。美国最初是英国的殖民地,开采矿石、捕捉皮毛、种植棉花和烟草。随着时间的推移,美国有了钢铁厂和亚麻生产。美国直到 20 世纪初才真正开始发展原创技术,而这个过程直到 20 世纪中期才开始起飞。
日本的崛起也相似。它从制造业起步,复制了许多美国生产的商品。事实上,如果你相信历史记载,日本制造的第一辆汽车和收音机并不好。美国和日本花了几十年的时间才从制造型经济体转型为服务型经济体。
将此与中国进行对比,中国的电子制造业大约从 20 年前才开始起步,而且中国正从一个以制造为导向的经济体,转变为能够做更多设计和软件技术的经济体。我认为这是一个自然的发展过程。一部分入门级工人最终会成为技术员,随后一些技术员会成为设计师,最终,一些设计师将成为成功的企业家。
以具体数字来说,如果你有 1000 万工厂工人,也许 1%的人,或者说 100,000 个工人,经过几年学习后能够成为技术员。经过几年的技术员工作后,也许 1%的人会获得足够的技能成为原创设计师,最终成为 1000 名设计师。这些经验丰富、草根出身的设计师将成为创业经济的核心,从而推动经济的转型。
在十年或二十年的时间里,最终会有千家公司被浓缩成少数几家全球品牌公司。我相信中国目前正经历这一最终阶段。深圳的许多人拥有制造经验、设计智慧,并能够将他们的才能应用于创新和原创产品设计。如果当前的经济和知识发展政策大体保持稳定,接下来的十年将是中国科技产业的激动人心的时期。
这种模式主要适用于硬件或硬件主导的产品。软件产品也有类似的模式,但我认为有一些独特的文化因素使西方在软件设计上占有优势。在硬件中,如果一个过程效率不高或者产量低,你可以很容易地找到根本原因并提供直接的物理证据来证明问题所在。硬件问题本质上是无法争议的。
在软件方面,如果代码不高效或者写得很糟,很难找出导致问题的具体原因。你可能会看到程序崩溃或运行缓慢,但没有什么断开的电线或丢失的螺丝可以展示给大家,说明为什么软件会出问题。相反,开发人员必须回顾复杂的设计,考虑多方意见,最终确定一个问题,归根结底只是一个人的糟糕决定。所有的软件 API 不过是人类意见的构建。
亚洲文化非常注重关系、声誉和对长辈的尊重。西方则倾向于更叛逆,愿意接受外来者作为英雄,也较少尊重长辈的建议。因此,我认为在亚洲文化背景下,讨论代码质量和架构决策是非常困难的。软件领域本身只有 30 年的历史,年长且经验丰富的工程师在方法论和知识方面往往是最过时的。事实上,年轻工程师往往有最好的想法。但如果年轻工程师在文化上很难挑战长辈工程师的决策,那么最终就会导致架构不佳的代码,并且没有竞争力的希望。
克服这些障碍是可能的,但执行正确的激励机制和文化需要非常强大的管理哲学。员工应该因做出正确决策而获得公*的奖励,并且不能根据友情、关系或资历偏袒任何人。高级工程师和经理必须看到接受自己错误的真正财务奖励,而不是通过强迫初级工程师在糟糕的高级决策上修补代码来保全面子。美国公司通常通过在公司内部为工程师分配股份来实现这种协调,以便只有当公司整体存活时,才会有大的回报,而不管个人的自尊如何。
你认为未来个人创作者与商业公司之间的关系会是怎样的?随着个人创作者未来可能不仅与商业公司竞争,还与其他创作者竞争,哪些因素对产品的成功至关重要?
随着最小订单量的减少和创新逐渐接*边界,我认为商业公司将面临来自创作者的更多竞争,特别是当物流行业将自己转变为可以直接连接到网站的 API 时。归根结底,成功的最关键因素仍然是消费者从产品中感知到的价值。这与卓越的功能和优质的产品质量相关,但向消费者呈现的方式以及如何清楚地解释产品的好处也同样重要。
因此,任何产品都需要具备视觉吸引力,易于使用,并且配有能够清楚解释使用该产品好处的营销材料。这些元素对于擅长制造在技术上有价值的产品但在销售和营销方面缺乏天赋的个人创作者来说,往往是具有挑战性的。那些能同时掌握这两个方面的创作者将具有竞争优势。
关于硬件黑客
你参与了许多产品的开发过程,但你个人的目标是什么?
我希望通过构建能够在某种程度上改善人们生活的东西让人们开心。最大的乐趣是看到有人享受我做的东西,并且知道我以某种小小的方式改善了那个人的生活。有时候,产品是为用户解决了一个大问题;其他时候,产品则更具奇思妙想,用户的快乐来自于娱乐或美感。但无论哪种方式,知道我通过制作某物帮助了别人对我来说都很重要。我已经学到,超过某个程度的金钱并不会让我更快乐。这使得我很难与人合作,因为别人很难仅仅通过提供大量金钱来雇用我。相反,他们需要说服我,证明这个活动在某种程度上也会让人们开心。
另一个对我来说重要的目标是了解这个世界是如何运作的。我有着天生的好奇心,想要学习和理解各种各样的事情。宇宙有许多模式,有时你会发现看似不相关的碎片像魔法一样拼凑在一起。发现这些联系并看到世界像拼图一样完美契合,既深刻又令人满足。
失败往往让人积累更多经验。你能谈谈自己参与过的那些不太成功的项目吗,或者你有没有见过其他失败的项目,这些项目有没有给你带来启发?
我的生活是一个失败的故事。我反复可靠地做的唯一一件事就是失败。但我有两条处理失败的规则:
-
不要放弃。
-
不要犯同样的错误两次。
如果你遵循这些规则,最终,你会在经历了无数次失败后找到成功。话虽如此,我确实有一篇采访,专门讨论了我最*的一个失败。你可以阅读它,链接在这里:makezine.com/2012/04/30/makes-exclusive-interview-with-andrew-bunnie-huang-the-end-of-chumby-new-adventures/。
你的书,《Hacking the Xbox》,已经出版 10 年了。对于今天想学习逆向工程或成为硬件黑客的人,这些经历和技能还有哪些适用之处?
我希望认为书中涉及的核心原理今天依然适用。Xbox 只是我用来展示如何做事的一个例子。这种方法和技术可以应用于广泛的问题。
对于中国观众来说,我发现手机维修手册非常有趣,尽管我中文不太好。它们在电子理论的描述上并不总是完全准确,但从实际操作角度来看,它们已经足够好了,并且为快速入门提供了一条途径,同时能学习到立即可用的手机维修技能。
还有一本中文杂志,叫做《无线电》(类似于英文的Radio Electronics),我发现它非常不错。如果你开始做里面的项目,我认为你会学得非常快。
Xbox One 对用户有更严格的限制。你怎么看这个问题?你有兴趣探索这个黑箱并升级你的书吗?
我已经有一段时间没做过视频游戏机的工作了;现在有一代新兴的游戏机黑客,他们对探索这些设备充满了兴趣,我为此感到高兴。至于 Xbox One 的安全性,我确信它是目前构建的最安全的系统之一。微软在 Xbox 360 上做得非常好,而我个人认识的 Xbox One 安全团队成员也对构建安全硬件所需的原理有着非常扎实的理解。它应该非常难以破解。
话虽如此,我很高兴自己没有想要购买或使用这种设备的欲望。我认为,我很快就会对它们的使用政策和限制感到非常沮丧。
关于电子设备是否应该有锁来防止用户 root 权限的争议很多。你怎么看这个问题?确保用户安全和让用户完全控制自己设备之间是否存在矛盾?
我认为用户应该拥有自己的硬件,拥有某样东西意味着拥有修改它的权利并拥有根访问权限。如果一个公司担心用户不安全,那么让用户通过签署电子豁免书来放弃支持和保修权利,从而获得完全访问自己设备的权限是完全可行的。大多数能够 root 自己设备的人通常比他们在公司里打电话寻求帮助的手机支持人员更聪明,因此他们不应遇到问题。
法律已经改变,使得一些 root 操作变得非法,甚至在你购买并拥有的硬件上。我认为这种对我们自然所有权的限制是危险的,并且可能使消费者处于不公*的境地。这也会阻止消费者探索和了解他们已经变得如此依赖的技术。
随着硬件系统集成度的提高,你认为硬件破解变得越来越困难,还是担心硬件黑客会逐渐消失?如果是的话,我们该如何改变这种局面?
硬件系统集成已经持续了很长时间。TX-0 只是使用了晶体管,Apple II 使用了 TTL 集成电路,PC 使用了控制器芯片组,而手机则只有单一的系统芯片。集成度的提高确实使得一些部件更难被破解,但在系统集成层面,总是存在机会。
换句话说,我仍然认为硬件中有艺术,但硬件黑客必须在更高的层次上工作,而这每天都在提升,这是一件好事。这意味着随着时间的推移,破解技术也在变得更加强大。
破解 Xbox 致敬 Aaron Swartz。你能谈谈为什么你认为今天黑客精神如此重要吗?
黑客精神是人类解决问题能力的终极表达。它关乎以真实的眼光看待世界,而非社会所设立的构建和惯例。例如,一块砖头不仅仅是用来建造房屋;它可以是门挡、武器、镇纸、加热配重,或者被磨成土壤使用。黑客通过最实用和最正确的方式来质疑惯例。有时,他们的方法并不总是和谐的,因为黑客往往把做正确的事放在比做对的人或遵守规则更重要的位置。
我发现情况越困难,黑客精神在人们中间就越普遍、越强烈。我在世界各地都看到了这种精神的表现。这种精神与人类生存与发展的意志息息相关。我认为,社会培养和宽容黑客精神非常重要。不是每个人都有这种精神,但那些拥有它的人帮助社会在艰难时期变得更具韧性和可持续性。
你有其他想与中国读者分享的词汇吗?
我在一个中文网络论坛上读到一些评论,惊讶地发现许多中国人认为山寨一词是负面的。作为外部人士,我认为山寨做了很多非常有趣且有用的创新。
在英语中,我们有类似的问题。英语中的黑客一词最初是一个积极的词汇,但随着时间的推移,它与许多负面行为产生了关联。制造者这个词被创造出来,以区分黑客的正面与负面方面,但我仍然称自己为黑客,因为我依然坚持该词的传统定义。
如果中文也能发生类似的语言分化,可能更容易解释中国正在发生的创新。我最*提出将山寨所做的创新性、开放性方面,例如他们分享设计文件的方法,称为公开。值得注意的是,我觉得“开放”这个词(kai fang,意思是公开或开放)在“开放源代码”(kai fang yuan dai ma,指的是开源软件)中的用法并不完全适用。它指的是一种特定的以西方为中心的法律层面的开放,而这并不适用于中国生态系统中所采取的方法。
注意
顺便说一句,kai fang* 也有开花的意思,所以在中文中听起来带有诗意。公开则只是指公开或显露——不管你喜欢与否。它的含义没有kai fang那么富有诗意或乐观。
中国找到了一种与西方体系截然不同的方式来共享知识产权,并不意味着中国的体系就不好。其实这非常有趣,我很想看看它会发展到哪里。由于我看到了山寨方法中一些积极的价值,我建议使用更为积极、通用的词汇公开来描述中国常用的知识产权共享风格,但我会避免将其与开源的严格定义正式关联起来。
但话说回来,我算什么呢?我不是以中文为母语的人,也许有更好的方式来解决这个问题。
蓝图与安德鲁·黄的对话
Blueprint 网站刊登了关于硬件领域创始人的故事,这次采访集中在,正如作者所说,我的“个人历程”。我谈到自己小时候是如何接触硬件的,采访时我在做哪些项目,以及硬件创业公司应当注意的陷阱。原始采访内容中,包括了一些我的项目照片和对一些没有出现在正式采访中的有趣问题的回答,详情见 theblueprint.com/stories/andrew-huang/。
你如何描述第一次接触硬件的经历?
我爸爸在我八岁的时候买了一台 Apple II 克隆机,这激发了我对硬件的兴趣。这个克隆机没有外壳,所有电子元件都裸露在外。我可以看到这些电子元件,而且我很想动手弄弄它们。我爸爸不希望我碰电脑,因为怕我弄坏它,但当他不在家的时候,我还是会动手搞这些电子元件。我把它弄坏了好几次,因为芯片是插在插座里的。尽管我爸爸告诉我不要这么做,我还是想看看如果把芯片插反会发生什么。我很早就学到了,把芯片插反是个坏主意!
最棒的是,Apple II 附带了一套很酷的原理图和源代码。我是小学时那个奇怪的孩子,随身带着一本 Apple II 参考手册。在操场上,我就会拿出原理图,盯着看,因为它太吸引人了。我当时不太明白自己在看什么,但我隐约知道原理图上的线条和电路板上的电线之间的关系。随着时间的推移,我学会了一点一点地将原理图上的符号与计算机功能对应起来,一切都开始变得清晰。
到了初中或高中,我已经能够为电脑制作自己的插件卡,并且做了一个小型的语音合成器。这就是你在密歇根州的玉米田里长大的时候会做的事,而那时孩子们不愿意和你玩,因为你看起来很奇怪,而且你是唯一一个中国孩子。
你早期的经历是如何影响你决定进入硬件行业的?
我就这样一直学下去。当我去麻省理工时,我抛硬币决定,不学生物学,而是学电子学。我获得了学位,最终进入了工业界,但我讨厌那个工作,后来回去读了博士,因为我想再多躲一会儿。拿到博士学位后,我参与了很多创业公司,但都失败了。我从来没有过一次成功的创业,但我从失败中学到了很多。
在做制造之前,我做过一些硅芯片设计和逆向工程。多年来,我一直想做一个最大的、最困难的项目,那就是为一家纯科技创业公司工作。像这样的项目,通常是在未来做事,基本上等到技术工作并推向市场时,专利就过期了。没有资本变现,你工作很辛苦,而产品却非常冷门。结果,我从来没有做过什么量产的东西。这是最令人沮丧的部分:把我的生命投入到某个项目中,却从未见到它的曙光。
你在 Chumby 工作时学到了什么经验?
我厌倦了为纯科技公司工作,决定是时候加入一家能够快速变现商业想法的公司了。当我加入 Chumby 时,我想做开源硬件和制造,并开始在这两方面积累经验。我参与了第一代 Chumby 的工作,之后一直参与了多个版本的工作,从 2005 年到 2010 年。
刚开始时,我从未批量生产过产品,也没有做过机械设计。我甚至不知道什么是注塑。但我有幸与 PCH 的其他工程师一起工作,我会直接到工厂车间,看看他们在做什么,并从中学习。到我结束 Chumby 时,我已经能够使用 SolidWorks 设计自己的外壳,并从零开始制作注塑外壳。
这是一次非常具有教育意义的经历。我学会了制定测试计划、制造、采购,以及其他必须在过程中学到的技能。当 Chumby 倒闭时,我住在新加坡,当时我曾尝试开设一个分公司。我留下来收尾,做一个干净的关闭,确保每个人都能找到新的工作。处理完一切后,我决定失业一年;我做的第一件事是在 2011 年 3 月 11 日日本发生严重地震和海啸后,为日本设计了一个辐射传感器。
然后我开始思考下一步的项目是什么。我做了一系列项目,比如对 SD 卡进行逆向工程,并且遇到了 Jie Qi,我帮助她在 Chibitronics 品牌下生产电路贴纸。
我和我在新加坡的同事 Sean Cross 一起工作,我们坐在一起讨论应该做什么。我们决定做一些我们自己可以用的东西,因为当我在 Chumby 时,我做的东西更多是为别人,而不是为自己。我每天都用笔记本电脑,我们需要一个开发*台,所以我们做了一台我们自己会用的笔记本电脑。现在,我们正在为这个产品进行众筹。
你如何描述从原型到制造的过程?
实际上,设计易于制造的东西有很多艺术成分。一个很好的方法是完全负责自己的供应链。我不喜欢有供应链经理和制造经理。我希望自己亲自做一些东西。我坚持自己做所有的测试。我坚持亲自处理制造问题,因为从设计角度来看,做到这一点迫使你思考:“我能做出来吗?如果我忽略了这个细节,可能会在后期付出很大的代价。”
从一开始设计时,我就会考虑如何使产品易于制造。我应该使用什么样的制造工艺?如何确保我能采购到所有这些组件?当我真正进入制造阶段时,我已经做出了所有的决策,因为最终需要承担后果的人是我。
人们在设计时最常忽视的是什么?
你可能会忘记很多方面。首先让我想到的两个方面是材料采购的能力和良品率。例如,Make:杂志上一个酷项目的说明通常会告诉你去寻找一个冷门或过时的物品,比如 1980 年代 VHS 播放器的电机。从理论上讲,这样做是好的,因为许多人在车库里有这种便宜的物品。但突然之间,每个人都去 eBay 找同样的部件,而这些部件已经找不到了。
在产量方面,很多人不会计算每个步骤的良品率意味着什么。制造过程的每个步骤都有一些损失。如果每个步骤的良品率大约是 99%,而你有 10 个步骤,那么你的整体良品率大约是 90%。人们本质上是在他们的项目中建造比萨斜塔,最终问题会层层叠加,导致无法按时交付。建立一个强大且可返工的系统至关重要,这样每个步骤都可以与另一个步骤相结合,以最小化良品率的损失。否则,你将浪费大量资金。
你如何描述自从你参与制造以来,硬件的认知发生了什么变化?
这很奇怪。在 2001 年我在做 Xbox 时,硬件大概处于最低谷。在互联网泡沫时期,Web 2.0 的工作非常火爆,如果你做了一些关于 Amazon 或 XML 的事情,那就是很酷的事。焊接是一个低价值的工作,发生在别的地方。
但我曾经是那个在实验室里懂得如何焊接的奇怪家伙,所以人们会把坏掉的东西拿给我修理。我就这么坚持下来了,因为那是我做的事情,我也热爱这样做。Xbox 安全性相对容易破解的一个原因是人们认为硬件很复杂,焊接很困难。但如果你懂得焊接,破解安全性就非常容易。我在研究生预算下只花了大约 $150。我在 Xbox 破解之后做了几次会议演讲,基本上告诉大家硬件并不难,背后没有魔法。我向人们展示了“魔法”其实就是一些简单的制造技术。
然后 Kickstarter 出现了。资金开始进入一个之前没有的系统,因为风险投资(VC)不会碰硬件。他们认为硬件是一个零售陷阱,所有这些钱都必须预先支付,然后基本上创业公司都会死掉,投资者也无法获得回报。
突然间,这些酷公司开始通过 Kickstarter 筹集百万美元作为种子轮融资,并且最终有足够的时间交付他们的产品。没有什么比金钱更能吸引硅谷的人了。从那时起,硬件的认知发生了剧烈的变化。人们越来越多地开始涉足硬件。问题是,许多人认为现在必须在产品中加入硬件,但却不知道该怎么做。
另一个问题是 Kickstarter 上越来越多的骗局,那里有许多硬件零部件,支持者无法分辨什么是真的,什么是假的。我知道这个行业确实已经感觉像是一个泡沫;我能感觉到这个泡沫现在在不断膨胀。
我觉得也许我更喜欢以前没有人知道硬件的时候,因为至少我不必担心与骗子竞争。
你是如何找到自己的工厂的?
如果你是一个创业公司,而你能给工厂带来的唯一价值就是金钱,那么你基本上是毫无价值的。创业公司通常没有钱,即使有钱,那也是有限的。所有的工厂都知道这一点。
许多创业公司想要去像富士康这样的地方,但富士康有大量的人力和能力,他们不需要你的帮助。但他们确实需要你的钱,而你并没有那么多钱。如果你试图与那些非常炫酷的工厂合作,你很快就会耗尽资金,无法推出产品。
我寻找那些缺乏某些能力的工厂,这样我就能为他们带来比金钱更多的价值。当我带着我的产品进入时,我帮助培训工厂员工生产我的产品。工厂看到了这种培训的价值,而我通过交换的不仅仅是金钱,逐渐建立起了关系。
在线硬件创业公司在进入零售阶段时面临的挑战是什么?
在互联网的世界里,一切似乎都是自动化的,似乎你可以通过技术解决任何问题。但零售业完全依赖于销售员与买家面对面交流,做演示,并亲自前往沃尔玛或塔吉特总部来建立关系并达成交易。这感觉像是一个旧系统,很多人并不期望这样,因为他们正在与 Kickstarter 做生意。
问题在于,人们希望在花几百美元之前亲自看到、触摸并感受一款产品。Best Buy 正成为亚马逊的展示厅,但在店内提供产品确实非常有价值。可能还有一些颠覆的空间(也许你可以说服可信的评论员试用你的硬件并向他人描述它),但归根结底,零售存在对有效销售硬件是必要的。
在线销售的利润空间要大得多,因此从一开始就在线开展业务的公司往往定价过低。然后,当他们进入零售市场时,就无法生存下去。
硬件创业者问你的一些最常见问题是什么?
团队通常问的问题通常围绕他们团队组成的弱点。一些团队有超级优秀的电子工程师,但他们没有机械工程背景。这些团队有一堆“机械”问题。还有一些团队没有电子工程师,那么他们的大问题是如何在没有人能设计电子产品的情况下创建一个硬件初创公司。
硬件初创公司通常比较技术化,因此他们在市场营销和商业方面通常较弱。有些公司在初期就有商业人员参与,他们能规划一切并制定策略,但很多团队有很棒的技术创意,却没有意识到他们的战略中缺少了至关重要的部分。
在那个时候,我会让他们告诉我他们在做什么,然后我给出反馈。几乎不是团队问的问题,而是他们忘记问的问题,他们最需要帮助的地方。
你认为硬件生态系统的持续支持中,初创公司缺少什么?
制造方式和需要匹配这些更加敏捷、精益的公司之间存在巨大的不匹配,老实说,这些公司经验也较少。但我不认为这是一个无法逾越的鸿沟。
拥有工厂和资源的原始设计制造商(ODM)需要提高他们的服务水*。人们期望 ODM 能够回答很多问题。初创公司和 ODM 之间存在不合理的期望,因为 ODM 根本无法提供关于如何降低产品成本的见解。人们感到不满,因为他们没有看到这种利益冲突。
很多人认为在中国制造产品意味着零部件成本会神奇地便宜。其实他们并不理解。工厂不是设计师;它的工作是确保你的设计能够按规格建造并且可行。如果你指定了一个昂贵的部件,而工厂用一个便宜的版本代替了它,当产品不能如预期那样工作时,谁该为此负责?此外,工厂通过物料清单的百分比利润赚钱。因此,推荐使用更便宜的部件会让工厂承担更大的风险,同时赚得更少。许多人会因工厂未能更积极地降低成本而生气,但如果你仔细想想,你真的必须亲自参与。你需要让工程师和这些工厂人员一起合作,降低成本,因为最终,成本关系到你的底线。那是你的净利润。你不能仅仅去中国,然后期望他们把一切做对。
ODM 可能通过雇佣专门的员工来减少成本,从而解决这个问题,但这样一来,ODM 要么需要向客户收取额外费用以使服务可持续,要么需要一个显著更大的订单量来摊销提供这些服务的额外成本。
行业内的更多互操作性也会是个好事。我与一家初创公司合作,它是 Spark,*,这家公司真正尝试通过开放性让人们使用其硬件*台。我觉得 Spark 缺少的一部分是让 ODM 成为“Spark 认证”的公司,以制造使用 Spark *台的产品。通常,有人希望将一种产品设计成另一种产品,而如何有效地做到这一点的建议五花八门。即使你有了所有必要的信息,对于大多数人来说,这仍然不是一个简化的流程。
当有人被提供了所有设计答案时,仍然需要进行大量解码。即使是更大的公司也对此感到畏惧,因为他们没有能力雇佣能完成这些解码工作的人员。
你目前在硬件行业的重点是什么?
现在,我正在与 Jie Qi 合作开发电路贴纸。我们已经接*开始发货的阶段,我下定决心要确保我能按计划按时交付。我真的希望按时发货,并按我承诺的时间将产品送到客户手中,因为众筹项目中迟交的情况太多了。其实不一定非得那样。你只需要设定好预期,在公布日期之前把所有事情准备好,并且知道库存差不多就绪了。我们有几条正在销售的产品线,其中大约一半已经完成制造,只是在工厂等待发货。有几条新产品线进度滞后,但我们还有时间解决这些问题,直到 5 月。我认为这没有问题,我期待着看到我们的产品线成长、发展,并与更多的人合作。
我目前正在与肖恩·克罗斯合作开发这个 Novena 笔记本项目,去年我们并没有真正计划去做这个项目。我在去年 12 月制作了这个手工原型;它是一个有点粗糙的皮革和纸做的东西。我们用它在 CCC 上做了一个展示,反响非常强烈。那真是太棒了,于是我重新设计了它,使其更加适合生产和采购。到目前为止,众筹活动似乎进展顺利。我觉得它会成功融资,我也很期待 Novena 的生产并推出市场。
你从两次众筹活动中学到了什么?
完成几乎两次众筹活动让我收获了很多洞察。之前我提到过,在线销售的人通常把产品定价过低,导致之后无法进入零售市场。但维持我所说的每个人都应该保持的高价格真的很痛苦。降低价格到一个不可持续的点是非常诱人的。
很多众筹活动未能交付的原因是因为他们定价过低。他们根本无法以设定的价格来生产产品。即使知道这一点,我还是得咬紧牙关定价较高,因为我必须将笔记本定价高于我原本希望的价格。尽管价格较高,如果我们能以我希望筹集的金额关闭众筹活动,我可能刚好不会亏损,但很多人看不到这一点。像 Ubuntu Edge 这样的项目就很典型,它筹集了 1200 万美元,但需要 2500 万美元才能成功。那是因为为了将每台手机的价格定在 700-800 美元之间,他们必须生产 40,000 部手机。所以尽管人们认为 Ubuntu Edge 很酷,而且筹集了大量资金,但它没有达到筹款目标,这是对所有人来说都很悲哀的结局。
我知道我可以将我的笔记本定价低很多,并需要成千上万的人购买才能达到我的目标,或者我可以为几百个完全认同我理念的开源爱好者提供服务。在一天结束时,尤其是在早期阶段,你真的需要那些热心的支持者。他们会是你最好的用户。你需要照顾好他们,提供最好的服务。你可能会收取稍高的费用,但你会为他们打造一款真正优秀的产品,他们会感到满意。对我来说,这比一开始就瞄准天文数字但最终失败要开心得多。
第十二章:尾声
当我开始黑客或制作时,驱动力来自好奇心。我的工作中只有一小部分最终与之相关或有趣,但我会在我的博客上记录我的成功与失败,* bunniestudios.com/*,并且偶尔在 @bunniestudios 上发布一些观察。我很难知道什么会成功,什么会失败;但只要我在学习,这段旅程就是值得的。因此,我会继续在电子前沿上徘徊...
第十三章:索引
A
配件和包装,200–201
适应性,流感,333–335
Akiba,64–65
一体式桌面 Novena,218,242–243
《国家防务授权法案》第 1092 号修正案,149–150
美国与中国制造业的比较,35–36
氨基酸,328–329
各向异性胶带,257–259
抗生素耐药超级细菌,342–343
美国军方的防伪措施,149,154–156
Apple
Apple II,207,326–327,373
富士康,18,20
质量控制,37
精细化成本,202
AppoTech 芯片,293
批准供应商名单(AVL),76
Arduino,213,360
Arduino Uno,104–105,127
制造,44–57
铜片,46–48
蚀刻 PCB,51–53
PCB 图案,应用于铜,49–50
焊接掩膜和丝网印刷,53–54
测试和完成,54–57
手工艺工程,213
Asanović, Krste,310–311
Ashby 图,230
测试程序的审计日志,96
保留正品部件,156
自动化
电子产品组装,29–31
测试程序,96
拉链厂,67–70
AVL(批准供应商名单),76
B
细菌
CRISPRs 在,347–350
代谢途径,325–327
条形码,嵌入芯片中,154
Novena 电池板,223–224
Novena 电池包,243–244
建立滩头阵地,315–317
自行车安全灯,74–75,79–82
材料清单(BOM),74–84
批准供应商名单,76
自行车安全灯,74–75,79–82
变更,规划,82–84
扩展部件编号,78–79
外形因素,77–78
引用,107–108
公差、组成和电压规格,76–77
生物学与生物信息学,277–278
将 H1N1 与计算机病毒进行比较,327–335
适应性流感,333–335
DNA 和 RNA 作为比特,328–330
攻击猪流感, 331–332
一线希望, 335
独特的访问端口, 330–331
基因组修补, 346–354
CRISPR 在细菌中的应用, 347–350
基因驱动, 352–354
人类工程学, 351–352
如何切割基因, 350–351
个性化基因组学, 344–346
逆向工程超级病毒, 335–344
抗生素抗药性, 342–344
O104:H4 DNA 序列, 336–338
生物学逆向工程工具, 338–340
UNIX Shell 脚本, 340–342
BLASTX 反编译器, 339–340
蓝图 访谈, 372–382
BOM. 参见 物料清单,USB 芯片焊接到 PCB, 61
启动操作系统, 321
自举, 197, 203
启动结构逆向工程, 311–315
底线和 DFM, 88–91
初学者的跳线板, 241–242
构建技术而不使用它, 23–24
商业模式, 363
C
电容器, 12, 76–77
外壳结构
Chumby, 26–28
Novena, 233–236
现金流, Chumby, 193
手机
黑客技术, 306–324
附加调试器, 317–320
建立滩头阵地, 315–317
启动操作系统, 321
构建新工具链, 321–323
结果, 323–324
逆向工程启动结构, 311–315
系统架构, 306–311
屏幕更换, 120–121
$12 手机, 126–140
工程师权益, 135–140
从公开到开源, 134–135
硬件, 128–131
CFT (Cyber Fast Track)计划, 289
变更, 规划和应对, 82–84
检查图表, 268
Chibitronics, 251–274
背景, 251–259
检查图表, 268
春节, 对供应链的影响, 272–273
简单请求的复杂性, 267–268
交付, 264–266
开发新工艺, 259
组件放置不当, 268–269
临时更改, 271–272
过程能力测试, 261–264
运输, 273–274
单点故障的消除, 271
贴纸图案的模板, 271–272
测试程序, 92–94
翻译问题, 270–271
参观工厂, 260–261
中国。另见 工厂;中国深圳
春节, 对供应链的影响, 272–273
中文翻译问题, 270–271
技术增长, 364–366
中国软件开发者网络 (CSDN) 面试, 357–372
关于硬件黑客, 367–372
关于开源硬件和创客运动, 358–367
芯片封装技术 (CoB), 29
芯片
与 PCB 的粘接, 61
假冒, 143–148。另见 美国军用硬件,假冒芯片
去帽, 282–283
手工放置在 PCB 上, 59–61
SEG 电子市场, 11–14
用于 USB 存储棒, 57–59
芯片射手, 30
Chipworks, 246
色键技术, 303–304
Chumby, 1–2, 181
装配自动化, 29–31
外壳生产, 26–28
现金流, 193
chumby classic, 183–184
chumby One
开发, 184–189
修整和完成, 101–104
连接器放置, 25–26
合同, 193–205
假冒 microSD 卡
真实性, 159–160
电子卡 ID 数据, 158–159
法医调查, 160–162
数据收集, 162–165
总结发现, 166–168
可见差异, 157–158
工厂测试, 41
工厂参观, 16–17
黑客友好的*台, 182–184
注塑成型, 31–34
与 Phil Torrone 的访谈, 189–205
从中学到的经验教训, 374–375
利润率, 192–193
商家买家, 192
麦克风工厂安装, 20–23
主板, 188–189
NeTV。另见 NeTV 质量控制, 36–39
远程测试, 39–40
逆向物流和退货, 193
测试点, 187–188
电路贴纸, 251–274。另见 Chibitronics 背景, 251–259
检查图表, 268
春节, 对供应链的影响, 272–273
简单请求中的复杂问题, 267–268
交付, 264–266
开发新工艺,259
组件错误放置,268–269
最后时刻的更改,271–272
过程能力测试,261–264
发货,273–274
消除单点故障,271
模板,271–272
翻译问题,270–271
参观工厂,260–261
Circuit Sticker Sketchbook,256–257,267–268
贝壳测试,54
克隆,116
CoB (芯片封装技术),29
Coders’ Rights Project,137
销售成本 (COGS),90–92
颜色,通过与操作员的沟通,96
社区强制执行的知识产权规则,124–125
社区对 Novena 的支持,247–249
公司结构,202–203
组成,BOM,76–77
计算机病毒,比较 H1N1 病毒,327–335
适应性,333–335
抗体,335
DNA 和 RNA 作为比特,328–330
黑客攻击 H1N1
病毒,331–332
生物体中的独特访问端口,330–331
配置保险丝,281
合同谈判,193–205
用于 PCB 的铜片,46–50
复制,116
版权,137,138,175–177
外观瑕疵,87–88
销售成本 (COGS),90–92
假冒商品。参见 假货快递,112
覆盖层,260–261
对工匠的需求,26–28
CRISPR/Cas 系统,347–352
Cross, Sean “xobs”,134–135,215–216,289–290。另见 Novena;SD 卡,黑客众筹,197–198,265,266,382
Crowd Supply,250,264,265
CrypTech,248–249
定制电池组问题,243–244
Cyber Fast Track (CFT) 计划,289
D
数据显示通道 (DDC),304
Debian,246
调试器,连接,317–320
去封装 IC,282–283
反编译器,339–340
专用硬件实时钟 (RTC) 模块,238–239
对质量的承诺,20–23
有缺陷单元,支付, 3
电路贴纸的交付, 264–266
设计文件,分享, 363
面向制造设计(DFM), 84–100. 参见 测试程序
底线, 88–91
概述, 85–86
测试与验证, 97–100
公差, 86–88
设计过程, 105–106
设计词汇, 101
桌面 Novena, 218, 242–243
DFM. 参见 面向制造设计 数字千年版权法(DMCA), 137
直接重复序列, 348
直接面向消费者(DTC)个人基因组学, 344–345
基于突变的疾病预测, 345
分销渠道, 196
DIY 扬声器, 237–238
DMCA(数字千年版权法), 137
DNA, 328–330. 参见 基因组双模铸模, 103–104
DRAM 芯片, 12–13
钻孔工艺,PCB 板, 46–48
药物抗性, 338–341
DTC(直接面向消费者)个人基因组学, 344–345
E
ECO(工程变更订单), 82–84
大肠杆菌,342
EDID(扩展显示识别数据), 304
EDK(嵌入式开发工具包), 135
EDM(电火花加工机), 33
EFF(电子前沿基金会), 137
效果贴纸, 263
EHEC O104:H4, 335–344
使用 UNIX Shell 脚本回答问题, 340–342
抗生素抗性, 342–344
DNA 序列, 336–338
生物学反向工具, 338–340
电火花加工机(EDM), 33
电子卡 ID 数据, 158–159
电子前沿基金会(EFF), 137
电子公差, 86–87
嵌入式开发工具包(EDK), 135
外壳,Novena, 224–227
生命周期结束(EOL), 82
工程变更订单(ECO), 82–84
工程化人类, 351–352
工程样品, 170–172
工程师权益, 135–140
版权, 138
专利及其他法律, 136–137
编程语言, 138–140
EOL(生命周期结束), 82
擦除
闪存, 284–285
存储卡, 298
安全位, 285–287
蚀刻 PCB,51–53
电子废弃物,处理,155–156
扩展显示识别数据(EDID),304
扩展部件编号,78–79
外部模仿,150–151
F
工厂,2–3,43–44。另见 质量;按名称列出的特定工厂
自动化,29–31
在没有使用它的情况下构建技术,23–24
对质量的专注,20–23
有缺陷的单元,支付费用,3
喂养工人,18–20
注塑,31–34
制造中的错误,34,41–42
对工艺人员的需求,26–28
合作伙伴关系,107–113
进口关税,113
订购超过已验证需求的单元,112
报价,108–111
废料和产量,111–112
运输成本,112
成形技巧,107–108
深圳的规模,17–18
废料,152
搜索,378
熟练工人,24–26
测试,41
故障分析服务,281
从失败中学习,368–369
Fairchild 74LCX244,146–147
假货,143–174
芯片,执行良好,143–148
美国军用硬件中的芯片,149–156
反假冒措施,154–156
假冒部件的类型,150–153
美国军用设计,153–154
FPGAs,168–174
错误的 ID 代码,170–172
解决方案,172–174
白屏问题,168–170
microSD 卡,156–168
真实性,159–160
电子卡 ID 数据,158–159
法医调查,160–162
数据收集,162–165
总结发现,166–168
可见差异,157–158
喂养工厂工人,18–20
Feist Publications, Inc. v. Rural Telephone Service Co., Inc.,138
Fernly shell, 315–316, 317–319
Fernvale,306
附加调试器,317–320
滩头阵地,建设,315–317
启动操作系统,321
Frond,307–308
法律任务,134–136
外围连接器,308–309
结果,323–324
逆向工程启动结构,311–315
系统架构,306–311
系统图,309
工具链,构建新工具链,321–323
场可编程门阵列。参见 FPGAs 影片成像,49–50
固件
内存卡,292
Novena,246–247
五位数万用表,98
闪存芯片,用于 USB 闪存盘,57–59
闪存擦除,284–285
*面图案,26–28
柔性电路,252–253
柔性 PCB 工厂,260–261
流痕,236
飞行头测试,54
外形因素,77–78
正向偏置电压,88,89
创始人建议,199
富士康,18,20
FPC(内部柔性印刷电路)插头,238–239
FPGAs(场可编程门阵列)
伪造,168–174
错误的 ID 代码,170–172
解决方案,172–174
白屏问题,168–170
未来趋势,212–213
Novena,239
Freescale/NXP iMX6
CPU,220
前面板,Novena,237–238
完全去壳芯片,282
功能性去壳芯片,282–283
模糊测试,293
G
基因驱动,352–354
通用突破板(GPBB),241–242
基因组
基于突变的疾病预测,345
基因分型,344–345
补丁,346–354
细菌中的 CRISPRs,347–350
工程人类,351–352
基因驱动,352–354
基因切割位置,350–351
参考,345–346
基因分型,344–345
鬼班,115,152
金样品,36,82
gongkai(公开),117–118,119–120。参见 shanzhai
手机屏幕更换,120–121
定义,131–134
与 kai fang yuan dai ma(开放源代码)相比,372
$12 手机,126–140
工程师权利,135–140
从 gongkai 到开源,134–135
硬件,128–131
GPBB(通用突破板),241–242
灰色市场,154
H
H1N1 病毒,与计算机病毒的比较,327–335
适应性,333–335
抗体,335
DNA 和 RNA 作为比特,328–330
黑客 H1N1 病毒 331–332
有机体中的独特接入端口,330–331
H5 端口,330
黑客友好*台,182–184
黑客精神,371
黑客硬件。参见 硬件黑客手工将芯片放置在 PCB 上,59–61
硬盘,选择,244–246
硬件黑客,279–281
CSDN 采访,367–372
一般讨论,275–278
HDCP 保护链接允许自定义覆盖层,298–306
PI C18F1320,281–289
进一步了解,283–284
去壳 IC,282–283
擦除闪存,284–285
擦除安全位,285–287
保护其他数据,287–289
SD 卡,289–298
潜在的安全问题,298
爱好者资源,298
反向工程微控制器,293–297
山寨手机,306–324
附加调试器,317–320
海滩头,构建,315–317
启动操作系统,321
构建新的工具链,321–323
Fernvale 结果,323–324
反向工程启动结构,311–315
系统架构,306–311
卡片结构,290–293
硬件创业公司,378–380
哈希函数,315
HDCP 保护链接,黑客攻击,298–306
健康,照顾健康,205
传家宝笔记本,210–211
传家宝 Novena,218,227–232
硬盘,245–246
机械工程细节,229–232
外壳用木材,228–229
诚实的表面处理,101
水*基因转移,343
人因工程,351–352
我
ID 代码,FPGA,170–172
进口关税和许可证,113
i.MX233,184
进料质量控制(IQC)指南,160
元件在电路贴纸上的错误放置,268–269
工业设计,100–106
Arduino Uno 丝网印刷图案,104–105
chumby One 修整与完成,101–104
个人设计过程,105–106
注射成型
一般讨论,31–34
Novena 制造, 233–236
创新, 359
输入网络, 87
知识产权(IP)。参见 gongkai; shanzhai
一般讨论, 115–118
西方与中国模式, 131–132
内部柔性印刷电路(FPC)连接器, 238–239
互操作性, 380
访谈, 357–382
蓝图, 372–382
中国软件开发者网络(CSDN), 357–372
关于硬件黑客, 367–372
关于开放硬件和创客运动, 358–367
Make:, 189–205
库存周转, 196–197
调查假冒 microSD 卡, 158–159, 160–162
参与制造过程, 36–39
IP。参见 知识产权
IQC(来料质量控制)指南, 160
伊藤, Joi, 264
J
日本,经济发展, 365
JTAG, 170
K
kai fang yuan dai ma(开放源代码), 372
密钥流, 304–306
Kare, Susan, 39
Kickstarter, 197–198, 377
金士顿 microSD 卡, 156–168
真实性, 159–160
电子卡 ID 数据, 158–159
法医调查, 160–162
收集数据, 162–165
总结发现, 166–168
可见差异, 157–158
编织线, 235
Kovan, 169
L
劳动力成本, 110
笔记本 Novena, 218
激光成像, 49
临时修改, 271–272
LCA(澳大利亚 Linux 会议), 57
LCD 边框, Novena, 226
LED, 在自行车安全灯中, 74–75, 79–82
李晓, 23–24
LinkIT ONE, 联发科技, 323–324
Linux 会议澳大利亚(LCA), 57
测试程序日志, 96
M
Make: 访谈, 189–205
MakerBot, 203
创客运动, 358–367
管理 NAND 系统, 186–187
中间人攻击(MITM),290, 298, 301
制造商 ID, 158–159
制造。参见 工厂
边距
chumby, 192–193
工厂, 110–111
Master Chao, 26–28
MCM(多芯片模块), 310
机械工程,Novena,229–232
机械公差,87–88
联发科技 LinkIT ONE,323–324
联发科技 MT6250DA,130–131
联发科技 MT6260,140,310–311
商家买家,192
金属螺旋装订,电路贴纸素描本,267–268
微控制器
存储卡中的假冒,292
逆向工程,293–297
测试程序,92–94
麦克风,chumby,20–23
microSD 卡
chumby One,186
假冒,156–168
真伪认证,159–160
电子卡 ID 数据,158–159
法医调查,160–162
数据收集,162–165
总结发现,166–168
可见差异,157–158
军事硬件中的假冒芯片,149–156
防伪措施,154–156
假冒部件的种类,150–153
美国军事设计,153–154
最小订单量(MOQ),81
最小-最大偏差,86–87
镜面塑料,70–71
制造中的错误,34,41–42
MITM(中间人攻击),290,298,301
MIT 媒体实验室,264
修道院设计,100
穆尔定律,206–212,359
最小订单量(MOQ),81
主板
chumby One,188–189
Novena,221–222,238–239
Mottweiler, Kurt,228,238
多芯片模块(MCM),310
基于突变的疾病预测,345
肺炎支原体,325–327
MyriadRF,248
N
NAND 闪存芯片,13
《国防授权法案》:149–150
NeTV,280
HDCP 背景,300–301
概念图,303
开发,299–300
FPGA 图表,305
目标,301
它的工作原理,302–303
创建密钥流,304–305
创建用户覆盖内容,303–304
新百伦工厂,17–18
Ng, P.C., 344–345
非重复工程(NRE)成本,111
Novena,133,215–250
一体机台式电脑, 218, 242–243
初学者的分离板, 241–242
外壳结构, 233–236
社区支持, 247–249
定制电池包, 243–244
设计, 219–227
电池板, 223–224
外壳, 224–227
主板, 221–222
尺寸, 219
DIY 音响, 237–238
固件, 246–247
前面板变化, 237–238
硬盘,选择, 244–246
Heirloom, 218, 227–232
硬盘, 245–246
机械工程细节, 229–232
外壳木材, 228–229
注塑成型, 233–236
笔记本电脑, 218
主板, 238–239
电力通过板, 242–243
定价, 218
PVT2 主板, 238–240
用户, 217–218
NRE(非重复工程)费用, 111
NuttX, 141
O
O104:H4 DNA 序列, 336–338
海运, 273–274
ODM(原始设计制造商), 379–380
在线硬件初创公司, 378–380
按时交付, 266
开放 BOM, 124–125
开源, 117, 134–135
硬件, 176–178, 205–214。参见 Chibitronics; Chumby; Fernvale; Kovan; NeTV; Novena
CSDN 采访关于, 358–367
Heirloom 笔记本, 210–211
盈利化, 195–196
机会, 211–214
趋势, 206–209
软件, 362
订购超过已验证需求的单位, 112
原始设计制造商(ODMs), 379–380
覆盖层,创建, 303–304
表面包覆, 34
P
包装类型, 77–78
塑印, 102
回文序列, 348
PAM(临*空间样式),350–351
Particle 的 Spark Core, 306–307
与工厂的合作伙伴关系, 107–113
进口税, 113
订购超过已验证需求的单位, 112
报价, 108–111
废料与良率, 111–112
运费, 112
成型技巧, 107–108
部件编号, 78–79
修补基因组, 346–354
细菌中的 CRISPRs, 347–350
工程化人类, 351–352
基因驱动, 352–354
基因切割位置, 350–351
专利, 136–137, 194–195
图案化, 46
模型制造商, 26–28
PB2 流感基因, 331–332
PCB, 44–57
将图案应用于铜板, 49–50
芯片粘合, 61
电路贴纸, 260–261
铜片, 46–48
蚀刻, 51–53
Fernvale Frond, 307–308
手动放置芯片, 59–61
焊接掩膜和丝网印刷, 53–54
测试与成型, 54–57
PCH 中国解决方案, 17, 37
Peek, Nadya, 226
Peek 阵列, 226
青霉素抗性, 338–339
Perrott, Joe, 27
个人设计过程, 105–106
个性化基因组学, 344–346
锁相环(PLL), 140
光刻胶, 49–50
嵌入物理标识符, 154–155
物理编程, 263
PIC18F1320,黑客攻击, 281–289
进一步观察, 283–284
去封装集成电路, 282–283
擦除闪存, 284–285
擦除安全位, 285–287
保护其他数据, 287–289
塑料表面处理, 70–71
PLL(锁相环), 140
毒丸, 136–137
聚酰亚胺, 260–261
电源透传板, 242–243
实用设计, 100
精度, 31–34
定价
目标高远, 199–200
Novena, 218
质量控制, 34–35
探针卡, 58
过程能力测试, 261–264
过程几何, 144–145
生产候选贴纸, 263
编程语言, 138–140
黑客攻击时保护数据, 287–289
蛋白质数据库, 338–339
蛋白质, 329, 337
原型空间相邻基序(PAM), 350–351
Q
QC(质量控制)室, 36–39
QEMU, 317–318
Qi, Jie, 253–256, 263–264, 270–271. 另见 Chibitronics
质量, 34–35
美国与中国制造, 35–36
致力于, 20–23
工厂测试, 41
参与制造过程, 36–39
错误, 41–42
远程测试, 39–40
质量控制 (QC) 室, 36–39
四级结构, 350
引用, 评估, 108–111
R
无线电电子学 (无线电), 369
树莓派, 360
读取-评估-打印循环 (REPL) shell, 293–297
实时时钟 (RTC) 模块, 238–239
返球, 155
重新分配零件, 151–152
回收, 154–155
死亡红圈, 42
参考基因组, 345–346
翻新零件, 150–151, 154
远程测试, 39–40
修复文化, 213
REPL (读取-评估-打印循环) shell, 293–297
电流限制电阻, 88
电阻, 76
有害物质限制 (RoHS) 测试, 41
零售商, 参与, 200, 378
零售中的退货, 193
逆向工程, 137
启动结构, 311–315
一般讨论, 275–278
微控制器, 293–297
超级细菌, 335–344
抗生素抗性, 342–344
O104:H4 DNA 序列, 336–338
逆向工具, 338–340
UNIX shell 脚本, 340–342
逆向物流, 193
RNA, 328–330
RNA 依赖的 RNA 聚合酶, 333
机器人控制器, 78
RoHS (有害物质限制) 测试, 41
ROM, 转储, 312–316
根目录, 用户, 370
路由 PCB, 55
实时时钟 (RTC) 模块, 238–239
橡胶化标签, 25
S
Samsung microSD 卡, 163–168
SanDisk microSD 卡, 163–168
缎面塑料, 70–71
工厂规模, 17–18
稀缺与需求, 70–71
意大利 Scarmagno, 44–45
废料, 处理, 111–112
脚本语言, 139–140
SD 卡, 黑客攻击, 289–298
潜在安全问题,298
供爱好者使用的资源,298
逆向工程微控制器,293–297
卡片结构,290–293
漏洞,290
二级结构,349–350
第二采购,153
擦除安全位,285–287
安全问题,SD 卡,298
拉链工厂的半自动化过程,68–70
传感器和微控制器贴纸,263
山寨(shanzhai),116–117,121–125,177,371–372。参见 公开
手机,2
社区强制执行的知识产权规则,124–125
破解手机,306–324
附加调试器,317–320
滩头阵地,建筑,315–317
启动操作系统,321
构建新工具链,321–323
Fernvale 结果,323–324
逆向工程启动结构,311–315
系统架构,306–311
不仅仅是模仿者,123–124
共享设计文件,363
深圳,中国,1–4。参见 工厂
屏幕更换,120–121
SEG 电子市场,8–14
山寨组织,123
深圳书城,14–15
“发货或死”口号,198–199
运输产品,112,273–274
并排粘合,166
存储中的签名,319–320
丝印,53–54,57
单核苷酸多态性(SNPs),345–346
消除单点故障,271
塑料沉降痕,235
技术工人,24–26
智能卡,144–145
智能手表,124
SMT(表面贴装技术),55,77–78
SNPs(单核苷酸多态性),345–346
焊膏,53–54,57
宋江,122
智能手机。参见 手机间隔器,348
扬声器,Novena,237–238
SPI ROMulator FPGA,313
ST19CF68
芯片,144–148
堆叠式 CSP,166
*台标准化,212
电路贴纸图案的模板,271–272
超级细菌,逆向工程,335–344
抗生素耐药性, 342–344
O104:H4 DNA 序列, 336–338
反向工具, 338–340
UNIX Shell 脚本, 340–342
供应链, 中国春节对其的影响, 272–273
表面贴装技术(SMT), 55, 77–78
猪流感. 参见 H1N1 病毒,与计算机病毒的比较
开关
Novena, 237
验证, 98–99
系统架构, 306–311
系统电子, 44–57
将 PCB 图案应用到铜片, 49–50
涂覆焊接掩膜和丝网印刷, 53–54
铜片, 46–48
刻蚀 PCB, 51–53
测试和完成, 54–57
系统级芯片设备, 310–311
T
Tampo 印刷, 102
技术水*, 在中国, 364–366
Tek MDO4104B-6 示波器, 313
三级结构, 350
测试
闪存芯片, 58–59
PCB, 54–57
与验证的对比, 97–100
测试夹具, 99–100, 271
测试点, chumby One, 187–188
测试程序, 91–95
指南, 94–97
图标,通过与操作员的通信, 96
现实世界, 92–94
设置, 95–96
更新机制, 97
3D 晶体管, 245
通孔封装, 77–78
公差, 76–77, 86–88
Tomlin, Steve, 39, 299
工具链, 构建新工具链, 321–323
工具, 233–234
Torrone, Phil, 189–205
玩具工厂, 29–30
晶体管缩放, 210–211
翻译问题, 270–271
工厂关系中的透明度, 107–108
修整和完成, chumby, 101–104
三重重组病毒, 334–335
$12 手机, 126–140
工程师权益, 135–140
从“公开”到开源, 134–135
硬件, 128–131
U
U-Boot(通用引导加载程序), 246
Ubuntu Edge, 382
机体中的独特接入端口, 330–331
通用蛋白质资源(UniProt), 338–339, 341
UNIX Shell 脚本, 用于回答生物学问题, 340–342
上游, 246
USB 刷写工具,开源版本,320–322
USB 存储棒工厂,57–64
USB 存储棒的起源,57–59
将芯片粘接到 PCB 上,61
仔细查看 USB 存储棒电路板,61–64
手工将芯片放置在 PCB 上,59–61
USB 端口,Novena,237
美国军方硬件中的假冒芯片,149–156
防伪措施,154–156
假冒部件的种类,150–153
美国军方设计,153–154
芯片中的紫外线染料,154–155
紫外线可擦除可编程只读存储器(UV-EPROM),284–285,286
V
真空管收音机原理图,207
验证与测试,97–100
Vanchip VC5276,130
Vasut, Marek,246,248
风险投资资金,195–196,197–199
振动电位器,67–68
病毒。另见 H1N1
病毒,与计算机病毒 V-NAND 进行比较,245,246
电压规范,物料清单,76–77
W
Wang, Chris “Akiba”,64–65
废料处理,155–156
白屏问题,168–170
焊线,29–30,61
Novena 的木质外壳,228–229
X
Xbox 360,42
Xbox One,369
Xilinx,170–174
xobs,134–135,215–216,289–290。另见 Novena;SD 卡,黑客攻击
Y
成品率,84–85,90,111–112
杨氏模量,229–230
Z
拉链工厂,64–71
全自动化流程,67–68
稀缺性与需求的讽刺,70–71
半自动化流程,68–70
Z 胶带,257–259
关于作者
Andrew “bunnie” Huang 一直有个问题,就是中午之前难以起床。加上他总喜欢质疑权威,这意味着他永远无法在财富 500 强公司找到工作。因此,他非常感激从众筹中获得的所有啤酒,因为这意味着他可以通过补充水分来摄取一些卡路里。


第十四章:脚注
第一章:制造中国
- 口语中对元的称呼,是人民币(renminbi (RMB))的基本计数单位。† 这家书店自我描述的这次访问后已经关闭。* 由于自那次访问以来工资通货膨胀严重,可能现在已经不再如此。
第二章:三家截然不同的工厂
- 老实说,我不知道它们叫什么,所以是的,我将继续这么称呼它们。
第二部分:不同思维方式:知识产权在中国
- 白酒是一种强烈的中国烈酒。
第四章:公开创新
- 不,我不会为你做代理这些芯片的业务。* 我常常想为什么需要加上“我不是律师”这样的免责声明。有人向我解释说,即使没有该免责声明,单纯表现出提供法律建议的样子,也可能让我因未持有合法执照而被指控非法从事法律工作。如果别人误解我的意见为法律建议,并因此做出错误决定,我也可能因此承担责任。* 具体来说,Apache 2.0 协议第 3 条规定,“专利许可的授予……如果您对任何实体提起专利诉讼(包括在诉讼中提起的交叉诉讼或反诉),指控该工作或其中的贡献构成直接或间接专利侵权,那么在该诉讼提交之日起,您根据本许可协议获得的该工作的专利许可将终止。”†
www.eff.org/issues/coders/reverse-engineering-faq/* 另见 Sony Computer Entertainment, Inc.诉 Connectix Corp.案,203 F. 3d 596,606(第 9 巡回法院,2000 年)和 Sega Enterprises Ltd.诉 Accolade, Inc.案,977 F.2d 1510,1522-23(第 9 巡回法院,1992 年)。
第五章:假货
- 请参见第 2320 条(b),见于
www.govtrack.us/congress/bills/112/hr1540/text。* 还记得那个吗?NeXTcube 是由史蒂夫·乔布斯的公司 NeXT 在 1990 年发布的计算机。* 这是 2000 年代中期的薪资水*;由于自那时以来的工资通货膨胀,现在的薪资已上涨至每月约 1,000 美元,但翻新芯片仍然更具盈利性。* Kovan 是开放硬件;你可以在 Kosagi 的维基页面上阅读更多信息并下载源代码,地址是www.kosagi.com/w/index.php?title=Kovan_Main_Page。* JEDEC 出版物 N. 106AA 列出了所有 SD 卡制造商的 ID 代码,而 0x41 并未在其中列出。* 关系是深深根植于中国文化中的传统社交网络*台。像现代社交网络一样,它也有关注者、喜欢/不喜欢、因果报应和管理员等概念。关系比现代法律系统早,它在解决或避免各种争议方面有时比民法更有效。关系在促成新交易和人际关系中也至关重要。
第六章。Chumby 的故事
- 当然,我要澄清一下,我不是唯一一个参与 chumby 项目的人;我和一整个有趣且有才华的团队一起合作。如我在第一章中提到的,我只是主硬件设计师,虽然我也做了 Linux 内核的部分工作。(那对我来说是新的挑战,但从启动到关闭学习 Linux 的内部工作非常有趣!)* 查看*
makezine.com/2012/04/30/makes-exclusive-interview-with-andrew-bunnie-huang-the-end-of-chumby-new-adventures/* 以了解完整的采访。*bunniestudios.com/bunnie/phdthesis.pdf* 数据主要来自en.wikipedia.org/wiki/List_of_Intel_microprocessors和en.wikipedia.org/wiki/List_of_Intel_Core_i7_microprocessors。我追踪 Intel CPU,因为从历史上看,它们一直主导着 MHz 曲线,因此能够提供最严谨的摩尔定律解读。† H. Iwai, “22nm 和 Veyond 的路线图,”Microelectronic Engineering 86, no. 7–9 (2009), doi: 10.1016/j.mee.2009.03.129。* 你可以通过 Kosagi Wiki 在线查找相关文档,网址是www.kosagi.com/。*boingboing.net/2014/01/17/building-a-fully-open-transpa.html* 一个兆帕是每*方毫米 1 牛顿(力的单位);一个千兆帕是每*方毫米 1 千牛顿。
第七章 Novena:构建我自己的笔记本电脑
- 如果你感兴趣,你可以在
www.chipworks.com/about-chipworks/overview/blog/second-shoe-drops-%E2%80%93-samsung-v-nand-flash/上找到相关分析。
第九章 硬件黑客
- 你可以在
github.com/xobs/ax211-code/上找到代码的副本。* 你可以在 Sutajio Ko-Usagi wiki 上阅读文档,尽管在出版时,Adafruit 上销售的原始 NeTV 产品可能已经被更先进、更好的实现所取代。* 顺便说一下,我们使用了我在第八章中提到的相同的柔性适配器,这在某种程度上促成了 Chibitronics 的开发。
第十章 生物学与生物信息学
- Eva Yus 等人,“基因组缩减对细菌代谢及其调控的影响,”Science 326 卷,第 5957 期(2009):1263–1268,
science.sciencemag.org/content/326/5957/1263/。* Gabriele Neumann, Takeshi Noda 和 Yoshihiro Kawaoka,“猪源 H1N1 流感病毒的出现及其大流行潜力,”Nature 459 卷,第 7249 期(2009):931–939,www.nature.com/nature/journal/v459/n7249/full/nature08157.html。* 如果你不熟悉这个说法,见en.wikipedia.org/wiki/All_your_base_are_belong_to_us。* 顺便说一句,我觉得 PBP2 的序列比我的 PGP 公钥块还要短,这让我感到有趣。* P.C. Ng 等人,“个性化医学的议程,”Nature 461 卷,第 7265 期(2009):724–726,www.nature.com/nature/journal/v461/n7265/full/461724a.html。* Addgene 有一篇很好的白皮书,详细描述了该系统。如果我这里的简要介绍激发了你的兴趣,推荐你去看看:www.addgene.org/CRISPR/guide/。
第十一章:精选访谈
- 这篇访谈摘录自第六章。* 最终,Spark 将其名称更改为Particle。


浙公网安备 33010602011771号