十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Sub-GHz协议扩展到30+、频宽放到928MHz:Flipper Zero Unleashed固件Sub-GHz能力拆解

Sub-GHz协议扩展到30+、频宽放到928MHz:Flipper Zero Unleashed固件Sub-GHz能力拆解 Sub-GHz协议扩展到30、频宽放到928MHzFlipper Zero Unleashed固件Sub-GHz能力拆解【免费下载链接】unleashed-firmwareFlipper Zero Unleashed Firmware项目地址: https://gitcode.com/GitHub_Trending/un/unleashed-firmware你按了三次原装车库遥控道闸没动刷了Unleashed固件的Flipper Zero抓下信号重建协议一次发射就抬起了栏杆。差别在两点这套固件的Sub-GHz协议注册表里放了30套解码器频率列表可以从内置信道表一路加到928MHz。下文拆解四件事协议注册机制如何动态实例化解码器、频率列表怎么扩展、如何用单个映射文件集中管理多台设备、以及FAAC道闸配对的完整时间线最后给一张信号调试速查表。全程只动microSD卡配置和设备菜单不碰任何仓库代码。两种固件的能力差异速览维度官方固件Unleashed固件协议注册内置少量协议新增需等OTA注册表30套解码器启动时动态实例化频率列表固定内置信道300-348 / 386-464 / 778-928MHz 用户自定义信道遥控管理一个捕获文件对应一次发射映射文件把5个按键绑到5个.sub文件随时切换用户配置入口无频率级配置microSD卡上的setting_user协议注册表怎么工作动态实例化解码器启动接收器时固件不硬编码任何协议逻辑而是遍历注册表逐个分配解码器实例。核心循环在 lib/subghz/receiver.cfor (size_t i 0; i subghz_protocol_registry_count(items); i) { const SubGhzProtocol* protocol subghz_protocol_registry_get_by_index(items, i); if (protocol-decoder protocol-decoder-alloc) { slot-base protocol-decoder-alloc(environment); // 各解码器自持状态 } }之后每一段电平信号进来subghz_receiver_decode把(level, duration)依次喂给所有槽位通过 flag 位掩码过滤只参与匹配的协议。哪个解码器先解出完整帧就回调哪个。新增协议 在lib/subghz/protocols/目录加一对.c/.h并挂进注册表接收端无需改主流程。协议典型场景编码/频段特点FAAC SLH高端车库/道闸Keeloq变体868.35 / 433.92MHzCAME / CAME Atomo欧洲卷帘门OOK脉冲串433.92MHzChamberlain北美车库门固定码滚动序列390MHzKeeloq多品牌滚动码门禁加密滚动433/868MHzBISS / ANSonic老式门窗电机定长脉冲315/433MHz实操设备菜单Sub-GHz → Add Manually里直接选协议建遥控菜单里没有的协议先用Read模式抓一段真实信号再对照 lib/subghz/protocols/ 里的实现判断是否已支持。手动添加自定义频率的4步流程Step 1在microSD卡找到subghz/assets/setting_user.example复制一份并去掉.example后缀得到生效的setting_user。Step 2在文件末尾续写用户信道接在默认列表之后格式固定9位数字# subghz/assets/setting_user Frequency: 928000000 Frequency: 433915000 Hopper_frequency: 345000000 # Add_standard_frequencies: trueStep 3需要跳频扫描的设备用Hopper_frequency追加信道列表保持最小化信道过多会拖垮跳帧间隔接收端大概率锁不上。Step 4想彻底丢弃内置列表把#Add_standard_frequencies: true改成false。注意此时主列表和跳频列表都必须自行填全空列表等于没有频率可选。细节见 documentation/SubGHzSettings.md。技术细节CC1101射频前端的可用窗口由硬件定死在 300-348、386-464、778-928MHz 三段配置文件里的频率列表是离散信道表而非连续扫描。你填的值落在窗口内就能调频但能否被接收端解出取决于对端接收机的容差——对不齐时对端看到的只是一段噪声。一台Flipper管风扇、门铃、车库门手上有三台设备、各是各的遥控吊扇、门铃、车库门各自的.sub文件已经抓好。传统用法是每次进Sub-GHz找文件发射五台设备就要切五次界面。Sub-GHz Remote插件的做法是一张映射表UP: /ext/subghz/Fan1.sub DOWN: /ext/subghz/Fan2.sub LEFT: /ext/subghz/Door.sub RIGHT: /ext/subghz/Garage3.sub OK: /ext/subghz/Garage3l.sub ULABEL: 风扇开启 DLABEL: 风扇关闭 LLABEL: 门铃 RLABEL: 车库开 OKLABEL: 车库关subghz_remote/example.txt放进卡里后进入Sub-GHz Remote界面就是五个方向键加中心键的遥控器布局标签直接显示在按键位。规则三条文件路径不能有空白字符连字符、下划线允许标签限16字符超了会挤到屏幕外映射文件想建几个建几个文件名随意。修改配置不用电脑在插件界面按Back直接进编辑器。规范见 documentation/SubGHzRemotePlugin.md。FAAC SLH配对时间线从0到可用以FAAC SLH道闸为例全程约40秒参照 documentation/SubGHzRemoteProg.md时间动作T0sSub-GHz → Add Manually → FAAC SLH选定频率生成随机序列号的新遥控文件T10s打开接收器外壳找到主板上的编程按钮T15sFlipper长按Up发送编程信号同时长按接收器编程按钮T20s接收器LED依次经历亮→灭→亮→灭→亮然后松开所有按键T30s按住 Flipper 的Send键1-3秒连发两次测试道闸容易卡住的一步是T15s两个按键必须同时按下人肉手速经常差半拍。卡住的表现是LED序列走完就重置回待机——回到T15s重来即可不需要重建遥控文件。如果接收器外壳打不开文档里另有从主遥控器读Seed再绑定的替代路线免拆箱。信号调试速查表问题排查动作预期结果同频干扰偶发失灵Read模式扫环境对比干扰时段信号setting_user里把信道挪到相邻可用频率新信道上重放接收端响应稳定距离不够确认发射功率档与调制方式一致检查.sub文件头部的OOK/ASK/FSK标注与目标设备手册一致有效距离随调制匹配恢复波形占空比回到设计值协议不匹配用Read抓原始信号对照解码器目录确认协议不行就走Add Manually手动建参抓到的帧能被正确协议解出并回显波形层面.sub文件本质是电平-时长序列发射时按行重放// .sub 每行一对参数决定重放波形 // level 1 高电平 / 0 低电平 // duration 时长微秒 // 占空比与脉宽偏差是协议不匹配的最常见根因重放逻辑在 lib/subghz/subghz_file_encoder_worker.c排查时拿抓包文件和重放文件的时长列逐项比对偏差超过几个微秒就说明文件已被改坏。路线图与参与动态频率选择DFS自动避开占用高的信道信号强度可视化在界面上直接看RSSI贡献入口issue提交设备型号加信号样本协议适配代码走PR构建环境按 documentation/HowToBuild.md 搭Unleashed固件把Sub-GHz从能抓能放做到了抓得全、放得准、管得多。协议和频率表还在长后续信号分析篇会接着讲解码器状态机怎么调。【免费下载链接】unleashed-firmwareFlipper Zero Unleashed Firmware项目地址: https://gitcode.com/GitHub_Trending/un/unleashed-firmware创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表