用 Flipper Zero 捕获与回放 Kidde 无线烟雾报警器射频信号Kidde_smk.sub 文件实战解析【免费下载链接】FlipperPlayground (and dump) of stuff I make or modify for the Flipper Zero项目地址: https://gitcode.com/GitHub_Trending/fl/Flipper导读本指南以Sub-GHz/Smoke_Alarm/Kidde/目录下的 Kidde 烟雾报警器射频捕获文件为核心讲解如何利用 Flipper Zero 的 Sub-GHz RAW 模式捕获、分析并回放 Kidde RF 无线烟雾报警器的 434 MHz 射频信号用于家庭烟雾探测器功能自测。读完本文你将掌握Flipper RAW 格式 .sub 文件的字段与数据含义、Kidde_smk.sub 的信号参数细节、以及借助仓库工具对 RAW 信号进行可视化与频率修改的实操方法。背景为什么要捕获烟雾报警器的射频信号Kidde凯德是北美知名的消防与安全产品厂商其部分烟雾报警器型号如 RF-SM-DC 系列内置 RF 无线互联功能——当一个探测器触发报警时会通过射频广播告警信号同组其他探测器同步响起实现全屋联动报警。这类设备发射的射频信号被 Flipper Zero 的 Sub-GHz 模块捕获后可以用于验证探测器联动功能是否正常、测试报警器覆盖范围甚至在不触发探测器本身的情况下主动发射测试信号。仓库中这份文件最初来自社区成员 vrillusions 在 Reddit r/flipperzero 的Time to test smoke detectors测试帖并由 h00die 通过 PR 整理进仓库见 Kidde 说明文件。需要强调的是这份文件的价值在于帮助拥有同型号设备的用户做合规的自有设备测试而非用于任何未授权场景。仓库中的文件构成Sub-GHz/Smoke_Alarm/Kidde/目录下包含两个文件文件作用ReadMe.md来源、协议研究线索与致谢说明Kidde_smk.subFlipper Zero 可直接导入播放的射频捕获文件Kidde_smk.sub 文件格式逐字段解析打开 Kidde_smk.sub文件头部如下Filetype: Flipper SubGhz RAW File Version: 1 Frequency: 434390000 Preset: FuriHalSubGhzPresetOok270Async Protocol: RAW RAW_Data: ...各字段含义Filetype / Version文件类型标识与格式版本Flipper 通过该行识别文件为 Sub-GHz RAW 捕获文件。Frequency: 434390000载波频率单位为 Hz即434.39 MHz。该频率落在 433.05–434.79 MHz 区间内属于 Sub-GHz/ReadMe.md 中列出的 R01 区域官方允许发射频段也处于 CC1101 芯片官方支持的 387–464 MHz 范围内。Preset: FuriHalSubGhzPresetOok270Async调制与接收预设采用OOKOn-Off Keying开关键控调制270 kHz 带宽异步Async模式。OOK 通过载波的有/无来表示二进制 1/0——这正是 Sub-GHz/ReadMe.md 中提到的on 代表 1、off 代表 0的调制原理。Protocol: RAW表示该文件保存的是原始脉冲时序raw timings而非协议解码后的结构化数据。Flipper 在 RAW 模式下会原样记录每个脉冲的持续时间适合处理尚未被内置协议库覆盖的信号如 Kidde 的私有协议。RAW_Data 脉冲数据如何解读仓库根目录的 Sub-GHz/ReadMe.md 给出了 RAW 数据的官方解读方法这也是理解 Kidde_smk.sub 数据的基础每个数值代表一个脉冲的持续时间单位为微秒µs。正数表示发送信号开启负数表示暂停信号关闭。例如3607 -100 1789 -66表示先发射 3607µs再静默 100µs再发射 1789µs依此类推。在 Kidde_smk.sub 中可以看到典型的 RAW 数据形态例如RAW_Data: 46452 1663 -134 66477 -67726 401 -406 363 -448 ...从源码级结构看这份捕获文件包含多行 RAW_Data本例共 27 行每行都是一次完整或部分的信号捕获序列行首与行尾存在46452、66477、-67726、42349等大幅值脉冲对应信号帧之间的长前导preamble与长静默间隔用于接收端识别帧边界中段密集的401 -406 363 -448 347 -432等小幅值交替序列为实际的数据脉冲串周期约为 800µs 级不同行的数据存在相似但略有差异的结构说明该文件采集了多次发射每次按键/触发可能产生多个重复帧这种重复是射频遥控类信号提高接收可靠性的常见设计。在 Flipper Zero 上使用该文件导入将Sub-GHz/Smoke_Alarm/Kidde/Kidde_smk.sub复制到 Flipper Zero SD 卡的subghz目录下如subghz/Kidde_smk.sub。回放进入 Sub-GHz 应用 → 读 RAWRead RAW→ 选择Kidde_smk.sub→ 按 OK 播放。播放时 Flipper 会按文件记录时序在 434.39 MHz 上以 OOK 调制重放信号。功能自测将 Flipper 置于被测 Kidde 报警器附近触发回放观察同组报警器是否同步响应即可验证 RF 联动功能与信号覆盖范围。若当前固件默认频率限制不允许在 434.39 MHz 发射请参考 Sub-GHz/ReadMe.md 中的频率限制章节官方固件仅允许在 CC1101 数据手册支持的 300–348 MHz、387–464 MHz、779–928 MHz 内工作并进一步按区域R01/R02/R03限制发射频段本文频率位于 R01 合法范围无需特殊处理。切勿越界修改频率配置超出芯片规格发射可能损坏 Flipper 功放。借助仓库工具深入分析信号仓库wetox_scripts/目录提供了两个与 RAW 文件配套的实用脚本可帮助理解 Kidde_smk.sub 的信号结构1. 时序可视化—— draw_subghz.pypython3 draw_subghz.py -f ../Sub-GHz/Smoke_Alarm/Kidde/Kidde_smk.sub脚本会解析文件中所有RAW_Data:行见wetox_scripts/draw_subghz.py#L24的过滤逻辑将每个正值展开为一段 1 电平、每个负值展开为一段 0 电平最终用 matplotlib 绘制出完整的 OOK 时序波形图。对于肉眼难以分辨的几千个脉冲波形图能直观呈现前导脉冲、数据区与帧间隔的分布便于进一步分析 Kidde 信号的帧结构。2. 频率改写—— changefreq.pypython3 changefreq.py -f ../Sub-GHz/Smoke_Alarm/Kidde/Kidde_smk.sub -o Kidde_433.92.sub -r 433.92脚本将Frequency:行的值改写为指定频率小数自动换算为 Hz见wetox_scripts/changefreq.py#L27-L31其余内容保持不变。该工具对多区域频率适配场景有价值但改频前务必确认目标频率在当前固件与所在地区合法且改动后原始 OOK 调制方式与信号时序不变。协议层面的探索空间Kidde 的射频互联协议是私有协议Flipper 内置协议库默认不会自动解码其数据比特位。关联文档中提到了社区对 Kidde CC1101 信号的协议探索工作tofurky/kidde_cc1101从文档描述看该项目的价值在于在他人已完成信号采集与基础分析hardwork done的前提下探讨对该协议实施暴力破解的可行性——即穷举可能的家庭码/设备码组合来重放控制信号。需要明确的是仓库中提供的 Kidde_smk.sub 是已验证可用的捕获信号直接用于回放测试而进一步的比特级协议解析属于开放研究课题读者可结合上面的绘图脚本与官方 Pulse Plotter 思路自行开展但应始终将研究限制在自己拥有或获授权的设备上。总结Sub-GHz/Smoke_Alarm/Kidde/为拥有 Kidde RF 烟雾报警器的用户提供了一份开箱即用的射频测试资产434.39 MHz OOK 270 Async 预设 RAW 原始时序的三要素组合使 Flipper Zero 能在不触碰探测器的情况下重放其联动信号完成家庭消防设备的功能自检。配合仓库中 RAW 格式说明、绘图脚本 与 改频脚本无论是直接使用还是深入分析这份文件都能作为 Sub-GHz RAW 信号实战的完整范例。【免费下载链接】FlipperPlayground (and dump) of stuff I make or modify for the Flipper Zero项目地址: https://gitcode.com/GitHub_Trending/fl/Flipper创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
