11
27
2009
ATLAS ASG-1をMacにつないでみる(その1)
ATLAS ASG-1のオリジナルモデル(OEM元)
ユピテルが日本で発売している GPSロガー ATLAS ASG-1 は、元々は Holux 社のGPSport 245 という製品をユピテルがOEM調達して販売している製品のようです.
PCにデータを取り込むには、ユピテルが配布しているATLASTOURというアプリケーションをダウンロードすれば良いのですが、何せWindows専用なのでMacユーザにとっては困りものです.そこでASG-1を何とかMacに直接つないで、Macの世界だけで何とかできないものかと試行錯誤してみることにしようと思います.
専用ソフトウェアを使わずに何とか処理できない物かと、WindowsXP環境下で、以前紹介したGPSBabel を用いて直接ASG-1からデータをダウンロードする事を試みましたが、残念ながら上手く行きませんでした.
GPSBabelにはHolux GR241という機種からの取り込みモードが有るようですが、GPSport 245ではコマンド体系が変更されたようで、GR241の設定ではエラーが出てしまいました.BT747というJavaベースの汎用GPSデータ変換アプリケーションのホームページにこの辺の事が書かれていました.
BT747というソフトウェアはJavaベースなので Mac, Linux, Windowsなど様々な環境で動くのですが、Mac OS X 版ではASG-1からデータを取り出すことができませんでした.BT747についてはまた別な機会に紹介したいと思います.
コンピュータの専門家やデバイス系のエンジニアでなければこれから紹介する記事の内容を理解するのは難しいかもしれませんが、今回はとりあえず現時点で判明している事柄について紹介します.
フロントパネルを外したところ
メイン基板とバッテリー
MT3318チップ(シールドケースの中央部)
ASG-1(GPSport 245) のデバイス情報について
MTK3318 チップを搭載した LOCOSYS 社のMC-1513というGPSモジュールに関する仕様とコマンドの説明のようですが、MC-1513のデータシートの中にNMEA-0813フォーマットに関する説明などもありますので、興味のある方は目を通してみて下さい.このデータシートを見る限り、MTK3318のデータ出力フォーマットはNMEA-0183 V3.1 であることが判ります
上記の写真から、ASG-1で使われているのはLOCOSYS 社のMC-1513モジュールではなくMTK3318チップとシリアル通信用チップなどの組み合わせで構成されているようです.PCとの接続に使われる USB to UART Bridgeチップとして、Silicon Labs社のCP210x USB to UART Bridge VCP Drivers という物が使われているようです.
Windows用のドライバソフトウェアに関してはATLASTOURのインストール時に自動的にインストールされている筈ですが、Mac OS X から接続する場合は自分で上記の専用ドライバをインストールする必要があります.
このドライバソフトウェアをインストールすると、ASG-1をUSBポートに接続した時点で /dev 配下に次のデバイスが作成されます.
crw-rw-rw- 1 root wheel 9, 5 Nov 27 18:03 cu.SLAB_USBtoUART crw-rw-rw- 1 root wheel 9, 4 Nov 27 18:03 tty.SLAB_USBtoUART
Mac OS X には Windows用のTeraTermのような一般的なシリアルコンソールアプリケーションは無いのですが、Mac OS X標準の screen コマンドを用いてシリアルポートとの通信ができます.
screenコマンドの詳細は複雑で私も全部把握できていませんが、とりあえずTerminal(ターミナル)上で、次のようにオプションを設定して起動してみて下さい.
$screen -h 32767 /dev/tty.SLAB_USBtoUART 38400
-h オプションの後の数字は スクロールバッファの最大行数
最後の38400という数値が転送速度(所謂ボーレート)です.
ASG-1 は38400で通信しているようです.
この方法で接続してみれば分かりますが、ASG-1は電源が入っていれば常に受診した情報をNMEA-0813形式でUSBシリアルポートにテキストデータとして吐き出しています.
screenコマンドを一旦起動すると、Teminal(ターミナル)を修了してもscreenコマンド自体は終了しませんので、screenコマンドの実行をきちんと止めるには、CTRL-A, CTRL-\ を入力してscreenコマンドを終了して下さい.
CTRL-A, CTRL-\の意味ですが、コントロールキーを押しながら “A” のキーを打鍵し、次にコントロールキーを押した状態で “\” (バックスラッシュ)を打鍵して下さい.日本語キーボード環境ではバックスラッシュは “¥” 記号です.
MB13:~ yasuaki$ screen -h 32767 /dev/tty.SLAB_USBtoUART 38400
$GPRMC,092617.000,V,35xx.xxxx,N,139xx.xxxx,E,0.00,47.14,271109,,,N*4C $GPVTG,47.14,T,,M,0.00,N,0.00,K,N*04 $GPGGA,092618.000,35xx.xxxx,N,139xx.xxxx,E,0,0,,110.7,M,39.3,M,,*42 $GPGSA,A,1,,,,,,,,,,,,,,,*1E $GPGSV,3,1,11,02,72,332,,04,63,108,,10,52,292,,05,40,282,*70 $GPGSV,3,2,11,13,33,044,,07,24,093,,25,24,071,,17,09,171,*7E $GPGSV,3,3,11,29,08,323,,15,04,215,,23,01,039,*44 $GPRMC,092618.000,V,35xx.xxxx,N,139xx.xxxx,E,0.00,47.14,271109,,,N*43 $GPVTG,47.14,T,,M,0.00,N,0.00,K,N*04 $GPGGA,092619.000,35xx.xxxx,N,139xx.xxxx,E,0,0,,110.7,M,39.3,M,,*43 $GPGSA,A,1,,,,,,,,,,,,,,,*1E $GPGSV,3,1,11,02,72,332,,04,63,108,,10,52,292,,05,40,282,*70 $GPGSV,3,2,11,13,33,044,,07,24,093,,25,24,071,,17,09,171,*7E $GPGSV,3,3,11,29,08,323,,15,04,215,,23,01,039,*44 $GPRMC,092619.000,V,35xx.xxxx,N,139xx.xxxx,E,0.00,47.14,271109,,,N*42 $GPVTG,47.14,T,,M,0.00,N,0.00,K,N*04 $GPGGA,092620.000,35xx.xxxx,N,139xx.xxxx,E,0,0,,110.7,M,39.3,M,,*49 $GPGSA,A,1,,,,,,,,,,,,,,,*1E $GPGSV,3,1,11,02,72,332,,04,63,108,,10,52,292,,05,40,282,*70 $GPGSV,3,2,11,13,33,044,,07,24,093,,25,24,071,,17,09,171,*7E ... Really quit and kill all your windows [y/n] ← CTRL-A, CTRL-\ を入力すると本当に終了するかどうか聞いてくる MB13:~ yasuaki$ screen -h 32767 /dev/tty.SLAB_USBtoUART 38400 [screen is terminating] MB13:~ yasuaki$
とりあえず、Mac OS X からシリアル通信でASG-1と問題なく通信することが可能であることを確認できましたので、後はGPSBabelなどのアプリケーションソフト側をASG-1側に対応させれば良さそうですが、まだ大きな問題が残っています.
ASG-1は電源が入っている状態では常にリアルタイムでNMEA-0813データを吐き出しているのですが、ASG-1の内部に記録されたログデータを取り出す方法が分かりません.ログデータを取り出す方法については、もう少し調べてみたいと思います.製造元のHOLUX社や販売元のユピテルが仕様やAPIを公開してくれれば良いのですが、あまり期待できそうもありません.オープンな仕様ではない製品やメーカーはやがてユーザからもそっぽを向かれて廃れてしまうと思うのですが.
【補足】『GPSロガー ATLAS ASG-1 のコマンド体系』