第一章 项目启动:一份被退回的BOM引发的复盘 / Chapter 1 Project Kickoff: The Rejected BOM That Sparked a Full Review
2023年10月9日,上海虹桥工业区某工业物联网公司的入职第一天,HR领我到工位时桌上已经堆了三样东西:两台拆了外壳的工业网关样机,其中一台的电源区域还留着烧焦的电容残骸;一叠打印得皱皱巴巴的BOM(Bill of Materials,物料清单),右上角用红笔圈着两个大字“拒收”;还有一个32G的U盘,插在工位电脑上,文件夹名是“工业网关项目复盘_20231008”。 On October 9, 2023, my first day at an industrial IoT company in Hongqiao Industrial Zone, Shanghai, HR led me to my workstation where three items were already waiting: two industrial gateway prototypes with their casings removed, one of which still had charred capacitor debris in the power section; a crumpled stack of BOM (Bill of Materials) with two large red characters “Rejected” circled in the upper right corner; and a 32GB USB drive plugged into my workstation, with a folder named “Industrial Gateway Project Review_20231008”.
刚坐下,技术主管李哥就端了杯冰美式走过来,把一叠打印邮件拍在桌上:“欢迎加入,你的第一个任务就是把这个项目捞起来——客户是西北戈壁的光伏电站,我们的网关装上去不到24小时就死机,已经造成近20万的上网电量损失,客户要求全额赔偿,否则终止合作。这个项目要是搞不定,你试用期估计悬。” 我翻了翻邮件,附件里是客户发来的现场故障日志,死机时间集中在凌晨2点到4点,正好是电站用电低谷期,故障代码统一是“硬件看门狗复位”,而我们的样机当时根本没开硬件看门狗。 Just as I sat down, the technical manager, Li, walked over with an iced Americano and slapped a stack of printed emails on the desk. “Welcome to the team. Your first task is to salvage this project—our client is a photovoltaic power station in the Gobi Desert in the northwest. Our gateway died within 24 hours of installation, causing nearly 200,000 RMB in lost grid-connected power generation. They’re demanding full compensation or they’ll terminate the contract. If you can’t turn this around, your probation period is probably going to be cut short.” I flipped through the emails and found the client’s on-site failure log attached: all crashes occurred between 2 a.m. and 4 a.m., the power station’s off-peak hours, with a uniform error code of “hardware watchdog reset”. The catch? Our prototype didn’t even have the hardware watchdog enabled.
这个项目是公司2022年Q4启动的首款工业级网关产品,定位是给光伏、风电等新能源场景做边缘数据采集,核心需求是兼容Modbus RTU/TCP、OPC UA协议,支持边缘数据过滤与预处理,工作温宽-40℃~85℃,IP65防护等级,MTBF(Mean Time Between Failures,平均无故障时间)≥10万小时,原计划2023年Q3量产供货。结果8月底小批量试产1000片,ICT(In-Circuit Test,在线测试)良率只有27%,客户审核BOM后直接打回,现场故障率超过60%,整个项目已经烧了200多万研发费用,差点成了公司成立以来第一个烂尾项目。 This project was the company’s first industrial-grade gateway, launched in Q4 2022, designed for edge data collection in new energy scenarios like photovoltaics and wind power. Core requirements included compatibility with Modbus RTU/TCP and OPC UA protocols, edge data filtering and preprocessing, an operating temperature range of -40℃ to 85℃, IP65 protection rating, and an MTBF (Mean Time Between Failures) of at least 100,000 hours, with mass production scheduled for Q3 2023. By the end of August, the first small-batch trial production of 1,000 units had an ICT (In-Circuit Test) yield of only 27%. After reviewing the BOM, the client rejected it outright, with an on-site failure rate exceeding 60%. The project had already burned through over 2 million RMB in R&D costs and was on the verge of becoming the company’s first failed project.
我翻完U盘里的复盘文档才发现,这个项目的问题根本不是“代码写错了”这么简单,是从需求定义、硬件选型、软件开发到量产验证的全链路失守,每一个环节的微小漏洞,最终都被放大成了致命的故障。而这份被退回的BOM,就是全链路问题的集中爆发点。 After going through the review documents on the USB drive, I realized the project’s problems were far more complex than “bad code”. It was a systemic failure across the entire chain: from requirement definition and hardware selection to software development and mass production validation. Every small loophole in each stage was amplified into a fatal fault. And this rejected BOM was the concentrated outbreak of all these issues.
一、被退回的BOM:需求失守的第一张多米诺骨牌
1. The Rejected BOM: The First Domino of Requirement Failure
我们当时的需求文档(PRD)里对通信协议的描述只有一句话:“支持Modbus工业协议”,产品经理是刚毕业的大学生,没跟客户澄清具体支持的协议类型、最大从站数量、数据采集频率,就直接把客户的原话写进了PRD。结果硬件选型的时候,主控选了一款只有2路UART的国产RISC-V MCU,后来软件团队要做Modbus TCP支持的时候,才发现MCU没有内置MAC控制器,只能外挂LAN8720以太网PHY,直接导致BOM成本超支18%,layout复杂度提升40%。 Our product requirement document (PRD) at the time had only one sentence describing communication protocols: “Supports Modbus industrial protocol”. The product manager, a fresh graduate, didn’t clarify with the client the specific protocol types, maximum number of slave stations, or data collection frequency, and simply copied the client’s original words into the PRD. When it came to hardware selection, the main control unit (MCU) chosen was a domestic RISC-V MCU with only 2 UART interfaces. Later, when the software team needed to add Modbus TCP support, they discovered the MCU had no built-in MAC controller, so they had to add an external LAN8720 Ethernet PHY. This directly led to an 18% overspend on BOM costs and a 40% increase in layout complexity.
更离谱的是,需求文档里根本没提EMC(电磁兼容)要求,layout团队按照消费级网关的标准做设计,结果第一次做辐射发射测试的时候,在80MHz~1GHz频段超标6dB,远高于IEC 61000-4-3标准的10V/m限值,只能第一次改板。改板的时候才加了磁珠和滤波电容,结果又忘了调整电源层的铺铜,导致电源纹波超过100mV,MCU频繁复位,只能第二次改板。 Even more ridiculous was that the PRD didn’t mention EMC (electromagnetic compatibility) requirements at all. The layout team designed it according to consumer-grade gateway standards, so the first radiation emission test showed a 6dB excess in the 80MHz~1GHz band, far exceeding the 10V/m limit of the IEC 61000-4-3 standard, requiring a first board revision. During the revision, they added magnetic beads and filter capacitors, but forgot to adjust the power layer copper pouring, causing power ripple to exceed 100mV and frequent MCU resets, requiring a second board revision.
客户退回BOM的直接原因有三个,每一个都对应需求定义的漏洞: The client’s direct reasons for rejecting the BOM were three, each corresponding to a loophole in requirement definition: 1. ESD防护等级不足:BOM里的ESD防护器件选了SOD-323封装的ESD二极管,脉冲功率只有2W,而工业场景要求符合IEC 61000-4-5的浪涌测试标准,峰值功率≥10W,完全达不到要求。 Insufficient ESD protection level: The ESD protection device in the BOM used a SOD-323 packaged ESD diode with a pulse power rating of only 2W, while industrial scenarios require compliance with the IEC 61000-4-5 surge test standard with a peak power of ≥10W, which was completely unqualified. 2. 存储芯片电压不兼容:选的SPI Flash标称电压范围是2.7V~3.6V,而主控的GPIO输出电压是3.3V,没有加电平转换电路,上电时直接烧毁Flash,导致设备无法启动。 Incompatible storage chip voltage: The selected SPI Flash had a nominal voltage range of 2.7V~3.6V, while the MCU’s GPIO output voltage was 3.3V. Without a level conversion circuit, the Flash would burn out on power-on, causing the device to fail to start. 3. 可靠性指标不达标:看门狗芯片选了消费级产品,MTBF只有5000小时,而客户明确要求MTBF≥10万小时,不符合工业级可靠性要求。 Reliability indicators not meeting standards: The watchdog chip was a consumer-grade product with an MTBF of only 5,000 hours, while the client explicitly required an MTBF of ≥100,000 hours, which did not meet industrial-grade reliability requirements.
根据IEEE 830标准的统计,嵌入式项目中42%的硬件改板次数来自需求不明确,而需求变更的成本在量产前是1,量产后会飙升到100甚至1000。我们这个项目改了3次板,其中2次都是因为需求漏了EMC和可靠性要求,直接导致项目延误3个月,成本超支40%。 According to statistics from the IEEE 830 standard, 42% of hardware revision次数 in embedded projects come from unclear requirements, and the cost of requirement changes is 1 before mass production, but skyrockets to 100 or even 1,000 after mass production. Our project had 3 board revisions, 2 of which were due to missing EMC and reliability requirements in the requirements, directly causing a 3-month project delay and a 40% cost overrun.
<project_review> 标签:需求定义 BOM审核 硬件改板 EMC测试 可靠性设计 标签:Requirement Definition BOM Review Hardware Revision EMC Test Reliability Design 复盘要点:需求文档必须包含可验证的验收标准,所有模糊需求(如“支持XX协议”)必须明确到具体参数、测试方法、验收阈值,需求必须经过客户、产品、硬件、软件四方评审签字后才能进入设计阶段。 Review Point: Requirement documents must include verifiable acceptance criteria. All vague requirements (such as “supports XX protocol”) must be clarified to specific parameters, test methods, and acceptance thresholds. Requirements must be reviewed and signed off by the client, product, hardware, and software teams before entering the design phase. </project_review>
二、硬件选型三次踩坑:参数正确不等于可用
2. Three Hardware Selection Pitfalls: Correct Specs Don’t Mean Usable
硬件团队当时选型的逻辑是“看datasheet标称参数,选性价比最高的”,结果踩了三个典型的嵌入式选型坑: The hardware team’s selection logic at the time was
硬件团队当时选型的逻辑是“看datasheet标称