マイコンによるLTE通信の検討

ドコモの3G停波は2026年3月だが、一部のエリアは2022年1月からFOMAデータ通信が使えなくなると判った。
ドコモは3G設備を集約していて、順次、2GHz帯が停波され、800MHz帯(FOMAプラスエリア)のみとなる。

800MHz帯が入れば大丈夫だが、2GHz停波されてみないと判らない。突然、通信できなくなるのは怖い。
そこで、現状のREX80+L08Cに代わるLTE通信方法の検討を早める事にした。

自作向きのLTE通信方法

通信モジュールは色々出ているが、ほとんど法人向け。個人が一個から購入できる物は限られる。
REX80+LTEモデム L03Dを試したが接続せず、NG
Raspberry pi+LTEモデム 中古、数千円〜 L03DやL03F。起動や終了に手順がいる。消費電流が増える。
Raspberry pi+CANDY Pi Lite+ ≒\16000 やや高価、上記の方が簡単そう
Wio LTE JP Version \7551〜\11400 5V2Aが必要? 情報少なめ、開発がやや面倒そう
xyz-mIOT LTE NB IoT/CAT M1モデム RobotShop¥9220 ATSAMD21G ARM0+BG96、情報少ない、開発が面倒そう
Sprisense+LTE拡張ボード ¥6050+\8778 LTE-M、やや高価、高機能、低消費電流、汎用的
LTE-M Shield for Arduino Soracom \7128 安め、低消費電流、開発しやすそう

LTE-Mは高速LTEの一部周波数帯域のみを利用することでモジュールの低価格化、省電力化する技術。
ドコモの速度は300kbps/375kbps

Raspberry piを使うと現状より消費電流が増えるのでバッテリ駆動に不安が残る。
有力なのはLTE-M Shield for Arduino、次いでSprisense+LTE拡張ボードだろう。

LTE-M Shield for Arduino

国内発売は2020年12月、ソラコム向けカスタマイズしている。
Arduino TinyGSMライブラリを使用する。
出力0.2Wだが、外部アンテナを接続できるので大丈夫と思う。

Soracom SIM,SORACOM Harvestの使用を前提としており、それ以外の使用例がまだなかった。
LTE-Mは対応SIMが必要? Soracom plan-d,plan-KM1
Wio LTE M1/NB1(BG96)ではKDDI系(plan-KM1)の他、SoftBank系はOKでDocomo系がNGとの情報あり。
Docomoの相互接続性試験完了モジュールにBG96が載ったのは2019/6で、上の情報はそれ以前だった。

Soracomの使用例ソースを見るとHTTP通信にアドレス指定が無かった。
SoracomはSIM認証しているので携帯番号で選別しているのか?
質問したら、SIMロックはしていないし他社サーバーへデータを送る事もできるとの事。
送信を暗号化したい場合はSORACOM Beamを使うと簡単らしい。

LTE-M Shield for Arduino の動作確認

Soracomの使用例は自社システム前提なので、あまり参考にならない。
Dragino TechnologyのDocumentやTinyGSMの説明が参考になった。

購入してplan-d300のSIMを確認、SIMフリーではないL-03Dで繋がった。DocomoSIM。
モジュールを外しSIMを刺す、向きは逆にも入ってしまう、シールド板に刻印があります。

Arduino UNOと繋ぎ、シリアルブリッジを書き込む。 PWR LED点灯、NET LED薄く点滅。
シリアルモニターを CRのみ、9600bps に設定し、ATコマンド例の様に送信し確認できた。
AT+CSQは換算すればrssiのdBm値が得られる。

次にTinyGSMページに有ったWebClientを試す、RAMが残り少ない警告が出た。
シリアルモニターを115Kbpsにすると、モデム速度の自動設定が始まりモデム間は9600bpsになった。
モデム初期化→soracom.io接続→サイト接続→HTTP GETで TINY GSM ロゴ表示→切断と上手くいった!

シリアル自動設定(TinyGsmAutoBaud)を止めて9600bpsにするとRAMは75%→70%になり少し節約。
シリアルバッファを減らすのも節約になる。だが色々やるとATmega328のRAM(2K)では厳しいかも?

このスケッチはUNOからRESETをやってない、IOpinへのRESETジャンパーを外しても大丈夫だった。
WebClientにデータを載せてみると、送れない確率が高い時がある。混んでる時間かも?
電流計で測ると0.02〜0.07A、瞬間的にはもっと流れていると思うが省電力だ。

開発用SIM料金を節約すべく2台目を早めに買った。(2022/1)
チェックするとNET-LEDが点かず、シリアルブリッジでATコマンド通信ができない。初期不良?
SORACOMに問い合わせを送ったが、サービス用の「connectivity_diagnostics_for_lte_m_shield.ino」を思い出した。
これを数回動かした所、NET-LEDが点いて、PingもOKになりました。リセットにより直った?

と思ったら、2か月後に再発!サービスに送ってチェックしてもらったが再現せず、問題なし。
サービスセンターからはスイッチを伸ばした状態で帰ってきた。
テスターで確認した所、ON/OFFスイッチが前回の物と逆になってました!
SORACOMスタートガイドにならいスイッチを押し込んでいたのが原因でした。

このスイッチはPWRKEYに繋がっており、5Vを入れてもBG96がONしない状態になるようです。
またPWR-赤LEDは5Vを表していて、見にくいNET-黄色LEDがBG96のONや動作を表示していた。
スイッチが変わり、工場でマウント向きを合わせられなかった事が原因だろう。大きな写真、左-新、右-旧

・1月からサービスと10回以上やりとりしたが、この仕様変更の情報は一度も来なかった。
 物を送っても指摘なし。ヽ(`Д´)ノ これでスタートガイドは4/8に更新された。

接続端子を調べる

Arduino Unoではない、nano evreyや他のマイコンを繋ぐ時に必要な端子を調べた。
Arduino pinは0〜13だがIoT Shield.v1.2 SCH.pdfでは1〜書いてありシルクとも違う紛らわしい。
また、端子写真のNB-IoT_Shied_700px-A.jpgも古いVerでVer1.2とは違いがあった。

3.3Vpower 4バッファ用 レベル変換
5Vpower 54〜6V 0.3A 以上 BG96は3.6V
GNDpower 6
GNDpower 7
NB_ResetA1(15),PC1
AVR_RX10,PB2
AVR_TX11,PB3
GND13とAREFの間NC open
MCU_INT3,PD2Ring indicator出力? 未使用
GNDisp 6ispはGNDのみ。必要?

秋月のAE-ATmega基板でArduino互換を作り、3.3Vregを追加した。
この基板でLTE-M Shield for Arduino を動作できました。大きな写真

回路図をよく見るとIFは3.3Vで、5V系への対応はRXバッファに3.3Kが入っている。
Arduino互換基板

ATコマンドでHTTP通信

WebClientでのBG96との通信内容を調べた。
はじめ、ADALM2000ロジックアナライザでモニターしたが一部しか見えず。
FT232のRXIをパラ接続しTeraTermでBG96へのTX,RXをそれぞれモニターし突き合わせた。

BG96はHTTP用ATコマンドも有るが使用して無かった。TCP-IPソケット通信でHTTP通信を行っていた。
モニター内容を手動でやってみる。TCP-IPでログインしサーバ接続や切断はできた。
HTTP通信のAT+QISENDが上手く行かずつまづいている。

SIMを変えたらNG、戻してもDocomoネットワークに繋がらなくなった。
調べるとAT+CEREG=?が0,2のサーチ中で待てども0,1にならない。故障?? (+_+)
一晩おいてAT+CGDCONTやAT+COPS=?をやって調べてたら、繋がるようになった。

RenesasさくらIoTのBG96資料から、AT+CGDCONTが必要みたい。
だがMVNO-SIMではNG。

さくらIoTの様にAT+CGDCONTとAT+COPS=?でサーチするとMVNO-SIMでも繋がった。
なお、サーチは約50秒〜90秒かかる。レスポンスは長い一行で200バイトほど来ます。
MVNO-SIMに変えた時とか一回目がエラーになって2回目で繋がった。

ATコマンドの理解が進まないので「SORACOMで学ぶATコマンド入門」を購入した。(\500)
ATコマンドのレスポンスは、改行とレスポンス行の2行または4行が返ってくる。
プロバイダ接続はAT+QICSGPで設定し、AT+QIACT=1で有効にするのが良さそうです。

AT+QISENDの > は改行されないので一文字受信で確認する。> からデータを送る時に時間制限あり、
手動で送る時は要注意です。また、終わりのCTRL+ZとはSUB{026}である。
一回に送るのは改行までの一行で、Get構文だと3回に分けて送る。
やっと、ATコマンドを使った、サーバーへのデータ転送ができるようになりました。
BG96 ATコマンド ソケット通信

AT+QHTTPPOSTでは送るデータ数をあらかじめ調べておく必要があります。

電源ON後の基地局サーチ(AT+COPS=?)は、省略できる場合も多い。時間短縮!
動作確認したSIMはソラコムPlan-D300MB、iijmio-iot、mineo-Dプランです。

アンテナにATTを入れて試すと、rssi 8(-97dBm)でも通信できた。
このdBm値はNetwork Cell infoのdBmでは-120dBm未満に相当する様です。

REX80+L08Cの代わりに使う

REX80の10ピンコネクタとコンパチ接続できる基板を作った。回路図
本体マイコンは3.3Vなのでインターフェイスは直結でき、ソフトをATコマンドを使う様に改造した。
REX80_LTE-M 基板



  Topへ 三河フライヤーズクラブ、エリアの風

< 感想などあれば >

 Copyright (C) 2021 S.Yoshikawa 2021/8-2022/5 転載禁止です
---------------------------------------------------------