Planet Projector 星球投影仪全键位射频信号捕获:Princeton 24bit 433.92MHz 协议分析与 Flipper Zero 实战指南
【免费下载链接】FlipperPlayground (and dump) of stuff I make or modify for the Flipper Zero项目地址: https://gitcode.com/GitHub_Trending/fl/Flipper
本指南以仓库中 Planet_Projector 捕获目录 为主体,系统讲解如何用 Flipper Zero 完整捕获一款星球投影仪(Planet Projector)通用遥控器的全部射频信号:涵盖协议识别、34 个按键的 Key 码映射、.sub文件格式逐字段解析,以及将这些捕获文件导入 Flipper Zero 进行回放与复制的完整流程。读完本文,你将能够理解 Princeton 24bit OOK 编码的射频遥控信号结构,并可以直接使用这套现成信号库控制星球投影仪的灯光、音乐、定时与亮度功能。
一、捕获内容概览:一个完整的遥控器信号集
Sub-GHz/Multimedia/Planet_Projector/目录下的捕获文件,对应一款星球投影仪(Planet Projector)随附的**通用遥控器(generic remote)**的全部功能按键。与大多数只收录开关信号的仓库不同,这里是一次"完整捕获"——从投影仪电源、星空/银河模式,到音乐播放、音量、定时关闭、颜色与亮度调节,共34 个.sub信号文件,覆盖了遥控器的几乎所有功能面:
- 电源与模式:
Projector_on/Projector_off、Auto_mode(自动模式)、Sleep_mode(睡眠模式) - 星空特效:
Star_mode、Starry_galaxy_mode、Star_on/Star_off - 颜色与亮度:
Color_mode_up/Color_mode_down、Brightness_up/Brightness_down - 音乐控制:
Music_on/Music_off、Music_play_pause、Music_forward/Music_back - 音量控制:
Vol_up/Vol_down、Mute(静音) - 播放模式:
Play_mode、Flash_mode(闪烁模式)、Sound_mode - 定时功能:
30min、1hour、3hour、5hour四档自动关机定时 - 星云(Space)系列:
Space_on/Space_off、Space_mode、Space_color/Space_color_rev、Space_dim/Space_bright
配套的 README.md 用两句话点明了这套信号的核心技术特征:**完整捕获(complete capture)**了通用遥控器的信号,并指明了协议为Princeton 24bit、433.92MHz、AM 调制(实测载波更接近 433.88MHz)。下文将围绕这一定义逐层展开。
二、协议与射频参数解析
目录 README 明确给出协议关键信息,而每个.sub文件的头部字段则提供了可验证的完整参数。以 Projector_on.sub 为例:
Filetype: Flipper SubGhz Key File Version: 1 Frequency: 433920000 Preset: FuriHalSubGhzPresetOok650Async Protocol: Princeton Bit: 24 Key: 00 00 00 00 00 FF FF 0A TE: 404将这些字段与 README 描述对照,可以得出如下协议画像:
| 参数 | 取值 | 说明 |
|---|---|---|
| 频率 | 433920000 Hz(433.92 MHz) | 属于欧洲 ISM 433MHz 频段;README 提示实测载波更接近 433.88MHz,即遥控器晶振存在轻微频偏 |
| 调制方式 | AM(OOK) | 开关键控(On-Off Keying),信号"有脉冲/无脉冲"分别代表 1/0 |
| Preset | FuriHalSubGhzPresetOok650Async | Flipper Zero 固件内置的AM650异步调制预设,带宽 650kHz,兼容性更广、但接收距离相对 AM270 略短 |
| 协议 | Princeton | Flipper Zero 固件内置协议解码器,可直接识别与重放 |
| 位宽 | 24 bit | 每帧 24 位(含 12 位固定地址 + 12 位命令,下详) |
| TE | 403~406 µs | 每位码元的时基宽度,不同按键捕获时存在 ±2µs 抖动,属正常测量误差 |
关于 433.88MHz 的提示:README 特别注明"实际上更接近 433.88 或类似值"。这属于遥控器晶振偏差的常见现象——虽然配置文件按 433.92MHz 标准值写入,但实际发射载波可能偏移数百 kHz。Flipper Zero 在回放时以Frequency字段为准发射,AM650 较宽的接收带宽足以覆盖此类偏移;若个别设备回放失灵,可考虑手动微调频率。
三、全键位 Key 码映射表
Princeton 24bit 帧结构中,前 12 位通常为固定地址码(这里体现为FF FF的地址段),后 12 位为命令码(体现在 Key 字段后两字节FF XX)。我对目录下全部 34 个.sub文件逐一提取了 Key 与 TE 字段,整理出完整的按键映射表:
| 功能文件 | Key(末两字节) | TE(µs) |
|---|---|---|
| Music_on | FF FF 01 | 406 |
| Play_mode | FF FF 02 | 405 |
| Music_off | FF FF 03 | 405 |
| Music_back | FF FF 04 | 404 |
| Music_play_pause | FF FF 05 | 405 |
| Music_forward | FF FF 06 | 405 |
| Vol_down | FF FF 07 | 404 |
| Mute | FF FF 08 | 404 |
| Vol_up | FF FF 09 | 404 |
| Projector_on | FF FF 0A | 404 |
| Star_mode | FF FF 0B | 404 |
| Projector_off | FF FF 0C | 403 |
| Sleep_mode | FF FF 0D | 404 |
| Auto_mode | FF FF 0E | 405 |
| Flash_mode | FF FF 10 | 404 |
| Color_mode_down | FF FF 11 | 404 |
| Color_mode_up | FF FF 12 | 404 |
| Brightness_down | FF FF 13 | 404 |
| Brightness_up | FF FF 14 | 405 |
| 30min | FF FF 15 | 404 |
| 1hour | FF FF 16 | 404 |
| 3hour | FF FF 17 | 404 |
| 5hour | FF FF 18 | 404 |
| Sound_mode | FF FF 1F | 405 |
| Space_on | FF FF 01 | 405 |
| Space_mode | FF FF 02 | 403 |
| Space_off | FF FF 03 | 405 |
| Space_color_rev | FF FF 11 | 405 |
| Space_color | FF FF 12 | 406 |
| Space_dim | FF FF 13 | 404 |
| Space_bright | FF FF 14 | 405 |
| Star_on | FF FF 0A | 404 |
| Star_off | FF FF 0C | 404 |
| Starry_galaxy_mode | FF FF 0B | 404 |
从这张映射表可以观察到两个有价值的细节:
- 地址段恒定:所有按键的前 6 个字节均为
00 00 00 00 00 FF,Key 真正有区分度的是末两字节FF XX,符合 Princeton 固定地址 + 可变命令的编码结构,也侧面说明这 34 个文件来自同一遥控器。 - 别名/同名按键共享码:
Space_*系列与Music_*、Color_*、Brightness_*系列共享完全相同的 Key 值(如Space_on=Music_on=FF FF 01),Star_on/off与Projector_on/off相同(FF FF 0A / 0C),Starry_galaxy_mode与Star_mode相同(FF FF 0B)。可以推断这些是同一物理按键在不同型号/不同名称下的冗余命名捕获,实际使用时按需取其一即可,不会产生冲突。
四、Flipper Zero.sub文件格式详解
这套捕获文件的格式为Flipper SubGhz Key File(非 Raw 格式),即"按键/协议级"文件,而非原始波形。两者差异在于:Key 文件只保存协议参数与命令码,体积小、回放快,且依赖固件内置解码器(这里即 Princeton 解码器)在发射时按协议重新编码波形。
各字段含义与配置建议如下:
- Filetype / Version:固定为
Flipper SubGhz Key File与1,标识文件格式版本,不要改动。 - Frequency:发射频率,单位为 Hz。本项目统一为
433920000(433.92MHz),属 Flipper Zero 官方固件支持的 433.05–434.79MHz 频段(R01/R02 区域)。 - Preset:调制预设名。
FuriHalSubGhzPresetOok650Async即 AM650。若你的固件版本较老且出现"Unknown preset"报错,可尝试将预设改为同义的AM650或改用 Flipper Lab / qFlipper 转换工具重新导出。 - Protocol:
Princeton。Flipper Zero 固件在 Sub-GHz 应用中内置了 Princeton 协议解码,读取/回放均无需额外安装插件。 - Bit:位宽
24。Princeton 协议通常以 12 位地址 + 12 位数据(或 24 位整体)出现,此处为 24bit 变体。 - Key:8 字节按键码,前 6 字节为地址/填充,后 2 字节为实际命令。手动添加信号时,这一字段就是决定触发哪个功能的关键。
- TE:一位的时长(Time Element,µs)。本项目约 403–406µs,对应约 2.48kHz 的码元速率。手动复制信号时需保持 TE 一致,偏差过大会导致接收端无法解码。
若要手动新增未收录的按键,只需复制任意一个.sub文件、修改Key与TE两行即可(例如在 Projector_on.sub 基础上把 Key 改为00 00 00 00 00 FF FF 1F即得到 Sound_mode 信号)。
五、在 Flipper Zero 上使用这套信号
这套信号集可直接放入 Flipper Zero 的 MicroSD 卡使用,操作路径如下:
- 传输文件:通过 qFlipper 桌面工具或读卡器,将
Sub-GHz/Multimedia/Planet_Projector/下的.sub文件拷贝到 SD 卡的subghz/目录(建议保持同名文件夹便于管理)。 - 打开 Sub-GHz 应用:进入Sub-GHz → Read,点击左下角"文件"图标浏览
subghz目录,即可看到Planet_Projector文件夹及其中的按键文件。 - 回放信号:选择对应功能文件(如
Projector_on.sub)并按 OK 发送。由于信号以 Key 文件存储,Flipper Zero 会自动调用 Princeton 协议编码发射,无需关心原始波形。 - 添加为自定义按键:若希望一键连续触发多个功能,可使用 Sub-GHz 应用的"Add Manually"功能,依次选择
Protocol: Princeton、Bit: 24,并按上表填入 Key 与 TE;也可以把多个.sub放入subghz/Playlist用播放列表顺序发送。
适用固件说明:官方固件(Official)、Unleashed、RogueMaster 均内置 Princeton 协议与 AM650 预设,这套文件在三种固件下均可直接使用。若你的固件禁用了 433MHz 频段(少数区域限制),需要在设置中确认区域代码与频率白名单。
六、原理与延伸:从捕获文件反推 Princeton 编码
Princeton(部分厂商称 EV1527 兼容族)是一种常见的 OOK 遥控协议:每帧固定位宽,由同步头 + 数据位组成,1/0 以不同的占空比脉冲序列区分,发送时每帧重复多次以提高可靠性。这套捕获恰好为理解该协议提供了实测样本:
- 固定地址:Key 字段的
FF FF地址段说明该遥控器使用固定地址编码(非滚动码),因此捕获后可以长期稳定重放,这也是它能被"完整捕获"的前提。 - 命令位宽:24bit 意味着理论上最多可区分 4096 个命令(低 12 位),本套文件使用了其中
01–1F区间的大部分取值,命令空间留有余量。 - TE 抖动:同一按键多次捕获的 TE 在 403–406µs 间浮动,这正是普通 433MHz 遥控器晶振精度(通常 ±20~100ppm 甚至更低)的典型表现,解码端需容忍约 ±1% 的时基误差。
想进一步验证或分析这些信号,可以参考仓库 Sub-GHz/ReadMe.md 中关于.sub文件格式与频率边界的说明:Raw 文件中正数表示"发射 µs 时长"、负数表示"静默 µs 时长",OOK 即"有脉冲=1、无脉冲=0"。结合本目录的 Key 文件,你可以手动还原出 Princeton 帧的完整波形时序。
七、注意事项与频率合规边界
- 频率合规:433.92MHz 属于 Flipper Zero 官方固件支持范围(Sub-GHz/ReadMe.md 中注明 R01 区域允许 433.05–434.79MHz、R02 允许 433.05–434.79MHz),默认固件可直接使用;切勿超出 CC1101 芯片官方频率范围(300–348MHz、387–464MHz、779–928MHz)操作,否则有损坏功放的风险。
- 测试前提:目录 README 未注明这些信号是否经过实机验证,建议在合法、可控的测试场景下验证每颗按键后再实际使用。
- 知识边界:本文所有参数均直接来自 Planet_Projector 目录 下
.sub文件与 README 的可验证内容;若你的投影仪为滚动码或其他协议版本,则需重新捕获。
【免费下载链接】FlipperPlayground (and dump) of stuff I make or modify for the Flipper Zero项目地址: https://gitcode.com/GitHub_Trending/fl/Flipper
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考