小ネタ 2007-008
Wiiクラシックコントローラーとヌンチャクの中身の互換性
Wiiリモコンの拡張コントローラーの「クラシックコントローラー」と「ヌンチャク」を調べてみたところ、中身に互換性があるということが分かった。
1. 分解調査
クラシックコントローラーとヌンチャクを分解して調べてみたところ、両者ともにコントローラーの制御用のICとして「FNURVL」という型番のICが使われていた。
クラシックコントローラーの基板の"FNURVL"と、ヌンチャクの基板の"FNURVL"
同じICが使われていることから推測すると、このICはワンチップマイコンで、コントローラー基板の製造後にファームウェアを書き込んで、ヌンチャク基板のICはヌンチャク版ファームウェアを書き込んだFNURVLになり、クラシックコントローラー基板はクラコン版ファームウェアになるのだと予想していた。以下、実験で色々と調べてみたのだが、実はもうちょっと複雑な仕掛けになっていることが分かった。
2. ヌンチャクとクラシックコントローラーのICの交換
それぞれのコントローラー基板からFNURVLを取り外して、入れ替えて再度ハンダ付けして実装してみた。
結果、
・ヌンチャク基板に、クラシックコントローラー基板から取り外したFNURVLを実装したものは、ヌンチャクとしてWiiに認識された。
・クラシックコントローラー基板に、ヌンチャク基板から取り外したFNURVLを実装したものは、クラシックコントローラーとしてWiiに認識された。
ただし、センサーのキャリブレーション値がずれるせいか、IC交換したヌンチャクの加速度センサは正常に動作しなかった。
この結果から、FNURVLというICには、ヌンチャク用のファームウェアとクラシックコントローラー用のファームウェアの2つともあらかじめ書き込まれていると予想される。ファームウェアの切り替えは、基板上の配線でどちらかに切り替わるのだろう。
3. ヌンチャクとクラシックコントローラーの回路を調べてみる
基板上のどこで切り替えが行われているか調べてみた。
結果、FNURVLの36番ピンで切り替えしていることが分かった。
FNURVL 36pin → H (high, +3.3V) の場合、クラシックコントローラーになり、
FNURVL 36pin → L (low, GND) の場合、ヌンチャクになる。
実際に、ヌンチャクの基板を加工して36pinをHにすると、クラシックコントローラーとしてWiiに認識された。
クラシックコントローラーの基板を加工して36pinをLにすると、ヌンチャクとしてWiiに認識された。
ただし、両者は、ボタンやスティックの回路が異なるため、コントローラー自体の動作は、当然、正常に動作しない。
FNURVLのピンを調べたメモを書いておく。推測なので、あまり当てにしないように。
pin1 - i2c SCL
pin2 - i2c SDA
pin3..pin17 - Digital Input
pin18..pin19 - TEST
pin20..pin22 - ??? (for debug??)
pin23 - Vcc
pin24 - GND
pin25..pin32 - Analog Input
pin33 - output?
pin34..pin39 - Digital Input
pin40 - RESET
pin41 - ???
pin42..pin43 - TEST
pin44..pin45 - TEST?
pin46 - Capacitor
pin47 - GND
pin48 - Vcc
4. ヌンチャクの部品を改造してクラシックコントローラー互換品を製作する
ヌンチャクから取り外したFNURVLを使用して、コントローラーの回路を真似て実際に作ってみたところ、動作するものができた。
ヌンチャクを材料にしてクラシックコントローラーっぽいものを製作することが可能である。
作製した基板
5. WiiのVC用ジョイスティックを製作する
上記と同様にFNURVLを使って、VC用にジョイスティックを作ってみた。
素材として、SFC用のジョイスティックを使っており、機能はデジタルPad機能のみ。
Wiiリモコンの拡張ポートに接続すると、クラシックコントローラーとして認識される。
WiiのVCのストリートファイター2(SFC)で試してみて、正常に機能しているのを確認した。
作製したジョイスティック
6. FNURVL自作クラシックコントローラー/自作ジョイスティックの配線メモ
・Memo for My Classic Controller/Joystick (w/FNURVL)
pin6 - Left Trigger
pin7 - (BACK)
pin8 - HOME
pin9 - START
pin10 - Right Trigger
pin12 - Z Left Trigger
pin13 - B Button
pin14 - Y Button
pin15 - A Button
pin16 - X Button
pin17 - Z Right Trigger
pin27..pin28 - (Analog Trigger Input)
pin29..pin32 - (Analog Stick Input)
pin34 - LEFT
pin35 - UP
pin38 - RIGHT
pin39 - DOWN
7. ヌンチャクの配線メモ
・Memo for Nunchaku Controller
pin10 - C Button
pin11 - Z Button
pin28..pin30 - 3Axis Acceleration Sensor Input
pin31..pin32 - Analog Stick Input
--
クラシックコントローラー、ヌンチャク用の配線の未使用のピンはVccにつなげておく。
pin5、pin20..pin22、pin33は未接続でOK。
(後日加筆 2008.4.19)
クラブニンテンドーの景品のSFCコントローラー型のクラシックコントローラーを入手したので、中身を見てみた。使われているICはFNURVL。
(後日加筆 2009-03)
Related