準備は整ったので、いよいよ実際にBM20を動かしてみます。もともとBM20はサウンドバーとかスピーカー・フォンのような民生機器に用いられることを意識したモジュールなので、制御マイコン無しでも電源を入れてやるだけでBlueoothスピーカとして十分な機能を提供してくれます。
電源を入れる前に、まずDIP SWの設定を行っておきます。PIN1とPIN2をOFF, PIN3をONにしてやることで、BM20のP20, P24, EANの各端子を全てHighにして電源を入れることで、通常動作モードで起動します。実験ボード上にはLED1とLED2の2つのLEDが実装されています。ADP_INに5Vを入れてやるとLED2がしばらく点灯して、消えました。この状態では、接続された電池への充電機能は動くものの、Bluetooth部分はオフになっているようです。
BM20評価ボードのマニュアルによると、
ボタンへの機能割り当てやLEDの点滅パターン、トーンの種類はUI ToolというWindowsアプリでモジュール内に内蔵されているEEPROMの設定内容を変更することで、設定変更できるようです。またいくつかのイベントはトーンでの通知の代わりに音声ガイド(中/英/仏/西の4ヶ国語対応)での通知にも変更できるようです。ディフォルトでは音声ガイドは無く、トーン通知だけのようですので、後ほどEEPROM書き換えを試してみるつもりです。
ペアリング状態では、スマホから発見可能になるので、次のように表示されます。
![](https://blogimg.goo.ne.jp/user_image/0b/fd/1fbfded2bd4f60c1fba83c7346d0fb42.jpg)
この後、ペアリングを行うと、そのまま接続もHFP, A2DP, AVRCPでの接続も行われるようです。
![](https://blogimg.goo.ne.jp/user_image/57/99/6ac9697b697d8b54ce9c62032ba37e30.jpg)
詳細は省略しますが、何の問題もなく音楽の再生や、電話の着信が行えました。残念ながらタクトスイッチの数が足りないのでAVRCPでの操作まではまだ確認できていません。さて、ここまでのところでちょっと疑問が。。
データシートを読んでも、サポートするプロファイルについては、名前が列挙されているだけで、それ以上の説明はありません。そこで Linuxを立ち上げて sdptoolでサービスを確認してみました。
HSP, HFP, A2DP, AVRCPをサポートしていることはわかりますが、SPPのサービスが見当たりません。どうやら、出荷時の設定では SPPはイネーブルされていないようで、EEPROM設定を変更してやらなければならないようです。
こんなわけで、次の段階としてはEEPROM設定を変更してみる予定です。しかしながら、ここまでの段階でも、BM20はMFBスイッチとスピーカをつけて電源を与えてやれば、何の設定も無しにそれだけでBluetooth対応スピーカとして使えるということがわかりました。ディフォルトの設定で、何の不自由もなく使えてしまうので、簡単な電子工作ネタとしても手頃ですね。ただし、その
電源を入れる前に、まずDIP SWの設定を行っておきます。PIN1とPIN2をOFF, PIN3をONにしてやることで、BM20のP20, P24, EANの各端子を全てHighにして電源を入れることで、通常動作モードで起動します。実験ボード上にはLED1とLED2の2つのLEDが実装されています。ADP_INに5Vを入れてやるとLED2がしばらく点灯して、消えました。この状態では、接続された電池への充電機能は動くものの、Bluetooth部分はオフになっているようです。
BM20評価ボードのマニュアルによると、
MFBボタンをクリックすると電源が入って、ペアリングモードになり、LEDがブリンクするとのことだったのですが、何度ボタンをクリックしても電源が入らず、焦りました。試しに長押しすると2つのLEDが点滅して電源が入り、さらにMFBボタンを押し続けるとペアリングモードに入って、ふたつのLEDが交互に点滅することがわかりました。また、電源が入った時とペアリングモードに入った時には、動作状態を知らせるトーンがスピーカから鳴って知らせてくれます。電源投入時には、あらかじめスピーカあるいはイヤフォンをつなげておきましょう。
ボタンへの機能割り当てやLEDの点滅パターン、トーンの種類はUI ToolというWindowsアプリでモジュール内に内蔵されているEEPROMの設定内容を変更することで、設定変更できるようです。またいくつかのイベントはトーンでの通知の代わりに音声ガイド(中/英/仏/西の4ヶ国語対応)での通知にも変更できるようです。ディフォルトでは音声ガイドは無く、トーン通知だけのようですので、後ほどEEPROM書き換えを試してみるつもりです。
ペアリング状態では、スマホから発見可能になるので、次のように表示されます。
![](https://blogimg.goo.ne.jp/user_image/0b/fd/1fbfded2bd4f60c1fba83c7346d0fb42.jpg)
EDDY SHSというのが、モジュール名とか内部で使用しているチップ名称というわけでも無く、何を示しているのかわからないのがちょっと不思議です。まぁ、この名前もUI Toolで変えられるようですので、何でもいいのですが。。
この後、ペアリングを行うと、そのまま接続もHFP, A2DP, AVRCPでの接続も行われるようです。
![](https://blogimg.goo.ne.jp/user_image/57/99/6ac9697b697d8b54ce9c62032ba37e30.jpg)
詳細は省略しますが、何の問題もなく音楽の再生や、電話の着信が行えました。残念ながらタクトスイッチの数が足りないのでAVRCPでの操作まではまだ確認できていません。さて、ここまでのところでちょっと疑問が。。
- データシートにはPBAP 1.0に対応と書いてあるが、 HFP接続時に電話帳へのアクセス承認を求められない。つまり、BM20はPBAPでのアクセス要求を出していないのではないか?
- データシートにはSPPをサポートしていると書かれているが、SPPでアクセスできない。
データシートを読んでも、サポートするプロファイルについては、名前が列挙されているだけで、それ以上の説明はありません。そこで Linuxを立ち上げて sdptoolでサービスを確認してみました。
Browsing 34:81:F4:09:43:17 ... Service RecHandle: 0x10001 Service Class ID List: "PnP Information" (0x1200) Language Base Attr List: code_ISO639: 0x656e encoding: 0x6a base_offset: 0x100 Profile Descriptor List: "PnP Information" (0x1200) Version: 0x0103 Failed to connect to SDP server on 34:81:F4:09:43:17: Connection refused Service Name: Headset unit Service RecHandle: 0x10002 Service Class ID List: "Headset" (0x1108) "Generic Audio" (0x1203) Protocol Descriptor List: "L2CAP" (0x0100) "RFCOMM" (0x0003) Channel: 2 Language Base Attr List: code_ISO639: 0x656e encoding: 0x6a base_offset: 0x100 Profile Descriptor List: "Headset" (0x1108) Version: 0x0102 Service Name: Hands-free unit Service RecHandle: 0x10003 Service Class ID List: "Handsfree" (0x111e) "Generic Audio" (0x1203) Protocol Descriptor List: "L2CAP" (0x0100) "RFCOMM" (0x0003) Channel: 1 Language Base Attr List: code_ISO639: 0x656e encoding: 0x6a base_offset: 0x100 Profile Descriptor List: "Handsfree" (0x111e) Version: 0x0106 Service Name: Audio SNK Service Provider: ISSC Service RecHandle: 0x10008 Service Class ID List: "Audio Sink" (0x110b) Protocol Descriptor List: "L2CAP" (0x0100) PSM: 25 "AVDTP" (0x0019) uint16: 0x0102 Language Base Attr List: code_ISO639: 0x656e encoding: 0x6a base_offset: 0x100 Profile Descriptor List: "Advanced Audio" (0x110d) Version: 0x0102 Service Name: AVRCP CT Service Provider: ISSC Service RecHandle: 0x10006 Service Class ID List: "AV Remote" (0x110e) "AV Remote Controller" (0x110f) Protocol Descriptor List: "L2CAP" (0x0100) PSM: 23 "AVCTP" (0x0017) uint16: 0x0104 Language Base Attr List: code_ISO639: 0x656e encoding: 0x6a base_offset: 0x100 Profile Descriptor List: "AV Remote" (0x110e) Version: 0x0105 Service Name: AVRCP TG Service Provider: ISSC Service RecHandle: 0x1000c Service Class ID List: "AV Remote Target" (0x110c) Protocol Descriptor List: "L2CAP" (0x0100) PSM: 23 "AVCTP" (0x0017) uint16: 0x0104 Language Base Attr List: code_ISO639: 0x656e encoding: 0x6a base_offset: 0x100 Profile Descriptor List: "AV Remote" (0x110e) Version: 0x0105
HSP, HFP, A2DP, AVRCPをサポートしていることはわかりますが、SPPのサービスが見当たりません。どうやら、出荷時の設定では SPPはイネーブルされていないようで、EEPROM設定を変更してやらなければならないようです。
こんなわけで、次の段階としてはEEPROM設定を変更してみる予定です。しかしながら、ここまでの段階でも、BM20はMFBスイッチとスピーカをつけて電源を与えてやれば、何の設定も無しにそれだけでBluetooth対応スピーカとして使えるということがわかりました。ディフォルトの設定で、何の不自由もなく使えてしまうので、簡単な電子工作ネタとしても手頃ですね。ただし、その
ディフォルトの設定というのがわかりにくいが難点でもあります。ディフォルトの設定内容がデータシートやアプリケーションノートに明示されていないのです。