Kindle2にBluetooth経由でシリアルコンソール接続することに成功したのでその備忘録。
購入したBTモジュールが技適前だったことから使用を断念したばかりだが、あきらめきれずに秋葉原の千石電商に行き、よさげなモジュールを見つけた。値段がBluetooth Mateの倍くらいなので躊躇したけど、ここまで来たらもう止まらない。
[Updated on April 5]Bluetoothモジュールの内蔵化の参考エントリ:
<注意喚起情報>
Kindleがぶっ壊れる可能性がありますのでよい子は真似しないこと。
購入したSPP対応Bluetooth無線モジュール:BlueMaster(浅草ギ研)12,600円
高いだけあってなかなかの優れもの。Sparkfun社のBluetooth Mateにはない機能が沢山ある。それだけに素人にはもったいない代物ではあるし、そもそもシリアルコンソール接続がそんなに頻繁なものではないので、この投資がどれだけのリターンを生み出すのか生み出さないのかと。。。
Kindleの裏カバーと内側のプラスチックのカバーを全部外す。ネジが19本あるのでこれが結構大変。その過程でバッテリーも外すことになるが、そうするとKindle本体とBTモジュールに給電できなくなるのでセロテープで固定してやる。出てきた4つの端子を使用した。下の写真のように1番から電源(たぶん5V)、TxD、RxD、GNDの順に並んでいる。ここにリード線をハンダ付けしてやる。Hacking the Amazon Kindle DX, Part 1: Bluetooth Shellで紹介されているウエイクアップスイッチの片側でも試したけど、ONの状態で固定しておかないとBTモジュールに給電されないのでとりあえずあきらめた。これはBlueMasterに必要な電圧を確保できなかったからだと思われる。
BTモジュール側は左から1つ飛ばして、RxD、GND、TxD、3V3となっているのでKindle側の端子と接続する。TxDとRxDはクロスする。するとBTモジュールのLEDが点滅し始める。これで通電が確認され、ペアリングの状態に入っていることになる。なおBlueMasterはMaster/Slaveを切り替える機能があり、デフォルトではMaster側に設定されているのでSlaveに切り替えておく。
母艦側でBluetoothデバイスを確認するとBlueMasterが見えるので選択して登録する。Slave側で登録する場合はPINコードは不要のようだ。”シリアルポートを編集…”を選択してシリアルデバイスを確認しておく(上のスクショ)。Terminalはminicomを使用。USBシリアル変換モジュールのFT232RLの使用は継続したいのでプロファイルは別に設定することにした。
% sudo minicom -s
rootでなければプロファイルを保存できないので初回はsudoで実行。Serial port setup を選択し、Serial Deviceに先程確認したパスを入力する。他の設定はFT232RL同様にしておきSave setup as .. で適当に名前をつけて保存する。その後、Exitを選んでconfigurationモードを抜けると、Initializing Modemと出て、Welcome to Kindleが流れて無事接続完了である。
USBシリアル変換モジュールでシリアルコンソール接続していたときには効いていたDO_NOT_KILL_UARTが反応していない感じなのでコマンドを直接入力したところ接続が切れることはなくなった。
DO_NOT_KILL_UARTはちゃんと機能した。ただしUSBシリアル変換モジュールで接続したときと同様にKindle本体がサスペンドに入るとコマンドは受け付けなくなるので、それを回避する場合は下記のpowerdを使ってサスペンドを停止しておくとよい。
# /etc/init.d/netwatchd stop
# /etc/init.d/powerd stop
Next Step
- バッテリーは使用に耐えられるか。BTモジュールに給電し続けるので2週間ほどもつといわれるバッテリーがどれくらい持つのか検証が必要。
- Kindle2に内蔵出来るのか。スペースの関係で収納できない可能性があり、そうだとするとBTの意味がない。DXならスペースありそうな感じがする。
- BTペアリングのセキュリティ確保。Slave側では常にペアリング可能でPINコード無しで接続出来てしまうので、何かしらの措置が必要。または10m以内に怪しい人物が近づいたら立ち去るなど。。。
環境
Kindle Global Wireless (Kindle 2 International Wireless) FW2.3.4OTA
MacBook(MB404J/A) Mac OS X 10.6.2