“Nintendo WavePhoenix 是一套完全開源、從零復刻任天堂 WaveBird 無線手柄接收器的項目,目標是用極低成本讓市面上大量「只剩手柄、丟了接收器」的 WaveBird 重新滿血復活。”
概覽原版 WaveBird(2002 年上市)被公認為 GameCube 時代最佳無線手柄之一:– 2.4 GHz RF 無線,無紅外“對射”限制,官方 6 m、實測 20 m+ 穩(wěn)定;
– 續(xù)航極長(2×AA 電池可達 100 小時);
遺憾的是,任天堂在十多年前就停止了 WaveBird 的生產,導致控制器,尤其是其接收器的存量日益減少,原裝接收器價格已被炒到 50–80 USD。
WavePhoenix是一套 “5 美元 DIY 復活 WaveBird” 的開源方案,把 20 年前的射頻協(xié)議搬到現(xiàn)代芯片上,讓老手柄再戰(zhàn) 10 年。以下是 WavePhoenix 的核心亮點:
|
維度 |
說明 |
| 協(xié)議實現(xiàn) | 完整逆向并重寫了 WaveBird 私有協(xié)議(15-chip DSSS + BCH 糾錯),兼容原裝手柄。 |
| 芯片平臺 | Silicon Labs EFR32BG22(Wireless Gecko SoC),淘寶/得捷 3–4 USD 就能買到。 |
| 硬件方案 | 開源 PCB(KiCad/Gerber),1/3 原廠接收器體積; |
| 功能特性 | 虛擬配對:手柄 X+Y 即可自動掃描 16 個頻道,不再需要撥輪; |
| 成本 | 物料 BOM < 5 USD;全套開源,可自己下單打板或購買社區(qū)成品。 |
項目倉庫:
https://github.com/loopj/wavephoenix
硬件
WavePhoenix 迷你接收器是一款小巧、低成本的 WaveBird 手柄接收器替代品。其設計目標是盡可能降低成本(零件成本約4美元)并簡化制作過程。
該接收器使用了一款價格低廉的現(xiàn)成無線模塊(RF-BM-BG22C3),您可以手動飛線連接,也可以將其焊接到定制的PCB上。

特性
-
完全兼容原版無線“Wavebird”手柄
-
像現(xiàn)代無線設備一樣的單鍵虛擬配對功能
-
狀態(tài)LED燈,用于指示配對狀態(tài)和無線活動
-
通過藍牙進行固件的空中下載(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 模塊、一個輕觸開關、一個狀態(tài)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 根線。在下面的照片中,黑線是地線,紅線是電源線,藍線是數(shù)據線。然而,預制JST線纜的顏色差異很大,所以請務必核對引腳定義,不要依賴照片中的線纜顏色。
JST-SH 連接器上的引腳 1 由連接器外殼上的一個小三角標記指示。在我下面的照片中,我移除了 JST-SH 連接器引腳 4 上未使用的線,但如果您愿意,也可以保留它。
首先,將 JST-SH 連接器線纜的電線剪短至 30 mm:

剝去線頭約 1mm 的絕緣層,然后將電線壓接到 GameCube 連接器的針腳上。

將壓接好的針腳按以下位置插入GameCube連接器外殼:

每個針腳上的“翅膀”應朝向插頭的中心,針腳應一直插入直到聽到“咔”的一聲卡入到位。
接下來,我們需要剪掉并銼平 GameCube 金屬外殼上的線纜固定片:

最后,我們可以將塑料連接器插入金屬外殼中:

完成后的組件應如下所示:

首次刷寫固件
注意
一旦您刷寫了引導加載程序(bootloader),之后就可以使用藍牙 OTA 更新來刷寫未來的固件更新了!
WavePhoenix 接收器上運行著兩個軟件:引導加載程序(bootloader)和應用程序固件(application firmware)。引導加載程序允許我們通過藍牙刷寫未來的應用程序更新,而應用程序固件是處理 Wavebird 手柄通信的程序。
您可以在這里(https://github.com/loopj/wavephoenix/releases/latest)找到最新的引導加載程序和固件。迷你接收器需要使用固件的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 的支持。 預編譯的二進制文件適用于Windows、macOS和Linux。 該分支的源代碼可在GitHub上找到(https://github.com/facchinm/OpenOCD/tree/arduino-0.12.0-rtx5)。
刷寫步驟
安裝好 OpenOCD 后,您可以使用以下命令來刷寫引導加載程序和應用程序固件:
擦除設備
首先我們需要進行一次完整的設備擦除:
# Linux / macOSopenocd-f"interface/cmsis-dap.cfg"-f"target/efm32s2.cfg"-c"init; efm32s2_dci_device_erase; shutdown"
# Windows (PowerShell)openocd.exe-f"interfacecmsis-dap.cfg"-f"targetefm32s2.cfg"-c"init; efm32s2_dci_device_erase; shutdown"
重要提示
在進行下一步之前,請斷開調試探針與接收器的連接,然后再重新連接。
刷寫引導加載程序 (bootloader)
然后我們可以刷寫引導加載程序:
# Linux / macOSopenocd-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"interfacecmsis-dap.cfg"`-c"transport select swd"`-f"targetefm32s2.cfg"`-c"init; halt; flash write_image erase bootloader.hex; exit"
提示
從現(xiàn)在開始,您就可以使用藍牙 OTA 更新來刷寫新的應用程序固件了!
刷寫應用程序
既然設備已經連接好了,我們也可以用 SWD 來刷寫接收器應用程序:
# Linux / macOSopenocd -f interface/cmsis-dap.cfg-c"transport select swd"-f target/efm32s2.cfg-c"init; halt; flash write_image erase receiver.hex; exit"
# Windowsopenocd.exe-finterfacecmsis-dap.cfg `-c"transport select swd"`-ftargetefm32s2.cfg `-c"init; halt; flash write_image erase receiver.hex; exit"
現(xiàn)在您應該擁有一個功能齊全的 WavePhoenix 接收器了!
使用方法
配對
WavePhoenix接收器使用“虛擬配對”,而非原版“波鳥”手柄的頻道滾輪。要開始配對,請按一下接收器上的配對按鈕。板載LED將開始閃爍,表示接收器已進入配對模式。在“波鳥”手柄上按住X + Y鍵即可與接收器配對。配對成功后,LED將停止閃爍并保持常亮。
進入引導加載模式 (Bootloader Mode)
您可以通過兩種方式進入用于OTA更新的引導加載模式:
-
按住配對按鈕超過3秒,直到LED熄滅。
-
在插入接收器時按住配對按鈕。
升級固件
您總能在 GitHub 的latest release頁面找到最新的接收器固件。固件提供兩種格式:用于OTA更新的.gbl文件,以及用于通過SWD刷寫的.hex文件。
迷你接收器使用rf-bm-bg22c3版本的固件,這是專門為 RF-BM-BG22C3 模塊設計的。
使用 WavePhoenix 網頁應用
如果您的電腦有藍牙功能或您有安卓手機,可以在谷歌Chrome瀏覽器中使用WavePhoenix 網頁應用來刷寫固件。
使用 WavePhoenix 命令行工具
如果您的電腦有藍牙功能,也可以使用WavePhoenix 命令行工具來刷寫固件:
wavephoenixflash firmware.gbl
使用 Simplicity Connect 應用
另一個選擇是使用Simplicity Connect 移動應用來刷寫固件。
通過SWD刷寫
您也隨時可以像首次刷寫固件部分描述的那樣,使用SWD來重新刷寫固件。
附錄
Pi Pico 調試探針
如果您有樹莓派Pico,可以將其用作調試探針來刷寫 WavePhoenix 固件。Pico是一款低成本(約4美元)的微控制器板,可以與OpenOCD配合用作調試探針。
從Raspberry Pi Debug Probe 倉庫下載最新的debugprobe_on_pico.uf2文件,然后將該文件拖放到Pico的USB驅動器中來刷寫。刷寫固件后,Pico就可以作為調試探針與OpenOCD一起使用了。
以下是用于SWD編程的引腳定義:
?-
射頻
+關注
關注
106文章
6006瀏覽量
173444 -
PCB設計
+關注
關注
396文章
4920瀏覽量
95214 -
任天堂
+關注
關注
0文章
227瀏覽量
19814 -
開源
+關注
關注
3文章
4200瀏覽量
46107
發(fā)布評論請先 登錄
MAX77950:WPC/PMA雙模無線電源接收器的卓越之選
深入剖析SNx5LVDx3xx高速差分線路接收器
STWLC89:30W無線功率接收器的技術解析
STWLC38JRM:高效15W無線充電接收器的卓越之選
基于芯嶺技術XL2417D和XL2417U芯片的2.4G無線鍵鼠解決方案
SNx5LVDx3xx 高速差分線路接收器:設計與應用全解析
深入解析SNx5LVDx3xx系列高速差分線路接收器
SNx5LVDS3xxxx高速差分線路接收器:設計與應用指南
MAX207:5V多通道RS - 232線路驅動器/接收器的全面解析
TPD12S520:HDMI 接收器端口的理想保護與接口解決方案
?STWLC99 100W無線電源接收器技術解析與應用展望
GPS 接收器 IC skyworksinc
LE 發(fā)射器和接收器測試返回錯誤結果是什么原因導致的?
+5V供電的RS-232發(fā)射器/接收器HIN232數(shù)據手冊
WavePhoenix:從零復刻任天堂 WaveBird 無線手柄接收器 5美元DIY復活WaveBird開源方案
評論