你好,这里是 Oniums
这是一个关于嵌入式固件、无线协议与工程实践的个人站点。 为什么重新开始技术工作很容易留下大量碎片:一段日志、一个临时脚本、某次失败的构建,以及“当时好像是这样解决的”。 如果这些信息没有被整理成可验证的过程,它们很快就会失去价值。因此我希望这里不只是文章列表,而是一层公开、精炼的技术输出:每篇内容都尽量说明问题发生在哪一层、证据来自哪里、结论能够覆盖到什么范围。 这里会写什么 嵌入式固件的设计、调试与验证; Matter、Th...
Matter 已配网设备为什么不再用 BLE?一次讲清 DNS-SD、BCM 与 ECM
一台 Matter over Thread 设备已经加入生态 A。现在让它重新进入配网状态,再用生态 B 的 App 扫描机身二维码,设备没有重新发出 Bluetooth LE 配网广播,为什么仍然可能成功加入第二个 Fabric? 这个问题最容易产生两个误解: 扫描二维码就等于接下来一定使用 BLE; BLE 对应 Basic Commissioning,DNS-SD 对应 Enhanced Commissioning。 两...
Matter BLE 配网的 MAC 地址为什么每次重启都会变?
调试 Matter over Thread 设备时,可能会遇到一个很容易被误判的现象:设备恢复出厂后可以被手机扫描到,但重启一次,扫描工具显示的 BLE MAC 地址就变了。 这是不是地址没有保存?会不会导致手机找不到原来的设备?量产时是不是应该给每台设备烧录一个固定 BLE MAC? 对于 Matter 配网广播,答案恰好相反:每次启动都使用新的随机 BLE 地址,通常才是符合规范的行为。 不过,“随机地址”不等于“每次连接...
同一台 Matter over Thread 设备,在 Echo Dot Max、HomePod mini、Google Nest Hub Max 2 和 SmartThings Hub V3 上怎样配网?
同一台 Matter over Thread 设备,分别通过 Echo Dot Max、HomePod mini、Google Nest Hub Max 2 和 SmartThings Hub V3 配网时,设备日志为什么不完全一样? 实测中,HomePod mini、Google Nest Hub Max 2 和 SmartThings Hub V3 在写入 Matter 运行凭据后,直接把 Thread Operational...
Alexa 为什么会要求输入 Thread Network Key?一次 Matter over Thread 配网故障的分层分析
使用 Alexa 给一台 Matter over Thread 设备配网时,我遇到了一个很奇怪的页面:Matter 二维码已经扫描完成,Alexa 也显示出了 Thread 网络名称,下一步却要求手工输入一个 32 位的 Thread Network Key。 问题是,Echo 机身、Alexa App 和 Matter 设备标签上都找不到这个 Key。Amazon Forum 上也有人问过完全相同的问题:到底应该去哪里找? ...
一次 Apple Home 配网为什么会出现两个 Matter Fabric?从完整日志还原真相
把一台 Matter over Thread 设备添加到 Apple Home 后,设备重启时打印出了两个 Fabric。与此同时,产品的“配网成功”灯效也连续出现了两次。 这是否意味着一台 HomePod 固定占用两个 Fabric?还是日志重复打印、配网重试,或者设备误入了另一个生态? 一份覆盖首次配网、两次凭据写入和重启恢复的完整设备日志给出了更精确的答案: 在这次实测中,Apple 配网流程确实创建了两个独立的 Ma...
Telink Matter SDK 入门:Zephyr、Matter 与底层库怎样组成一个固件?
第一次接触 Telink Matter SDK 时,很容易产生一个疑问:Zephyr 在一个仓库,Matter 在另一个仓库,底下还有 HAL、OpenThread 和一些静态库,执行一次 west build 后,它们怎么就变成了一个固件? 先记住最重要的结论: 通常不是先生成一个 Zephyr 固件和一个 Matter 固件,再把两个 BIN 拼起来。Matter、Zephyr、应用和芯片底层会先分别编译成许多目标文件或静态...
BLE GATT 入门:手机连上设备后,到底发生了什么?
打开一个蓝牙调试工具,点下 Connect,页面很快显示“Connected”。这是不是说明手机已经能读到设备数据,也能正常控制设备了? 不一定。 BLE 连接成功,只表示两台设备已经建立了一条无线链路。 后面通常还要发现 Service、找到 Characteristic、确认读写方式、订阅通知,应用数据才真正开始流动。 本文不从复杂的协议分层开始,而是跟着一台简单的 BLE 温度计,看清手机从“发现设备”到“收到温度变化”...
Matter over Thread 入网为什么这么复杂?与 Zigbee 一步一步对照看懂
Zigbee 设备打开允许加入、搜索网络、获得密钥,似乎就能完成入网。Matter over Thread 为什么还要扫码、连接 Bluetooth LE、建立临时安全通道、验证设备证书、写入长期身份、加入 Thread,再切换到 IP 网络重新连接? 这些步骤是在把简单问题复杂化,还是在解决不同的问题? 本文跟随一台刚恢复出厂的门磁传感器,从拆箱一直走到 App 能稳定显示“门已打开”或“门已关闭”。每走一步,我们都回答五个...
SmartThings Edge Driver 发布实战:从本地打包到 Channel 邀请链接
写完 SmartThings Edge Driver 只是第一步。要让测试者通过一个链接安装 Driver,还要完成云端上传、Channel 版本绑定、Hub 注册、Driver 安装和邀请创建。这些动作处在不同层级,任何一步“成功”都不能替代下一步验证。 先理解完整链路一条可复用的发布链是: 12345678910本地源码 -> fingerprint / profile / handler 静态检查 -> ...