2012-10-31 (水)
仕事で色々あった.
飲み会.明け方に帰宅.
この日記はフィクションです.登場する人名・団体名・地名・職業などはぜんぶ架空のものです. なので実際のものとは何も関係がありません. それから,写真のように見える画像はCGもしくは念写によるものです.
Chrome用のExtension書いたりする日.
動かなくなって放置していた昔書いた拡張も直しておく.セキュリティ周りが厳しくなったりmanifestの書き方が変わったりしていた.
眠い.
ThinkPadのキーボードって単体で新品買うとけっこうするな.USBのやつ買って外したほうが安い場合もありそう.
今日は,トラックポイント周りの解析とUSB周りを実装して普通のキーボードとして使えるようにする.
2012-10-21で調べたやつは一部間違ってたので修正した.
最近のThinkPadキーボードはCapsLockキーにLEDがついてるのですが,カソードが30番ピンにつながってるのはわかった.アノード側調べてないけど残ってるピン少ないしすぐ見つかるはず.
トラックポイント操作すると,DATに3バイトのデータが流れている.最初のバイトにはボタンの情報が入っているっぽい.パリティ付きのシリアル通信だったので,たぶんPS/2互換.
http://ioiodesu.web.fc2.com/PS2/PS2.HTML
オープンコレクタだと外付け部品が出てくるのでだるいなと思ったけど.AVRの内部プルアップ抵抗と,入出力モードの切り替えで模倣すれば直結でもいけるな….
続いてキーボードの方.
最初からUSBが載ってるAT90USB1286も買ってあるのだけど,MEGA128で作り始めてしまったのでV-USBで.
あとでAT90USB1286に乗せ換えるつもりで回路作ってたけど,mega128にはPCINT無いのか.V-USBでUSB使うために割り込みが必要なのだけど,90USB128互換でピンを使ってたら,割り込みかけられないことに気づいた.仕方ないので別のピンを使う.
USB周りも実装したので,キーボードとして認識されるようになった.CTRL,ALT,SHIFTの処理追加したのでとりあえず普通に使える.
途中でライタの接続間違えて,mega128壊してしまった気がしてあせったけど,前に書き込んだプログラムは実行できているっぽいので,MISO/MOSIの様子を伺っているとデバイスタイプが取得できないだけみたいだったので,タイプをmega128に強制して操作して回避.
来週あたりトラックポイントを使えるようにしよう.
とりあえず,配線してキーの値を読めるように.
mega128はデフォルトだとmega603/103互換モードになってるから,PORTGを使うためには,Extヒューズを書き換えないとだめなのか.
これでUSB周りを実装して,キーマップ作成すればとりあえずキーボードとしては使えるな.
あとはトラックポイントとインジケータLED周りを解析しないと.
10/9に注文したNexus7を受け取ることが出来ない日々.とりあえず保障とか良いので宅配ボックスに入れておいてと連絡する.巷では32GBのうわさが流れてるし,微妙な時期に買ってしまったな.
家に帰ったらGalaxy Nexus届いていた.画面が大きいのは思ったより良いな.
歯医者行くため早く起きる.
以前からwebで回路図書いて共有できるサイトないかなと探してるのだけど,良いのがないなぁ.
https://www.circuitlab.com/ これ良いのだけど,単純な回路しかかけない.シミュレーションとかできなくてもよいので,それっぽい回路図が作れるやつが欲しい.
AT90USB1286を買ったのだけど,まずは試しにだいぶ前にかったATMEGA128にプログラム書き込んでみる.ISPで書き込めないと思ったら,mega128はISPモードのときはMISO/MOSIではなくてPDO/PDIを使わないといけないのか.データシートちゃんと見ないとダメですね.64ピンのQFPの半田付けが思ったよりだるかったので,このままmega128で行ってしまうかも.
Digi-keyからの荷物,クロネコで届いた.
色々予定を変更して電子工作の日にしよう.ただ,オシロと工具が会社に…….
ピン配置とマトリクスを解析する.
部品とどいたので続き.
一番気になっていた,ヒロセのDF12B(3.0)-50DPがキーボードのコネクタに合うかという点をまず確認.予定通りうまくはまる.わかっていたことだけど,ちょうど1ピン分遊びができてしまう.キーボードのコネクタは40ピン+使わないピンが4+左右に1mmの突起があるので,ちょうど48ピンのサイズっぽい,がそんなものは売ってなかった.
想定外だったのが,買ったコネクタの端が内側に出っ張っていて,奥まで押し込むと微妙に横にずれて端子が接触しなくなる.カッターナイフでプラスチックを削って解決.
久しぶりなので,0.5mmピッチの半田付けむずい.
とりあえずピッチ変換基盤つないで,簡単に線を引き出せるようになったので,キーボード部分を一通り確認.
トラックポイント周りは,まだ確認中でかなり怪しい.
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
32 | n | SP | カ | b | / | ↓ | → | >> | ← | AltR | ||||||
33 | m | < | Ent | > | v | ] | c | x | z | << | ShR | CtR | ||||
34 | 7 | 8 | F10 | 9 | 4 | 0 | 3 | F11 | 2 | F12 | 1 | PgD | ||||
35 | j | k | l | f | ; | d | s | a | ||||||||
36 | u | i | o | r | p | e | w | q | ||||||||
37 | y | [ | BS | F7 | t | @ | F3 | Tab | ShL | |||||||
38 | 6 | ^ | F9 | F8 | 5 | - | F1 | PgU | CtL | |||||||
39 | h | F6 | F5 | g | : | F4 | Think | ESC | ↑ | AltL |
途中で飽きたので埋まってない箇所ありますが,たぶん下記リンクのページを見れば,残りも分かるはず.
マウスのボタンどこに出てるのかと思ったけど,トラックポイントのモジュールにつながってるのか.
ThinkPadキーボードをいじっているサイトを見て回っていると,世代によって配線に微妙な違いがあるっぽい.
来週あたりに実際に回路組んでUSBキーボードとして動くようにしよう.
Galaxy NexusのAndroidを4.1.2(JZO54K)にアップデートしておく.
この前digikeyでPHY内蔵のイーサネットコントローラのENC28J60を注文してしまったので,秋月行ってパルストランス入りのLANコネクタ買ってきた.とりあえず,RJLD260TC1が200円だったので2個買う.注文したパーツも,もう成田までは来ているっぽいけど,土日はUPS休みなのか…….もう一日早く注文すればよかった.
それにしても,有線LANのRJ-45コネクタは大きいし使いにくいし,そろそろ別のものにならないのかな.
BOOK WALKERとかGoogleプレイブックスとかkoboとかで本買うと,専用のサイトやアプリに行かないと読めないのが不便すぎる.後で読むときにどこで買ったか思い出せなくて読むのあきらめたり,買ったのを忘れてamazonで同じ本をまた買ったりしてしまうことが多い.
プレイブックスはepubとかpdfでエクスポートできるけど,日本で売ってる書籍はダメなのがほとんどなので使い物にならないのが残念.
というわけで,購入済みの本をまとめて管理しようと思って適当にサイトをスクレイピングしようと思ったのだけど,どのサイトも本を独自のIDで管理していてあんまりうれしくない.amazonを見習ってISBNを引けるようにしてほしい.
結局,紙で買ってスキャンしてpdfにするのが現状では一番マシな管理方法な気がする.
昨日Digi-Keyで電子パーツ注文したのだけどもう発送されたっぽい.300円くらいの買い物で送料2000円は高いので適当に欲しいもの買ってたら9千円くらいになって送料無料だった.
Android 4.1.2のアップデート来てたけど,色々パッチ当ててると一度戻してからアップデートしないといけないので面倒.
そして8日頃にNexus7を注文したのだけどまだ届かない.
なんだか歯が痛い気がするので歯医者行く.歯の根元で炎症起きているっぽい.とりあえず,歯に力がかからないように前に治療したときに被せた金属取ったり削ったりしてもらって,飲み薬で様子見.
ThinkPadキーボードのコネクタを,FFCケーブル用のコネクタを加工して作ろうとしたけど,強度とか噛み合わせがイマイチで,実用は無理っぽいのでもう少しそれっぽいのを探すことに.
Digi-Keyで在庫あるパーツの中だと,互換性あるコネクタ見つからなかったので,とりあえず無理やり使えそうなものだと,ヒロセのDF12シリーズが幅が同じっぽい.ただ40ピンのものだと長さが足りなくてはまらないので50ピンのを買って一部を使うしかないかな.
ARC electro industryというところのBTBコネクタの方が長さも含めてうまく噛み合いそうだけど少量入手できる方法が見つからなかった.
飲み会.
Playブックスもmusicみたいに手元にあるpdfとかの電子書籍をアップロードしてまとめて管理したいなぁ.
頭痛いので,とりあえず寝る.
焼肉の日.
先週くらいから頭痛が続いてるのが気になる.
Google DocsのSpreadsheet Data APIで帰ってくるシートの順序って,ワークシート内での実際の並び順の番号なのか.なんとなく並び替えても変わらないgidの数字順だと思っていた.
先週,いくつかのスプレッドシートを整理したのだけど,そのときシートの順番変えてしまっていて,バッチ処理のスクリプトが違うシートを参照したりしてて,一週間ぶりに見たらひどいことになっていた.
夕方,肉食べるために秋葉原へ.少し時間があったので,パーツ買ったりする.
朱雀門 コスパ高い.
9時におきた.とても眠い.
青山で飲み会.
眠い.
明日は早く起きて出かけないといけない.
寝る前にうっかりGalaxy Nexusのデータを消してしまった./sdcardの下に,/sdcardへのシンボリックリンク張ってある箇所があったのだけど,すっかり忘れてて,ゴミだと思いWindowsのエクスプローラーから削除.見事に,/sdcard以下が空になった.
消えて困るものはなかったはずだけど,色々面倒なので出来れば復旧したかった.
GalaxyNexsusはPCにストレージとしてマウントされてるわけじゃないので,復旧ソフトは使えないだろうなーと思って,
とりあえずブートローダーからclockworkmod recoveryとかを起動してPCから
adb -d shell "dd if=/dev/block/platform/omap/omap_hsmmc.0/by-name/userdata bs=8192" > data_dump.img
とかしてみる.ただ,adbってバイナリ大丈夫かなと思って確認.ぱっと見 0A が 0D 0D 0Aになってた.たぶん改行コードの変換だけど,なんで2個も0Dついてるんだろう.Windowsじゃなければ大丈夫なのかな.一度適当なところに保存して,adb pullした場合は大丈夫なのを確認したけど,面倒なのであきらめる.
ThinkPadのUSBキーボードのコントローラ,微妙に不満があるので自作したい.と,思い立って分解.
ThinkPadキーボードとか解析され尽くされてると思ったのだけど,よさげな資料が見つからない.
http://www.yosaisoft.com/koshi/works/tpkb/index.html
マトリクスがそのまま出てるらしい.リンク先の記述だとコネクタはKX15-40K2Dとなってるけど,手元のキーボード見ると,0.5mmピッチのコネクタに見える.X220とX200も見てみたけどどちらも40ピン0.5mmの二列コネクタだった.
ツメがどこにあるのかわからなくて少し分解にてこずった.
LITEON 826-00470-04A 145 R1 J28BJG 不明.こいつの中身いじれればハードウェア的な改造しなくて済むのだけどなあ.きっとプログラマブルなチップなのでデータシートとか落ちてればあるいは.
フラットケーブル側のコネクタの四隅ピンは未使用.基盤上のコネクタを見て1~16番と31,40番ピンを観察するとカラム選択のパルスが見える.18~22を見るとトラックポイントのPS/2っぽい信号.26~30,32~39あたりがマトリクスの行っぽい.19,23が+5V.25がGND.
FFCの写真でいうと,4隅を除いた左下を1番,右下を40番ピンとして数えてるけど,なんか意味ありげに「40」の印があるし本当は違うかも.
謎な線がまだいくつか残るけど,キーボード使うには困らなそう.
PowerとFnを除けば 8 x 16のマトリクスになるのかな.
キーボードだけなら以前AVRで実装したやつがあるのですんなりいきそうだけど,トラックポイントも一緒だと簡単に作れるかなぁ.
とりあえず,40pinのコネクタを入手するところからだな….
http://www.molex.com/molex/products/datasheet.jsp?part=active/0543630489_PCB_RECEPTACLES.xml
見つけた中だとこれが一番それっぽいけど,どうなんだろう.Digikeyで300円くらい.
10/13追記:molexのやつは列の間の溝が1.65mmだけど,キーボードのコネクタ見ると1.4mmくらいしかなくてあわなそう.もう少し細いヤツ探さないといけないのか….
珍しく午前中に目が覚めたので,買い物行ったり掃除したりして昼寝.
まともなタイプタッチ出来るようになりたいなと思って,少し練習してみる.Yを右手で入力すべきだと始めて知ったかも.そして「;」とか「/」を小指で入力するとすごく疲れる…….右手のホームポジションをひとつ右にずらしたほうが入力しやすいな...
最近眠い.
部屋に鍵を置いたままエントランスを出てしまったため,塀をよじのぼる羽目になった.非常階段経由で二階からエレベータ載ったりして不審者と間違われないか心配だった.
ガスの点検とかで9時に起こされたので眠い….
今まで良くわからない安いキーボードで家も会社も統一していたのだけど,同じのもう売ってなかったので,仕方なく(?)ThinkPad USBキーボードにする.
X220のキーボードと寸分たがわず同じだな,と思ったらThinkPadキーボードそのまま組み込んであるのか.
良い感じ.
ハードウェア的にまったく同じなのがわかったので安心して置き換え…と思ったら,色々はまる.
X220ではBIOSの設定でFnとCtrlを入れ替えてるのだけど,USBキーボードだと入れ替えられないんだろうか….最悪ハードウェア的に入れ替えてしまうのもありかも.
あと,カーソルキーのとこにある「戻る」「進む」もキーマップ書き換えて別のキーに置き換えてたのだけど,USBキーボードだと,Alt+矢印キーと同じスキャンコードが送られてくるので,ソフトウェア的には判別できない….Ctrl+Alt+矢印が画面の表示方向の切り替えに割り当てられてて,右Ctrlと戻るキーを間違って押したら,いきなり画面の向きが変わって焦った.
本体のトラックポイントとUSBキーボードのトラックポイントが,マウスカーソルの速度違って違和感あるのだけど個別に設定する方法がわからない.どっちかをちょうどよくすると,片方が速すぎたり遅すぎたりする….
ほかは快適.