X68000キーボードコンバータを使って、STM32F4で使えるUSBマウスを調べてみる


X68000用のキーボードコンバータをいくつも作ってきましたが、完成形に近づいたので作るのを止めようと思います。
X68000Zでは専用のキーボードとマウスが出るようなので、そちらに期待することにします。
とはいっても、そもそもX68000Zが手に入らないかもしれないんですけどね...。
転売ヤーにとっては格好の獲物ですから。

本題に入りますが、STM32F4のUSB HIDドライバはかなり作りが甘く、デスクリプタを解析せずにレポート位置を固定で情報取得しています。
したがって、かなり初期のUSBマウスであれば使用できるのですが、ホイール付きの5ボタンマウスは使用できないようです。
そこで、手持ちのUSBマウスを使い、使えるマウスと使えないマウスを調べてみます。


(1) マイクロソフトマウス
 昔Amazonで買った奴です。数百円だったと思うので、純正ではないかもしれません。
 2ボタンとホイールだけなので、問題なく使えました。

(2) マイクロソフトマウス
 これは純正です。結構数が出たので、一時は秋葉原でジャンク300円で大量に売っていました。
 認識しなくなったり物理的に壊れたものは処分したので、残っているのはこれ1個です。
 2ボタンとホイールだけなので、問題なく使えました。

(3) BAFFALO 有線マウス
 普通の有線マウスです。
 2ボタンとホイールだけなので、問題なく使えました。
 他にも白色も持っているのですが、問題なく使えました。

(4) マイクロソフトマウス
 (1)、(2)よりも小型のマウスです。
 2ボタンとホイールだけなのにうまく動作せず、高速に上下移動しかできません。

(5) BAFFALO 5ボタン優先マウス
 やはり、うまく動作しません。

(6) 中華マウス
 派手なLEDのマウスです。うまく動作しません。

(7) 中華マウス
 見た目は格好良いマウスです。しかし、うまく動作しません。


HIDレポートを確認してみると、動作するマウスは [ボタン][X][Y] となっていますが、操作しないマウスはこのフォーマットに従っていませんでした。
そりゃ、動作しませんね。
ただ、独自で勝手にデスクリプタを構築しているのかと思ったのですが、大体似たようなレポート形式だったため、5ボタンUSBマウスでも動作するようにSTM32のUSB HID マウスライブラリを改変してみました。

【USB HID標準マウスレポート形式】
[---- -CRL] [xxxx xxxx] [yyyy yyyy]
ボタン X座標 Y座標

【5ボタンUSBマウスレポート形式】
[0000 0001] [---- -CRL] [xxxx xxxx] [xxxx yyyy] [yyyy yyyy] [hhhh hhhh]
レポートID ボタン X座標 Y座標 ホイール

※この改変を行ったからといって全てのUSBマウスが使える訳ではありません。


改変の結果、(4)と(6)のマウスは使えませんでしたが、(5)と(7)のマウスは使えるようになりました。
もちろん、(1)、(2)、(3)も使用できます。

ということで、じわっと光るLED版のX68000キーボードコンバータのソースコードに反映しました。

















戻る