自作の携帯ゲーム機に機能を足そうとすると、たいていは基板を引き直すことになる。ボタンを増やす、センサーをつなぐといった小さな変更でも、設計から発注までやり直すのは重い。
K0eg氏が公開した「hackxpansion」は、その作り直しを避けるために拡張スロットを備えた携帯ゲーム機だ。モジュールとの接続には2×7の2.54mmピッチヘッダーを使う。ピッチが広いので専用基板を起こす必要はなく、ユニバーサル基板で組んでもいいし、ジャンパーワイヤーを直接差し込んでもいい。
差したモジュールを本体が見分ける方法にも工夫がある。各モジュールには抵抗が2本入っていて、本体に挿すとそれぞれが分圧回路の上側の抵抗として働く。本体の12ビットのAD変換器が分圧後の電圧を測り、その値から接続されたモジュールを判定して、起動時に対応するドライバーを読み込む。専用の通信も認識用のICも要らない。
ファームウェアはRustで書かれ、非同期処理にembassy、画面のUIにslint-uiを使う。新しいドライバーやアプリは外部クレート(Rustのパッケージ)として追加できる構造で、アプリ側はどのドライバーに依存するかを宣言する。必要なモジュールが挿さっていないアプリは、アプリ一覧に出てこない。
本体はRaspberry Piが設計したマイコンRP2354Bを載せ、対角2インチ(約51mm)の240×320のST7789パネルを備える。バッテリーでの動作時間は使用中で約6時間だとする。基板はKiCADで設計した4層のメインボードとドーターボードの2枚構成で、JLCの標準プロセスに合わせている。ケースはAutodesk Fusionで作り、寸法をパラメーターで変えられるファイルを同梱する。標準のスロットは2つで、同氏はスロットを2つ増やす背面アタッチメントを製作中だが、部品を入れた荷物が輸送中に見当たらなくなったとしている。NESエミュレーターの移植も試したが、十分な速度が出るRust製の実装が見つからず、平均12FPSにとどまったという。
同氏はHack Clubと組み、13歳から18歳を対象にしたプログラムを2026年8月3日から8月31日まで実施する。モジュールを4つ設計すると製作費の支援を受けられ、本体を無償で受け取れる仕組みだ。ライセンスはGPL-3.0で、基板データもケースのモデルもリポジトリで公開されている。ハードウェアとソフトウェアの両方を触りながら拡張の仕組みを学びたい人に向く作りだろう。