MacBook TrackPad USB化計画

MacBookについている入力デバイス、Track Pad。昔はホイールマウスが一番だと信じて疑わず、正直各社が搭載するこのデバイスを見る度に「こんなの使えるか」って思っていた(実際、この頃のトラックパッドはコスト重視の出来の悪いのが多かったのは事実だと思う)。

MacBookについているのはこれしかないから仕方なく使っていたのが、面積の拡大やトラッキング性能の向上で徐々に使いやすくなり、マルチタッチが実現したあたりでなくてはならないものになっていた。

そんなMacBook ProについているTrack Padを、単品のUSBデバイスとして改造するという素敵な情報を公開しているbounavさんという人を見つけた。どうやら以前のMacBook Proでは、フレキシブルケーブル経由でUSBの4本の信号線がそのまま入ってきているらしく、その4本を引き出してUSBコネクタにつけちゃえばUSBデバイスとして使える、ということらしい。良くそんなこと調べたな、ほんと感心するわ…

Macbook pro trackpad conversion – http://bounav.free.fr

そんなめんどうなことしなくても、Magic Track Padがあるけど?

そう、外付けしたいだけなら同じくApple純正のMagic Track Padがある。面積も一番広いし、Bluetoothでケーブルレスなのでデスクがスッキリ。MacBook Proの操作環境をデスクトップPCでシミュレートしようとすると、このMagic TrackPadしかないというのが現状。

もちろんこれはこれで悪くないのだけど、キーボードの右端に置くというスタンダードなレイアウトだとちょっとホームポジションからの距離が遠い。ホームポジションから離れたくないとまでは言わないんだけど、MacBook Proの親指を伸ばせば操作できる形の方が理想に近い。

それでMagic Track Padをキーボードの下に並べてMacBookみたいなことをしようとすると、縦方向に大きすぎるのと、電池ボックスのせいで距離が遠すぎて使いづらいことに気づく。また、Bluetooth接続なのでKVM切替器を通す切替ができず、ペアリングも1台分しか覚えてくれないので基本的にコンピューターの数だけTrackPadを用意しなければならなくなる。そんな馬鹿な。

そんなわけでMacBook ProについているTrackPadがそのまま外部USBデバイスになるなら俺もそれほしい、と思ったので、実現できるかどうかの確証もないままMacBook Pro Early 2008 (A1260)のTop Case中古品を取り寄せた。新品のがいいけど、新品は$240くらいする。たかがTrack Padに2.5万円というのはあまりにもばかばかしいし、何より改造に失敗したときの精神的ダメージが大きすぎるので、まずは中古をPowerbook Medicから取り寄せた。動作確認済みの在庫が1つ$36ほど。

Powerbook Medicの中古品は、美品とはいえないけどまぁ自分できれいに掃除すれば気にならないレベル。ところどころ髪の毛がついていたりお菓子のクズみたいなのが見えたりはするけど、まぁ海外の中古品なんてこれが普通だろう。神経質な方はご遠慮ください。

Top Case Trackpad Assembly for MacBook Pro

MacBook Pro 2008年モデル

ちなみに数あるMacBook Proの中から、あえてbounavさんが改造しているのとは異なるこの2008年モデルを選択したのにはもちろん理由がある。それはマルチタッチに対応した機種だということ。今時マルチタッチ対応しないTrack Padなんてほとんど意味がない。bounavさんが公開しているのはマルチタッチ対応する前のモデルで、基板上のパーツの配置が結構違っているので少し調査が必要にはなるが、基本形は同じである。

ちなみにここでいう「基本形」というのは、USB ControllerがTrackPad側の基板にのっている、ということ。最近のMacBook ProではTrackPoint側にはUSBコントローラーが載っておらず、Logic Board側に移動してしまっているようで、Track Padの外だし改造をするにはLogic Board側も必要になるらしく同じような改造は簡単にはできないらしい。

写真左に見えるCY8C24794がCypressのUSB Controller。CY8C24794のデータシートを見ると、以下のような割り当てになっている。

  • Pin19 : Vss
  • Pin20 : D+
  • Pin21 : D-
  • Pin22 : Vdd

パターンをたどると使えるテストポイントがわかる。
usb_board1

bounavさんのまねをしてボード上のテストポイントに半田付けするなら、5V0/DP/DNのところと適当なGND(例えば下の写真のコネクタ右に見える金色の点)につなげばいい。でもねー、これ、写真だと簡単にできそうに見えるんだけど、超マクロ撮影でようやくこんな感じなので、実際には間隔が1mmあいていないパーツもザラ。割と人間業ではない。老眼でもないのに、作業用にルーペ買ってきてしまったくらい。極細のこて先も持っているけど、もうそういうレベルの問題じゃないというか。

なので、これはコネクタ側の方までたどってピンアサインをしらべて、フレキシブルケーブル側に半田付けする方が楽だし、失敗しても基板が死ぬこともなく安全という結論に達した。コネクタの並び順はCY8C24794からGND以外については基板上のパターンで追える。GNDはテスターで確認。本体につながる8ピンコネクタの左から4本がUSBで、GND/Data-/Data+/5Vという割り当てになっているようだ。

usb_connector

ちなみにこれがフレキ。ケーブルはUSB標準に合わせて黒(GND)、白(Data-)、緑(Data+)、赤(5V)を用意。電源系の黒赤は0.5mm、信号線の白緑は0.26mmのジュフロン線を使った(下の写真は全部0.5mmだけど)。

ribon_connector4

フレキの方が作業が楽、とはいっても、パターンは極細なので全部コネクタ付近に集めるのは無謀。どうしてもここから取らざるを得ないData+/Data-だけコネクタ付近に取り付ける。当たり前だけどフレキは絶縁されていて電気が通らないので、表面をパターンを切らない程度にカッターナイフで削って金属面を露出させて、そこにはんだを盛る。ここが一番難しい。

ribon_connector5

難しいとかいってもこの写真だとどうってことない半田付けにみえるかもしれない。実際には超細かくて0.5mmのシャープペン芯と比較するとこんな感じ。シャープペン太い!

ribon_connector8

電源系はパターンが太く、面積も広いのでよりどりみどり。GNDを表の後ろの方から取る。

ribon_connector6

5Vは表側から取れなくもないのだけど、面積が少なくData系と近いので裏面のここから取った。ちなみにデータ系は裏にもパターンがあるので、フレキのオレンジ色のテープを剥がしてData-もしくは+のいずれか一方を裏につけることもできる。これをやるとData系のはんだ付けが楽ちんなのだけど、Track Pad本体に取り付ける際にTrack Pad本体と触れてしまうのでやめた方がいい。ribon_connector7

引っ張ったケーブルは直接USB Aコネクタとかにつなげてしまうとケーブルの長さが固定になってしまいユースケースが限られてしまうので、USB Micro Bのメスコネクターにつなげて配線はUSBケーブルを使うことに。Micro Bのコネクタは表面実装とかこれまた作業が辛いのが多いので、素人も安心な変換基板付きを秋月電子で買ってきた。もっとも、上記のフレキはんだ付けしたあとでは、表面実装くらい全然問題なくできるんじゃないかって気もしてきたけど…usb-micro-b

今回の工作の全貌。Track Pad本体には全く手を入れていない。

ribon_connector9

完成図。ケースとかがないのでちょっと頼りない見た目だけど、とりあえず動作確認OK。TrackPad

実用化に向けてはケースをどうにか自作しなければならない。金属木材プラ、どれも加工経験がなく厳しいところだけど、とりあえずプラか木材かな。ハンズいって簡単に加工できそうなものがないか見てくるとしよう。

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s