なるほどえたきちのブログじゃねーの

チラ裏雑記帳

ポケモン過去作の解析とか乱数調整とかそこら辺。不定期更新。

【Nintendo Switch】CH552-SERIALを使用した自動化環境の構築

私の製作したマイコンボードCH552-SERIALを使用して、NX Macro ControllerやPoke-Controllerの実行環境を構築する為のガイドです。
ハード側の環境構築のみになりますので、各種ソフトのインストール等はそのソフトのガイドを参照してください。
前置きがかなり長くなってしまったのでめんどくさかったら飛ばしてください...。

前置き



ポケモン剣盾の発売を皮切りにNintendo Switch(以下Switch)の自動化が流行し、Arduino等のマイコンボードの需要が高くなっています。
しかし、昨今の半導体不足によりArduinoに搭載されているマイコンチップの供給が不安定になり、剣盾発売当時と比較して2-3倍程度価格が高騰している状態です。
Switchの自動化だけでなく、マイコンを使用した電子工作全般に影響が出ているので正直困りますね。
マイコンを使用した製品を作ろうにも原価が跳ね上がりすぎて初期費用で怖じ気づいてしまいます...。

この状況をどうにかすべく、似たような感じの機能で安く買えるマイコンがあればいいなと思って色々と調査してみました。

有名所だとRaspberry Pi Picoで使用されているRP2040が価格の割にとても高性能で魅力的なのですが、外部にフラッシュメモリ水晶振動子が必要な点や、ICのパッケージの都合上手作業でのリフロー時にブリッジが発生しやすいことから手軽に使えるものではないなと思いました。
但し、従来のマイコンチップでは難しい高速処理が行える為、用途によっては充分に選択肢になり得ますね。

また、ESP32というマイコンも人気が高くなってきています。
こちらも価格の割に高性能なマイコンで、無線通信にも対応していて結構面白そうなのですが、Bluetoothを搭載しているという都合上製品での利用は少しハードルが高いなという印象です。

さて、ここ最近の話ですが、半導体不足による様々なICチップの品薄が相次ぎ、手に入りづらくなったICチップの代替品として中国メーカーによる互換ICが出回るようになりました。
マイコンも例外ではなく、STMマイコンの互換品などは結構目にするようになりました。

既存マイコンの互換品が作れるのならオリジナルのマイコンも色々作れるのでは?と思い調べた所、STMマイコンの互換品を作っているWCHというメーカーから、CH552というマイコンが販売されていることを知りました。
USBデバイスの作成やシリアル通信も可能とのことで、Switch自動化においてはこれをそのまま使用できそうだなという結論に至りました。
有志が制作したライブラリを使用することでArduino IDEでの開発も可能というおまけ付きです。
スペック上はこれの廉価版であるCH551でも可能そうですが、ROM領域が少し小さいのでCH552の方を使用しています。
更に上のグレードのCH554やCH559といったマイコンも存在しますが、そちらについては今回は触れません。

必要なもの


プログラムの書き込み



こちらから"CH55xSwitchSerialControl.ino.hex"をダウンロードします。
github.com

こちらからWCHISPToolをダウンロードします。
最新版でUIが大幅に変更されましたが、動作が不安定なので旧verのダウンロードリンクを載せています。
https://cdn.discordapp.com/attachments/671698808140464158/1044979116572680262/WCHISPTool_Setup.exe

"WCHISPTool_Setup.exe"を起動し、WCHISPToolをインストールして起動します。
また、起動後は画像の通りに設定を変更します。
"User File"は先程ダウンロードした"CH55xSwitchSerialControl.ino.hex"を参照するようにしてください。

CH552-SERIAL基板上のスイッチを押しながらType-Aオス端子側をPCに接続します。

WCHISPTool側に"MCU mode:CH552"といった表示がされたら、その下のDownloadボタンを押します。
特にエラーが出なければ書き込みは成功です。

以上の手順でNX Macro ControllerやPoke-ControllerでのSwitch自動化に使用できるマイコンが作成できます。
CH552-SERIALのType-Cメス端子とPCを接続し、Type-A端子をSwitchに接続すれば配線は完了です。

使用する自動化ツールのガイドに合わせてPC側の設定を行い、Switch側での動作が確認できれば導入は成功です。