AIRcable Zaurus使ってみました



◆AIRcableってどんな感じ?
pocketgamesさんの所で限定的に輸入販売されているAIRcable Zaurusを入手しました。CF/SDスロットを一切消費せずに、20mA/5Vという超低消費電力で長時間通信可能なスペックを持つ所が最大の魅力です。しかも、ザウルス側で特殊なドライバ等のソフトウェアは一切不要。と、かなり魅力的に感じられるデバイスなのですが、このシンプルさ故に気をつけるべき制限もいくつかあります。


○通信速度上限が115200bps

  • ttyS0経由なので当然といえば当然だが、ダイヤルアップ時はともかく、無線LANの11Mbpsと比較すると極めて低速な通信しか出来ない。
  • PPP経由でBluetoothアクセスポイントへ接続する際にも、もちろんこの速度の制限を受ける。


○常に「受身」である

  • プロファイルで言うとSPP-DevBに当たるらしいですが、別の言い方をすると「スレーブ」「アクセプタ」、さらに簡単な言い方をすると、常に通信要求を待ち受ける側に回ります(11/9注:訳文修正にあわせて「スレーブ」に記述を修正しました)
  • 例えば、GU-BT1も同様に待ち受ける側のデバイスであるため、この両者ではペアリングが出来ません(これが痛い)
  • PINコードは1234固定のため、BlueZ側から接続したい場合はPINコードを1234に統一するか、bluepin等の入力ダイアログを導入する必要があります

○プロファイルの追加は一切不能

  • クライアント側のシリアルポート、携帯電話とのダイヤルアップ、もしくはダイアルアップを使用するBluetoothアクセスポイントを対象に専ら使用することになります


○ペアリング可能な対象は二つまで

  • 使用例にも紹介されてますが、例えばアクセスポイントと携帯電話、と言うように優先順位をつけた二つのデバイスのペアリングが可能になっているようです
  • もちろん、ペアリング情報をクリアしてやり直せばいいのですが、ハードリセットのようなボタンなので、精神衛生上あまり良くないです(^^;;;


SL-B500のキーボードが開かない!!

  • モジュール本体は、ギリギリでキーボードに干渉しないように作られているのに、堂々と膨らんだLEDの頭が見事に接触_| ̄|○ このLED選定したの誰だ!と叫びたくなります・・・



上記のように、極限まで機能を絞り込んでいます。が、逆に言うと携帯電話で100kbps超の通信が出来れば他は特に必要ない、と思っている方にとっては、これ以上に無いシンプルな無線接続デバイスです。SL-C/SL-B系が動作対象になっていますが、シリアルとしてのオプション16ポートの仕様はSL-A300も変わらないと思うので、もしかすると


「ランドセル無し(しかもSD使用可)のSL-A300で長時間の無線通信」


という使い方が一番強力なのではないでしょうか?
※11/23追記:SL-A300では、電源ラインの11番ピンが無効になっているため、AIRcableに電源が供給されず動作しません。SL-B/Cシリーズ(6000?)のみの対応になるようです。


◆実際に使ってみる――ちょっとした癖を克服する
こちらで公式サイトの説明を翻訳したものを載せていますが、実は、この記述通りにやるだけでは上手くいきません。ちょっとイレギュラーになるかもしれませんが、私がペアリング/接続させる時の方法を書いておきます。


○cuのインストール

  • BlueZ導入の時もお世話になりましたが、りなざうテクノウさんの所で公開されている、cuをインストールします。シリアルポートの動作検証には欠かせません。


○AIRcableを刺す

  • これは何も考えなくていいですね(^^;; 外した蓋は無くさないようにお気をつけて。


○シリアルポートを開く

  • ここでcuを使います。


cu -l ttyS0 -s 115200


と言う感じで、シリアルポートを開いてみてください。ttyS0の場合は、コネクタの先に何も接続されてなくても「Connected.」と言う表示とともに接続が成功します。この状態でttyS0のDTRがオンになり、付随してAIRcableの電源も入るようです。最初に電源を入れた時の動作は物によって違うかも知れないので、ちょっと不明です。


○AIRcableペアリング

  • ここで、繋げたい対象のデバイス(携帯電話)を接続先探索状態にしておいて、AIRcableのボタンを5秒間押し込んでください。青LEDが早めに点滅してペアリング状態に入ります。ここで、対象のデバイス側からAIRcableを見つけて接続を試みてください。PINが要求されたら1234と入力します。すると、AIRcableはヒヨコの刷り込みよろしく、最初に接続要求をしてきたデバイスとペアリングします。この時、ペアリング完了とともに接続要求を受け入れ、青LEDが点灯状態になって接続が完了します。



○対象のデバイス側設定

  • AIRcableを手軽に使いたいのであれば、対象のデバイス側で相応の設定が必要になります。つまり、AIRcableの電源が入ると同時に自動で接続するように設定しておく必要があります。そのような機能の無いデバイスの場合は、いちいち手動操作で接続を確立させないといけません。


○もし他のデバイスとも繋げたいなら・・・

  • 一旦Bluetooth接続を切っても、cu側で接続状態にしている限りはAIRcableはペアリングした相手が接続してくるのを待っています(青LED遅点滅)。この時、2〜3秒ほど短めにボタンを押し込むと、再び青LEDが早く点滅して二つ目のデバイスとのペアリング状態に入ります。上記と同じ要領でペアリングしてください。おそらく、二つ目のデバイスは優先順位2番目として記録されます。


○今登録しているデバイス達と別れたいなら

  • 既にペアリング登録してある状態で、5秒以上ボタンを押し込めばAIRcableはまっさらな頭に戻って1つ目のデバイスとのペアリング状態に戻ります。


と、こんな感じです。と言いつつ、実はうちにはインテリジェントな携帯電話は存在しないため、これで本当に各種の電話と繋がるかどうかはちょっと不明だったりします(^^;;;


◆間違った使い方編
当方の環境では、Socket Bluetooth CSAを使用しているのですが、実は今現在、このCSAも「受身」で使用している(ザウルスやPC等、複数のデバイスを受け入れる設定にしている)ため、AIRcableと接続が出来ません・・・。これでは宝の持ち腐れになってしまうので、SL-C760SL-B500との接続に使用してみました。


Toshihisa Tanaka氏のこちらのページSL-B500に対してシリアルコンソール経由でログオンする方法が示されています。ここで書いてある通りに/etc/inittab中の


s0:24:respawn:/sbin/getty 9600 ttyS0

s0:245:respawn:/sbin/getty 115200 ttyS0


と言う感じで修正してsudo /sbin/telinit qで更新を反映させると、早速gettyが起動し、ttyS0を監視し始めます。getty自体がシリアルポートの接続を試みているので、ザウルスの電源が入ると同時にAIRcableは速攻で接続待機に入るようになります。


ここでibCardを刺して、AIRcableとのペアリングを済ませたSL-C760を持ち出してきて、おもむろに


cu -l rfcommX -s 115200


と打ち込むと、コンソール上に


Embedix 2.0 | Linux for Embedded Devices
zaurus login:


との表示が現れます。ここで、ユーザーをzaurusとしてログインすると、もうそこはSL-B500の中です(^^ cuとAIRcableのみで、鞄の中に放り込まれたザウルスにもログオンできるようになりました。


ここまで来ると、ファイルサーバその他として使えはしまいか、と思い至ってコマンドを探してみました。Linux同士でZMODEMをサポートするのはsz/rz等がありますが、この場合リモートマシン側で送信コマンドのszが使えるのはいいとして、受信側の操作が分かりません・・・。仕方ないので、エラー訂正すら無いものの、cuに太古の昔から存在するベタなファイル転送コマンドを試してみました。


cuに関してはこちらのページに詳しく、基本的に~以下から始まるエスケープ文字を使ったコマンドで行います。色々試してみて、使えそうなのは~pと~tと言う感じです。~<、~>は、自分で適切なコマンドを入力する必要があるみたいですが、その適切なコマンド自体が何か分かりませんでした(^^;;


~pでは、ローカルマシンのカレントディレクトリ上で送信するファイル名と、リモートマシンで保存するファイル名を聞かれるので、答えると送信が始まります。だだだーっと数字の列が流れていくとともにファイルが送信されているみたいです。やはりベタなせいか、たまに失敗します(^^;;


~tでは逆にリモートマシンのカレントディレクトリ上で送信するファイル名と、ローカルマシンで保存するファイル名を聞かれます。同じく答えると受信が始まります。こちらでは文字列も何も無いですが、きちんと受信はされているようです。同じくたまに失敗します。


シリアル通信であるだけに、改行コードを一種類に自動変換するアスキーモードと、そのまま送るバイナリモードが存在し、送信するファイルによって適切に設定する必要があります。テキストモードでは、日本語で記述されたファイルも問題なく送信することが出来ました。バイナリモードではBMPファイルなどを送信して上手くいったのは確認したのですが、何故かMP3やDOCファイルを送信すると中身が壊れて送られてきます_| ̄|○ どうやら、特定のコードが化けるなどしてうまく送信されて無いようです。


この辺を改善できれば、ローカルマシンで全て操作可能なファイルサーバとして使用することも可能だと思うのですが、いかんせん115200bpsの転送速度は厳しいです(^^;;; 5MBのMP3を送信してみましたが、壊れている上に5分以上かかりました。きちんと送信できたとしても、理論的に速度は変わらないと思います。ううむ・・・


ちなみに、ログインした状態で


$cat XXX.wav > /dev/dsp


とすると、遠隔マシン上で音を鳴らすことが出来ます。MP3ファイルも鳴らせると、立派にリモコン操作のジュークボックスになるのですが・・・って、かなり意味が無いかも(^^;;;
※10/24追記:mplayerを呼び出せばあっさり出来ました。



と言う感じで、単なる遊びではありますが、リモート側のザウルスは電源を入れるだけで即ログインすることが可能です。これの実用的な使い道があるといいのですが、このままだとAIRcableはもったいないリモコンデバイスになりそうです。素直にちゃんとした携帯電話と繋ぐのが一番幸せそうですね。


#理論上はWindowsTeraTermなどでも同様にログオン可能なのですが、私が所持している
#GW-BH02Uでは、ちょっと通信した後に途切れてしまう症状が。残念ながら相性が悪いようです・・・