BLE Hid keyboard + volume

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
ChTs_3160931
Level 3
Level 3
10 replies posted 5 replies posted 5 questions asked

BLE HID Keyboard Exampleをベースにkey volume制御を追加(複合デバイス)したいです。

Configure BLE内でどのように追加したらいいでしょうか?

Profiles内の構成があまりよくわかっていません。

Report mapを追加してvolumeのReportを追加するだけでいいのでしょうか?

0 Likes
1 Solution

プロジェクトありがとうございます。

動作の確認はしていませんが、検証する余裕がないため一度クローズしたいと思います。

View solution in original post

0 Likes
7 Replies
Takashi_M
Moderator
Moderator
Moderator
1000 replies posted 500 solutions authored 750 replies posted

申し訳ございません。

現在、社内で確認しております。

確認終了次第、ご連絡申し上げます。

0 Likes
lock attach
Attachments are accessible only for community members.
Takashi_M
Moderator
Moderator
Moderator
1000 replies posted 500 solutions authored 750 replies posted

key volume制御の追加についてですが、

BLE HIDで、consumer control button(volume up/down) dataをHID Server Report mapに宣言する必要があります。

次に下記図の通り、volume report informationを追加してください。

Volume_control.PNG

これで、volume up/down機能がHIDに追加されます。

下記プロジェクトはHIDデバイスにkeyboard + consumer control buttons(volume up/down) を追加したサンプルプロジェクトになります。“BLE_HID_Keyboard”がベースのプロジェクトです。

一度参考にしてください。

0 Likes

参考に追加はしてみたのですが、動作できませんでした。

ハードの仕様がVolumeUpボタンを押すと1上がり、VolumeDownボタンを押すと1下がる仕様なのですが、

Report内にUSAGE(Volume Increment),USAGE(Volume Decrement)で記述しなければならないなどの制約はありますか?

0 Likes

回答が遅くなり、申し訳ございません。

お出ししたサンプルプロジェクトですが、再度確認したところ、Windows OSでのみ動作いたしませんでした。

ほかのOS (Android OS, Raspberry pi OS) の端末では動作しております。

現状、Windows OSで動作しないのか確認中です。

以上、宜しくお願い致します。

0 Likes

> ほかのOS (Android OS, Raspberry pi OS) の端末では動作しております。

こちらの現象も確認しております。

その後いろいろ試行錯誤して、windowsでも一応動作はさせることができました。

正しいかどうかはわかりませんので添付ファイルを参考にご確認頂ければと思います。

変更点としましては、KeyboardのレポートIDが0→1、Volume IncrementとDecrementを追加しました。

1.png2.png

0 Likes
lock attach
Attachments are accessible only for community members.

確認しました。

下記、英語で申し訳ございませんが、ご確認ください。

下記の中で、#1は既に変更された内容と認識しております。

1. Please change the input data 0x80 to 0x81 in the INPUT item in Report Map. Because INPUT item with 0x80 says that there is no data.

2. For an Input item: 0x1000 - 8d says it is input

                      0x00 nn says the size of the data

3. If nn is 1, 0x81 follows with one byte. When nn is 0, there should not be any byte after 0x80. In general, windows follows the spec strictly. This may be reason that 0x80 is not working in windows and working in other OS(Android, Raspberry pi).

4. Please refer to the attached BLE HID volume control project which works on Windows OS.

以上、宜しくお願い致します。

0 Likes

プロジェクトありがとうございます。

動作の確認はしていませんが、検証する余裕がないため一度クローズしたいと思います。

0 Likes