SIM7080G搭載 CAT-M/NB-IoT+GNSSユニットが動かない時に確認したい事と、対応SIM(LTE-M)

スイッチサイエンスさんから販売されている「[M5Stack用 SIM7080G搭載 CAT-M/NB-IoT+GNSSユニット（アンテナつき）](https://www.switch-science.com/catalog/8191/)」を使う際には、**供給電力に気を付けようね**というブログです。

ついでに、同ユニットでLTE-M通信ができたSIMについても紹介します。
※GNSSについては未調査です。

## TL;DR / 電源について

* 同ユニットへの給電は、DCジャック経由がおススメ。
    * DCジャックは、サイズは標準(内径:2.1mm 外径:5.5mm)で極性はセンタープラス。
* 給電の一番手軽な方法は、9V角型乾電池(006P型 9V)と、DCプラグ付きスナップアダプタの利用。
    * 例) [電池スナップDCプラグアダプタ](https://www.switch-science.com/catalog/1912/)

#### 接続例

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22754/8d16d270-e307-8206-499b-4c1ef2f13bdf.png)

## TL;DR / SIMについて

確認できたSIMは3つ。
中でも手軽なのは、[300MB通信量バンドルの「SORACOM 特定地域向け IoT SIM plan-D D-300MB](https://soracom.jp/store/13380/)

## 電源について

まず、正常動作時と電力不足時でLEDの光り方が以下のように異なります。

#### 正常時 (青色LEDが点滅する)
![output.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22754/c02fb8a2-a013-a69d-d5f8-849b432f6018.gif)

#### 電力不足時 (青色LEDが点灯しない、赤色LEDの元気が無い)
![output.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22754/c1614a51-df0f-d53f-1b5b-4d127567108d.gif)

### Grove ポートからの給電は「5V、500mA以上」が必要

動かない...！とツイートしたら、M5Stack公式さんより「Groveポートからは、5V 500mA以上で給電してね！」とのことでした。

<blockquote class="twitter-tweet"><p lang="en" dir="ltr">yes, it needs 5v and &gt;500ma power.</p>&mdash; M5Stack (@M5Stack) <a href="https://twitter.com/M5Stack/status/1550003318650351616?ref_src=twsrc%5Etfw">July 21, 2022</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

安定化電源での試験はしていないのですが、きっちり5Vを入力しないと動かないようです。

M5Stack BasicなどのMCUのGPIOラインから引っ張り出してくるには、ちょっと厳しいかもしれません実際、私の手元にあるM5Stack Basic(V2.6よりも前のバージョン)の5Vを計測すると、電圧で4.93V ~ 4.98V と微妙に届きませんでした。

私はここでGrove ポートからの給電をあきらめました。

### DCジャック(ポート)からの給電は、9V ~ 24V

サマリーにも書きましたが、9V角型乾電池ならば一発で動きます。動作確認にはおススメです。
DCジャックは、サイズは標準(内径:2.1mm 外径:5.5mm)で極性はセンタープラスです。9V角型乾電池(006P型 9V)との接続には[DCプラグ付きスナップアダプタ](https://www.switch-science.com/catalog/1912/)が確実です。

ACアダプタであれば、たとえば[12V/2A ACアダプタ](https://www.switch-science.com/catalog/4074/)があります。

#### DCジャックから給電した場合、Grove ポートの5Vピンは "出力" になります

ユニットにも書いてある通りなのですが、DCジャックから給電するとGrove ポートからは5Vが出力されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22754/ce439826-1822-6155-af22-8d913ab1deb8.png)

MCUとつなげる時には気を付けましょう。(というか、つなげるとMCUかユニットが壊れそうです)

### ユニットをMCUとつなげる時に便利なGroveケーブル

このへんのケーブルがあると、MCUとの接続が楽だと思います。

* [GROVE - 4ピン-ジャンパ**メス**ケーブル](https://www.switch-science.com/catalog/1048/)
* [GROVE - 4ピン-ジャンパ**オス**ケーブル](https://www.switch-science.com/catalog/6245/)

## 同ユニットでLTE-M通信できるSIMについて

同ユニットはLTE-MもしくはNB-IoTなので、SIMが必要です。
SIMスロットのサイズは **マイクロ(micro)サイズ** になります。調達時は気を付けましょう。

確認できたSIMは以下の通りです。いずれも LTE-M(Cat.M) です。

* [SORACOM 特定地域向け IoT SIM plan-D](https://soracom.jp/store/13380/) (NTTドコモ回線のLTE-M)
    * 完全従量の plan-D、300MB通信量バンドルの plan-D D-300MB のどちらでも動作します。
    * microサイズを選ぶようにしてください。
    * 初期費用の違いは、SMSの有無です。
* [SORACOM 特定地域向け IoT SIM plan-KM1](https://soracom.jp/store/5263/) (KDDI回線のLTE-M)
    * サイズがnanoしか無いため注意しましょう。
* [SORACOM IoT SIM planX3](https://soracom.jp/store/19503/) (NTTドコモ回線のLTE-M)
    * グローバルカバレッジ(世界の国と地域で使える)ですが、日本国内でも利用可能です。ドル建てになります。
    * 3in1なのでサイズ指定はありません。(microサイズを内包している)

一番お手軽なのが、[300MB通信量バンドルの「SORACOM 特定地域向け IoT SIM plan-D D-300MB](https://soracom.jp/store/13380/)かと思います。
microサイズがあること、そして月額費用330円(税込)の中に300MBまでの通信料がバンドルされており、IoT用途なら追加費用なしに利用できそうという理由です。

※完全従量のplan-Dは、1日11円(税込)の基本料金+通信料で、月間300MB未満であれば plan-D D-300MB の方がお得です！

#### ATコマンドで動作確認する

`{"str":"Hello SORACOM! from CAT-M/NB-IoT+GNSS Unit via LTE-M","val":1}` というJSON文字列を、IoTデータ収集・蓄積(ストレージ)サービス「[SORACOM Harvest](https://soracom.jp/services/harvest/)」へHTTP POSTする様子です。

ちなみに検証は、[USBシリアル変換ケーブル](https://www.switch-science.com/catalog/1196/)を使いパソコンのターミナル上から直接叩きました。

```bash
ATE1
ATI
#=> モデム情報を表示
AT+GSN
#=> IMEIを表示

## 接続
AT+CFUN=0
AT+CGDCONT=1,"IP","soracom.io"
AT+CFUN=1
AT+CGNAPN
AT+CNACT=0,1
AT+CNACT?
#=> IPアドレスを表示

## HTTP POST 送信
AT+SHCONF="URL","http://uni.soracom.io"
AT+SHCONF="BODYLEN",1024
AT+SHCONF="HEADERLEN",350
AT+SHCONN
AT+SHSTATE?
#=> ここまでの状態確認
AT+SHCHEAD
AT+SHAHEAD="User-Agent","CAT-M/NB-IoT+GNSS Unit w/ SIM7080G"
AT+SHAHEAD="Connection","close"
AT+SHAHEAD="Accept","*/*"
AT+SHAHEAD="Content-Type","application/json"
AT+SHBOD=70,10000
{"str":"Hello SORACOM! from CAT-M/NB-IoT+GNSS Unit via LTE-M","val":1}
AT+SHREQ="/",3
#=> POST 送信完了 (この時、HTTP ステータスコードが表示される。正常ならば 201)

## 切断
AT+SHDISC
AT+CNACT=0,0
AT+CFUN=0
```

SORACOMのユーザーコンソール上で、このように確認できました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22754/123396fb-965e-48b7-f019-978346b1a8a6.png)

:::note info
**uni.soracom.io** について
uni.soracom.io は「[ユニファイドエンドポイント](https://users.soracom.io/ja-jp/docs/unified-endpoint/)」と呼ばれるアドレスです。
このアドレスに送信しておけば、データ送信先をSORACOMユーザーコンソール上で変更できます。デバイス上の送信先アドレスの書き換えが不要になるのがメリットです。
データの送信先に指定できるSORACOMサービスは、[ユニファイドエンドポイント](https://users.soracom.io/ja-jp/docs/unified-endpoint/のドキュメント)をご覧ください。
:::

## おわりに

アンテナ付きなのがありがたいですね。
とはいえ、Grove ポートからサクッといけるかと思ったら、思いの外ハマってしまいました。

最後に、今回の検証は個人的に行ったことです。動作保証をするものでは無いのでご留意をー！
それでは良い7月を！

EoT