鍋の底

雑多な記録

Linux と HOLUX m-241 を Bluetooth でつないで使う

GPS ロガーの HOLUX m-241 を久しぶりに取り出してみたところ、 先代のマシンで接続設定をしていただけだったので、設定をやり直すことになりました。

いい機会なので、手順をまとめておきます。

方針

  • m-241Bluetooth でペアリングします。
  • Bluetooth の RFCOMM デバイスとして見えるように設定します。
  • mtkbabel で RFCOMM デバイスと通信し、gpx ファイルを取り出します。

Bluetoothのシリアルデバイス接続の手順としても、参考になるかもしれません。

念の為に書いておくと、m-241Bluetooth でつなぐと、余計に電池を喰います。 シビアな場合は、USBでつないだほうがいいかもしれません。

前提環境

ペアリングを除けば、他のディストリビューションでも同じだと思います。

足りないパッケージのインストール

mtkbabelがインストールされていなかったので、インストールします。0.7以上ならよさそうですが、パッケージは0.8.3.1でした。

$ sudo apt-get install mtkbabel

Bluetoothのペアリング

GnomeBluetooth でペアリングしました。 アドレスが取得できていれば、デバイスの種類は未知で構いません。 ペアリングした 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

以上です。