hatayan: 2005年7月アーカイブ

 最近俺に合わせてipodの調子が悪くなり、いらいらしたのでipodをHackしてみることにした。

 まず、なんかできないかと調べているとApple iPod Remote Control Protocol Generations 2 & 3というサイトをみつけた。ふむふむ、シリアルでコントロールできるらしい。

 どうやらdockからじゃないと通信関係の信号線を取り出せないと思っていたがApple iPod jack pinout
を見たところそうではないらしい。(ちなみにdockの信号線のpin配置はApple iPod dock pinoutにのってる)

ということなので、早速Jackから信号を取り出そうとするが細かい作業が必要そうなのでめんどいからやめて、リモコンからとることにする。

ipodのリモコンを分解してRXD(緑の線)とGND(黄色)の線を引き出す。

ipod_remote_01.jpg

残念ながらTXDはリモコンでは使わないのでGNDに直結されているので引き出せないぽっかった。

カバーに穴をあけて線を外に出す。
ipod_remote_02.jpg
なんかイイ。

このままじゃパソコンのシリアルにはつながらないのでおなじみのシリアルドライバーICのADM3202ANをかましてパソコンにつなげる。
ipod_remote_03.jpg
写真にうつってるAVRは残骸なので関係ない。ただシリアル部分を流用しただけ。

パソコン側はシリアル通信ができるターミナルソフトをつかって通信するのだが、今回はバイナリの通信ができる物でないといけないので奥出研で愛用されているAcknowrichというソフトをつかって通信する。

バイナリモードにしたうえで、IPOD 3G Accessory Protocolのサイトのプロトコルに従い、 19200bps parity=none stopbit=1 length=8 と設定する。
ipod_remote_04.jpg

ここで、
(Play/Pause)0xFF 0x55 0x03 0x02 0x00 0x01 0xFA
(Vol+) 0xFF 0x55 0x03 0x02 0x00 0x02 0xF9
(Vol- ) 0xFF 0x55 0x03 0x02 0x00 0x04 0xF7
(Skip→) 0xFF 0x55 0x03 0x02 0x00 0x08 0xF3
(←Skip) 0xFF 0x55 0x03 0x02 0x00 0x10 0xEB
(End Button)0xFF 0x55 0x03 0x02 0x00 0x00 0xFB
各コマンドを打ち込んでENTERを押すとipodがそれ通りに動いた。

今回はここまでやって満足したのでやめた。

このやり方だと、録音モードと通常モードでは楽しめるが、肝心のIPODからの情報がTXDがGNDに直結してる関係で信号がとり出せないので、次回はdockかコネクタ部分からばらして、Advanced iPod Remote (AiR)モードを試してみる予定。