HB-F500 で USB無線キーボードを使う
HB-F500では付属のキーボードを持ってなくて、PS/2変換器を使っていたのだけど、X68やPC98でUSB変換器を一部導入したのに合わせ、HB-F500のもUSB変換器にしたくなった。
PS/2変換 USB変換
HRA!さん(@thara1129)が Raspberry Pi Pico を使った変換器を公開してくれています。感謝!
・usb_keyboard_bridge_for_msx (msx_tools) GitHub
※自分でビルドせずに、とりあえず 無線キーボードに対応したHB-F500用のバイナリ(uf2)が欲しい人は「2.USB無線キーボード対応」にあるファイルをダウンロードしてください。
1.HB-F500用にビルド
公開されてるビルド済みのファームウェアはHB-F500では使えないので設定を変えて自分でビルドします。
こちらのプログを参考にさせてもらいました。と言うか同じことやってます。
・KZ80-USBKBD用 RaspberryPi Picoオブジェクトビルド方法 KUNINET BLOG
環境はWindows 11 で Microsoft Store からインストールした Ubuntu 22.04.5 LTSです。
コンパイラ等のインストール
sudo apt install cmake gcc-arm-none-eabi libnewlib-arm-none-eabi build-essential
※詳細は詳しいサイトがいっぱいあるのでそちらで。。
msx-tools のソースを取得
git clone https://github.com/hra1129/msx_tools.git
ソースをHB-F500用に修正
usb_keyboard_bridge_for_msx.c (msx_tools/usb_keyboard_bridge_for_msxフォルダ内)のパラメータをテキストエディタで以下のように修正
#define MSX_KEYMATRIX_ROW_TYPE 2
pico-SDK と cmake環境用にサンプルの取得
とりあえずSDKのバージョンが判るようにフォルダ作って バージョンを指定して取得
mkdir pico_sdk120
cd pico_sdk120
git clone --recursive https://github.com/raspberrypi/pico-sdk.git -b 1.2.0 --depth 1
git clone https://github.com/raspberrypi/pico-examples.git -b sdk-1.2.0 --depth 1
ビルド環境を作ってサンプルファイルをビルドしてみる
cd pico-examples
mkdir build
cd build
export PICO_SDK_PATH=../../pico-sdk
cmake ..
cd blink
make -j4
フォルダ(blink)内に blink.uf2 が出来ていればOK
usb_keyboard_bridge_for_msx のビルド環境の設定
ソースを pico-example にコピー
cd ~/pico_sdk120/pico-examples
cp -a ~/msx_tools/usb_keyboard_bridge_for_msx .
テキストエディタでpico-examples の中の CMakeLists.txt に下記を追記(一番最後で良い)
add_subdirectory(usb_keyboard_bridge_for_msx)
Makefileを作ってビルドする
cd ~/pico_sdk120/pico-examples/build
make rebuild_cache
cd usb_keyboard_bridge_for_msx
make -j4
フォルダ(usb_keyboard_bridge_for_msx)内に、usb_keyboard_bridge_for_msx.uf2 が出来るので、Pico のボタンを押しながら USBケーブルを接続して、出てくるストレージに usb_keyboard_bridge_for_msx.uf2 をコピーすると、ストレージが自動的に切断され書き込み完了。
2.USB無線キーボード対応
usb_keyboard_bridge_for_msx フォルダ内の readme.txt にあるように、無線キーボードのUSBレシーバーは使えませんでした。調べてみると tinyusbを新しいバージョンにすれば使えそう、と言うことでソースを最新のライブラリ用に書き換えてビルドしたところ、USB無線キーボードが使えるようになりました。
変更したソースとバイナリはこちら。usb_keyboard_bridge_for_msx.uf2 は HB-F500用になっているので HB-F500では そのまま使えます。
・usb_keyboard_bridge_for_msx mod.zip
自分でビルドしたい場合は、上の手順でライブラリの取得バージョンを下記のように 2.1.0 にして、ダウンロードしたソースファイルを同じようにビルドしてください。
git clone --recursive https://github.com/raspberrypi/pico-sdk.git -b 2.1.0 --depth 1
git clone https://github.com/raspberrypi/pico-examples.git -b sdk-2.1.0 --depth 1
その他に自分で使いやすいように少し改造してあります。
・Num Lock(または Scroll Lock) で keymap_1st.h と keymap_2nd.h のキー設定が切り替わる
普段、テンキーがないキーボードを使っているので Num Lock(または Scroll Lock)で文字通り、Num Lock配列(っぽく)なるようにしてあります。
まぁ、好みでキーマップは変更してビルドしてください。
※十分にテストしたわけではないので意図しない動作になるかもしれません。また、HB-F500以外での動作確認はできていません。
コメント
コメントを投稿