
“ Nintendo WavePhoenix 是一套完全开源、从零复刻任天堂 WaveBird 无线手柄接收器的项目,目标是用极低成本让市面上大量「只剩手柄、丢了接收器」的 WaveBird 重新满血复活。”

– 2.4 GHz RF 无线,无红外“对射”限制,官方 6 m、实测 20 m+ 稳定;
– 续航极长(2×AA 电池可达 100 小时);
遗憾的是,任天堂在十多年前就停止了 WaveBird 的生产,导致控制器,尤其是其接收器的存量日益减少,原装接收器价格已被炒到 50–80 USD。
WavePhoenix 是一套 “5 美元 DIY 复活 WaveBird” 的开源方案,把 20 年前的射频协议搬到现代芯片上,让老手柄再战 10 年。以下是 WavePhoenix 的核心亮点:
维度 | |
项目仓库:
https://github.com/loopj/wavephoenix
硬件
WavePhoenix 迷你接收器是一款小巧、低成本的 WaveBird 手柄接收器替代品。其设计目标是尽可能降低成本(零件成本约4美元)并简化制作过程。
该接收器使用了一款价格低廉的现成无线模块(RF-BM-BG22C3),您可以手动飞线连接,也可以将其焊接到定制的PCB上。

特性
完全兼容原版无线“Wavebird”手柄
像现代无线设备一样的单键虚拟配对功能
状态LED灯,用于指示配对状态和无线活动
通过蓝牙进行固件的空中下载(OTA)更新
开源的硬件和固件
提供3D打印外壳文件
制作指南
所需元件
装配完的 PCBA - (参见 PCB 部分)
3D打印外壳 - (参见 外壳 部分)
GameCube公头连接器
带预压端子线的JST-SH 4针连接器
1.5mm PMMA光纤线 或 直径1.5mm x 4mm的导光管
压线钳或电烙铁(取决于您使用的连接器类型)
组装步骤
制作 JST-SH 转 GameCube 连接器线缆 - (参见 线缆 部分)
刷写固件 - (参见 首次刷写固件 部分)
将GameCube连接器插入外壳,直到听到“咔”的一声卡入到位。
将JST-SH连接器连接到PCB上。
将PCB插入外壳,确保LED和开关与外壳上的孔对齐,它应该会“咔”的一声卡入到位。
将导光管插入外壳前部的小孔中。如果使用PMMA光纤作为导光管,请先将其剪裁至合适尺寸(4mm)。
将3D打印的按钮插入外壳前部的大孔中。
将外壳的前盖和后盖合上。
PCB (印刷电路板)
WavePhoenix 迷你接收器 PCB 是一个简单的转接板,用于承载 RF-BM-BG22C3 模块、一个轻触开关、一个状态LED以及一个用于连接GameCube手柄端口的连接器。
物料清单 (BOM)
1x RF-BM-BG22C3 模块
1x 0805 绿色 LED
1x 5x5mm 轻触开关
1x 4针 JST-SH 连接器
1x 0402 100Ω 电阻 (可根据需要调整)
1x 0402 10uF 电容
1x 0402 0.1uF 电容
手工焊接
所有元件都应该可以手工焊接,最小的元件是 0402 封装的电容和电阻。如果您觉得焊接电容有困难,可以省略它们,但建议还是焊上。 我建议使用放大设备,并首先焊接 RF-BM-BG22C3 模块,因为一旦电容焊好后,模块就很难焊接了。
外壳
接收器的3D打印外壳文件可以在 case
目录下找到。该外壳设计用于容纳组装好的PCB,并为GameCube连接器预留了插槽。 建议按以下方向打印各个部件:

线缆
虽然我们使用的是 4 针的 JST-SH 连接器,但接收器实际上只需要 3 根线。在下面的照片中,黑线是地线,红线是电源线,蓝线是数据线。然而,预制JST线缆的颜色差异很大,所以请务必核对引脚定义,不要依赖照片中的线缆颜色。
JST-SH 连接器上的引脚 1 由连接器外壳上的一个小三角标记指示。在我下面的照片中,我移除了 JST-SH 连接器引脚 4 上未使用的线,但如果您愿意,也可以保留它。
首先,将 JST-SH 连接器线缆的电线剪短至 30 mm:

剥去线头约 1mm 的绝缘层,然后将电线压接到 GameCube 连接器的针脚上。

将压接好的针脚按以下位置插入GameCube连接器外壳:

每个针脚上的“翅膀”应朝向插头的中心,针脚应一直插入直到听到“咔”的一声卡入到位。
接下来,我们需要剪掉并锉平 GameCube 金属外壳上的线缆固定片:

最后,我们可以将塑料连接器插入金属外壳中:

完成后的组件应如下所示:

首次刷写固件
📝 注意
一旦您刷写了引导加载程序(bootloader),之后就可以使用蓝牙 OTA 更新来刷写未来的固件更新了!
WavePhoenix 接收器上运行着两个软件:引导加载程序(bootloader)和应用程序固件(application firmware)。引导加载程序允许我们通过蓝牙刷写未来的应用程序更新,而应用程序固件是处理 Wavebird 手柄通信的程序。
您可以在rf-bm-bg22c3
版本。
首次刷写固件需要一个调试探针(debug probe)和一些特殊软件。如果您的WavePhoenix板已经刷写了引导加载程序,可以跳过这一部分。
调试探针
您需要一个 SWD 调试探针来将初始固件刷写到接收器上。调试探针连接到接收器的 SWD 引脚,让您可以使用 OpenOCD 来刷写固件。 如果您还没有支持 SWD 的调试探针,可以用一个树莓派 Pico 来制作。关于如何使用树莓派 Pico 制作调试探针的说明可以在附录中找到。
引脚定义
如果您要刷写的是已组装好的迷你接收器板,SWD 引脚有两个位置可以连接:板子背面的焊盘,以及通过 4 针的 JST-SH 连接器。

JST-SH连接器的引脚定义如下:

OpenOCD
要刷写固件,您需要安装 Arduino 的 OpenOCD 分支版本,该版本增加了对 EFR32 Series 2 SoC 的支持。 预编译的二进制文件适用于
刷写步骤
安装好 OpenOCD 后,您可以使用以下命令来刷写引导加载程序和应用程序固件:
擦除设备
首先我们需要进行一次完整的设备擦除:
# Linux / macOS
openocd -f "interface/cmsis-dap.cfg" \
-f "target/efm32s2.cfg" \
-c "init; efm32s2_dci_device_erase; shutdown"
# Windows (PowerShell)
openocd.exe -f "interface\cmsis-dap.cfg"
-f "target\efm32s2.cfg"
-c "init; efm32s2_dci_device_erase; shutdown"
⚠️ 重要提示
在进行下一步之前,请断开调试探针与接收器的连接,然后再重新连接。
刷写引导加载程序 (bootloader)
然后我们可以刷写引导加载程序:
# Linux / macOS
openocd -f "interface/cmsis-dap.cfg" \
-c "transport select swd" \
-f "target/efm32s2.cfg" \
-c "init; halt; flash write_image erase bootloader.hex; exit"
# Windows (PowerShell)
openocd.exe -f "interface\cmsis-dap.cfg" `
-c "transport select swd" `
-f "target\efm32s2.cfg" `
-c "init; halt; flash write_image erase bootloader.hex; exit"
💡 提示
从现在开始,您就可以使用蓝牙 OTA 更新来刷写新的应用程序固件了!
刷写应用程序
既然设备已经连接好了,我们也可以用 SWD 来刷写接收器应用程序:
# Linux / macOS
openocd -f interface/cmsis-dap.cfg \
-c "transport select swd" \
-f target/efm32s2.cfg \
-c "init; halt; flash write_image erase receiver.hex; exit"
# Windows
openocd.exe -f interface\cmsis-dap.cfg `
-c "transport select swd" `
-f target\efm32s2.cfg `
-c "init; halt; flash write_image erase receiver.hex; exit"
现在您应该拥有一个功能齐全的 WavePhoenix 接收器了!
使用方法
配对
WavePhoenix接收器使用“虚拟配对”,而非原版“波鸟”手柄的频道滚轮。要开始配对,请按一下接收器上的配对按钮。板载LED将开始闪烁,表示接收器已进入配对模式。在“波鸟”手柄上按住 X + Y 键即可与接收器配对。配对成功后,LED将停止闪烁并保持常亮。
进入引导加载模式 (Bootloader Mode)
您可以通过两种方式进入用于OTA更新的引导加载模式:
按住配对按钮超过3秒,直到LED熄灭。
在插入接收器时按住配对按钮。
升级固件
您总能在 GitHub 的 .gbl
文件,以及用于通过SWD刷写的 .hex
文件。
迷你接收器使用 rf-bm-bg22c3
版本的固件,这是专门为 RF-BM-BG22C3 模块设计的。
使用 WavePhoenix 网页应用
如果您的电脑有蓝牙功能或您有安卓手机,可以在谷歌Chrome浏览器中使用
使用 WavePhoenix 命令行工具
如果您的电脑有蓝牙功能,也可以使用
wavephoenix flash firmware.gbl
使用 Simplicity Connect 应用
另一个选择是使用
通过SWD刷写
您也随时可以像首次刷写固件部分描述的那样,使用SWD来重新刷写固件。
附录
Pi Pico 调试探针
如果您有树莓派Pico,可以将其用作调试探针来刷写 WavePhoenix 固件。Pico是一款低成本(约4美元)的微控制器板,可以与OpenOCD配合用作调试探针。
从debugprobe_on_pico.uf2
文件,然后将该文件拖放到Pico的USB驱动器中来刷写。刷写固件后,Pico就可以作为调试探针与OpenOCD一起使用了。
以下是用于SWD编程的引脚定义:


扫码加入资料分享群,定期分享硬件资料

如何学习四轴飞行器,有这套资料就足够了!(文末免费分享四轴飞行器相关资料合集)
电子硬件工程师如何从零开始学习?(文末免费分享从零开始学习资料)
电路原理图设计流程与注意事项(免费分享26套原理图设计资料合集)
如何学好电路设计?(文末分享电路设计资料合集)
开关电源的工作原理(文末免费分享开关电源资料合集)
学习射频和天线有这套资料就够了!(文末可免费领取)
1000+例各类获奖电赛作品资料集(电路篇、代码篇、教程篇文末免费领取)
分享嵌入式初级工程师全套学习资料包
分享100+套机器人设计资料(文末可免费领取)
免费分享Arduino入门+进阶(全套例程+书籍)
从入门到提升,嵌入式linux常用电子书教程合集分享
凝聚全网精品的电源工程师必备资料合集
LabVIEW的详细简介和应用(文末免费分享LabVIEW相关资料合集)
信号与系统是什么?(文末免费分享16G+信号与系统资料含大量视频教学)
