
Flipper Sub-GHz 实战DefCon32 LED 手环 .sub 文件解析与 FREE-WILi 上传全流程【免费下载链接】FlipperPlayground (and dump) of stuff I make or modify for the Flipper Zero项目地址: https://gitcode.com/GitHub_Trending/fl/Flipper本文围绕Sub-GHz/DEFCON32_Bracelet (FREE-WILi)目录下的 README 及其配套的 12 个.sub原始信号文件展开讲解 DefCon 32 现场发放的 LED 手环控制信号的文件格式、433.92 MHz / OOK650 异步调制参数的含义、如何将这些文件装入 Flipper Zero 的 SubGHz 菜单以及如何通过fwi-serial工具链把.sub文件上传到 FREE-WILi 设备的Radios/Transmit菜单中。一、这套文件是什么DEFCON32 手环的 Sub-GHz 控制信号DEFCON 32 大会上向参与者发放了一批 LED 发光手环bracelet。这些手环通过 433 MHz 附近的 Sub-GHz 射频信号接收控制指令点亮不同颜色或切换闪烁模式。本仓库目录收录了针对这批手环的原始脉冲RAW控制信号文件即 Flipper Zero 的.sub文件。目录内共 12 个信号文件按功能可分为三类文件作用red.sub/red.sub)、orange.sub/orange.sub)、yellow.sub/yellow.sub)、green.sub/green.sub)、blue.sub/blue.sub)、purple.sub/purple.sub)、pink.sub/pink.sub)、white.sub/white.sub)、cyan.sub/cyan.sub)单色点亮指令rainbow.sub/rainbow.sub)、fade.sub/fade.sub)彩虹/渐变等多色循环效果指令off.sub/off.sub)关闭手环 LED 指令README 说明这套文件最初来源于 FREE-WILi 项目方的bracelet_subfiles工程本仓库将其镜像收录使其既可以作为 Flipper Zero 的 SubGHz 原始文件直接播放也可以上传到 FREE-WILi 设备中管理。二、.sub 文件结构解析433.92 MHz 的 OOK650 异步原始信号12 个文件采用完全一致的 Flipper SubGhz RAW 文件格式。以 yellow.sub/yellow.sub) 为例文件头部固定为 5 行元数据Filetype: Flipper SubGhz RAW File Version: 1 Frequency: 433920000 Preset: FuriHalSubGhzPresetOok650Async Protocol: RAW随后是若干RAW_Data:行每行是一段空格分隔的整数序列。各字段含义如下Filetype / Version声明这是 Flipper SubGhz 原始文件格式版本 1Frequency: 433920000载波频率 433,920,000 Hz即 433.92 MHzPreset: FuriHalSubGhzPresetOok650Async调制预设为 OOK650 异步On-Off Keying650 kbps 位率异步发射。OOK 即开关键控——载波开代表 1、载波关代表 0非常适合 LED 手环这类低成本接收电路Protocol: RAW不按 MegaCode、PRM 等命名协议封装而是逐脉冲回放原始时序RAW_Data核心数据。每个整数是一个脉冲时长的微秒数正数为载波开启send时长负数为载波关闭pause时长。例如序列片段3607 -100 1789 -66表示发射 3607 µs、静默 100 µs、再发射 1789 µs、再静默 66 µs依次循环。这一解释来自本仓库 Sub-GHz 目录总说明 Sub-GHz/ReadMe.md 中对 Flipper raw SUB 格式的权威描述。从各文件的 RAW_Data 行数可以看出信号复杂度的差异单色指令文件较短如 off.sub/off.sub)、green.sub/green.sub)、orange.sub/orange.sub) 均只有 3 行数据而 rainbow.sub/rainbow.sub) 有 20 行、fade.sub/fade.sub) 有 12 行需要回放更长的多段脉冲序列来驱动多色循环/渐变效果。从源码结构看即从 RAW 数据的波形结构观察rainbow.sub与fade.sub的序列中反复出现约 2000 µs 的短脉冲组与约 1000 µs 的伴随段并夹有 -17930、-21412 甚至 -23704 µs 量级的超长负值间隔——这些长静默是各颜色帧之间的间隙。具体每个脉冲段如何映射到手环固件上的 LED 颜色寄存器由手环接收端固件定义Flipper 端只负责按微秒精度精确重放这段波形。这也是 RAW 文件的典型特征不关心协议语义只保证时序一致因此即使不知道协议细节只要波形原样复现手环就能正确响应。需要提醒的是这些文件是原始波形回放而非结构化协议编码。若手环固件升级改变了时序容差或前导码结构同一份.sub可能失效需要重新用接收设备录制或获取新版文件。三、频率合规性433.92 MHz 是否在官方支持范围内433.92 MHz 落在 Flipper 官方支持的 387–464 MHz 频段内Flipper 使用的 CC1101 芯片官方支持频段为 300–348 MHz、387–464 MHz、779–928 MHz无需extend_range之类的非官方扩频配置即可正常发射。这一点可对照仓库中的 Sub-GHz/ReadMe.md 了解完整频段限制。此外Flipper 官方固件按出货区域锁定了可发射频段R01欧洲、英国等与 R02美、加、澳等均允许 433.05–434.79 MHz 发射恰好覆盖 433.92 MHzR03其他地区的官方允许频段不含 433 MHz 段。因此实际能否发射还取决于设备固件的区域标识R01/R02/R03这一点与仓库 Sub-GHz 总说明中的区域规则一致。四、将 .sub 文件装入 Flipper ZeroREADME 给出的加载方式与其他 SubGHz 原始文件完全相同两步即可把整个DEFCON32_Bracelet (FREE-WILi)文件夹或其中任意.sub文件复制到 SD 卡存放路径与普通 SUB 文件相同例如ext/subghz/下任意位置在 Flipper 主菜单进入 SubGHz 应用在原始文件raw列表中即可看到并播放这些文件同样也可以被仓库 ReadMe.md 提到的any SubGHz apps即 RogueMaster、CodeGrabber/Unleashed 等第三方 SubGHz 应用调用。播放时设备将按各文件头声明的 433.92 MHz / OOK650 异步参数发射距离和穿透能力受环境与天线条件影响仓库 Sub-GHz 总说明中同时指出 650 位率调制AM650/FM650相比 270 位率调制覆盖频率范围更广但接收距离略短本套文件采用的正是 650 档。五、上传 .sub 文件到 FREE-WILiREADME 的第二部分给出了把同一批.sub文件推送到 FREE-WILi 硬件设备一台带双 MCU 的 Sub-GHz 收发电台的完整命令行流程。FREE-WILi 侧使用freewiliPython 库提供的fwi-serial命令行工具通过串口与设备通信。5.1 环境准备需要Python 3.11通过 pip 安装 freewili 库pip install freewili5.2 确认目标设备fwi-serial --listFREE-WILi 板载两颗处理器负责射频/存储的Main与负责屏幕的Display。.sub文件必须上传到Main处理器否则会写入错误的设备。README 给出的定位方法是先列出所有串口设备fwi-serial --list输出示例来自 README 原文(python311) PS E:\downloads fwi-serial --list Found 2 FreeWili(s) 1. Main v29 COM23 1-5.1:x.0 2. Display v28 COM22 1-5.2:x.0输出中每行包含序号、角色Main/Display、固件版本、串口号与 USB 拓扑位置。上例中Main是 1 号设备因此后续命令统一带--index 1。若你的设备列表序号不同务必使用自己Main对应的序号。5.3 发送文件fwi-serial --send_file将.sub文件以文件方式写入设备-fn指定设备端的目标路径。README 的示例命令fwi-serial --send_file yellow.sub -fn /radio/yellow.sub --index 1参数说明yellow.sub本地要发送的文件即本仓库目录下的某个.sub文件-fn /radio/yellow.sub设备上的目标存储路径。FREE-WILi 将/radio/下的文件挂入其射频发射界面文件名可自定一般保持与本地一致以便对照--index 1目标Main处理器的序号与--list输出严格对应README 特别强调be sure to use the correct index。上传完成后在 FREE-WILi 的Radios/Transmit菜单中即可看到刚上传的.sub文件点击即可向 433.92 MHz 发射对应手环控制信号实现与 Flipper Zero 相同的单色/彩虹/渐变/关闭控制。5.4 批量操作建议本目录 12 个文件均可按上述方式逐个上传例如循环执行fwi-serial --send_file 本地文件名 -fn /radio/同名文件 --index Main序号。由于 12 个文件共用同一频率与调制预设433.92 MHz / OOK650Async / RAW上传顺序无要求若只需在会场快速控制手环优先上传单色文件与off.sub即可。六、小结与适用边界本套文件的核心价值是即取即用的原始波形无需逆向手环协议复制进 SD 卡就能在 Flipper Zero 的 SubGHz 菜单中驱动 DefCon32 LED 手环或经fwi-serial --send_file推入 FREE-WILi 的/radio/目录纳入其 Radios/Transmit 管理。技术上文件头433.92 MHz、FuriHalSubGhzPresetOok650Async、RAW 协议与 RAW_Data 的微秒级开/关脉冲序列共同构成完整信号定义其中正数载波开、负数载波关的约定是本仓库 Sub-GHz 文档的通用格式规则。适用前提设备固件区域允许在 433 MHz 段发射R01/R02 覆盖FREE-WILi 上传要求 Python 3.11 环境并正确识别Main处理器序号信号能否被手环接收还取决于发射功率、距离与手环固件版本。延伸阅读可参考仓库中 Sub-GHz/ReadMe.mdRAW 格式细节、频段与调制说明以及 Sub-GHz 目录下的其他设备信号文件组织方式。【免费下载链接】FlipperPlayground (and dump) of stuff I make or modify for the Flipper Zero项目地址: https://gitcode.com/GitHub_Trending/fl/Flipper创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考