3gimV2
3GIM(3G IoT Module) Ver2 について
概要
3GIM(スリージム)は、様々なマイコンを使って、簡単にインターネット接続することができるSDカードサイズの超小型3G通信モジュールです。
Ver2では、コアとなる通信モジュールをシエラワイヤレス製の新しいHL8548-Gに変更して、従来とほぼ互換性を保ちつつ、下記の新しい機能を追加しました。
- より高速な通信機能
通信速度は最高115200bpsまで設定可能
バイナリデータを最大32KBまで一気に送信することが可能
- 消費電力を抑えるエアプレーンモード
エアプレーンモードに入ることで消費電流を10mA以下に節減
エアプレーンモード中でもSMSの待ち受けが可能
- 強化されたGPS機能
ロシアのGLONASSにも対応。また、AGPS機能※1を利用可能
NMEA形式の出力をそのまま取得することも可能
- 3GIM単体でプログラミング可能な32bitマイコン(Cortex-M0+)の搭載
32ビットARMマイコン(LPC812M101JTB16)を搭載、独自のファームウェアを開発することで
バッテリと3GIM+アンテナだけでIoTデバイスを実現可能(技術情報は後日公開予定※2)
※1 APGS【Assisted GPS】機能は、3G通信基地局から衛星位置情報などを先に取得することで、電源立上げ時では数十秒ほどで精度の高い位置情報が取得できます。またビルの谷間や屋内でも3Gが繋がればGPSの位置情報取得が可能となります。
※2 無償のC/C++開発環境LPCXpresso IDEを利用できます。開発に便利な治具等も販売を検討中です
外観
3GIM(V2)の画像を掲載します。
なお、基板の色やレイアウト・寸法等は、今後変更となる場合がありますのでご注意ください。
- 全体
- 表面
- 裏面
提供する機能
3GIM(V2)は、従来とほぼ互換である下記機能を提供します:
- 3Gを介したインターネット接続(TCPおよびHTTP/HTTPS※1)
- インターネットからの時刻取得
- GPSを使った位置情報の取得
- SMSの送受信
- 省電力の制御
- その他機能(電波強度の取得、ボーレートの変更、APN※2の切り替え等)
(※1)対応できるSSL証明書には一部制約があります。すべてのサーバに対してHTTPS通信ができることを保証する訳ではありません。
(※2)利用可能なSIMカードについては、「利用上の留意点」をご覧ください。
3GIMのスペック
項目 | 仕様 | 補足 |
外形寸法 | 幅25mm * 奥行35mm * 高さ7mm | 取付穴は2.6mm径(1ヶ所) |
電源電圧 | 3.3~4.2V | 安定した3.3~4VのDC電源または3.7Vリチウムポリマ電池を推奨(5Vの供給は不可) |
消費電流 | 10(sleep時)~900mA(peak時) | 利用状況や電波状態に依存 |
3G対応バンド | UMTS(Band1/6/19) | docomoのIoT取得済 |
GNSS | GPS/GLONASS | NMEA準拠。AGPS利用可能 |
マイコンとのインタフェース | UARTを介したコマンド・レスポンス方式 または USBモデム | 仕様書は別途公開予定 |
添付アンテナ | 同梱するフレキシブルアンテナ | シールとしてケース等に貼付可 |
ロジック電圧 | 任意のロジック電圧で利用可能(3GIMにIO電圧を供給) | |
UART | デフォルト設定は9600bps(最大115200bps)/8データビット/パリティなし/1ストップビット | ボーレートは変更可 |
USB 2.0 | ATコマンドを利用可能 | |
対応SIMカード | microSIM/miniSIM | 通常サイズのSIMカードは利用不可 |
添付品 | 3GIM本体 1個、フレキアンテナ 1個、8ピンヘッダ | GPSをご利用される場合は、別売のGPS用フレキアンテナをご購入ください |
※V1からの変更箇所を赤文字で記載しています。
ピン配置
3GIMは下表に示す6つのピンでマイコンと接続します。
ピン番号 | 名称 | 機能など |
1 | PWR_ON | 電源のON/OFF制御(開放または0でON、1でOFF) |
2 | RX | UARTインタフェース(RX) ※1 |
3 | TX | UARTインタフェース(TX) ※2 |
4 | IOREF | PWR_ON,RX,TXのロジック電圧 |
5 | VCC | 電源電圧 |
6 | GND | グラウンド |
※1 独自のファームウェア開発により、内蔵マイコンのGPIO(入力)ピンとしても利用が可能
※2 独自のファームウェア開発により、内蔵マイコンのGPIO(出力)ピンとしても利用が可能
機能一覧(UART経由で利用する場合)
UARTコマンドインタフェースの概要
- 3GIMは、UART経由で外部(マイコン側)からコマンドを送受信することで利用できます。
- すべてのインタフェースは、マイコン側からのコマンド送信を契機とします。結果はレスポンスとして、3GIMからマイコン側へ送信されます。なお、コマンドおよびレスポンスは、必ず改行コード('\n')で終端します。
- すべてのコマンドは、一つのシーケンス(送信と受信のやり取り)で完結します。
- TCPでデータを直接書き込む時($TTコマンド)は上記の例外で、データを複数回に分けてマイコン側から3GIMへ送ることができます。所定のバイト数のデータを送り終わったときに、3GIM側からレスポンスがあります。
- 起動直後の出力について
3GIMに電源を供給してONにした後、約15秒後に下記の1行のメッセージが出力されます:
Welcome to 3GIM(V2)
このメッセージにより3GIMが利用可能になったことを検知することが可能ですが、
通常の処理では一定時間(約14秒間)を待つことで、この出力を無視すること(読み捨てること)もできます。
- 3GIM(V1)との差異について
3GIM(V2)は、3GIM(V1)と異なる通信モジュールおよび処理方式を採用しているために、
100%互換性のある動作をしない箇所がいくつかあります。
プロファイルの指定方法
ストレージ機能の廃止
無通信時間が30秒以上経過したときの$WP/$WG/$TCコマンドの応答時間の増加
(特に、$TCコマンドの実行ではタイムアウトすることがあるため、3回程度のリトライが必要)
最大コマンド長さ、最大レスポンス長さの違い(ほぼ同じであるが、厳密には数バイト異なる)
コマンドの最初の文字'$'は、必ず先頭にある必要がある(’$’前の余分なスペース・改行はNG)
下記の「トラブルシューティング」も併せてご参照ください。
機能一覧
下表に提供機能の一覧を示します。
分類 | 機能名 | 機能概要 | コマンド名 | 備考 |
System | バージョンの取得 | 3GIMに搭載されているファームウェアのバージョン情報を取得する | $YV | |
電波受信強度(RSSI)の取得 | 現在の3Gの電波強度(単位はdBm)を取得する | $YR | ||
利用可能サービスの取得 | 現在のSIMカードで利用可能なサービス(無効/パケット通信可)を取得する | $YS | ||
IMEIの取得 | 端末固有の識別番号(IMEI:International Mobile Equipment Identity)を取得する | $YI | ||
LEDの状態の取得・設定 | LEDの現在の状態の取得あるいは設定する | $YL | LEDは基板上にLED1と表記された緑色のLED | |
UART通信速度の変更 | UARTの通信速度を(4800/9600/19200/38400/57600/115200bps)変更する | $YB | 実行後ただちに有効となる | |
3GIMのリセット | 3GIMをソフトリセットする | $YE | ||
現在の日時の取得 | 現在の年月日、時分秒を取得する | $YT | ||
エアプレーンモードの切り替え | エアプレーンモードの現在の状態の取得あるいは設定する | $YP | エアプレーンモードにすると消費電力を大きく節減可 | |
ATコマンドパススルーモード | ATコマンドパススルーモードに入り、ATコマンドを実行する | $YA | 指定された時間経過後に通常モードに戻ることができる | |
Web | GETリクエスト送信・レスポンス取得 | HTTP/HTTPSのGETメソッドを送信して、レスポンスを取得する | $WG | DNS使用可。ヘッダ、URL、レスポンスには最大長の制限有 |
POSTリクエスト送信・レスポンス取得 | HTTP/HTTPSのPOSTメソッドを送信して、レスポンスを取得する | $WP | 同上 | |
TCP/IP | TCP/IPコネクションの接続 | TCP/IPコネクションを接続する | $TC | DNS使用可。一度に一つのコネクションのみ |
TCP/IPコネクションの切断 | TCP/IPコネクションを切断する | $TD | ||
TCP/IPコネクションからのデータ読み出し | TCP/IPコネクションから指定された長さまでデータを読み出す | $TR | ノンブロッキング方式。バイナリデータも取扱可※1 | |
TCP/IPコネクションへのデータの書き込み | TCP/IPコネクションへデータを書き込む | $TW | ノンブロッキング方式。バイナリデータも取扱可 | |
TCP/IPコネクションへのデータの直接書き込み | TCP/IPコネクションへデータを直接書き込む | $TT | バイナリデータもそのままで取扱可。最大32000バイトまでを一気に書き込み可 | |
TCP/IPコネクションの状態の取得・設定 | TCP/IPコネクションの状態を取得する | $TS | ||
自ソケットのIPアドレス・ポート番号の取得 | 自ソケットのIPアドレスを取得する | $TN | ||
GPS | 位置情報の取得 | 現在の位置情報をGPSを使って取得する | $LG | GPS用アンテナの装着が必要※2 |
SMS | SMSの送信 | SMSを送信する | $SS | メッセージの文字コードはASCIIのみ、※3 |
SMSの読み出し | 受信したSMSを読み出す | $SR | ||
SMS受信有無の確認 | SMSを受信しているか否かを確認する、または溜まっているSMSをクリアする | $SC | ||
Profile | デフォルトプロファイルの取得・設定 | 使用するプロファイル(APN)を設定する | $PS | ※4 |
- 補足
※1 一部のデータではエスケープ処理($文字を使用)が必要となる。
※2 V2から、オプションの指定により緯度・経度以外に高度や捕捉衛星数等も指定回数分を取得できるようになった。また、NMEA形式の出力をそのまま取得することも可能である。
※3 SMSは送信メッセージの数に比例した従量課金制料金(上限値なし)のサービスが多いため、特に料金に留意が必要となる。
※4 V2からプロファイル情報を自由に設定できるようになった。ただしプロファイルは一つのみ記憶できる。
利用上の留意点
- docomoのFOMA回線を利用します。そのため、docomoあるいはそのネットワークを利用するMVNOが提供するマイクロSIMが利用できます(ただし、これらの条件を満たす全てのSIMカードでの利用を保証する訳ではありません。利用できるSIMカードはWikiサイトのSIMカード情報ページを参照ください)
- 日本国内での利用をお願いします。海外では、各国の法律により現状ではご利用いただけません。
- USBモデムとして利用する場合でも、5番ピンからの電源供給は必要です。
トラブルシューティング
No | 問題 | 現 象 | 対 応 策 | 補 足 |
1 | 配線 | UART(Tx:送信,Rx:受信)、電源およびGNDが正しく理解できていない | ・3GIMコネクタ部の#1~#6までを正しく理解して上で配線・接続のこと#1(電源On/Off:任意)、#2(RX)、#3(Tx)、#4(3.3V/5V電源)、#5(3.6~4.2V電源)、#6(GND) | ・#5(VCC)で外部電源を利用する場合には、3.7Vリチウムイオン電池を推奨 |
2 | 応答 レスポンス | ・コマンドを送っても返信がない ・正しい応答ではない |
・通信モジュールとマイコンボードとの通信,またはマイコンボードとPCとの通信において以下の原因が考えられる ①3GIMの配線が正しくできていない(配線接続確認) ②電源供給に問題がある(電源電圧の確認) ③ UART通信速度の設定が間違っている(確認設定) ④ 初期電源後の待ち時間を考慮不足(30秒以上待機) ⑤プログラムに間違いがある ⑥ArduinoIDEシリアルモニタ画面の改行コード変更 |
・応答が正しく表示されない場合の原因は,配線ミスや配線での接触不良が考えられる ・②の電源供給で,VCCの3.6~4.2Vを間違えるケースが多発 ・⑥の場合、改行選択メニューで「CRおよびLF」を選択のこと |
3 | エラー頻発 | ・#=NGが多発 ・立ち上げタイミングの問題・電源供給(電流が小さい)問題 | ・配線・接続が正しくできていること ・適正なSIMカードの挿入されていること ・正しく電源供給できていること |
・RSSI(電波強度測定)やSIMカードのサービス確認 ・$YRや$YSコマンドで確認 |
4 | 時間の取得 | ・時間の取得($YT)が間違っている | ・正しいSIMカードとアンテナ接続によって正しく設定される ・正しい時間を取得するにはしばらく時間が掛る ・電波状態が悪いところでは正確な時間が取得しにくい |
・同上および$YRと$PRで確認 ・電波状態の良いところで行う |
5 | SMS送受信 | ・SMSの送受信ができない ・SMSの応答が無い |
・お使いのSIMカードがSMS対応ではない(切替え必要) ・SMSサーバとのやり取りでの不備(何度か読込み必要) | ・同上 |
6 | GPS取得 | ・GPS取得ができない ・GPS取得に時間が掛る |
・GPSアンテナが正しく接続されていること ・GPS電波状態が良い所(PCから離す)で実施のこと ・初期立上げでは数分から10分ほど掛る場合がある ・電源供給が正しくできていること |
・一度GPS取得できており、電源がずっと入った状態であれば次からは即時の取得が可能 |
7 | ネット接続 | ・Webコマンド群やTCP/IPコマンド群が正しく応答しない | 3Gアンテナを正しく接続する ・正しいSIMカードが挿入されていない ・SIMカードの接続不良(再度再挿入などを実施) ・電源供給が正しくできていること |
「正しいSIMカードの利用」とは、SIMカード情報に掲載されており、Profile設定で正しい番号に設定されている利用をいう |
8 | TCP接続 | ・最初のconnectTCP()の呼び出し、あるいは最後の通信から概ね30秒以上の時間が経過している場合は、connectTCP()の呼び出しにTIMEOUTエラーで失敗する時がある。 | ライブラリa3gim2のサンプルスケッチsample_TCPIPにあるように、connectTCP()関数の呼び出しを3回程度までリトライするようにTCP接続処理の実装をお願いします。 | この問題は、一定時間通信をしないと3Gのコネクションを一旦切断して消費電力を抑える動作を3GIM(V2)が行うことに起因する。 |
9 | 初期化 | Arduinoへスケッチを書き込んだ後、setup()関数の中でstart()を実行しないと3GIMが応答しなくなる場合がある | a3gimライブラリのマニュアルに記載のある通り、setup()関数内での初期化処理では、必ずstart()関数を呼び出すようにします | $YEコマンドによるリセットではなく、a3gim.start()関数を呼び出して、確実に3gimの電源をOFF/ONするようにすること。 |
10 | APN設定 | $PSコマンドでAPNを設定するときにエラーとなる | $PSコマンドでAPNを設定する場合には、有効なSIMカードと3Gアンテナを正しく装着しておく必要があります | |
11 | 動作 | 3G通信の状態等によっては3GIMからレスポンスが返ってこない場合がある | ライブラリa3gim経由ではなく、直接コマンドを送信して3GIMを利用する場合は、必ずレスポンスの受信処理で一定時間でタイムアウトするようにしてください。レスポンスがない場合は、3GIMがハングアップしている可能性がありますので、PWR_ONピンを使って3GIMの電源をOFF/ONして復帰させてください。 |
消費電流について 
いくつかの状態で、3GIM(V2)の消費電流を測定しました。
参考値としてご利用ください。
- 3GIM起動時
- Airplaneモード時
- $LG実行時(AGPS使用時)
- $WG実行時(3G通信時)
電源について
3GIM(V2)を動作させるためには、最大900mA程度の電流を供給できる3.3~4.2Vの安定した電源が必要です。電圧が中途半端であるため、そのままで使える電源モジュールはあまり市販されていません。(Arduinoで利用される場合は、3GIM用の専用シールド「3GIMシールド」を利用されるのも一つの方法です)
入手しやすい手ごろな電源モジュールとして、秋月電子通商から販売されている下記のモジュール「LXDC55使用DCDCコンバータキット(可変出力)」があります。
このモジュールはピンを半田付けする必要がありますが、最大1.5Aまでの電流を安定的に供給することができます。また、入力電圧の範囲が広く(4~14V)、DC-DCコンバータ方式ですので電力効率が高いため発熱が少ない特長があります。
通常、3GIM(V2)には3.7V前後の電圧の電源を供給します。LXDC55では、入力電圧は出力電圧よりも1V以上高いことが推奨されていますので、概ね5V以上の電圧を入力として供給することを推奨します。
ダウンロード・技術情報
- 3GIM(V2)の回路図 3GIM_V2.PNG
- 3GIM(V2)が採用している3G通信モジュールHL8548-Gの情報サイト HL8548製品ページ
- 3GIM(V2)のマニュアル マニュアル
- Arduino UNO/Pro用ライブラリ(R4.0 2016.5.15) a3gim_R4.1.zip
- CPUアーキテクチャに依存しないライブラリですが、SoftwareSerialが必要です。
- RAMサイズが2KB以上のマイコンでご利用ください。
- Arduino Mega/Due/101用ライブラリ(R4.1 2016.5.15) a3gim2_R4.2.zip
- CPUアーキテクチャに依存しないライブラリですが、ハードウェアシリアルを使用します。
- RAMサイズが4KB以上のマイコンでご利用ください。
- 使用するシリアル名(例えばSerial3)に併せて、a3gim2.hの定義を書き換えてご利用ください。
- Arduino用ライブラリ仕様書(R4.0 2016.2.25) a3gimR4.0manual.pdf
- HL8548-Gに関する技術情報(HL8548-Gの電気的特性、ATコマンド仕様書等)ここ
- Arduino Mega/Due/101用 mailライブラリ(R4.1 2016.5.7) a3gimail2.zip
- CPUアーキテクチャに依存しないライブラリですが、a3gim2ライブラリを使用します。
- RAMサイズが4KB以上のマイコンでご利用ください。
- ライブラリの使い方は、同梱のREAD_ME.txtを参照ください。
3GIM、ファームウェア、Arduino用ライブラリの最新バージョンの関係について
最新のバージョンは下記の通りです:
3GIMハードウェア | ファームウェア | a3gimライブラリ |
1.0 | 2.1 | R3.1(R4.0以降は使用できません) |
1.1 | 2.1 | R3.1(同上) |
2.0(NEO) | 3.1 | R4.0 |
ラズベリーパイで使用する方法
3GIM(V2)をラズパイで使用するページにて、3GIM(V2)をラズパイで使用する方法を掲載しました。ラスベリーパイで3GIM(V2)を使用されたい方は、参考にしてください。
製作事例
3GIM(V2)は、基本機能とサイズはV1と同じですので、V1での事例もほぼそのままで利用できます。
ここでは、V2の特長(AGPS等)を活かした事例を紹介します。
- Handy Location Notifier(手のひらサイズの位置通知装置)
ボタンを押すと概ね1分以内に現在位置をAGPSで取得して、予め設定された電話番号へSMSを送る小型装置です。位置情報の取得にAGPSを使っていますので、地下街や窓のない部屋等でなければ、屋内でもおおよその位置が分かります。
完成品の画像は下記のとおりです。
ケースには、タカチ製の既製品(PS-85W)を使いました。

続き はこちら
- 最終更新:2016-10-16 17:03:17