Multitech xDOT DK 最初のステップ
.
入荷したばかり 工場出荷状態 の xDOT DK を実際に使ったので、出来た事をメモしております。
誤記、脱字があれば、ご指摘ください。
xDOT DK を起動する
標準で出荷されるxDOT DKには、ATコマンドをサポートするファームウェアが実装されています。
次のドキュメント
に目を通し、イメージを膨らませ WindowsPCのUSBポートへ xDOT DK を挿します。
すると、
① 仮想COMポートが2種類作られ、
② xDOTの名前を持ったドライブがアサインされる
のが確認できます。
<仮想COMポート>
- COMポートの番号は、使用しているPC環境で異なります。
- 2つの仮想COMポートは、115200,8,n,1 の通信パラメータでそれぞれTeraTermで接続します。
一つ目のCOMポートは、デバッグポートです。
mbed serial port
二つ目のCOMポートは、ATコマンドポートとなります。
XR21V1410 USB UART
- teraterm 115200bps,8,n,1 で 接続後、at と入力すると OK が応答されますので、動作確認ができます。
- ATコマンドで環境設定、LoRa通信 等を行うことが出来ます。
<xDOTドライブ>
- カスタムアプリケーションをプログラミングし、コンパイルする事でカスタムアプリケーションのバイナリーファイルを作成します。
作成したバイナリーファイルは、PC側に自動的にダウンロードされ保存することになります。
PC側ではダウンロードしたバイナリファイルを手動で xDOTドライブへドラッグアンドドロップし転送作業を行います。
- このドラッグアンドドロップの操作は、 xDOTのファームウェアを更新(書換)する操作となります。
- 書き換えに失敗した場合には、fail.txt が現れますので、テキストエディタ等で開いて、エラー確認と対策を行います。
- fail.txt が現れない場合には、書き換えが成功していますので、リセットボタンを押して、再起動させます。
xDOT DK で ATコマンドを使う
ATコマンドの詳細は、MultiTech Dot AT Command Guideを参照してください。
<xDotの設定>
1. xDot DK 経由でシリアル接続を確立する
- 仮想COM(XR21V1410 USB UART)ポートへ、ボーレート115,200でTeraTermなどの
端末アプリケーションを使用して端末セッションを開きます。
2. AT&Vコマンドで現在値を取得します。
OK AT&V Device ID: xx:xx:xx:xx:xx:xx:xx:xx Default Frequency Band: US915 Current Frequency Band: AS923-JAPAN Frequency Sub Band: 0 Public Network: off Start Up Mode: COMMAND Network Address: 00000000 Network ID: 2b:7e:15:16:xx:xx:xx:xx Network ID Passphrase:<LoRaゲートウェイと同じ ネットワーク名 > Network Key: 2b.7e.15.16.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx.xx Network Key Passphrase:<LoRaゲートウェイと同じ ネットワークパスフレーズ > Network Session Key: 00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00 Data Session Key: 00.00.00.00.00.00.00.00.00.00.00.00.00.00.00 Network Join Mode: OTA Network Join Retries: 2 Preserve Session: off Join Byte Order: LSB Join Delay: 1 Join Rx1 DR Offset: 0 Join Rx2 Datarate: DR8 - FSK Join Rx2 Frequency: 923300000 App Port: 1 Listen Before Talk: off Link Check Threshold: off Link Check Count: off Error Correction: 1 bytes ACK Retries: off Packet Repeat: 1 Encryption: on CRC: on Adaptive Data Rate: off Command Echo: on Verbose Response: off Tx Frequency: 0 Tx Data Rate: DR0 - SF12BW125 Min/Max Tx Data Rate: Min: DR0 - SF12BW125 Max: DR7 - FSK Tx Power: 20 Min/Max Tx Power: Min: 0 Max: 36 Tx Antenna Gain: 3 Tx Wait: on Tx Inverted Signal: off Rx Delay: 1 s Rx Inverted Signal: on Rx Output Style: HEXADECIMAL Debug Baud Rate: 115200 Serial Baud Rate: 115200 Serial Flow Control: off Serial Clear On Error: on Wake Mode: INTERVAL Wake Interval: 10 s Wake Delay: 100 ms Wake Timeout: 20 ms Wake Pin: WAKE Log Level: 0 OK
※ Current Frequency Band が AS923-JAPAN である事を確認します。
※ "Public Network" を確認してください。GW側と違っていると Join 出来ない症状となります。2018・11・23 追記
2. 次のコマンドで、ゲートウェイに設定した値を確認後、同じ値でxDOT端末側も設定します。
・ AT+FSB=0
・ AT+PN=0 ← Disable public network mode
・ AT+PN=1 ← Enable public network mode
・ AT+NI=1, testnetwork ( value = LoRaゲートウェイのネットワーク名)
・ AT+NK=1, testnetwork ( value= LoRaゲートウェイのネットワークパスフレーズ)
・ AT&W (設定を保存する)
・ ATZ (再起動)
再起動後は、設定値が保存されているので、再設定は不要です。
<xDOTからのデータ送信>
3. AT+JOIN (ネットワークに参加する)
・ Successfully joined network のメッセージが表示されます。
4. ACK応答を要求後、データを送信する
・ AT+ACK=1
・ AT+SEND=hello world ← "hello world"の文字列を送信
xDotセットアップと送信までのスクリーンショット
ConduitAEP 側での受信確認
xDOTにセットした NetworkID name と Network Key Passphrase とを ConduitAEP側にも設定します。
Node-red を使ってデータ受信環境をプログラミングします。
lora inノードと debugノードを配して、フローを作成します
debugノード出力結果で、受信データが確認できます。
次は、LoRa in ノードで受信した msg オブジェクトのサンプルとなります。
メッセージオブジェクトサンプル
"msg": { "chan": 5, "codr": "4/5", "datr": "SF7BW125", "freq": "903.3", "lsnr": "85", "modu": "LORA", "rfch": 1, "rssi": -55, "size": 12, "timestamp": "2015-04-09 16:22:12", "tmst": 67346764, "payload": "hello world", <----- この部分が xDOT DK から送られて来たメッセージ "eui": "00:11:22:33:44:55:66:88" }
メッセージオブジェクトの定義
Valiable | Type | Description |
---|---|---|
chan | Number | Channel used for RX |
codr | String | LoRa ECC coding rate identifier |
datr | String | LoRa datarate identifier |
freq | String | RX central frequency in MHz (unsigned float, Hz precision) |
lsnr | String | Lora SNR ratio in dB |
modu | String | Modulation identifier "LORA" or "FSK" |
rfch | Number | "RF chain" used for RX (will be 0 or 1) |
rssi | Number | RSSI in dBm |
size | Number | RF packet payload size in bytes |
timestamp | String | Time of packet RX |
tmst | String | Internal timestamp of "RX finished" event (32b unsigned) |
payload | String or Buffer | The message data. |
eui | String | The device EUI. This is a unique identifier for the mDot. |
ConduitAEPで動作する Node-redの使い方は別の機会に譲ります。
重要!
xDOT DK の簡単な使い方をメモ書きしました。
しかし、ここで重要なのは、DK 環境 が提供している シリアル2ポート、xDOTドライブを見せかける仕組み(ファームウェアの更新機能) となります。xDOTパッケージ単体を使った端末製品では、少なくとも ファームウェアの更新機能を実装しておかないとファームウェアの更新ができなくなりますので、部品コストとの兼ね合いもありますが、注意深く検討する必要があります。
以上 楽しんでください。
続きは、"カスタムファームを作る" となります。
Please log in to post comments.