Multitech xDOT DK 最初のステップ

/media/uploads/shigechan/xdotdk-ss.jpg

入荷したばかり 工場出荷状態 の xDOT DK を実際に使ったので、出来た事をメモしております。
誤記、脱字があれば、ご指摘ください。


xDOT DK を起動する

標準で出荷されるxDOT DKには、ATコマンドをサポートするファームウェアが実装されています。


次のドキュメント

に目を通し、イメージを膨らませ WindowsPCのUSBポートへ xDOT DK を挿します。
すると、
① 仮想COMポートが2種類作られ、
② xDOTの名前を持ったドライブがアサインされる
のが確認できます。


<仮想COMポート>

/media/uploads/shigechan/xdot_dk--------.jpg.jpg

  • 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ドライブ>
/media/uploads/shigechan/xdotdk------.jpg

  • カスタムアプリケーションをプログラミングし、コンパイルする事でカスタムアプリケーションのバイナリーファイルを作成します。
    作成したバイナリーファイルは、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セットアップと送信までのスクリーンショット
/media/uploads/shigechan/atcommand.jpg


ConduitAEP 側での受信確認

xDOTにセットした NetworkID name と Network Key Passphrase とを ConduitAEP側にも設定します。

  • /media/uploads/shigechan/2018-05-08_09h46_46.jpg

Node-red を使ってデータ受信環境をプログラミングします。
lora inノードと debugノードを配して、フローを作成します
debugノード出力結果で、受信データが確認できます。

  • /media/uploads/shigechan/nodered.jpg

次は、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"
}

メッセージオブジェクトの定義

ValiableTypeDescription
chanNumberChannel used for RX
codrStringLoRa ECC coding rate identifier
datrStringLoRa datarate identifier
freqStringRX central frequency in MHz (unsigned float, Hz precision)
lsnrStringLora SNR ratio in dB
moduStringModulation identifier "LORA" or "FSK"
rfchNumber"RF chain" used for RX (will be 0 or 1)
rssiNumberRSSI in dBm
sizeNumberRF packet payload size in bytes
timestampStringTime of packet RX
tmstStringInternal timestamp of "RX finished" event (32b unsigned)
payloadString or BufferThe message data.
euiStringThe 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.