まあ、タイトル見ればわかると思いますが不定期更新の自己満ブログです 暇だたらみてってやってくださいw

WALKMANのドックについて考察

連投ですがどうもれのです。
ちなみに今日は試験一週間前の土曜日。レポートも勉強も全く手がついておりません。

さて、この間から快適ウーファーライフを楽しんでいるんですが、こいつにWALKMANを接続するの、若干嫌なんですよね。ヘッドホン出力をアンプにぶち込むのは、ねぇ…
どうにか搭載されてるドック(wm-portっていうやつですね)を利用した機器が作れないだろうか。世には出回っているわけだし。

ということでしばらく調べてみたところ、どうやらwm-portの詳細が公開されているようです。
以下コピペです。ソースは省略させていただきますが、「wm-port 自作」と調べれば似たような情報にたどり着くかと。
------------------------------------------------------
WM-PORTの規格 

ウォークマン本体を裏返してWM-PORTをのぞき込むと 
端子が見え、長いものと短いものがある。 
右側を1番ピンとする。 

#pin-NO:Long/Short: description 
01: L: GND 
02:S : 
03:S : USB data + 
04:S : USB data - 
05: L: USB GND 
06: L: 
07: L: Vin(5V) 
08:S : RxD/Wake (control-signal-input) 
09:S : check Cradle 
10:S : TxD/Sleep (control-signal-output) 
11:S : check USB 
12: L: battery-output 
13:S : audio-left-input 
14:S : audio-left-output 
15: L: audio-GND 
16:S : audio-right-input 
17:S : audio-right-output 
18: L: (video) GND 
19:S : (vidoe-in/out) 
20:S : check DC-input 
21:S : (digital_out) 
22: L: GND 

------------ 
08pin--10pin 直結でクレードルの接続を判断 
09pin--Rc--GND の抵抗Rc により種類を判別 

Rc   録音 ラインアウト 
∞     × × <BCR-NWS700,USB-cable> 
220kΩ ○ × <WMC-NWR1> 
100kΩ ○ ○可変 
68kΩ ○ × 
47kΩ × ○固定 
33kΩ × ○可変 
22kΩ ○ ○固定 <SRS-NWZ10> 
15kΩ ○ ○可変 
10kΩ × ○可変 <WS-12L(サン電子)> 
4.7kΩ × ○固定 <DCC-NWC1> 
・「可変」はラインアウト出力を操作可能。 
・「固定」は上記「可変」のMAX(30)で出力固定。ポートをはずすと元のボリュームでヘッドホン出力に戻る。 
・「可変」のときBEEPあり(ON設定時のみ) 

DC電源接続時 : 07pinと20pin に 5V 
USB 接続時 : 07pinと11pin に 5V 

外部からの制御 
08pin(RxD),10pin(TxD)によるシリアル通信 

◆信号規格 
Speed: 9600bps 
Start: 1 bit 
Data : 8 bit 
Parity: Even 
Stop : 1bit 
Level: Hi=2.8V / Low=0V 

◆制御の流れ 
Rx(08): Hi 
↓ 
Tx(10): 0xC0 出力 
↓ 
Rx(08): 0x40 確認 
↓ 
Rx(08): 0x30〜0x3Cを受け付ける 

◆動作 
0x30 : Play 
0x31 : Pause 
0x32 : Pause 
0x33 : Play/Pause 
0x34 : Next 
0x35 : Prev 
0x36 : begin-FF 
0x37 : begin-REV 
0x38 : end-FF/REW 
0x39 : DIR+ 
0x3A : DIR- 
0x3B : Vol+ 
0x3C : Vol- 
------------------------------------------------------
これを見る限り、ポートからオーディオ出力が取れそうです。調べるとLINEOUTとして扱えるみたいですね。実際どうなのかは知りませんけど。
また、どうせなら録音機能も使いたいところ。コネクタと3.5mmジャックをセットにして、スイッチでin/out切り替えるとか。
あとは、気になるのが外部制御。
シリアル通信ならarduinoあたりでぱぱっと書けそうです。arduinoのシリアル通信には本来パリティチェックがありません。ただ、一応正式なやり方かどうかはわかりませんが、arduinoの内部レジスタをいじれば偶数パリティの設定ができる様子。
スタート、ストップ、データ長はデフォルトでマッチしてますし、通信速度もarduinoで設定可能な値です。シリアル通信のレベルシフターが必要になりますが(arduinoは5Vで行うのに対してwm-portの規格は2.8V。)そんなに難しいプログラムにはならなさそう…

イメージしているのは、wm-portのコネクタに、3.5mmジャックを2個つけて、片側をオーディオ用、片側を外部制御信号用として使う感じのもの。そうすればこのデバイス自体からケーブルが一本も出ることはありません。
(もちろん、無線通信でのリモコン化も捨て難いですが流石にハードルが高いのでそれは追ってでいいでしょう。)

問題はジャックの混同ですね…間違えて制御信号ジャックにアンプからのオーディオ信号をぶち込んだりしたら…WALKMANがご臨時になる可能性が…
3極で小型のジャックが他にあればそれを使うのですけど。
それともmicroUSBあたりを乗っけるか??
以上、ちょっと興味が出てきているwm-portについてでした。

最後に、参考になりそうなページを幾つか貼っておきます。

(実際に作ってみた方のページ。コネクタまでバラして作っています。)

(作例その2。この、赤いケーブルのものの脇にある物が僕のイメージに近いです。ちなみにこのサイトの方が使っているポートのキットは現在販売元で在庫切れとなっています。)

(既製品を、ボリューム固定化する改造法を公開しています。)

(arduinoのシリアル通信用レジスタの詳細について説明されています。)