Archive for 10 月, 2008

BluetoothからGPS接続

日曜日, 10 月 26th, 2008

さて、今回は本命のBluetooth経由でのGPSへの接続です。

とりあえず、何をするにも楽なPC上のLinuxで確認です。まずはBluetoothでの接続ですが、

$ hcitool scan
Scanning ...
        00:11:22:33:44:55       HOLUX_M-241
$ sdptool browse 00:11:22:33:44:55
Browsing 00:11:22:33:44:55 ...
Service Name: SPP Slave
Service RecHandle: 0x10000
Service Class ID List:
  "Serial Port" (0x1101)
Protocol Descriptor List:
  "L2CAP" (0x0100)
  "RFCOMM" (0x0003)
    Channel: 1

とのことなので、/etc/bluetooth/rfcomm.confに

rfcomm0 {
    bind yes;
    device 00:11:22:33:44:55;
    channel 1;
    comment "HOLUX_M-241";
}

と追加、

# /etc/init.d/bluetooth restart

とします。これで/dev/rfcomm0にアクセスするだけで自動的にBluetoothで接続されるようになります。

以上の手順をZaurusでも試したところ、無事GPS接続が出来るようになりました。

また、PCではM-241に保存されたログはMTKBabelで取り込みます。

$ mtkbabel -s 38400 -f gpsdata -t -w -p /dev/rfcomm0

とするとgpsdata.binとgpsdata_{trk,wpt}.gpxのGPX形式のログが出来るので、これをGPSBabelでKML形式に変換します。

$ gpsbabel -i gpx -o kml,units=m gpsdata_trk.gpx gpsdata_trk.kml

なお、USB経由でのログの取り込みはデバイス名を適当に変更すればOKです。

これをGoogle Earthで表示すると、こんな感じにめでたくルートが表示できるようになりました。

とまぁこれで十分と言えば十分なのですが、出先でM-241のログの取り込みや消去、走行ログの確認をZaurusで出来れば重いノートPCを持ち歩かずに済んで大変便利です。ということで、これらのZaurus用のパッケージを作ってみました。

あらかじめ、Linuxザウルス/Perl - Walrus, Visit.さんなどからPerlのダウンロード、インストールをお願い致します。なお、ZaurusでのMTKBabelでのログの取り込みはBluetoothの通信が不安定なのかエラーが頻発しますが、とりあえず動作するようパッチを当ててあるのでデータに問題は無いはずです。

なお、GPSBabelはNMEA形式のログ出力も出来るので、HB1さまのZegaで走行ログを表示できるはずです。私はちょっと確認できませんでしたが…。

Bluetooth CF到着

月曜日, 10 月 20th, 2008

注文していたBluetooth CFが先日届きました。Socket社のBL4535-634です。待ってたぞー!ということでいそいそと箱から出し、あらかじめPC用のBluetooth USBアダプタでLinuxでの設定は把握していたので、早速Zaurusにつけて動作確認しようと意気込んでいたのですが、…動かない。この商品に動作報告があることは事前に確認してあったのに!ということで、今回はこのCFに関する顛末記です。

ちなみに右が同時に購入したPC用Bluetooth USBアダプタ。一見スマートで良さげに見えるのですが、PCに差してしまうと極めて取り外しづらいという問題が。まぁ、それ以外の使い勝手はなかなか良い感じです。しかし、USBの上の黒い部分が本体なのでしょうが、これが1400円で買えるのにCFになると何故16000円になってしまうのでしょうか。謎です。

まぁ何はともあれ、ドライバとツール群のインストールです。今回はこちらのbluez-zaurus_2.3-2.4.18d_arm.ipkを利用させて頂きました。

# cardctl ident
Socket 0:
  product info: "Socket", "CF+ Bluetooth Card CIS Rev 2.5"
  manfid: 0x0104, 0x0096
  function: 2 (serial)
# hcitool dev
Devices:

ふむ、とりあえずカードの認識はされているようですが、Bluetoothとしては認識されていません。というか、ドライバのロードすらされていないようです。確かに/etc/pcmcia/bluetooth.confを確認しても対応したエントリはありませんでしたが、

card "Socket Bluetooth Card"
  version "Socket", "CF+ Personal Network Card"
  bind "dtl1_cs"

とそれっぽいものはありましたので、定石通りこれを参考に型番だけ変更した設定を追加してみました。そして、カードを差した瞬間、ハング。

さすがに焦って調べていると、型番に2.5とあるものはリビジョンGかそれ以降であり、入っているチップもNokiaのものからCSRになっていることが判明。確かに仕様にはチップがCSR BC04-EXTであると書いてありますが、こんなとこ見るか!暗雲が立ち込め始めたものの、とりあえずドライバを変更して

card "Socket Bluetooth Card"
  version "Socket", "CF+ Bluetooth Card CIS Rev 2.5"
  bind "serial_cs"

に。これで動作するかと思いきや、

# hciattach ttyS3 bcsp 230400 noflow
BCSP initialization timed out
# hciattach ttyS3 any
# hciconfig
hci0:   Type: UART
        BD Address: 00:00:00:00:00:00 ACL MTU: 0:0  SCO MTU: 0:0
        DOWN INIT RUNNING
        RX bytes:0 acl:0 sco:0 events:0 errors:0
        TX bytes:4 acl:0 sco:0 commands:1 errors:0
# hciconfig hci0 up
Can't init device hci0. Connection timed out(110)

…もう流石に無理かと思いつつ、諦め悪く手を変え品を変えて調べ回っていると、ここにごくごくあっさりとしたコメントを発見。曰く、cardctl resume 0したら動いた。いやいや、cardmgrからは見えてるし関係ないだろそれとか思いつつ、藁にもすがる思いで試してみると…

# modprobe hci_uart
# cardctl resume 0
# hciattach ttyS3 bcsp 230400 noflow
# hciconfig hci0 up

動きました!ここまで来るのにえらい時間がかかったので、感動もひとしおです。

とまぁ動作させられるようになるまでをだらだらと書いてきましたが、実は裏ではkernel 2.4.36.7のドライバをバックポートするなど他にもいろいろやってます。教訓としては、ものによってはcardctl resume 0すると動くこともあるという事でしょうかね。同様の症状に悩まされている方は参考にでもしてやって下さい。

qgmap 0.1.0リリース!

水曜日, 10 月 15th, 2008

ぷちのいずでbucchiさまが開発されておりましたGM_Lite互換のZaurusネイティブアプリqgmapですが、先日とうとうバージョン0.1.0がリリースされました!開発開始から1ヶ月とちょっとでありながら非常に完成度が高く、実用上のツボを抑えたとても使い勝手のよいソフトです。

よいところは多々ありますが、特筆すべきはそのスクロールの軽快さです。もうめちゃくちゃ軽いです!GM_Liteなど比較にならず、一度体験してしまうと癖になること請け合いです。また、指定した縮尺の地図がない場合は広域の地図を拡大して使用する機能もあり、地図容量の節約にも有用です。GM_Liteが動作していればインストールは非常に簡単ですので、ぜひとも一度お試し下さい。

今のままでも機能的には十分でありながらもまだまだ発展途上であり、最新の記事ではbucchiさまが今後の方針についても語られております。今後より一層素晴らしいソフトになるだろうqgmapにますます目が離せません。

GPS買いました

土曜日, 10 月 11th, 2008

はい、買ってしまいました。液晶付きGPSロガー、Holux M-241です。12600円とかなり高めだったのでしばらく悩みはしたものの、使わない金に価値は無し!ということで、清水の舞台から身投げしてみました。

これを選んだ理由はいろいろとありますが…

  • 液晶に緯度、経度を表示可能
    • 地図をCFに入れておいても大丈夫
  • GPSのログを取れる
    • スタンドアロンでログを取ってくれるのでお手軽
  • USB/Bluetoothデュアルインターフェース
    • SDに地図、CFにBluetoothでナビもできる
  • 単三電池で動作
    • これを設計した方はよく分かっていらっしゃる

まさにZaurusのためにできたようなGPSです。以前ちゃびさまからお薦め頂いたものとは型もチップも違いますが、個人的には大満足!さっそくあちこち連れ回してみるつもりです。

こないだまで私にとってGPSは特に欲しいものではなく、開発用にもどうかなぁといった所でしたが、購入のきっかけになったのは先日の旅行です。初めてのヨーロッパであちらの風土にいたく感激した私は、一日取れた休みにライン川沿いをサイクリングしてみたい!といそいそと自転車をレンタルし、調子に乗って地図も持たずに一人で出発したのですが、しばらく走っているうちに気づいたらこんなところに。

いやいや、どこですかここ。地図もなく、道もなく、ただ目的地の方角だけしか分からないドイツの片田舎。幸い日の暮れる前に目的地には到着できましたが、自分についていろいろと考えさせられた出来事でした。

来週には身投げ第2段、Bluetooth CFカードが届く予定です。こないだガタの来ていた予備機の修理も終わり、これでまだまだZaurusを使っていけそうです。GPS+Bluetooth環境が揃うことでよりGM_Liteの開発に弾みがつく…といいなぁ…。

Qualendar 1.0.1公開

土曜日, 10 月 4th, 2008

今回はあっさりと、Qualendar 1.0.1の公開です。

これまでQualendarはLinux版pdaXrom版を公開してきましたが、kanonさまを始めこれらをお使い頂いている方もいらっしゃるようですので、一応Zaurus版も公開しておきます。Qualendar 1.0.0からの変更点は以前の記事の通りです。

なお、SQLiteデータベースを使うと恐らくPCとの同期が取れなくなりますが、代わりに同じデータベースファイルを使うことで各環境での予定、ToDoの共有が可能になります。データベースファイルは~/.qualendar/qualendar.dbにあり、

$ sqlite3 ~/.qualendar/qualendar.db .dump

とすることで内容を確認できます。

インストールは

です。宜しければどうぞ。