Linux と HOLUX m-241 を Bluetooth でつないで使う
GPS ロガーの HOLUX m-241 を久しぶりに取り出してみたところ、 先代のマシンで接続設定をしていただけだったので、設定をやり直すことになりました。
いい機会なので、手順をまとめておきます。
方針
- m-241 を Bluetooth でペアリングします。
- Bluetooth の RFCOMM デバイスとして見えるように設定します。
- mtkbabel で RFCOMM デバイスと通信し、gpx ファイルを取り出します。
Bluetoothのシリアルデバイス接続の手順としても、参考になるかもしれません。
念の為に書いておくと、m-241 を Bluetooth でつなぐと、余計に電池を喰います。 シビアな場合は、USBでつないだほうがいいかもしれません。
前提環境
- Debian GNU/Linux (unstable)
- Linux カーネル 3.2.0
- Gnome 3.4
- bluez 4.99
ペアリングを除けば、他のディストリビューションでも同じだと思います。
足りないパッケージのインストール
mtkbabelがインストールされていなかったので、インストールします。0.7以上ならよさそうですが、パッケージは0.8.3.1でした。
$ sudo apt-get install mtkbabel
Bluetoothのペアリング
Gnome の Bluetooth でペアリングしました。 アドレスが取得できていれば、デバイスの種類は未知で構いません。 ペアリングした m-241 のアドレスを控えておいて、あとで使用します。
RFCOMMデバイスの設定
ペアリングした m-241 を RFCOMM デバイスとして認識できるように設定ファイルを編集します。
$ sudo vi /etc/bluetooth/rfcomm.conf
以下、ファイルの内容です。全体がコメントアウトされていたので、アンコメントしました。
#
# RFCOMM configuration file.
#
rfcomm0 {
# Automatically bind the device at startup
bind no;
# Bluetooth address of the device
device m-241のアドレス;
# RFCOMM channel for the connection
channel 1;
# Description of the connection
comment "Example Bluetooth device";
}
設定はここまでです。
GPXデータ読み出し
ここからは、以下の手順で、m-241 からデータを読み出します。
RFCOMMデバイスとしてバインド
設定した RFCOMM デバイスとして m-241 を認識させます(要 root)。
$ sudo rfcomm bind rfcomm0
こうすると、/dev/rfcomm0 というデバイスファイルができます。 このデバイスファイルは dialout グループに読み書き権限が与えられていたので、ユーザを dialout グループに所属させておきます。
$ sudo adduser ユーザ名 dialout
このコマンドが使えるのは、Debian系だけだと思います。
mtkbabel での読み出し
mtkbabel でデータを読み出します。 詳細は man mtkbabel を見てください。 ポイントは -p オプションで RFCOMMのデバイスファイルを指定することです。 -s で指定する通信速度は、あまり早くないほうがいいかも。
$ mtkbabel -s 38400 -f `date +'%F-%H%M%S'` -t -w -p /dev/rfcomm0
MTK Test OK
MTK Firmware: Version: 1, Release: B-core_1.20, Model ID: 0033
Log format: (8800001D) UTC,LATITUDE,LONGITUDE,HEIGHT
Size in bytes of each log record: 26 + (0 * sats_in_view)
Logging TIME interval: 1.00 s
Logging DISTANCE interval: 50.00 m
Logging SPEED limit: 0.00 km/h
Recording method on memory full: (2) STOP
Log status: (000100000100) AUTOLOG_OFF,STOP_WHEN_FULL,ENABLE_LOG
Next write address: 11488 (0x00002CE0)
Number of records: 670
Memory health status (failed sectors mask): FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
>> Retrieving 65536 (0x00010000) bytes of log data from device...
Saved log data: 0.00%
Saved log data: 3.12%
……
通信中は、m-241 の液晶に、Blutooth のアイコンを表示します。 すべて成功すると、カレントディレクトリに以下のファイルができています。
- 2013-04-18-220539.bin
- 2013-04-18-220539_trk.gpx
- 2013-04-18-220539_wpt.gpx
RFCOMMデバイスの開放
使い終わったら、RFCOMMデバイスを開放しておきましょう。
$ sudo rfcomm release rfcomm0
以上です。