PowerGPS による GT502MGG-N の Baudrate の不揮発設定
１．ソフトウエア(PowerGPS)のダウンロード
https://akizukidenshi.com/catalog/g/gM-17980/

から…
右クリック

C:や D:など適切なドライブにEXE ファイルを置くフォルダを用意して保存。

右クリック

ダブルクリック

ダブルクリック

次頁に続く

２． PowerGPS のインストール

マニュアル（英文です）

こちらがインストールプログラム。
ダブルクリックするとインストールが始まる。

次頁に続く以上でインストールは終わりです。 ここからは、Baudrate の設定に移ります。

３． PowerGPS による Baudrate の不揮発設定
デスクトップ上にできた PowerGPS のアイコンをダブルクリックしてプログラムを起動させます。

(Step-0) ダブルクリックしてPowerGPS を起動(Step-2) プラグアイコンをクリックして受信機に「接続」(Step-1) 受信機の COM ポートと、現在の Baudrate に設定してから…

接続できると、グラフや文字など様々な表示が現れる。

☆

ここで、不揮発メモリに通信速度 Baudrate をコマンドを送ることにより設定する。

(Step-5) プラグのボタンをクリックして「切断(Disconnect)」(Step-4) 入力したら Send ボタンをクリック
グラフの動きや文字データの更新が止まる。ソフトウエアと受信機の Baudrate を異なる値に変えたので、データを受け取れなくなったことを示している。これは正常。
この「表示更新なし」状態を確認してから Step5 へ。

(Step-3) 新たな Baudrate を設定するコマンド[書式： PMTK251,xxxxx]

xxxxx には設定したい Baudrate を記入↑半角カンマ☆コマンドはすべて半角で入力!!!

PMTK は最初から表示されているので、それに続けて251(=Baudrate 設定命令) 続けて ,更に続けて 38400(Baudrate 設定値)のように、スペースなどを入れずに入力する。この場合は図のように

PMTK251,38400と赤文字部分を入力するとよい。 必要に応じて 19200、9600 なども設定可☆

以上で、不揮発メモリに新たな Baudrate が設定されました。

☆

上記コマンドは、受信機に送るときは、正しくは $PMTK251,38400*27<RTN><LF>です。このうち*の後ろの 27 はチェックサムと呼ばれ、特殊な計算をしなければ得られません。
PowerGPS は、チェックサムを自動計算して$や<RTN><LF>も付け加えて送信してくれます。
MediaTek 社の受信機コマンドの説明書には、上記の「正しくは…」のように Send せよ、と書いてありますが、PowerGPS では、本書の説明のようにかんたんに設定できるようになっています。

(Step-7) プラグアイコンをクリックして、Connect すると…
グラフや文字が動き出し、38400bps に設定されたことがわかります。

(Step-8) PowerGPS を終了(Step-6) 本当に 38400bps に変更できたか、確かめます。
Baudrate を 38400 に設定してから…

以上で、設定委確認終了です。もう一度をクリックして、受信機との通信を切断(Disconnect) します。
（グラフなどが止まることで、切断を確認できます。
） PowerGPS を閉じます。

【コラム】 MediaTeck 社の設定コマンド [$PMTKｘｘｘｘｘ*checksum<RTN><LF>]
ここで、 HACSTIP で使用する前に、コマンドについて説明書の記述(抜粋)を見ておくことにします。
[Packet Type] 251[Command]
PMTK_SET_NMEA_BAUDRATE[Description]
Set NMEA port baudrate.
Using PMTK251 command to setup baud rate setting, the setting will be back to defatult value inthe two conditions.
次の二つの場合には、値が工場出荷初期値に戻ります。
1. Full cold start command is issued
1. フルコールドスタートコマンドを送信したとき
2. Enter standby mode
2. スタンバイモードに入ったとき
Keep status after reboot –> Yes.
上記のような特別の場合を除き…
251 コマンドは … 受信機をリブート（電源 OFF-ON）してもBaudrate の値は保持されます！ → 消えずに記憶されます。

ところで、工場出荷に戻る「フルコールドスタート」って何？

[Packet Type] 104[Command]
PMTK_CMD_FULL_COLD_START[Description]
Full Cold Start.
In addition to Cold start, this command clears the system/user configurations at start.
It resets the GNSS module to the factory default.
Keep status after reboot –> No.
[Example]$PMTK104*37<CR><LF>↑
このコマンドを送るか、をクリックするかすると工場出荷設定に戻ってしまうようです。
（そうなってしまうと面倒なので、試してないですが…）

４． 高速通信環境(38400bps)で HACSTIP を動作させる[Step-1] Baudrate を先ほど設定した 38400bps に設定[Step-2] Connect ボタンをクリック[Step-3] Baudrate が正しく設定されていれば、時刻などが毎秒表示されます。
[Step-4] この数値が 800msec 台になっていないことを確認。
☆正秒から NMEA 最終行が出力し終わるまでの時間(msec)です。
800msec より大きい場合と 100msec よりも小さい場合は、NMEA の行数が多いなどして次の正秒までの間に読み切れないという事態となっています。その場合にはBaudrate を更に大きく設定する必要があります。2024.1.1 時点で、38400 以上に設定しなければならないような受信機や状況は筆者としては見つけていませんが、もし必要な場合があったら、更に高い値に設定してください。

[Step-5] 一旦 Disconnect してから

[Step-7] Baudrate を設定[Step-６]
Properties – Setting Items[Step-7] Baudrate を設定[Step-8]
設定を保存してから Close５． おわりに
GT502MGG-N は、工場出荷初期設定で GPS(米) みちびき(日) GALILEP(欧) GLONASS(露)の衛星を利用でき、更には C/N の高い受信が行えることから、厳しい受信環境の中で時刻補正動作を行うのに適した機種です。ところがその結果、NMEA センテンスの行数が多くなることに加えて、センテンス出力のタイミングが正秒から 500msec 近くと遅く、RMC 行が末尾近くに出力されるため、NMEA文の読み取りに時間がとられて時刻同期ソフト(HACSTIP)が必要とする処理時間が確保できない、という問題が起きていました。これを解決するには、通信速度(Baudrate)を高速にする必要があります。
GT502MGG-N の Baudrate は、設定法によってはアルマナック保持用の内部電池が切れるとその設定が元に戻ってしまう場合があります（miniGPS というソフトで GUI で設定した場合）。
Baudrate を不揮発で設定する方法については Web 上に資料がなかったことから、販社（秋月電子通商）に質問したところ、同社のサイトに PowerGPS という処理エンジンメーカー製のソフトウエアを掲載していただきました。その説明書を読んで、不揮発の設定法を理解することができ、実際に設定して確かめてみました。この実験では、いったん電池に切れてもらわないと、不揮発であるのかどうかがわかりません。GT502MGG-N の電池は意外と持ちがよく、1 時間ほどの充電（電源接続）でも半日程度はメモリを保持します。そこで、一昼夜放置して電池を放電させ、1PPS の LED の点滅が電源投入後30 秒程度かかることをもって「アルマナックや一時記憶された Baudrate 等の情報が消失」したはずであることを確認して、新たに設定した 38400bps が保持されているかを見る、というような実験を行いました。結果、保持されていることが確認できましたので、上記のような報告となりました。
これで、「観測地で MiniGPS を起動させて、そのたびに Baudrate を設定する」という「余計な作業」をしなくても、すぐに HACSTIP による高精度の PC 時刻同期を始めることができます。
GP502MGG-N は、1PPS の LED が点滅してから十秒以内には GLONASS 衛星のうるう秒情報を受信して、確実な UTC の時刻を出力します。処理エンジンのメーカーの異なる(ublox 社。設定にはpowerGPS ではなく、u-center を使う必要がある)GT902PMGG も同様に、最初から正しい UTC を出力します。これらの機種の扱いに習熟すれば、GPS が掩蔽観測に使われ始めてから 20 年以上にわたって観測者・整約者を悩ませてきた「うるう秒処理の未了による秒ズレ問題」に終止符を打つことができます。
受信機の処理エンジンのメーカーは、Garmin 社、ublox 社、MediaTek 社の 3 社があり、それぞれNMEA の出力順序や出力タイミングが異なっています。三者三様のそれらの状況ですが、一般のＧＰＳ情報利用ソフトは、それらの NMEA センテンスが出力されてきた時をもって正秒として扱いますが、機種によっては 500msec も正秒から遅れて出力されており、その遅れを補正値として設定しておくことで時刻補正を行っています。ところが NMEA センテンスの出力には数十ミリ秒のばらつきがあることから、掩蔽観測には必ずしも向いているとは言えません。また、それらのソフトウエアはボタンをクリックしたとき 1 回に限り時刻補正を行い、あとは数十ミリ秒のずれが起きるまでは何もせず放置する、という設計となっています。 HACSTIP は、1PPS 信号を使って PC の時刻を 0.20msec 以下の誤差に収めるような時刻補正を毎秒行います。それだけに動作の安定性は、他に比べて特段高い状態で維持しなければなりません。これまで、各社の出力タイミングの違いを吸収できるように HACSTIP の改良を加えてきましたが、結論的には、それぞれの機種に見合った Baudrate を適切に設定することにより解決できる、との見通しを持つことができました。GT502MGG-N をお使いの皆様には、上記をお試しいただき、不具合等がありましたら、ぜひ筆者までお知らせくださるようお願いいたします。
宮下和久 k_miyash@nifty.com