IBM 推出的在鍵盤上具有 trackpoint 的 Thinkpad 筆電和鍵盤,在寫程式或文章時,很好用,雙手不用離開鍵盤,當然,打電動還是滑鼠吧。因為那個 trackpoint 的頂帽是紅色的,所以叫 "小紅點",中國大陸叫指點桿。我平常都用桌機,因此外接小紅點鍵盤是我最常使用的生產工具之一。
六列式剪刀腳的外接 USB 小紅點鍵盤 (ThinkPad USB keyboard with trackpoint),有三種型式,SK-8835、 SK-8845、SK-8855。我從第一把用到第三把,尤其在 SK-8855 停產後,更是多買了好幾把來備用。
SK-8835 键盘推出時間為 2005年,從 THINKPAD T42、T43上移植下来的。在當時期待有小紅點的鍵盤已久,它一推出立刻去買一把,價格台幣 3千多元。後來同事也各買一把,但他們從來沒用那個小紅點實在可惜啊。這個鍵盤實在有夠大,右邊的數字鍵盤我完全沒用到,讓我沒地方擺滑鼠,真想把它切了。
SK-8845 是在 2008 年推出,少了右邊的數字按鍵。因為那個數字鍵實在礙人,一推出立刻就去買了。但還有 touchpad,那個也很礙事,不小心會碰到,很想把它拔掉。後來是用紙板把它蓋住。
SK-8855
的推出時間為 2010年,2014年停產,也是最後的六列式剪刀腳小紅點外接 USB 鍵盤。後來的鍵盤行程變短就很難用了。
最後的 SK-8855 是我使用了好長一段時間的鍵盤,就為了那顆小紅點 (Trackpoint)。時常會心動想改用機械鍵盤,但少了那顆小紅點,就只好作罷。直到某天才知道那個小紅點模組 (Trackpoint module) 就是一個完整的 PS/2 滑鼠,就燃起了希望,可以自己搞定在機械鍵盤上加裝小紅點模組 (Mechanical keyboard with Trackpoint)。
對於小紅點模組,能得到的資料只有最早 IBM 公開的說明書。後來有不同的版本,有的還可以外接 touchpad。每個版本的外型和接腳都不一樣,各接腳的信號也不同。先搜集一下網路上的資料,多瞭解一些,比較保險,避免不小心損壞小紅點模組。
參考網頁
SK-8835 的基本資訊
SK-8835 和 SK-8845 是 IBM 早期推出的外接小紅點鍵盤,附有觸控板的小紅點鍵盤,它的鍵盤模組與下列筆電相容 IBM x30 x31 x32 T40 T40p T41 T41p T42 T42p T43 T43p r32 r40 R50 R50e R50p R51 R51e R51p R52 R52p
我後來使用最久的是 SK-8855,沒有觸控板,它的鍵盤模組與下列筆電相容 ThinkPad T400S T410 T410S T410i T420 T420S T420i T510 T510i W510 W520 X220 X220S X220T
在網路上可以搜集到一些模組的接腳說明,但不是很確定是手上的模組是那一種排列,先收集再來確認。
使用 Teensy 2.0 開發板連接 R40 模組的情形。
系統抓到的 SK-8855 資訊
瞭解 SK-8855 的軟體資訊。在 Linux 下,列出裝置 SK-8835 的資訊
# xinput
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Synaptics Inc. Composite TouchPad / TrackPoint id=22 [slave pointer (2)]
⎜ ↳ Synaptics Inc. Composite TouchPad / TrackPoint id=23 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Lite-On Tech IBM USB Travel Keyboard with UltraNav System Control id=19 [slave keyboard (3)]
↳ Lite-On Tech IBM USB Travel Keyboard with UltraNav id=20 [slave keyboard (3)]
↳ Lite-On Tech IBM USB Travel Keyboard with UltraNav Consumer Control id=21 [slave keyboard (3)]
USB 裝置看到的資訊
# lsusb
Bus 001 Device 019: ID 06cb:0009 Synaptics, Inc. Composite TouchPad and TrackPoint
Bus 001 Device 018: ID 04b3:3019 IBM Corp.
Bus 001 Device 017: ID 04b3:3016 IBM Corp. UltraNav Keyboard Hub
找出它的 vendor id
# dmesg | grep -i synap
[ 255.926699] usb 1-1.4: Manufacturer: Synaptics Inc.
[ 255.930814] input: Synaptics Inc. Composite TouchPad / TrackPoint as /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.4/1-1.4:1.0/0003:06CB:0009.000B/input/input28
[ 255.930946] hid-generic 0003:06CB:0009.000B: input,hidraw9: USB HID v1.00 Mouse [Synaptics Inc. Composite TouchPad / TrackPoint] on usb-0000:00:14.0-1.4/input0
[ 255.933549] input: Synaptics Inc. Composite TouchPad / TrackPoint as /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.4/1-1.4:1.1/0003:06CB:0009.000C/input/input29
[ 255.933726] hid-generic 0003:06CB:0009.000C: input,hidraw10: USB HID v1.00 Mouse [Synaptics Inc. Composite TouchPad / TrackPoint] on usb-0000:00:14.0-1.4/input1
[ 4095.812773] usb 1-1.4: Manufacturer: Synaptics Inc.
[ 4095.822378] input: Synaptics Inc. Composite TouchPad / TrackPoint as /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.4/1-1.4:1.0/0003:06CB:0009.000F/input/input33
[ 4095.822885] hid-generic 0003:06CB:0009.000F: input,hidraw9: USB HID v1.00 Mouse [Synaptics Inc. Composite TouchPad / TrackPoint] on usb-0000:00:14.0-1.4/input0
[ 4095.826257] input: Synaptics Inc. Composite TouchPad / TrackPoint as /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.4/1-1.4:1.1/0003:06CB:0009.0010/input/input34
[ 4095.826755] hid-generic 0003:06CB:0009.0010: input,hidraw10: USB HID v1.00 Mouse [Synaptics Inc. Composite TouchPad / TrackPoint] on usb-0000:00:14.0-1.4/input1
[ 4524.939148] usb 1-1.4: Manufacturer: Synaptics Inc.
[ 4524.944395] input: Synaptics Inc. Composite TouchPad / TrackPoint as /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.4/1-1.4:1.0/0003:06CB:0009.0013/input/input38
[ 4524.944852] hid-generic 0003:06CB:0009.0013: input,hidraw9: USB HID v1.00 Mouse [Synaptics Inc. Composite TouchPad / TrackPoint] on usb-0000:00:14.0-1.4/input0
[ 4524.948361] input: Synaptics Inc. Composite TouchPad / TrackPoint as /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.4/1-1.4:1.1/0003:06CB:0009.0014/input/input39
[ 4524.948903] hid-generic 0003:06CB:0009.0014: input,hidraw10: USB HID v1.00 Mouse [Synaptics Inc. Composite TouchPad / TrackPoint] on usb-0000:00:14.0-1.4/input1
[ 4728.236457] usb 1-1.4: Manufacturer: Synaptics Inc.
[ 4728.240581] input: Synaptics Inc. Composite TouchPad / TrackPoint as /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.4/1-1.4:1.0/0003:06CB:0009.0017/input/input43
[ 4728.240797] hid-generic 0003:06CB:0009.0017: input,hidraw9: USB HID v1.00 Mouse [Synaptics Inc. Composite TouchPad / TrackPoint] on usb-0000:00:14.0-1.4/input0
[ 4728.243559] input: Synaptics Inc. Composite TouchPad / TrackPoint as /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.4/1-1.4:1.1/0003:06CB:0009.0018/input/input44
[ 4728.243802] hid-generic 0003:06CB:0009.0018: input,hidraw10: USB HID v1.00 Mouse [Synaptics Inc. Composite TouchPad / TrackPoint] on usb-0000:00:14.0-1.4/input1
因為正在使用中,無法 unbind 裝置,所以無法使用 pyusb 傳送設定資料,就不繼續測下去了。
控制板選用
The Pro Micro is an Arduino-compatible microcontroller board developed under an open hardware license by Sparkfun. Clones of the Pro Micro are often used as a lower-cost alternative to a Teensy 2.0 as a basis for a DIY keyboard controller/converter when a lower number of pins would suffice.
Like the Teensy 2.0, it sports an AVR ATmega32u4 8-bit microcontroller which has an integrated USB controller. It has a micro-USB type B port (Teensy 2.0: mini-USB), 18 I/O pins (Teensy 2.0: 25 I/O pins) and an integrated voltage regulator for 3V operation.
基於前述說明,Teensy 2.0 的 pin 會多一些,可能比較好。
----------------------
目前使用的是 ThinkPad Lenovo 聯想 SK-8855 外接 USB 鍵盤,這個已經絕版。而現在機械鍵盤好像頗為熱門,可惜沒有加上小紅點 (trackpoint) 的鍵盤。
其實也變猶豫的,SK-8855 用起來還順手,是否要折騰自己改裝機械鍵盤,加上小紅點模組 (trackpoint module)。而自己在硬體改裝能力上,並不擅長,尤其機構,更是束手無策。另外,目前都採用薄膜電路,SMD 元件,連電子電路也動不了。
無論如何,先收集一下資料,再來研究一下可行性。
POKER改小紅點 TRACKPOINT MOD
小紅點控制板接線方式_存檔用
更新-POKER改小紅點 TRACKPOINT MOD-加上滾輪了
Topic: Looking for Trackpoint controller IC pinout
終於被我找到了,關鍵字 "x220 trackpoint module pinout","T400S T410 T410S T410i T420 T420S T420i T510 T510i W510 W520 X220 X220S X220T",用這些關鍵字去找。找到了下列幾個網站。
下面是鍵盤PCB板的連接情形
這個接頭是 Japan Aviation Electronics (JAE) AA01B-S040VA1。這個是 0.4mm間距 40PIN 板對板連接器,有可能焊接嗎?
接頭的接點,是不可能焊接的,但轉個彎還是有解。轉換板上有3個測試點,對應到 3個信號。
TP1 => RST
TP2 => DAT
TP3 => CLK
接好後,經測試,OK 可以動作。但是一不小心,就把銅箔焊得掉下來了,好在那個是 reset 信號,有好多個接點可焊。焊好後,趕緊用膠布纏好,不敢再動它,以免全部泡湯。
Poor man's tex yoda
the module is from an x220 keyboard, of course in a 3D printed case. it's just connected to a PS/2 cable since that's what it outputs. it also has pins for the mouse buttons built in.
I'm on linux, so to speed up the pointer for my 4k monitor and get middle click scrolling, I run this:
xinput --set-prop "pointer:Barcode Reader " "libinput Scroll Method Enabled" 0 0 1
xinput --set-prop "pointer:Barcode Reader " "libinput Accel Speed" 1
you can get your PS/2 device with "xinput --list"
the switches are black complicated alps from an old keyboard. I used to have keycaps, but it interferes with the spacebar so I've left them off.
HHKBにトラックポイントを内蔵する方法 その4 - トラックポイントの設置
日本人的成品,機構 -- 搞電子的人的短板,最多只會做到用 AB膠黏。
Female connector from the front |
Pin 1 | +DATA | Data |
Pin 2 | | Not connected[b] |
Pin 3 | GND | Ground |
Pin 4 | Vcc | +5 V DC at 275 mA |
Pin 5 | +CLK | Clock |
Pin 6 | | Not connected[c] |
|
硬派精璽 (in_pad) 賣家,在露天和Yahoo 拍賣上,有賣 TEX Yoda II DIY零組件|Trackpoint小紅點模組(含螺絲),一個 750 元。如下圖,其中一個鼠桿被我掰斷了。
在下面這個連結找到相關廠商,鈦思電子 (TEX),台北巿內湖路1段411巷21號,TEL: 02-2627-7372,不曉得能不能直接找它買那個延伸桿。
ThinkPad 25周年键盘小红点维修记录,這篇文在說键盘的小红点指点杆损坏了,变得松松夸夸,功能不正常。
網路上的改裝實例
網路上找到的改裝實例,參考一下別人怎麼改的
機械鍵盤的 Dimension
GH - B,兩排間距 20mm,Trackpoint 中心,離B的中心,11mm,就是偏上 2mm。
IMB trackpoint stem DIY
有人開發轉換板,使用 Thinkpad 的鍵盤
可惜,不知怎麼找到那個 转换板,连接转换板,有了那個才能接上鍵盤
Teensy 2.0 USB AVR 開發板
花幾千塊,買一個 SK-8855 來殺,只為了取得那個 USB 轉接板,成本實在太高了。網路上有人用 Teensy2.0USB AVR 開發板來接小紅點模組,這個開發板在網拍上用 360 元就能買到。
關鍵字是 "Teensy2.0USB AVR 開發板 鍵盤滑鼠ISP U盤實驗板 mega32u4 W177"。
下面是討論的連結
https://geekhack.org/index.php?topic=8971.msg775152#msg775152
https://github.com/Nephiel/tmk_keyboard/blob/master/tmk_core/protocol/ps2_mouse.c