コンテンツにスキップ

ATコマンドセット

表: 文書情報
項目 内容
バージョン V1.2.1
日付 2026-07-28
対象モジュール SF32LB57デュアルモードBluetoothモジュール(SIFLI_AT)

このリファレンスでは、SF32LB57デュアルモードBluetoothモジュール(SIFLI_AT)バージョンV1.2.1の外部ATコマンドインターフェースについて説明します。コマンドと応答文字列は等幅で表記されます。\rはキャリッジリターン(0x0D)を、\nはラインフィード(0x0A)を表します。ATコマンドはASCIIテキストとして送信され、PDUフレーム内のバイナリフィールドはリトルエンディアンのバイト順を使用します。

これは、Bluetooth ATコマンドモジュールページから参照される完全なATインターフェース仕様です。

表: 改訂履歴
バージョン 変更内容 日付
V1.2.1 SF32LB57 V1.2.1: AT+CFGRESETを追加。起動時のClassic Bluetooth名の同期、CLEARLINKKEY、接続ハンドル、PDUに関する文書を更新。BQBビルド設定を有効化。 2026-07-28

概要

SF32LB57のデュアルモードBluetoothモジュールは、BLEとClassic Bluetooth(BR/EDR)の両方を扱うUARTベースのATコマンドインターフェースをホストに提供します。ホストはATコマンドでデバイスの設定や接続を管理し、データを送受信できるほか、モジュールからの非同期ステータス通知も受信できます。

デフォルト設定

表: デフォルト設定
項目 デフォルト値
デバイス名 SIFLI_AT
シリアルボーレート 460800 bps
コマンド/パススルーモード パススルーモード
Bluetooth動作モード デュアルモード(BLE+BT)
イベント通知 通常通知
デバイス名へのMACアドレスサフィックス付加 オフ
Class of Device(COD) 000000
BLE MTU上限 247
マルチ接続の全体設定 有効(1)
パススルーアイドル切断時間 0(オフ)
電源投入時のGATT自動ロード オン
BLEランダムアドレス オフ(パブリックアドレスを使用)
Bluetoothアドレス チップUIDから自動生成

コマンド形式

構文定義

ATコマンドはASCIIテキストで送信し、キャリッジリターン\r(0x0D)で終端します。コマンドのプレフィックスはAT+(AT形式)またはAT>(PDU形式)です。SF32LB57のATポートはUSART1で、ハードウェアフロー制御なしの8N1形式を使用します。デフォルトのボーレートは460800 bps、1フレームの上限は512バイトです。

AT形式コマンド

表: AT形式コマンドの形式
形式 コマンド 説明
クエリ AT+<CMD>?\r パラメーターまたはステータスを読み取る
設定 AT+<CMD>=<param>[,<param>...]\r パラメーターを書き込む
実行 AT+<CMD>\r 動作をトリガーする
表: AT形式の応答
結果 応答文字列
成功 \r\nOK\r\n
失敗 \r\nERROR\r\nまたは\r\nFALSE\r\n
クエリの戻り値 \r\n+<CMD>:<value>\r\n\r\nOK\r\n

PDU形式コマンドのフレーム構成

PDUコマンドは、モジュールがコマンドモードにある間にバイナリペイロードを転送します。特に断りのない限り、フレーム内の数値フィールドはリトルエンディアンであり、dataは生のバイナリデータです。

コマンド(ホスト → モジュール)

'A' 'T' '>' <Opcode(2 bytes)> <Total Length(2 bytes)> [Body] '\r'
表: PDUコマンドフレーム構造
要素 説明
AT> コマンドプレフィックス、3バイトASCII
Opcode 2バイトリトルエンディアンの操作コード。0x0101、0x0102
Total Length Bodyの総バイト数、2バイトリトルエンディアン
Body ペイロード。構造はOpcodeに依存する
\r 1バイトのコマンド終端文字

レポート(モジュール → ホスト)

'\r' '\n' '<' <Opcode(2 bytes)> <Total Length(2 bytes)> [Data] '\r' '\n'

コマンドと応答

以下のコマンドは機能別に分類されています。分類はBluetooth ATコマンドモジュールページの一覧と同じです。

システムとデバイス

ファームウェアバージョンの取得

表: ファームウェアバージョンの取得
項目 内容
コマンド AT+GFWVER?\r
応答 成功: \r\n+GFWVER:SIFLI_AT_<version>_<build date>\r\n\r\nOK\r\n。設定コマンドではすべて\r\nERROR\r\nを返します。
パラメーター なし
備考 クエリのみ。戻り値は常にSIFLI_AT_で始まり、その後にバージョン番号とビルド日付が続く。

デバイス名の照会

表: デバイス名の照会
項目 内容
コマンド AT+NAME?\r
応答 \r\n+NAME:<device name>\r\n\r\nOK\r\n
パラメーター なし
備考 現在設定されているデバイス名を返します(MACサフィックスは含みません。サフィックスが反映されるのはアドバタイズ名のみです)。

デバイス名の設定

表: デバイス名の設定
項目 内容
コマンド AT+NAME=<device name>\r
応答 成功: \r\nOK\r\n。失敗: \r\nERROR\r\n
パラメーター デバイス名: 長さ1~29バイトの文字列。空、または29バイトを超える場合はERRORを返す。デフォルトはSIFLI_AT。
備考 デバイス名の設定を更新し、ローカル名とBLEスキャン応答の名前に反映します。最終的にアドバタイズされる名前はMACNAMEで制御します。

デバイス名へのMACサフィックス付加設定の照会

表: デバイス名へのMACサフィックス付加設定の照会
項目 内容
コマンド AT+MACNAME?\r
応答 \r\n+MACNAME:<value>\r\n\r\nOK\r\n
パラメーター なし
備考 サフィックス付加設定の状態を返します。0 = オフ、1 = オン。

デバイス名へのMACサフィックス付加設定の変更

表: デバイス名へのMACサフィックス付加設定の変更
項目 内容
コマンド AT+MACNAME=<value>\r
応答 成功: \r\nOK\r\n。失敗: \r\nERROR\r\n
パラメーター 値: 0 = デバイス名をそのまま表示する。1 = デバイス名の末尾に-XXXXを付加する(XXXXはローカルBD_ADDRの下位2バイトを表す大文字の16進数)。範囲は0~1、デフォルトは0です。
備考 設定を更新します。オンにしたとき、デバイス名とサフィックスの合計が表示名の上限である29バイトを超える場合は、5バイトのサフィックスを残してデバイス名を切り詰めます。

IEEE 1284デバイスIDの照会

表: IEEE 1284デバイスIDの照会
項目 内容
コマンド AT+1284ID?\r
応答 \r\n+1284ID:<ID string>\r\n\r\nOK\r\n
パラメーター なし
備考 現在設定されているIEEE 1284デバイスID文字列を返す。設定されていない場合は空。

IEEE 1284デバイスIDの設定

表: IEEE 1284デバイスIDの設定
項目 内容
コマンド AT+1284ID=<ID string>\r
応答 成功: \r\nOK\r\n。失敗: \r\nERROR\r\n
パラメーター ID文字列: IEEE 1284デバイスID文字列。長さはストレージバッファーの容量未満でなければならず、超過するとERRORを返す。デフォルトは空文字列。
備考 設定内容を更新します。

デバイスのリセット

表: デバイスのリセット
項目 内容
コマンド AT+RESET\r
応答 成功: \r\nOK\r\n。クエリ形式(AT+RESET?\r): \r\nERROR\r\n
パラメーター なし
備考 コマンドを受信すると、モジュールは現在のAT設定を保存してOKを返し、その後アドバタイズを停止し、接続を切断してソフトリセットします。このコマンド自体は設定を変更しません。

工場出荷時リセット

表: 工場出荷時リセット
項目 内容
コマンド AT+FACTORYRESET\r
応答 成功: \r\nOK\r\n。クエリ形式(AT+FACTORYRESET?\r): \r\nERROR\r\n
パラメーター なし
備考 AT設定を初期化し、カスタムGATTサービス設定、BLEボンディング情報、Classic Bluetooth(BR/EDR)のペアリング情報、BLEの静的ランダムアドレスを消去してからOKを返し、リセットします。リセット後、ホストはIM_READYを待つ必要があります。

設定リセット

表: 設定リセット
項目 内容
コマンド AT+CFGRESET\r
応答 成功: \r\nOK\r\n。クエリ形式(AT+CFGRESET?\r): \r\nERROR\r\n
パラメーター なし
備考 AT設定と保存済みのカスタムGATTサービス設定を初期化してからOKを返し、リセットします。ペアリング情報と現在のBLEアドレスは保持されます。

OTAアップグレードモードへの移行

表: OTAアップグレードモードへの移行
項目 内容
コマンド AT+OTA\r
応答 成功: \r\nOK\r\n(その後DFUモードに入りリセットする — それ以上の応答はない)。クエリ形式(AT+OTA?\r): \r\nERROR\r\n
パラメーター なし
備考 現在のAT設定を保存してOKを返した後、DFUフラグを書き込み、UART DFUアップグレードモードで再起動します。

周波数オフセット校正値の照会

表: 周波数オフセット校正値の照会
項目 内容
コマンド AT+TRIM?\r
応答 \r\n+TRIM:<freq_off>\r\n\r\nOK\r\n
パラメーター freq_off: 現在記録されている周波数オフセット校正値。単位はHzです。
備考 AT設定に記録されている値を返します。実際に有効な値はFACTORY_CFG_ID_CRYSTALパーティションに保存されています。

周波数オフセット校正値の設定

表: 周波数オフセット校正値の設定
項目 内容
コマンド AT+TRIM=<freq_off>\r
応答 成功: \r\nOK\r\n。値が範囲外の場合、または校正インターフェースでエラーが発生した場合: \r\nERROR\r\n
パラメーター freq_off: 周波数オフセット校正値。単位はHz、範囲は-120000~120000、デフォルトは0です。0を指定すると校正をリセットし、ハードウェア/工場出荷時の値に戻します。0以外の場合は指定値を直接設定します。
備考 値を設定するとHXTコンデンサーバンクレジスターが更新され、その結果がFACTORY_CFG_ID_CRYSTALパーティションに書き込まれます。校正が成功すると、AT設定に記録された値が更新され、保存対象としてマークされます。

DUTテストモードへの移行

表: DUTテストモードへの移行
項目 内容
コマンド AT+DUT\r
応答 成功: \r\nOK\r\n。クエリ形式(AT+DUT?\r): \r\nERROR\r\n
パラメーター なし
備考 BR/EDR Classic BluetoothのDUT有効化ビットを設定してOKを返した後、試験機器が無線経由で送信するLMP_test_controlを待ち受け、シグナリング試験を開始します。AT UART(USART1)は引き続き利用できます。DUTモードへの移行は不可逆で、リセットによってのみ終了できます。

アドレスとアイデンティティ

Bluetoothアドレスの照会

表: Bluetoothアドレスの照会
項目 内容
コマンド AT+LBDADDR?\r
応答 成功: \r\n+LBDADDR:<addr>\r\n\r\nOK\r\n。失敗: \r\nERROR\r\n
パラメーター addr: 現在のパブリックBluetoothアドレスを返す。16進数12文字(大文字、区切りなし)、最上位バイトが先頭、例: 001583112233。
備考 ファームウェアから読み取ったパブリックアドレスを返す。読み取りに失敗した場合はERRORを返す。

Bluetoothアドレスの設定

表: Bluetoothアドレスの設定
項目 内容
コマンド AT+LBDADDR=<addr>\r
応答 成功: \r\nOK\r\n。失敗: \r\nERROR\r\n
パラメーター addr: 設定するBluetoothアドレス。区切りなしの16進数12文字で指定し、最上位バイトを先頭にします。例: 001583112233。長さはちょうど16進数12文字でなければなりません。
備考 アドレスは設定に書き込まれ保存される。リセット後に有効になる。工場出荷時のデフォルトはすべてゼロであり、これはアドレスがチップUIDから自動生成されることを意味する。

BLEアドレスの照会

表: BLEアドレスの照会
項目 内容
コマンド AT+BLEADDR?\r
応答 成功: \r\n+BLEADDR:<addr>\r\n\r\nOK\r\n。失敗: \r\nERROR\r\n
パラメーター addr: BLEが現在使用しているアドレスを返す。16進数12文字(大文字、区切りなし)、最上位バイトが先頭。
備考 AT+RANDOMADDR=1によってBLE固有の静的ランダムアドレスが生成されている場合はその静的ランダムアドレスを返し、そうでなければBluetoothアドレスと同じパブリックアドレスを返す。読み取りに失敗した場合はERRORを返す。

BLEアドレスの設定

表: BLEアドレスの設定
項目 内容
コマンド AT+BLEADDR=<addr>\r
応答 \r\nERROR\r\n
パラメーター なし
備考 このコマンドはBLEアドレスの直接設定を受け付けない — 呼び出すと常にERRORを返す。BLE静的ランダムアドレスはAT+RANDOMADDR=1を通じて生成される。

BLEランダムアドレスの使用状態を照会する

表: BLEランダムアドレスの使用状態
項目 内容
コマンド AT+RANDOMADDR?\r
応答 \r\n+RANDOMADDR:<n>\r\n\r\nOK\r\n
パラメーター n: 現在の設定値。0 = BLEはパブリックアドレスを使用、1 = BLEは静的ランダムアドレスを使用。
備考 なし

BLEランダムアドレスの使用を設定する

表: BLEランダムアドレスの使用設定
項目 内容
コマンド AT+RANDOMADDR=<n>\r
応答 成功: \r\nOK\r\n。失敗: \r\nERROR\r\n
パラメーター n: 0または1。1 = パブリックアドレスから導出されたBLE静的ランダムアドレスを有効化する(パブリックアドレスの最上位バイトの上位2ビットを1に設定する — 例: パブリックアドレス001583112233はBLEアドレスC01583112233を導出する)。0 = BLEはパブリックアドレスに戻る。それ以外の値や余分な文字はERRORを返す。デフォルト0。
備考 設定を更新します。1に設定してパブリックアドレスの読み取りに失敗した場合、設定値は0に戻り、ERRORを返します。アドレスの変更はNVDSに書き込まれ、リセット後に有効になります。AT+RANDOMADDR=1を再実行すると、変更されていないパブリックアドレスから同じランダムアドレスが再生成されます。

Class of Deviceの照会

表: Class of Deviceの照会
項目 内容
コマンド AT+CLASS?\r
応答 成功: \r\n+CLASS:<cod>\r\n\r\nOK\r\n(<cod>は16進数6桁の大文字)
パラメーター cod: 現在のClass of Device。常に16進数6桁として出力される(下位24ビット、%06X形式、ゼロ埋め)
備考 現在のClass of Deviceの値を返す。

Class of Deviceの設定

表: Class of Deviceの設定
項目 内容
コマンド AT+CLASS=<cod>\r
応答 成功: \r\nOK\r\n。失敗: \r\nERROR\r\n
パラメーター cod: Class of Device。16進数文字列(%Xで解析)。範囲0~FFFFFF(24ビット)。デフォルト000000。
備考 Class of Deviceを設定し、設定内容を更新します。解析では下位24ビットのみが保持されます。

動作モードと可視性

発見可能状態の照会

表: 発見可能状態の照会
項目 内容
コマンド AT+DISCOVERABLE?\r
応答 成功: \r\n+DISCOVERABLE:<state>\r\n\r\nOK\r\n
パラメーター state: 現在の発見可能状態。0 = 発見不可、1 = 発見可能、2 = 部分的に発見可能(混在状態)。意味は動作モードに依存する。BLEモード(BTMODE=1)ではBLEアドバタイズ設定を反映し、1 = オン、0 = オフ。BTモード(BTMODE=2)ではインクワイアリスキャンとページスキャンを反映し、両方がオンなら1、両方がオフなら0、それ以外は2。デュアルモード(BTMODE=0)では、BLEアドバタイズ、インクワイアリスキャン、ページスキャンがすべてオンなら1、すべてオフなら0、それ以外は2。
備考 現在の発見可能状態を照会するのみ — デバイスの状態は変更しない。

発見可能状態の設定

表: 発見可能状態の設定
項目 内容
コマンド AT+DISCOVERABLE=<mode>\r
応答 成功: \r\nOK\r\n。失敗: \r\nERROR\r\n
パラメーター mode: 0 = 発見可能性をオフにする、1 = 発見可能性をオンにする。
備考 現在の動作モードに従って動作する。BLEモード(BTMODE=1)ではBLEアドバタイズをオン/オフする。BTモード(BTMODE=2)ではインクワイアリスキャンとページスキャンをオン/オフする。デュアルモード(BTMODE=0)ではBLEアドバタイズ、インクワイアリスキャン、ページスキャンをまとめて制御する。

GATTアドバタイズ状態の照会

表: GATTアドバタイズ状態の照会
項目 内容
コマンド AT+GATTDISCOVER?\r
応答 成功: \r\n+GATTDISCOVER:<state>\r\n\r\nOK\r\n。失敗: \r\nERROR\r\n
パラメーター state: 実際のエアインターフェース上のBLEアドバタイズ状態。0 = アドバタイズしていない、1 = アドバタイズ中。
備考 実際のオンエアBLEアドバタイズ状態を返す。動作モードがBT専用(BTMODE=2)の場合は利用不可 — ERRORを返す。

GATTアドバタイズの設定

表: GATTアドバタイズの設定
項目 内容
コマンド AT+GATTDISCOVER=<value>\r
応答 成功: \r\nOK\r\n。失敗: \r\nERROR\r\n
パラメーター value: 0 = BLEアドバタイズを停止、1 = BLEアドバタイズを開始。
備考 BLEアドバタイズの開始と停止を直接制御する。動作モードがBT専用(BTMODE=2)の場合は利用不可。

SPP発見可能状態の照会

表: SPP発見可能状態の照会
項目 内容
コマンド AT+SPPDISCOVER?\r
応答 \r\n+SPPDISCOVER:<state>\r\n\r\nOK\r\n
パラメーター <state>: 発見可能性を制御する現在のインクワイアリスキャン状態。0 = オフ、1 = オン。
備考 AT+BTMODEが1(BLE専用)の場合はERRORを返す。

SPP発見可能状態の設定

表: SPP発見可能状態の設定
項目 内容
コマンド AT+SPPDISCOVER=<state>\r
応答 成功: \r\nOK\r\n。失敗: \r\nERROR\r\n
パラメーター <state>: 発見可能性を制御するインクワイアリスキャンの設定値。0 = 無効、1 = 有効。
備考 AT+BTMODEが1(BLE専用)の場合はERRORを返す。インクワイアリスキャンビットのみを変更し、ページスキャンビットは変更しない。

SPP接続可能状態の照会

表: SPP接続可能状態の照会
項目 内容
コマンド AT+SPPCONNECT?\r
応答 \r\n+SPPCONNECT:<state>\r\n\r\nOK\r\n
パラメーター <state>: 接続可能性を制御する現在のページスキャン状態。0 = オフ、1 = オン。
備考 AT+BTMODEが1(BLE専用)の場合はERRORを返す。

SPP接続可能状態の設定

表: SPP接続可能状態の設定
項目 内容
コマンド AT+SPPCONNECT=<state>\r
応答 成功: \r\nOK\r\n。失敗: \r\nERROR\r\n
パラメーター <state>: 接続可能性を制御するページスキャンの設定値。0 = 無効、1 = 有効。
備考 AT+BTMODEが1(BLE専用)の場合はERRORを返す。ページスキャンビットのみを変更し、インクワイアリスキャンビットは変更しない。

Bluetooth動作モードの照会

表: Bluetooth動作モードの照会
項目 内容
コマンド AT+BTMODE?\r
応答 \r\n+BTMODE:<mode>\r\n\r\nOK\r\n
パラメーター mode: 現在のBluetooth動作モード。0 = デュアルモード(BLE+BT)、1 = BLE専用、2 = BT専用。
備考 なし

Bluetooth動作モードの設定

表: Bluetooth動作モードの設定
項目 内容
コマンド AT+BTMODE=<mode>\r
応答 成功: \r\nOK\r\n。失敗: \r\nERROR\r\n
パラメーター mode: Bluetooth動作モード。0 = デュアルモード(BLE+BT)、1 = BLE専用、2 = BT専用。範囲0~2。デフォルト0(デュアルモード)。
備考 動作モードを変更します。変更はリセット後に有効になります。

コマンドモードの照会

表: コマンドモードの照会
項目 内容
コマンド AT+COMMAND?\r
応答 \r\n+COMMAND:<mode>\r\n\r\nOK\r\n
パラメーター mode: 現在の動作モード。0 = パススルーモード、1 = コマンドモード。
備考 なし

コマンドモードの設定

表: コマンドモードの設定
項目 内容
コマンド AT+COMMAND=<mode>\r
応答 成功: \r\nOK\r\n。失敗: \r\nERROR\r\n
パラメーター mode: 動作モード。0 = パススルーモード、1 = コマンドモード。モジュールは電源投入後、パススルーモードで起動する。
備考 設定は即時に反映されますが、保存されません。リセット後はパススルーモードに戻ります。パススルーモードでは、シリアルポートで受信したデータが接続先にそのまま転送されます。コマンドモードでは、シリアルデータがATコマンドとして解析されます。

ペアリングとセキュリティ

ペアリング情報のクリア

表: ペアリング情報のクリア
項目 内容
コマンド AT+CLEARLINKKEY\r
応答 成功: \r\nOK\r\n。クエリ形式AT+CLEARLINKKEY?\r: \r\nERROR\r\n
パラメーター パラメーターなし。
備考 BLEのボンディング情報とClassic Bluetoothのリンクキーをクリアする。成功後、デバイスはリセットされる。デバイス名、ボーレート、CODなどのAT設定は保持される。ホストはリセット後にIM_READYを待つべきである。クエリ形式はサポートされていない。

シリアルポートとイベント

シリアルボーレートの照会

表: シリアルボーレートの照会
項目 内容
コマンド AT+BAUD?\r
応答 \r\n+BAUD:<baud_rate>\r\n\r\nOK\r\n
パラメーター baud_rate: 現在設定されているボーレート。単位bps。
備考 ボーレートを設定するとデバイスはリセットされ、新しいボーレートはリセット後に有効になる。

シリアルボーレートの設定

表: シリアルボーレートの設定
項目 内容
コマンド AT+BAUD=<baud_rate>\r
応答 成功: \r\nOK\r\n。失敗: \r\nERROR\r\n
パラメーター baud_rate: シリアルボーレート。単位bps。サポートされる値: 38400、57600、115200、230400、460800、921600、1000000。デフォルト460800。
備考 設定内容を更新します。

イベント通知の設定を照会する

表: イベント通知設定の照会
項目 内容
コマンド AT+EVT?\r
応答 \r\n+EVT:<evt_silent>\r\n\r\nOK\r\n
パラメーター evt_silent: イベント通知の設定値。0 = 通常通知、1 = すべての通知を抑制。
備考 なし

イベント通知を設定する

表: イベント通知の設定
項目 内容
コマンド AT+EVT=<evt_silent>\r
応答 成功: \r\nOK\r\n。失敗: \r\nERROR\r\n
パラメーター evt_silent: イベント通知の設定値。0 = IM_CONN/IM_DISCONN/IM_READYなどを通常どおり通知する。1 = すべてのイベント通知を抑制する。デフォルトは0(通常通知)。
備考 設定を更新します。1に設定すると、接続確立、切断、利用可能状態の各通知はシリアルポートに出力されません。

パススルーアイドル切断時間の照会

表: パススルーアイドル切断時間の照会
項目 内容
コマンド AT+IDLE?\r
応答 \r\n+IDLE:<idle_ms>\r\n\r\nOK\r\n
パラメーター idle_ms: 現在のアイドル切断タイムアウト。単位ミリ秒。
備考 なし

パススルーアイドル切断時間の設定

表: パススルーアイドル切断時間の設定
項目 内容
コマンド AT+IDLE=<idle_ms>\r
応答 成功: \r\nOK\r\n。失敗: \r\nERROR\r\n
パラメーター idle_ms: パススルーアイドル切断タイムアウト。単位ミリ秒、範囲0~65535。65535を超えるとERRORを返す。0はアイドル切断機能を無効化する。デフォルト0(オフ)。
備考 設定内容を更新します。この機能はパススルーモードでのみ有効です。シリアルポートで最後にデータを受信してからidle_msミリ秒を超えると、接続中のすべてのリンクが切断されます。idle_msが0の場合、この機能は無効です。

接続管理

マルチ接続の全体設定を照会する

表: マルチ接続の全体設定
項目 内容
コマンド AT+MULTICONN?\r
応答 \r\n+MULTICONN:<n>\r\n\r\nOK\r\n
パラメーター <n>: マルチ接続の全体設定値。0 = 無効(システム全体で単一接続)。1 = 有効(各トランスポートの上限まで同時接続可能)。
備考 なし

マルチ接続を設定する

表: マルチ接続の設定
項目 内容
コマンド AT+MULTICONN=<n>\r
応答 成功: \r\nOK\r\n。失敗: \r\nERROR\r\n
パラメーター <n>: 0 = マルチ接続を無効化、1 = マルチ接続を有効化。値は0または1。デフォルト1。
備考 設定内容を更新します。マルチ接続が無効の場合、同時接続の機能は制限されます。有効の場合はAT+BLEMULTICONNとAT+BTMULTICONNの設定に従って動作します。

BLE最大同時接続数の照会

表: BLE最大同時接続数の照会
項目 内容
コマンド AT+BLEMULTICONN?\r
応答 成功: \r\n+BLEMULTICONN:<n>\r\n\r\nOK\r\n。マルチ接続がオフの場合: \r\nERROR\r\n
パラメーター <n>: 現在設定されているBLE最大同時接続数。10進数。
備考 マルチ接続が有効(AT+MULTICONN=1)の場合にのみ照会できます。無効の場合はERRORを返します。

BLE最大同時接続数の設定

表: BLE最大同時接続数の設定
項目 内容
コマンド AT+BLEMULTICONN=<n>\r
応答 成功: \r\nOK\r\n。失敗: \r\nERROR\r\n
パラメーター <n>: BLE最大同時接続数。10進数、範囲1~6。デフォルト3。
備考 マルチ接続が有効(AT+MULTICONN=1)の場合にのみ設定できます。設定内容を更新します。接続数が上限に達するとアドバタイズを停止し、新たな接続を受け付けなくなります。接続数が上限を下回ると自動的に再開します。

Classic Bluetooth最大同時接続数の照会

表: Classic Bluetooth最大同時接続数の照会
項目 内容
コマンド AT+BTMULTICONN?\r
応答 成功: \r\n+BTMULTICONN:<n>\r\n\r\nOK\r\n。マルチ接続がオフの場合: \r\nERROR\r\n
パラメーター <n>: 現在設定されているClassic Bluetooth(BR/EDR)最大同時接続数。10進数。
備考 マルチ接続が有効(AT+MULTICONN=1)の場合にのみ照会できます。無効の場合はERRORを返します。

Classic Bluetooth最大同時接続数の設定

表: Classic Bluetooth最大同時接続数の設定
項目 内容
コマンド AT+BTMULTICONN=<n>\r
応答 成功: \r\nOK\r\n。失敗: \r\nERROR\r\n
パラメーター <n>: Classic Bluetooth最大同時接続数。10進数、範囲1~7。デフォルト7。
備考 マルチ接続が有効(AT+MULTICONN=1)の場合にのみ設定できます。設定内容を更新します。接続数が上限に達するとモジュールはページスキャンを停止し、接続数が上限を下回ると自動的に再開します。

切断

表: 切断
項目 内容
コマンド 1つを切断: AT+DISCONN=<conn_hdl>\r。すべて切断: AT+DISCONN\r
応答 成功: \r\nOK\r\n。失敗または見つからない場合: \r\nERROR\r\n
パラメーター <conn_hdl>: 接続ハンドル。16進数。BLEの接続ハンドルは1始まりの外部ハンドルである(AT+CONNLISTが返す値と一致する)。BT接続はそのACLハンドルを使用する。<conn_hdl> = 0は無効な入力として扱われERRORを返す。
備考 パラメーターなし(または空のパラメーター)の場合、すべてのアクティブなリンク(BLEとBR/EDR)が切断されOKが返される。パラメーターありの場合、ハンドルは以下の順に照合される。まずBLEの外部ハンドルと照合(内部ハンドル = <conn_hdl> - 1)。見つからない場合は生のBT ACLハンドルと照合。一致する接続が見つからない場合はERRORを返す。クエリ形式AT+DISCONN?はERRORを返す。

接続リストの照会

表: 接続リストの照会
項目 内容
コマンド AT+CONNLIST?\rまたはAT+CONNLIST\r
応答 アクティブな各接続について1行出力される: \r\n+CONNLIST:<conn_hdl>,<type>,<addr>,<extra>\r\n。すべての行の後に\r\nOK\r\nが続く。アクティブな接続がない場合は\r\nOK\r\nのみ。空でないパラメーター: \r\nERROR\r\n
パラメーター 出力フィールド: <conn_hdl> — 接続ハンドル、16進数4桁、BLEは1始まりの外部ハンドルを使用する。<type> — 接続の種類、BLEまたはBT。<addr> — ピアのBluetoothアドレス、16進数12桁(最上位バイトが先頭)。<extra> — BLE接続の場合は現在のMTU、BT接続の場合はサービスチャネル、10進数。
備考 設定形式に空でないパラメーターを指定するとERRORを返します。モジュールはすべての接続スロットを確認し、アクティブな各接続を出力します。

データ転送

BLE MTUの照会

表: BLE MTUの照会
項目 内容
コマンド AT+GMTU?\r
応答 成功: \r\n+GMTU:<mtu>\r\n\r\nOK\r\n
パラメーター mtu: 現在設定されているBLE MTU上限。10進数。
備考 なし

BLE MTUの設定

表: BLE MTUの設定
項目 内容
コマンド AT+GMTU=<mtu>\r
応答 成功: \r\nOK\r\n。失敗: \r\nFALSE\r\n
パラメーター mtu: BLE MTU上限。10進数、範囲23~1024。範囲外はFALSEを返す。デフォルト247。
備考 この値はMTUネゴシエーション時に使用される上限を設定する。

SPPデータの送信

表: SPPデータの送信
項目 内容
コマンド AT+SPPSEND=<conn_hdl>,<data>\rまたはAT+SPPSEND=,<data>\r
応答 成功: \r\nOK\r\n。失敗: \r\nERROR\r\n
パラメーター conn_hdl: 対象のBT接続ハンドル。16進数。省略または0に設定可能で、その場合は現在最初にアクティブなBT接続が使用される。data: 送信するデータ。16進数文字列で、2文字が1バイトを表す。空にはできず、文字数は偶数でなければならない。ASCII ATフレームで運べる実際のデータ長も、単一ATフレームの上限によって制限される。
備考 conn_hdlとdataはカンマで区切られる。conn_hdlが省略されている場合でもカンマは必要。クエリ形式はサポートされていない。

カスタムGATT

カスタムGATTサービスリストの照会

表: カスタムGATTサービスリストの照会
項目 内容
コマンド AT+GATTSRV?\r
応答 設定された各サービスについて1行返す: \r\n+GATTSRV:<idx>,<char_count>,<state>\r\n。その後\r\nOK\r\nが続く。サービスが設定されていない場合は\r\nOK\r\nのみ返される
パラメーター idx: サービススロット番号、0~5。char_count: そのサービスに設定されているキャラクタリスティックの数。state: REGはプロトコルスタックに登録済みであることを、CFGはRAM内でのみ設定されておりまだ登録されていないことを意味する
備考 現在使用中のサービススロットのみを一覧表示する

カスタムGATTサービスの作成

表: カスタムGATTサービスの作成
項目 内容
コマンド AT+GATTSRV=<idx>,<uuid>\r
応答 成功: \r\nOK\r\n。失敗: \r\nERROR\r\n
パラメーター idx: サービススロット番号、0~5。uuid: サービスUUID。最上位バイトを先頭とした16進数文字列として入力する — 16ビットUUIDなら4文字、128ビットUUIDなら32文字。
備考 idxはカンマの直前の単一桁でなければならない。UUIDの長さは正確に4文字または32文字でなければならない — それ以外の長さはERRORを返す。スロットがすでにプロトコルスタックに登録されている場合は再設定できず、作成はERRORを返す。サービスを作成すると、そのスロットの以前の設定はクリアされる

カスタムGATTサービスの削除

表: カスタムGATTサービスの削除
項目 内容
コマンド AT+GATTSRV=<idx>,DEL\r
応答 \r\nOK\r\n
パラメーター idx: サービススロット番号、0~5
備考 RAM内のそのスロットの設定をクリアする。プロトコルスタックにすでに登録されているサービスは実行時に取り消すことはできない — このコマンドはRAM設定のみをクリアする

カスタムGATTキャラクタリスティックリストの照会

表: カスタムGATTキャラクタリスティックリストの照会
項目 内容
コマンド AT+GATTCHAR?<svc>\r
応答 そのサービスの各キャラクタリスティックについて1行返す: \r\n+GATTCHAR:<svc>,<chr>,prop=0x<prop>,len=<max_len>\r\n。その後\r\nOK\r\nが続く。サービスが存在しない場合: \r\nERROR\r\n
パラメーター svc: サービススロット番号、0~5。chr: キャラクタリスティックインデックス。prop: キャラクタリスティックのプロパティビット。16進数。max_len: キャラクタリスティック値の最大長
備考 なし

カスタムGATTキャラクタリスティックの追加

表: カスタムGATTキャラクタリスティックの追加
項目 内容
コマンド AT+GATTCHAR=<svc>,<chr>,<uuid>,<prop>,<len>\r
応答 成功: \r\nOK\r\n。失敗: \r\nERROR\r\n
パラメーター svc: サービススロット番号、0~5。chr: キャラクタリスティックインデックス、0~7。uuid: キャラクタリスティックUUID。最上位バイトを先頭に、16ビットなら4文字、128ビットなら32文字。prop: R(読み取り)、W(応答付き書き込み)、w(応答なし書き込み)、N(通知)、I(インディケーション)の文字で設定されるプロパティ文字列。len: キャラクタリスティック値の最大長、1~512
備考 5つのパラメーターすべてが必須であり、いずれかを省略するとERRORを返す。UUIDの長さは正確に4文字または32文字でなければならない。propには認識可能なプロパティ文字が少なくとも1つ含まれていなければならない。1つも認識されない場合はERRORを返す — prop内の認識されない文字は単に無視される。lenが0または512を超える場合はERRORを返す。親サービスはすでに作成されており、まだプロトコルスタックに登録されていない必要がある

カスタムGATTサービスの開始(登録)

表: カスタムGATTサービスの開始(登録)
項目 内容
コマンド AT+GATTSTART\r
応答 \r\n+GATTSTART:<count>\r\nの後に\r\nOK\r\nが続く。クエリ形式AT+GATTSTART?\r: \r\nERROR\r\n
パラメーター count: この呼び出しでプロトコルスタックに正常に登録されたサービスの数
備考 使用中であり、まだ登録されておらず、かつ少なくとも1つのキャラクタリスティックを持つすべてのサービスをプロトコルスタックに登録する。一度登録されると、サービスは実行時に取り消したり再設定したりできなくなる。クエリ形式はサポートされていない

GATTキャラクタリスティックデータの送信(通知/インディケーション)

表: GATTキャラクタリスティックデータの送信(通知/インディケーション)
項目 内容
コマンド AT+GATTSEND=<svc>,<chr>,<conn_hdl>,<hex>\r。接続ハンドルを省略: AT+GATTSEND=<svc>,<chr>,,<hex>\r
応答 成功: \r\nOK\r\n。失敗: \r\nERROR\r\n。クエリ形式AT+GATTSEND?\r: \r\nERROR\r\n
パラメーター svc: サービススロット番号。chr: キャラクタリスティックインデックス。conn_hdl: BLE接続ハンドル、16進数、1始まり。省略可能。hex: 送信するデータ。文字数が偶数の16進数文字列。ASCII ATフレームで運べる実際のデータ長も、単一ATフレームの上限によって制限される。
備考 conn_hdlが省略された場合、現在最初のBLE接続が使用される。対象サービスはすでに登録済みであり、キャラクタリスティックインデックスは有効でなければならない。キャラクタリスティックのプロパティにインディケーション(I)が含まれる場合はインディケーションが使用され、それ以外は通知が使用される。

カスタムGATT設定をFlashに保存

表: カスタムGATT設定をFlashに保存
項目 内容
コマンド AT+GATTSTORE\r
応答 成功: \r\nOK\r\n。失敗: \r\nERROR\r\n。クエリ形式AT+GATTSTORE?\r: \r\nERROR\r\n
パラメーター なし
備考 すべてのサービスとキャラクタリスティックの現在の設定をFlashに永続化する。設定データのみが保存され、登録状態などの実行時情報は保存されない。KVDBが準備できていない場合、または書き込みに失敗した場合はERRORを返す。クエリ形式はサポートされていない

Flash内のカスタムGATT設定のクリア

表: Flash内のカスタムGATT設定のクリア
項目 内容
コマンド AT+GATTCLEAR\r
応答 成功: \r\nOK\r\n。クエリ形式AT+GATTCLEAR?\r: \r\nERROR\r\n
パラメーター なし
備考 Flashに保存されたGATT設定を削除する。RAM内の現在の設定には影響しない。クエリ形式はサポートされていない。

GATT設定の起動時自動ロード設定を照会する

表: GATT設定の起動時自動ロード設定
項目 内容
コマンド AT+GATTAUTOSTART?\r
応答 \r\n+GATTAUTOSTART:<v>\r\n\r\nOK\r\n
パラメーター v: 現在の設定値。0 = 無効、1 = 有効。デフォルトは1。
備考 なし

GATT設定の起動時自動ロードを設定する

表: GATT設定の起動時自動ロード
項目 内容
コマンド AT+GATTAUTOSTART=<v>\r
応答 成功: \r\nOK\r\n。失敗: \r\nERROR\r\n
パラメーター v: 0 = 無効、1 = 有効。デフォルトは1。
備考 設定内容を更新します。有効にすると、デバイスは電源投入時に保存済みのGATTサービス設定を自動的にロードします。

非同期イベント(URC)

以下はモジュールからホストへ送られる非同期のステータス通知です。受信のためにホストからコマンドを送る必要はありません。通知の有無はイベント通知設定(AT+EVT)で制御され、サイレントモード中は通知されません。

IM_READYレディ通知

表: IM_READYレディ通知
項目 内容
コマンド なし(ファームウェアが自動的に通知する。ユーザーから送信されるものではない)
応答 通知文字列: \r\nIM_READY\r\n
パラメーター なし
備考 モジュールの初期化が完了して使用可能になると1回通知されます。また、すべての接続が切断され、接続数が0に戻ったときにも再度通知されます。通知の有無はAT+EVTで制御され、AT+EVT=1を設定するとこれらの通知が抑制されます。

IM_CONN接続通知

表: IM_CONN接続通知
項目 内容
コマンド なし(接続が確立されたときにファームウェアが自動的に通知する)
応答 コマンドモード: \r\nIM_CONN <hdl>,<addr>,<mtu>\r\n。パススルーモード: \r\nIM_CONN\r\n
パラメーター hdl: 接続ハンドル、16進数4桁(大文字、固定4桁、ゼロ埋め)。BLE接続は1始まりのハンドル(内部ハンドルに1を加えたもの)を表示し、他の種類は生の値を表示する。addr: ピアのアドレス、16進数12桁、最上位バイトが先頭。mtu: 現在の接続のMTU、10進数。
備考 コマンドモードでは、接続が確立されるたびにハンドル、ピアアドレス、MTUを含む通知が1回出力されます。パススルーモードでは最初の接続(接続数が1)のときだけ、パラメーターなしで通知されます。通知の有無はAT+EVTで制御され、AT+EVT=1を設定するとこれらの通知が抑制されます。

IM_DISCONN切断通知

表: IM_DISCONN切断通知
項目 内容
コマンド なし(接続が切断されたときにファームウェアが自動的に通知する)
応答 コマンドモード: \r\nIM_DISCONN:<hdl>\r\n
パラメーター hdl: 切断された接続のハンドル、16進数4桁(大文字、固定4桁、ゼロ埋め)。BLE接続は1始まりのハンドル(生のハンドルに1を加えたもの)を表示し、その他は生の値を表示する。
備考 ハンドルのみを含む通知で、コマンドモードでのみ出力されます。パススルーモードでは出力されません。どちらのモードでも、すべての接続が切断されて接続数が0に戻ると、追加で\r\nIM_READY\r\nが通知されます。通知の有無はAT+EVTで制御され、AT+EVT=1を設定するとこれらの通知が抑制されます。

PDU形式コマンド

PDUデータレポート(オペコード0x0101)

表: PDUデータレポート(モジュール → ホスト、オペコード0x0101)
項目 内容
コマンド なし(コマンドモードでファームウェアが自動的に通知する)
応答 \r\n< + opcode(2-byte little-endian) + len(2-byte little-endian) + body + \r\n
パラメーター opcodeは0x0101に固定。body = conn_hdl(2バイトリトルエンディアン)+ data。BLE接続ハンドルは1始まりの外部値を使用し、SPP接続は生のACLハンドルを使用する。
備考 コマンドモードでは、カスタムBLEキャラクタリスティックへのデータ書き込み、またはClassic Bluetooth SPP経由でのデータ受信があった場合、モジュールは上記の形式でホストに報告する。パススルーモードでは、データは直接出力される。

PDUモードでのデータ送信(通知キャラクタリスティックの自動選択、オペコード0x0101)

表: PDUモードでのデータ送信(通知キャラクタリスティックの自動選択、オペコード0x0101)
項目 内容
コマンド バイナリフレーム(テキストのAT行ではない): AT> + opcode(2バイトリトルエンディアン) + len(2バイトリトルエンディアン) + body + \r。ここでopcode = 0x0101(バイト列01 01)。lenはbodyのバイト数。body = conn_hdl(2バイトリトルエンディアン) + data。dataは送信するペイロード。
応答 テキストの応答文字列なし。ファームウェアは接続の種類に応じてdataをピアに転送し、OK/ERRORを返信しない。
パラメーター opcode: 0x0101に固定。len: bodyの長さ、範囲2~508(2未満またはAT_RX_BUF_SIZE-4を超えるフレームは破棄される。AT_RX_BUF_SIZE = 512)。conn_hdl: 対象の接続ハンドル。BLE接続は1始まり(外部表示値)、SPP接続は生のACLハンドル。data: ペイロードバイト、長さ = len-2、0でもよい。
備考 conn_hdlは、まずBLEの1始まりハンドルと照合されます(conn_hdl-1がBLEスロットに対応)。見つからない場合は、SPPスロットの生の値と照合されます。接続が見つからなければ、フレームは破棄されます。BLE接続では、ファームウェアがカスタムGATTサービスを順に確認し、NotifyまたはIndicateプロパティを持つ最初のキャラクタリスティックを自動選択して送信します。該当するキャラクタリスティックがなければ、データは送信されません。SPP(BR/EDR)接続では、dataがSPPチャネル経由で送信されます。フレームの直後に\rが必要です。続かない場合、現在のフレームは破棄されます。フレーム間にPDUタイムアウト時間内に新しいバイトを受信しなかった場合、PDU受信状態がリセットされます。

PDUモードでのデータ送信(サービスとキャラクタリスティックの指定、オペコード0x0102)

表: PDUモードでのデータ送信(サービスとキャラクタリスティックの指定、オペコード0x0102)
項目 内容
コマンド バイナリフレーム(テキストのAT行ではない): AT> + opcode(2バイトリトルエンディアン) + len(2バイトリトルエンディアン) + body + \r。ここでopcode = 0x0102(バイト列02 01)。lenはbodyのバイト数。body = conn_hdl(2バイトリトルエンディアン) + svc_idx(1バイト) + char_idx(1バイト) + data。
応答 テキストの応答文字列なし。ファームウェアは指定されたサービス/キャラクタリスティック経由でdataをピアに送信し、OK/ERRORを返信しない。
パラメーター opcode: 0x0102に固定。len: bodyの長さ、範囲4~508(受信レイヤーの一般的な下限は2だが、このオペコードはbodyが少なくとも4バイト、すなわちsvc_idx+char_idxを含む必要がある)— そうでない場合は破棄される。conn_hdl: 対象のBLE接続ハンドル、1始まり(外部表示値)。svc_idx: カスタムGATTサービスのインデックス。char_idx: そのサービス内のキャラクタリスティックインデックス。data: ペイロードバイト、長さ = len-4、0でもよい。
備考 BLE接続のみ対応します。解決された接続がSPPの場合、フレームは破棄されます。svc_idxは登録済みのカスタムサービスに対応し、char_idxはそのサービスのキャラクタリスティック数未満でなければなりません。条件を満たさない場合、フレームは破棄されます。指定されたキャラクタリスティックにはNotifyまたはIndicateプロパティが必要です。conn_hdlの解決規則は0x0101と同じです(1始まりのBLEハンドルを先に照合し、次に生の値を照合)。フレームの直後に\rが必要です。

PDUモードでの切断

表: PDUモードでの切断
項目 内容
コマンド AT+DISCONN\r(パラメーターなし)またはAT+DISCONN=<conn_hdl>\r
応答 成功: \r\nOK\r\n。失敗: \r\nERROR\r\n
パラメーター conn_hdl: 切断する接続ハンドル、16進数。BLE接続は1始まり(外部表示値)で、値は0であってはならない(0は無効な入力として扱われERRORを返す)。SPP接続は生のACLハンドルを使用する。
備考 パラメーターなしの場合、現在のすべての接続が切断されOKが返される。パラメーターありの場合、解決順序は次の通り: まずBLEの1始まりハンドルと照合(conn_hdl-1がBLEスロットに一致する)。見つからない場合はSPPスロットの生の値と照合。接続が見つからない場合はERRORを返す。BLE接続の場合、理由コード0x13で切断が開始される。SPP接続の場合、ピアアドレスによって切断が開始される。クエリ形式AT+DISCONN?はERRORを返す。

PDU接続ステータス通知(IM_CONN / IM_DISCONN)

表: PDU接続ステータス通知(IM_CONN / IM_DISCONN)
項目 内容
コマンド モジュールが自動的に通知するため、ホストからのコマンドは不要です。接続確立時にIM_CONN、切断時にIM_DISCONNが通知されます。
応答 コマンドモード、接続確立時: \r\nIM_CONN <hdl>,<mac>,<mtu>\r\n。ここで<hdl>は16進数4桁のハンドル、<mac>は16進数12桁のアドレス(最上位バイトが先頭)、<mtu>は10進数のMTU。コマンドモード、接続切断時: \r\nIM_DISCONN:<hdl>\r\n(<hdl>は16進数4桁)。パススルーモードでは、最初の接続が確立されたときにのみ\r\nIM_CONN\r\n(パラメーターなし)を報告し、切断時にIM_DISCONNは報告しない。両方のモードとも、すべての接続が切断されると\r\nIM_READY\r\nを報告する。
パラメーター <hdl>: 接続ハンドル。BLE接続は1始まり(内部の0始まりに1を加えたもの)で表示され、SPP接続は生のハンドルを表示する。<mac>: ピアのBluetoothアドレス。<mtu>: ネゴシエートされたMTU。
備考 通知の有無はAT+EVTで制御されます。0(デフォルト)では通常どおり通知され、1ではIM_READY/IM_CONN/IM_DISCONNがすべて抑制されます。通知の形式と内容は、前述のとおり現在の動作モード(コマンドモード/パススルーモード)によって異なります。

付録

一般的なClass of Deviceの値

表: 一般的なClass of Deviceの値
デバイスの種類 16進数値
コンピューター 0x000100
電話 0x000200
LAN/ネットワークアクセスポイント 0x000300
オーディオ/ビデオ 0x000400
ペリフェラル(キーボード/マウスなど) 0x000500
イメージング(プリンター/スキャナーなど) 0x000600

最終更新: