尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Flipper Zero Sub-GHz 播放列表暂停指南:用 Sleep Files 空白 SUB 文件精确控制播放时序

Flipper Zero Sub-GHz 播放列表暂停指南:用 Sleep Files 空白 SUB 文件精确控制播放时序 Flipper Zero Sub-GHz 播放列表暂停指南用 Sleep Files 空白 SUB 文件精确控制播放时序【免费下载链接】FlipperPlayground (and dump) of stuff I make or modify for the Flipper Zero项目地址: https://gitcode.com/GitHub_Trending/fl/FlipperSub-GHz 播放列表SubGHz Playlist让 Flipper Zero 可以按顺序循环播放多个 .sub 信号文件但如何暂停一段指定时间例如等门禁继电器复位、等待设备响应再继续一直是高频问题。本文基于本仓库 Sub-GHz/Sleep_Files/ReadMe.md 展开完整讲解 Sleep Files 的设计原理、文件格式、自定义时长计算方法与播放列表接入方式读完即可亲手生成任意时长的静默间隔并正确放入你的播放列表。场景背景SubGHz Playlist 为什么需要暂停subplaylist/ReadMe.md 说明了 SubGHz Playlist 应用由 darmiel 开发的能力按顺序播放列表文件、支持循环。该 FAP 已内置在多数主流自定义固件Unleashed、RogueMaster中入口位于Applications - Tools - Sub-GHz Playlist播放列表文件存放在 SD 卡的subplaylist目录。播放列表的典型诉求是在两次发射之间插入一段等待时间让被控设备完成动作后再发送下一条信号。常见的土办法有两个但都不理想现场录制一段 RAW 信号容易把环境中其他无关信号一并录进去回放时可能误触发把多条短 RAW 信号拼接操作繁琐文件数量爆炸。Sleep Files 正是为解决这个问题而生的它是手工生成、非录制的 .sub 文件回放时在指定频点上发射空信号——用作者的原话它在空中不携带任何调制信息只是用固定载波占住这段时间从而在播放列表中起到暂停的作用。作者已通过脉冲绘图仪pulse plotter和 HackRF 实测确认这些文件回放时发送的就是nothing。Sleep Files 文件一览按秒、分、时归档仓库在 Sub-GHz/Sleep_Files 下按量级分了三个目录方便按需取用目录文件实测时长含首脉冲Secondssleep_01s.sub1 秒sleep_05s.sub5 秒sleep_10s.sub10 秒sleep_15s.sub15 秒sleep_30s.sub30 秒sleep_45s.sub45 秒Minutessleep_1m.sub1 分钟sleep_2m.sub2 分钟sleep_5m.sub5 分钟sleep_10m.sub10 分钟sleep_15m.sub15 分钟sleep_30m.sub30 分钟Hourssleep_1h.sub1 小时SUB 文件格式逐行解析以 Sub-GHz/Sleep_Files/Seconds/sleep_10s.sub 为例完整内容只有六行Filetype: Flipper SubGhz RAW File Version: 1 Frequency: 433920000 Preset: FuriHalSubGhzPresetOok650Async Protocol: RAW RAW_Data: 1000 -9999000Filetype/Version固件可识别的 Flipper SubGhz RAW 文件标识与格式版本Frequency发射载波频率433920000 Hz 即 433.92 MHzISM 免授权频段。文件实际以该频率发射请确认目标设备工作频点如 315 MHz 设备请相应改为此值PresetFuriHalSubGhzPresetOok650Async即固件层 OOK 650 kHz 异步预设也是大多数 433 MHz 遥控设备的通用调制方案ProtocolRAW表示逐样本描述脉冲/间隙不套用任何已识别协议RAW_Data脉冲序列正数表示有载波的脉冲时长微秒负数表示无载波的静默时长微秒。这里1000是一个 1 ms 的极短脉冲-9999000是约 9.999 秒的空白间隔。时长计算规则一个数字搞定自定义暂停Sleep Files 的妙处在于——想自定义任意时长只需改RAW_Data最后那个负数。它就是间隔时长单位是微秒µs。核心公式原文档原话逻辑目标秒数后加 6 个零再减去 1/1000 秒1000 微秒因为最前面的那个10001 ms 脉冲也要计入总时长。即间隔微秒数 目标秒数 × 1,000,000 - 1000用sleep_10s.sub验证10 s →10000000 - 1000 9999000即-9999000再加上首脉冲 1 ms总时长恰好 10 秒。再看 sleep_45s.sub45 秒就是45000000 - 1000 44999000完整文件为Filetype: Flipper SubGhz RAW File Version: 1 Frequency: 433920000 Preset: FuriHalSubGhzPresetOok650Async Protocol: RAW RAW_Data: 1000 -44999000把仓库内各文件的数值代入均严格吻合下表间隔即RAW_Data负数值目标时长间隔微秒数完整RAW_Data对应文件1 秒9990001000 -999000sleep_01s.sub10 秒99990001000 -9999000sleep_10s.sub45 秒449990001000 -44999000sleep_45s.sub1 分钟599990001000 -59999000sleep_1m.sub30 分钟17999990001000 -1799999000sleep_30m.sub自定义步骤总结按公式算出间隔 → 套用上面的六行模板 → 保存为.sub文件即可。超长暂停的分段技巧1 小时文件是怎么写的细心的读者会发现 sleep_1h.sub 的RAW_Data有两段RAW_Data: 1000 -2000000000 1000 -1599998000原因在于数值范围的限制固件解析的RAW_Data样本为 32 位有符号整数单个负数的绝对值最大不能超过 2,147,483,647约 2147.5 秒 ≈ 35.8 分钟。想表达 1 小时3,600,000,000 微秒就必须分段第一段1000脉冲 -20000000002000 秒静默第二段1000脉冲 -15999980001599.998 秒静默两段相加2000 s 1599.998 s 2 ms ≈ 3600 s恰好 1 小时。这说明RAW_Data支持任意多组脉冲间隔固件会按顺序连续回放分段时每段都要保留最前面的1000脉冲并把它计入该段时长单段时长超过约 35 分钟时请参照此方式拆分为多段而不是用一个超界负数。使用方式把 Sleep Files 放进播放列表第一步确认播放列表环境。播放列表文件存放在 SD 卡的subplaylist目录下每行一条记录格式为sub: 绝对路径路径以 SD 卡根/ext/subghz/开头。仓库内置了大量可直接参考的列表例如 subplaylist/LPD_playlist.txt69 个 LPD 信道循环与 subplaylist/Doorbells/DingDong.txt门铃音连续轰炸。第二步拷贝 Sleep 文件。把需要的sleep_*.sub复制到 SD 卡的subghz目录下任意位置例如新建subghz/Sleep_Files/目录并记下其在 SD 卡上的绝对路径。第三步插入播放列表。在需要暂停的位置插入一行sub: /ext/subghz/Sleep_Files/sleep_10s.sub以 subplaylist/Tesla_example_playlist.txt 的结构为例# Example file only. Make sure your paths are correct! # sub: /ext/subghz/Vehicles/Tesla/BEST_PORT_OPENER/315MHz_AM650_Better_Tesla_Charge_Port_Opener.sub sub: /ext/subghz/Sleep_Files/sleep_10s.sub sub: /ext/subghz/Vehicles/Tesla/Tesla_charge_AM650.sub播放到该行时Flipper 会表现为正在发射实际上只是在指定频点静默占时时间一到继续播放下一条。务必核对路径播放列表不校验文件是否存在路径写错会直接跳过该行上述示例文件头部注释也特别提醒了这一点。一个实用场景配合仓库 subplaylist/Tesla_example_playlist.txt 这类先开盖、再充电的多步流程在两步之间插入 Sleep Files即可避免因继电器未复位导致第二步信号被吞。注意事项固件兼容性与已知问题原文档明确记录了一个已知兼容性问题部分自定义固件custom firmware近期版本上这类纯空白文件可能失效对应上游 issue #514。原因是部分固件对 RAW 回放做了优化或校验可能丢弃过长的静默段。若在你的固件上插入 Sleep Files 后播放列表立刻跳过或卡死请优先怀疑此兼容性问题社区已发现可用的 workaround改用体积更大的替代文件效果相同但文件明显变大。作者提示较大的文件在特定情况下可能增加 Flipper 崩溃风险属于宁要能用的文件、不要失灵的轻量文件的取舍由于 workaround 文件较大原文档以 ZIP 包形式提供下载待固件修复后可回归小巧的原版文件建议先在自己的固件版本上小范围实测例如 10 秒文件再批量部署。小结与延伸阅读Sleep Files 是 Sub-GHz 播放列表生态中一个精巧而实用的零成本定时器不依赖录制、不发无用信号、一个负数即可精确控制暂停时长并且可无缝插入任何基于sub:行格式的播放列表。核心要点回顾模板仅六行RAW_Data末尾负数为间隔微秒数计算规则 秒数 × 1,000,000 − 1000首脉冲计入总时长超过约 35 分钟需像 1 小时文件那样分段使用时注意固件兼容性与路径正确性。想进一步探索可继续阅读仓库内相关资源Sub-GHz/Sleep_Files/ReadMe.md本主题原始说明、subplaylist/ReadMe.md播放列表应用说明、subplaylist/LPD_playlist.txt 与 subplaylist/Doorbells/DingDong.txt真实播放列表示例以及 Sub-GHz 下各设备信号库如 Vehicles、Doorbells中的真实 .sub 文件作为信号设计的参照。【免费下载链接】FlipperPlayground (and dump) of stuff I make or modify for the Flipper Zero项目地址: https://gitcode.com/GitHub_Trending/fl/Flipper创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表