LINBLE-Z1のペアリング機能の利用手順
こんにちは。ムセンコネクト三浦です。
今回はLINBLE-Z1(またはLINBLEドングル)をペアリング動作させる場合の使い方を説明したいと思います。
LINBLE-Z1のペアリング機能を拡張しました
LINBLE-Z1は無線初心者のエンジニアでも簡単に利用できるBluetoothモジュールです。
独自ファームウェアを搭載したコンプリートBluetoothモジュールで、ペリフェラルロールとセントラルロールの両方に対応しています。
LINBLE-Z1は2021/11/29にファームウェアv1.0.4.0をリリースし、LE Secure Connectionsや、Passkeyでのペアリングに対応しました。(LINBLE-Z1のファームウェアバージョンを確認するには、BTZコマンドを実行してください。)
今回は拡張したペアリング機能の利用手順について解説します。
なお、Bluetoothのペアリング機能についての詳しい解説は下記の【サルでもわかるBLE入門】 を御覧ください。
LINBLE-Z1(ペリフェラル側)でペアリング設定を行う
LINBLE-Z1をペリフェラルとして動作させる場合のペアリング動作について説明していきます。
まずBTLAコマンドでペアリング機能を有効にし、Passkey Entryを使う場合はBTLPコマンドでパスキーを設定します。
①BTLAコマンドでペアリング機能を有効にする
BTLAコマンドは、セントラル機器との接続・ペアリングに関する挙動を決定する設定コマンドです。
BTLAd↵ という書式で記載します。dはパラメータで10進数1桁で記載します。
パラメータ | 内容 | パスキー入力 |
---|---|---|
0 | 接続を受け付けない。 BTAコマンド実行時に、ADV_NONCONN_INDでアドバタイズを行います。 セントラル機器から接続することはできません。 | - |
1 | ペアリングありで接続する。(従来のペアリング方式を利用) | 不要 |
2 | ペアリングなしで接続する | - |
3 | ペアリングありで接続する。(よりセキュリティの高い方式を利用) | 不要 |
4 | ペアリングありで接続する。(よりセキュリティの高い方式を利用) セントラル機器はパスキーの入力が必要です。 | 必要 |
初期値は「2」になっていますので、初期状態では「ペアリングなし」で接続します。
ペアリング機能を利用する場合は、パラメータを「1」、「3」、「4」のいずれかに設定変更します。
LINBLE-Z1を「ペアリングあり」に設定すると、LINBLE-Z1が持っているキャラクタリスティックに鍵をかけるようになります。これにより、セントラル側からペアリングを要求するように仕向ける事ができます。
なお、スマートフォンと接続・ペアリングする場合は、BTLAコマンドのパラメータに応じて下記のようなペアリングが行われます。
パラメータ | ペアリング | 認証 |
---|---|---|
「1」のとき | LE Legacy Pairing | Just Works |
「3」のとき | LE Secure Connections | Just Works |
「4」のとき | LE Secure Connections | Passkey Entry |
パラメータが「1」または「3」の時は、JustWorksによるペアリングが行われるので、パスキーの入力は不要です。
パラメータが「4」のときはPasskey Entryによるペアリングが行われるので、BTLPコマンドでパスキーの値を設定する必要があります。
②BTLPコマンドでパスキーの値を設定する
BTLPコマンドは、パスキーの値を設定するコマンドです。BTLAコマンドでパラメータを「4」に設定した時は、BTLPコマンドでパスキーを設定してください。
BTLPdddddd↵ という書式で記載します。ddddddは000000~999999の6桁の半角数字を入力します。 デフォルトは012345です。
LINBLE-Z1のペアリング機能を試してみる
では実際にLINBLE-Z1のペアリング機能を試してみます。
まずLINBLE-Z1のペアリング設定を行うため、ホストマイコンからLINBLE-Z1に下記のコマンドを送信します。
LINBLEドングルの場合はホストマイコンの代わりにTeraTermなどのターミナルソフトを利用します。
BTLA4↵ ← ホストマイコンからLINBLE-Z1に対してBTLAコマンドでペアリング設定を実行。
ACKN ← BTLA設定が成功したので、LINBLE-Z1から応答が返る。
BTLP123456↵ ← ホストマイコンからLINBLE-Z1に対してBTLPコマンドでペアリング設定を実行。
ACKN ← BTLP設定が成功したので、LINBLE-Z1から応答が返る。
今回はPasskey Entryを利用するためBTLAコマンドのパラメータは「4」に設定しました。また、Passkey Entryのためにパスキーの設定が必要ですので、BTLPコマンドでパスキーを「123456」に設定しました。
これでペアリングを行うための設定が完了しました。
次にLINBLE-Z1とスマートフォンを接続してみましょう。
まずはLINBLE-Z1にアドバタイズを開始するように指示します。
BTA↵ ← ホストマイコンからLINBLE-Z1に対してアドバタイズ開始を指示。
ACKN
LINBLE-Z1がアドバタイズを開始するので、AndroidスマートフォンのLINBLE-Terminalから接続します。
※AndroidスマートフォンはPixel3a(Android12)を使いました。
LINBLE-Terminalで周囲のデバイスを検索するとLINBLE-Z1がみつかりました。LINBLE-Z1を選択します。
LINBLE-Z1とスマートフォンの接続が完了する前にペアリングに関する通知が表示されます。
「ペアにして接続」をタップします。下記のような画面になり、パスキーを入力する画面になります。先ほどBTLPコマンドで設定した6桁のパスキー「123456」を入力します。
正しいパスキーが入力された場合、LINBLE-Z1とスマートフォンの接続が完了し、LINBLE-Z1からホストマイコンに「CONN」が通知されます。その後データのやり取りができるようになります。
もしスマートフォンに入力したパスキーがLINBLE-Z1内部のパスキーと一致しない場合は接続エラーとなります。
一度LINBLE-Z1とスマートフォンを接続させた後、スマートフォンのBluetoothの設定画面を開くと、「ペアリング済みのデバイス」として「LINBLE-Z1」が登録されています。
この画面で、「LINBLE-Z1」の隣にある歯車マークから「ペア設定済みのデバイス」を削除すると、スマートフォンに保存されているペアリング情報を削除することができます。
お互いのペアリング情報がアンマッチになってしまうと、BLE通信(接続)ができなくなってしまいます。その場合は一旦両デバイスのペアリング情報を削除してからリトライしてみてください。
BTLA1、BTLA3の場合
BTLAコマンドのパラメータを「1」、もしくは「3」に設定するとパスキーの入力が不要なJust Worksでペアリングが行われます。
前述の「BTLA4」の時と同様に、ホストマイコンから「BTLA1」もしくは「BTLA3」でペアリング設定を実行し、「BTA」でアドバタイズを開始します。(Passkey Entryではないので、BTLPコマンドによるパスキーの設定は不要です)
BTLA3↵ ← ホストマイコンからLINBLE-Z1に対してBTLAコマンドでペアリング設定を実行。
ACKN ← BTLA設定が成功したので、LINBLE-Z1から応答が返る。
BTA↵ ← ホストマイコンからLINBLE-Z1に対してアドバタイズ開始を指示。
ACKN
スマートフォンからLINBLE-Z1に接続すると、スマートフォン側では下記のように表示され、「ペア設定する」をタップすると、ペアリングが実行されます。
※「連絡先と通話履歴へのアクセスを許可する」にチェックする必要はありません。
iPhoneの場合のペアリング画面
iPhoneの場合も同じような手順でペアリングが行われます。スマートフォンの画面表示は下記のようになります。(使用したiPhoneはiPhone8、iOS14.8)
Passkey Entryでペアリングを実行する場合
Just Worksでペアリングを実行する場合
※なお、前述したようにお互いのペアリング情報がアンマッチになってしまうと再接続ができなくなってしまいます。
その場合、一旦両デバイスからペアリング情報をクリアする必要があります。iPhoneではBluetoothの設定画面から、ペアリング済みのペリフェラルデバイスを選択し (i) マークをタップします。
「このデバイスの登録を解除」をタップしてペアリング情報をクリアします。
LINBLE-Z1同士で接続させる場合のペアリング設定は?
LINBLE-Z1同士で接続させる場合、つまりLINBLE-Z1をセントラルとして動作させる場合についても説明していきます。
ペリフェラル側のLINBLE-Z1が「BTLA1」、「BTLA3」に設定されている場合はJust Worksでペアリングが実行されます。この場合、セントラル側のLINBLE-Z1の使い方として特に意識する必要はありません。(LINBLE-Z1内部で自動的にペアリング処理が行われます。)
ペリフェラル側のLINBLE-Z1が「BTLA4」に設定されている場合はPasskey Entryでペアリングが実行されます。この場合、ペリフェラル側に設定されたパスキーと同じ内容のパスキーをセントラル側にも設定する必要があります。予めセントラル側のLINBLE-Z1にも「BTLP」コマンドを使い、ペリフェラル側と同じパスキー(6桁の数字)を設定してください。
※ペリフェラル側LINBLE-Z1の「BTLA」コマンドの設定値によってペアリングの内容が決定されます。
セントラル側LINBLE-Z1の「BTLA」コマンドの設定値は無視されます。
ペアリングを利用する際の注意点
最後に、LINBLE-Z1のペアリング機能をご利用いただく際の注意点です。
『【サルでもわかるBLE入門】(8) ペアリング』の記事にも注意事項を記載していますが、ペアリング機能を利用すると、セントラル側スマートフォンとの相性や機種固有の問題などにより、思わぬトラブルに遭遇する場合もあります。利用シーンを想定してトラブルが起きないか注意深く確認しましょう。
今回は、LINBLE-Z1でペアリング機能を利用する場合の利用方法について説明しました。各コマンドの詳細はユーザーマニュアルに記載していますので併せてご確認いただければと思います。