2019年5月23日 星期四

改裝 Ducky One 機械鍵盤 + 小紅點

在這裡簡單記錄自己改裝 -- 機械鍵盤+小紅點  (Mechanical keyboard with Trackpoint) -- 的過程。

緣起

在近十幾年寫程式的日子中,使用的是有小紅點 (Trackpoint) 的鍵盤 SK-8855 USB 外接小紅點鍵盤。新出的巧克力按鍵則不敢領教,手感實在太差了,感覺好像一直用手指敲擊桌面。為了能繼續使用 6列式鍵盤,囤積了三四個 SK-8855 外接鍵盤。鍵盤用壞了,就買個相容的 Thinkpad 鍵盤來換,也自行換過了好多個鍵盤。不過,鍵盤越做越差,越來越讓人受不了,尤其是在試用過機械鍵盤後,更是夢想有個加上小紅點的機械鍵盤。

想要有個小紅點機械鍵盤的夢想一直不曾停過,雖然 TEX Yoda 有出 ,但那是 60%的鍵盤,不想用。想要自己改,又不知道那個 Trackpoint module 的接腳定義,甚至沒有拆過小紅點模組。直到最近,再次在網路上搜尋關於 Trackpoint 的資訊,才知道那個模組的接腳就只不過是個 PS/2 介面的滑鼠,其中3條線是外接按鍵用。這麼簡單,卻一直沒有找到相關訊息,不瞭解原來這麼簡單,還真有點遺憾。

在拆一個小紅點模組且測試確認功能之後,開始動手做自己的小紅點機械鍵盤。

我的目標是 87 鍵的鍵盤,在電腦桌的鍵盤架上才能同時放置鍵盤和滑鼠。運氣不錯,買到一個中古創傑 Ducky ONE PBT TKL 87鍵的機械式鍵盤。後來也知道雖然都是機械鍵盤,但組裝品質真的有差,而 Ducky 的鍵盤算是一般認為還不錯。

2020-07-06 補記,使用了一年,很滿意,補一張目前使用中的照片。手托做的不完美,但用起來還算舒服。手托是網拍找到的,說是韓國製的,找到最便宜的,一個 250元。手托較窄,中間加了一個間隔。

2021-03-27 補記,使用了這麼久,已經完全不能適應原來的 SK-8855 的薄膜鍵盤,最近心動,想著有空再來製作一個。

鍵盤電路追縱

拆開鍵盤的第一個衝動,就是鑽小紅點通過的孔。因為這一鑽,完全無法預測後果會怎樣,這一千多的鍵盤會就這樣報銷了嗎? 而且,這時對於如何固定 Trackpoint module 也還完全沒概念,只能且戰且走,先定位操控桿再說。

鑽完固定孔後,立即查看災情,看看電路被破壞多少。還好,只有一個按鍵的線被鑽斷了,用線跳一下就可以了。後來在鑽固定模組的螺絲孔時,發現有 3 個 SMD 二極體太靠近螺絲,必須把改個方向。後來再改 iKBC 的鍵盤,才知道 Ducky 的電路板做的不錯,線路較寬,佈線也不密,改裝比較方便。

從來沒處理過 SMD 元件,先找影片學習怎麼用烙鐵解焊 SMD 元件,求助!smd電解電容如何解焊更換!mini-z mosfet 焊接與解焊

下面這篇裡面介紹的,真是太神奇了,無所不拆,簡易SMD元器件拆除方法Desoldering without hot air

有一點點的難度,還好二極體只有雨支腳,會比較簡單些。不過,第一次做,技術不熟練,弄壞了兩個。

在鑽第一個洞時,發現把線鑽斷之後,立刻用三用表確認鍵盤的矩陣圖,把它保存下來。等最後模組固定之後,要靠這個電路圖來復原電路功能。

Ducky ONE 87鍵 機械式鍵盤的矩陣圖 (Keyboard Matrix),如下。



100%鍵盤,有 104鍵,正好是 8*13=104,而 80% 的 87鍵,少了17鍵,就很多地方是空的了。加上二極體是為了讓多個按鍵按下時不會衝突,所謂的 N-KEY Rollover全鍵防衝突。

小紅點延伸桿 Trackpoint stem

要怎麼加長小紅點的固定桿,算是最關鍵的部分,想了好久,試了不少作法,才有比較好一點的作法。尤其對只會焊接電路的人來說,要動手改造結構,更是最困難的部分。在網路上,可以找到網友們各種土砲的改法。無意中發現 TEX Yoda DIY 的 Trackpoint 小紅點模組,它有單獨賣,NT$ 750,不算太便宜,但卻是在自己不會做的時候的最好方法。

下圖是我買的 2個 TEX Yoda DIY 的小紅點模組,其中一個延伸桿 (增長桿) 被我挖下來了,其實它黏得不是很牢。原本只是想挖鋁桿下來,卻整個掉下來。後來在網路上的討論得知,真的很多人用一用就掉下來了。

黏在鋁桿底部的原來的小紅點桿 (trackpoint stem),材質非常堅固,火燒不會融,刀子也挖不下來。後來用鑽石切割片加鑽石研磨頭,把它一點一點磨掉,才挖掉。只是太大意,有損到一點鋁桿。

小紅點延伸桿的長度,約 21mm。用AB膠把延伸桿黏在小紅點的塑膠座上。

固定小紅點模組

要拆下 Thinkpad 鍵盤的 Trackpoint 模組,要拔下 G H 鍵,拆下按鍵下面的螺絲,Trackpoint 模組就可以輕鬆拆下。第一次拆的時候,不知有這螺絲,用力硬翹,有點拆壞。

自己做的小紅點模組固定板,使用硬碟拆下來的鐵板。後來又把固定板切窄一點,不然鍵盤外殼要挖的洞太大了。

要先耐心的測量和計算螺孔位置。雖然只有3個孔,而且其中只有2個固定螺孔要較準確,但是對於非機械專長的人來說,也是很不容易的。


鍵盤上挖洞,用 AB膠黏上 M3 六角母螺帽,用來固定小紅點模組。螺帽是金屬的,還必須把會接觸的電路板線路磨掉,以免短路。後來找到塑膠螺帽,就可以直接黏上,不用擔心短路。

PCB 上有兩個多挖沒用的洞,原來是想直接鎖 strain gauge 的電路板,但發現只要 strain gauge 受力,游標就會自己亂跑。只好按照 Thinkpad 的原來的安裝方式,另做固定板。第一次試作,總是會走不少冤枉路,幸好 Ducky 的電路板品質不錯,走線也夠粗,間隙較寬,才能經得起這樣折騰。

穿過延伸桿的孔徑要 5mm 以上。

鍵盤正面看到的孔,在 GHB三個鍵之間,孔徑要 3mm 以上。這個洞是從前面往後鑽的,這樣才能鑽到正確的位置。可是,根本不曉得會鑽到什麼,電路板會被破壞成怎樣,只好事後再來補。

另外,最後將近組裝完成,要削鍵帽時,才知道這個孔鑽得太下面,太靠近B鍵了。找以前 IBM 最早的很大的 trackpoint 鍵盤來看,那個洞幾乎是和 GH 鍵的底部切齊。

被鑽斷的線,按照上面整理的電路圖,用線把它焊接連回去,測試 OK。

開孔附近的三個二極體,太靠近螺絲和延伸桿,把它換個方向。二極體的另一端,就用接地的銅鉑挖成孤島來當焊點。

因為沒拆過 SMD 元件,有2個被我弄壞了。幸好空白鍵的假軸旁,有兩個沒用到的二極體,把它拆過來用。

因為加裝的小紅點模組有點高,鍵盤外殼的背面要挖掉一塊,讓小紅點模組露出來,才能組裝。組裝好的樣子如下,模組固定板,已經切窄一些,不然要挖的面積更大。

固定好模組之後,開始削鍵帽。因為小紅點位置太偏下,B鍵要削不少,而且按B鍵時,手指會有點被指點桿妨礙到。若孔能上移2mm,會好很多。


電路整合

要把小紅點模組和鍵盤的電路功能整合起來,外部只用一條 USB 信號線連接。先用 PS2-to-USB 轉換器把小紅點模組的信號轉成 USB 信號,再用 USB HUB 把鍵盤和滑鼠信號整合成一個 USB 信號。

把 PS2-to-USB 轉換器拆開,只有小小一塊電路板。然後在網拍上找到便宜的過時的 USB hub,一個不到 50元,把外殼拆掉,就一塊長長的電路板。再把 PS2-to-USB 轉換器的電路板,直接背在 USB hub 的電路板上。另外,也加上小紅點模組的 reset 信號用的電阻和電容。這個 reset 控制一定要加,不然不會正常工作。




滑鼠按鍵製作

固定小紅點後,解決了最關鍵的步驟。如何固定滑鼠按鍵,也是花費一番心思。按鍵開關選用一般滑鼠用的微動開關,之前有一些為了修滑鼠上網買的 Omron 微動開關,正好派上用場。

買了一片單面銅箔 PCB,決定好按鍵位置,在 PCB 上鑽了按鍵開關接腳的孔位,焊接好,再用鑽石切割片,把點切開成獨立的接點。沒有洗 PCB 的設備和能力,這算是純手工製作的電路板。按鍵是 Thinkpad 鍵盤拆下來的,把按鍵的部份從鍵盤鋸下來。把原來的薄膜按鍵拆掉,將原來按鍵位置的鋁板削磨掉,讓按鍵可以透過開孔頂到裝在下面的微動按鍵。


原來的按鍵很薄,按鍵必需增高一點,才能頂到微動開關。增高的部分是用 AB膠做的,若黏上去後按鍵變得太高,微動開關不會鬆開。要將按鍵拆下,把它磨矮一點,反複研磨和測試,直到剛剛好。

按鍵很精細脆弱,拆裝要有耐心點。拆拆裝裝之間,不小心把中鍵的一支腳弄斷了。只好把那支腳磨低一點,然後用萬能的 AB 膠黏一段迴紋針上去。幸好能黏牢,才不用又要重頭做一個,又要再破壞一個鍵盤。為了拆零件和測試,破壞了好多個鍵盤了啊。

滑鼠按鍵 (X220) 修改資料如下

左右按鍵,墊高後,全高 5.4mm,原高 2.7mm,加高 2.7mm
中間按鍵,墊高後,全高 4.9mm ,原高 2.2mm,加高 2.7mm
加高的部分,外徑 5.8mm


在按鍵的鋁板上,用 AB膠固定螺帽,然後用螺絲把電路板和按鍵組合起來。


如何將滑鼠按鍵固定在鍵盤上,想了好幾個方案。最後找了一個牙線的空盒子,切成 L型固定座。把按鍵和電路板鎖在固定座上後,再用雙面膠黏在鍵盤上。嗯,非常滿意組合後的成果,按鍵比原來的好用多了。用微動改裝的滑鼠按鍵,手感比原來的薄膜式按鍵好很多。


黏上後,按鍵的背面圖。電路間都用連接頭連接,方便拆裝。裸露的部分用絕緣膠帶黏上,避免短路,也能固定好不會晃來晃去。



下面是完成圖,貓舌小紅點先前使用有點久,變黑了。因為用圓盤小紅點,會有點妨礙按B鍵,就找了一個舊的貓舌小紅點。可惜,現在買不到新的貓舌小紅點了。


不曉得為何機械鍵盤的中文輸入都只有注音,可是我要用倉頡。雖然大部分都可以盲打,但是鍵盤上沒有印倉頡輸入,還是很不自在。就學一下測刻,把倉頡輸入貼在側面吧,這樣不會打一打就溢膠,也不會影響手感。

X window 設定

使用 USB 外接小紅點鍵盤,接上使用後,滑鼠中鍵會自動設成滾輪。但透過 PS2 to USB 轉接,並不會自動設定,使用上很不方便。

參考 Poor man's tex yoda 的分享,才成功將滑鼠中鍵設定為滾輪。
注意,Gentoo 必須安裝 x11-drivers/xf86-input-libinput。

在 /var/log/Xorg.0.log 找到裝置的相關資訊式
[     4.023] (II) config/udev: Adding input device Barcode Reader  Mouse (/dev/i
nput/event17)
[     4.023] (**) Barcode Reader  Mouse: Applying InputClass "evdev pointer catchall"
[     4.023] (**) Barcode Reader  Mouse: Applying InputClass "libinput pointer catchall"
[     4.024] (II) Using input driver 'libinput' for 'Barcode Reader  Mouse'
[     4.024] (**) Barcode Reader  Mouse: always reports core events 
[     4.024] (**) Option "Device" "/dev/input/event17"

列出在 X window 下可設定的參數
$ xinput --list-props 'Barcode Reader  Mouse'
Device 'Barcode Reader  Mouse':
 Device Enabled (153): 1
 Coordinate Transformation Matrix (155): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
 libinput Natural Scrolling Enabled (287): 0
 libinput Natural Scrolling Enabled Default (288): 0
 libinput Scroll Methods Available (289): 0, 0, 1
 libinput Scroll Method Enabled (290): 0, 0, 1
 libinput Scroll Method Enabled Default (291): 0, 0, 0
 libinput Button Scrolling Button (292): 2
 libinput Button Scrolling Button Default (293): 2
設定滑鼠中鍵為滾輪及將加速設成 1 。不過,好像加速設為 0 就夠快了。
$ xinput --set-prop 'Barcode Reader  Mouse'  'libinput Scroll Method Enabled'  0 0 1
$ xinput --set-prop 'Barcode Reader  Mouse'  'libinput Accel Speed' 1

總結

2019-05-18 拿到鍵盤,開始慢慢邊想邊改,到 2019-06-06 開始使用,努力了大約 20 天才完成。

Ducky 的無腦設計

雖說是無背光的版本,但有一個 LED 接腳藏在 [Caps Lock] 鍵下,也挖了孔,卻無法直接接上 LED,讓它顯示大小寫的狀態。必須要費一番心思去修改。能否就讓它直接綁定為大小寫的狀態。參考這篇 [鍵盤] DUCKY ONE 80% 改衛星軸/加燈/Caps 心得 用跳線把燈拉過來吧。

另外,應可升級為可背光版本,但就是抓不到,無法更新 firmware。


沒有留言:

張貼留言

網誌存檔