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。


2019年5月15日 星期三

小紅點 (SK-8855) 控制 -- 初步實驗 (2019-05-16)

一直想把 Thinkpad 鍵盤的小紅點 (Trackpoint) 改裝的機械鍵盤,經過了好多年,可能超過十年吧,才搞清楚它就是 PS/2 的界面。而且它是一個完整獨立的滑鼠控制電路,按鍵是由它接出來的。網路實在太棒了,靠著網路上的使用者,眾志成城,不過要懂行的人有耐心地把腳位找出來才行。


下面是這幾天實驗的結果,用一個舊的 PS2 滑鼠的接線,把它連上。剛開始都不會動,以為失敗了,後來才知道粗心,把線接錯了。修正接線後,接上電腦的 PS2 接頭,在 LINUX 下不會動作。改成 PS2-to-USB 的轉接器,游標就會動了。

這個小紅點模組是 SK-8855 鍵盤拆下來的,它也是 T400S T410 T410S T410i T420 T420S T420i T510 T510i W510 W520 X220 X220S X220T 所用的鍵盤模組。



列出裝置
# xinput
⎡ Virtual core pointer                     id=2 [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer               id=4 [slave  pointer  (2)]
⎜   ↳ Barcode Reader                           id=11 [slave  pointer  (2)]
⎣ Virtual core keyboard                    id=3 [master keyboard (2)]
    ↳ Virtual core XTEST keyboard              id=5 [slave  keyboard (3)]
    ↳ Power Button                             id=6 [slave  keyboard (3)]
    ↳ Power Button                             id=7 [slave  keyboard (3)]
    ↳ Barcode Reader                           id=12 [slave  keyboard (3)]
只能這樣設定
# xinput --set-prop "pointer:Barcode Reader " "libinput Scroll Method Enabled" 0 0 1
# xinput --set-prop "pointer:Barcode Reader " "libinput Accel Speed" 1

若用以往外接鍵盤的設定方式,會出錯
# lsusb
Bus 002 Device 003: ID 13ba:0018 PCPlay Barcode PCP-BCG4209
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

找出它的 vendor id
## dmesg | grep -i barcode
[    1.418650] usb 2-1.3: Product: Barcode Reader
[    1.421480] input: Barcode Reader  as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.0/0003:13BA:0018.0001/input/input12
[    1.473593] hid-generic 0003:13BA:0018.0001: input,hidraw0: USB HID v1.10 Keyboard [Barcode Reader ] on usb-0000:00:1d.0-1.3/input0
[    1.477591] input: Barcode Reader  as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.1/0003:13BA:0018.0002/input/input13
[    1.529468] hid-generic 0003:13BA:0018.0002: input,hidraw1: USB HID v1.10 Mouse [Barcode Reader ] on usb-0000:00:1d.0-1.3/input1
[  556.083375] input: Barcode Reader  as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.1/0003:13BA:0018.0006/input/input266
[  556.135284] hid-generic 0003:13BA:0018.0006: input,hidraw0: USB HID v1.10 Mouse [Barcode Reader ] on usb-0000:00:1d.0-1.3/input1
[  964.634192] input: Barcode Reader  as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.1/0003:13BA:0018.0007/input/input267
[  964.686307] hid-generic 0003:13BA:0018.0007: input,hidraw0: USB HID v1.10 Mouse [Barcode Reader ] on usb-0000:00:1d.0-1.3/input1

設定程式
#pyusb imports
import usb.core 
import usb.util

# speed value
speed = 0x09
# 13020900 00000000 00
speed_dat = [0x13, 0x02, speed, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]
# sensitivity value
sens_dat = [0x4, 0x6a, 0x3, 0xfc, 0x38]

dev = usb.core.find(idVendor=0x13ba, idProduct=0x0018)
# 21 09 0313 0001
dev.ctrl_transfer(0x21, 0x09, 0x0313, 0x01, speed_dat)
dev.ctrl_transfer(0x21, 0x9, 0x304, 0x1, sens_dat)
執行結果,不支援 dev.ctrl_transfer() 
# echo 2-1.3:1.1 > /sys/bus/usb/drivers/usbhid/unbind
# python2 trackpoint-script_barcode.py
python-exec: Invalid impl in /etc/python-exec/python-exec.conf: python3.4
Traceback (most recent call last):
  File "trackpoint-script_barcode.py", line 14, in <module>
    dev.ctrl_transfer(0x21, 0x09, 0x0313, 0x01, speed_dat)
  File "/usr/lib64/python2.7/site-packages/usb/core.py", line 1043, in ctrl_transfer
    self.__get_timeout(timeout))
  File "/usr/lib64/python2.7/site-packages/usb/backend/libusb1.py", line 883, in ctrl_transfer
    timeout))
  File "/usr/lib64/python2.7/site-packages/usb/backend/libusb1.py", line 595, in _check
    raise USBError(_strerror(ret), ret, _libusb_errno[ret])
usb.core.USBError: [Errno 32] Pipe error
這個,我對 USB 控制器不熟,暫時沒辦法了。有空再來拔 SK-8855 外接 USB 鍵盤的控制器來測試。

不過,至少又往前進了一大步,搞清楚了一些東西,以後可以繼續做下去。


2019年5月12日 星期日

雲豹 200 -- 改儀錶

緣由

假日在家,一整天都在研究怎麼改機車的儀錶。


因為要改皓月引擎,它有檔位顯示的訊號線。雖然國際檔不用怕從最高檔直接進到空檔,可是有檔顯的話,當然要物盡其用,不用一直要自己猜現在是幾檔。記得第一次碰到檔顯功能,是三陽的巨狼 CBX 150,那時覺得那真是很了不起的功能,相對於陽春的野狼。

雖然皓月引擎有檔位訊號,又怕儀表沒有檔顯,車行就省事,不把線接出來,以後要改檔顯會很麻煩。就先裝個檔顯,讓車行不能拒絕。

其實,兩個儀錶中間前端那個裝飾品,就是原來檔顯的位置,但哈特佛的引擎沒提供檔位信號,檔顯當然就沒有啦。

原來是想找個表,請車行順便改,例如 FZ2 的表,然後請車行把檔顯的線拉出來,自己加個簡單的8節顯示器。結果聽說那碼表太快樂了,可能會比雲豹原來的表速多20公里左右。改了車,在路上乖乖的騎 60,實際卻不到 50,想到就難以接受。

最先到單車的碼表是用 [輪子轉數X輪子周長],應該準多了。就想是否能把單車的碼表拿來用,上網一查,還真的有人這麼做了,傳統碼表真的都會多出 10幾公里。當然,碼表的顯示值一定要比實際值高,不然以為沒超速,結果卻吃罰單那就不好玩了。

有網路真棒,花點時間就能找到合用的東西。而且再有耐心一點,慢慢找慢慢看,就會有更多想法。

一開始,是在露天找可用的單車碼,一路找下去,就找到很多機車可用的數位碼表,根本不用自己外掛單車表,也不用外掛檔顯,好看多了。而且各種功能整合在單一個表頭裡,讓自己最弱的機械修改部分,減到最小。另外,也找到有人專為雲豹200做的表架,雖然不是最滿意,但省了很多事,而且整合性高,美觀。

經過一番收集和比較,最後找到一個整合了很多功能的數位單表,雖然不能測量旅行距離 (TRIP,或叫里程小計) 和歸零,也沒有時間,但該有的都有了,剩下的就靠手機吧。不過後來知道,多功能數位表,只有一個按鈕,短按是切換顯示 [小計 TRIP] 與 [累計 ODO] 模式,在TRIP模式下,長按就會歸零。

這個表原本是中國大陸「春風狒狒125」2013年款所用的表,所以一般稱為狒狒表,用這關鍵字搜尋就可以找到很多產品。狒狒,其實就是本田的 Monkey。

多功能表的時速感測部分有分電子式和機械式,我是騎過單車的,當然選電子式的,機械式的,傳導線和輪軸的齒輪使用久了都有可能故障。

電子式的感測原理是利用霍爾感應,線可以隨便拉,感應器應該是通用的,在轉動的部分,隨便找個強力磁鐵貼上去就可了。可以多貼幾個,提升感測的精度。

比較遺憾的是,儀表的固定螺絲距離約 50mm,而一般傳統儀表的固定螺絲距離約 36-45mm,因此雖然在拍賣上可以找到很多不錯的儀表架,卻不能使用。網拍賣家有附一個簡單的固定架,固定在車架的只有一個螺絲孔,覺得不甚滿意,還好有另外找到一個專用的表架,只要再買一個電源開關固定架即可。

有賣家說,若沒有錶座,用洞洞鐵凹一凹就可以裝了,很簡單的。若能如此,就省下功夫了,可惜我買的洞洞鐵好像不能凹 ...

磁石黏碟盤,感應線洞鐵固定。我記得單車都用束帶綁一綁而已,到時再來看。

原來的錶架拆掉,鎖頭也需要找個改裝支架,要考慮下移,或側移。

找到的支架,適用直徑 25mm 鎖頭開關,高度25mm,二個 8mm 孔徑鎖點 -- 中心對中心 35mm。

產品功能

以下是網拍列出的產品功能,整理在此,當作參考。

通用 10~ 21吋 各式輪框

♦全液晶顯示屏;
♦車速表:二位半數字,最高時速199km/h,誤差+10%;
♦轉速表:格數顯示,最高轉速12000rpm,誤差+5%;
♦里程表:六位數字,最小 0.1km;
♦指示功能:左轉向燈,遠光燈,右轉向燈。
♦檔顯功能:N燈、1-6檔;

♦報警功能:低油量報警。
1、工作溫度:-20-+70℃;
2、存儲溫度:-30-+80℃;
3、工作電壓:8-18V;
4、防紫外線,防眩;
5、耐高壓:瞬間可耐壓100V;
6、耐振動:見Q/HTR 3-2004第3.10項;
7、防水,防雷擊。
8、背面按鈕切換里程小計。
9、產品尺寸,外徑 100mm,高65mm。 背面2螺絲距離 50mm
產品:本錶*1、磁石*2、感應線*1





https://www.youtube.com/watch?v=CFLCbqfrgE8
https://www.youtube.com/watch?v=ZGVKBLx8gRY

測試,聽不懂,能意會就好
https://www.youtube.com/watch?v=egm_MSTrJ88
https://www.youtube.com/watch?v=nOHwo_C2HDU

還有很多,找到第一個,就能找到其他的,神奇的 Google。
Motorcycle Instrument Universal Aluminium LCD Digital Speedometer Tachometer Odometer

Universal Multi Function 12000 RPM Motorcycle Digital Speedometer Odometer Tachometer Trip Meter LCD digital Motorcycle odometer

英文資料搜尋連結


拆電門鎖

因為從來沒拆過電門鎖,先Google 一下怎麼拆。實際拆了之後,發現其實後簡單。重點如下

  1. 它是用螺絲鎖的,上下夾住錶架。
  2. 拿一把鯉魚鉗水平夾住鎖頭的框,逆時鐘轉就開了~
  3. 也可以用虎頭鉗,可能比較好出力。

接線說明,線組對應

一般來講,最困難的部分,就是改線。可以參考 雲豹改FZ2儀表教學。

哈特佛並沒有提供雲豹的線路,必須上網找網友整理的資料。一般來說,有電源輸出這一端是用母接頭,避免 pin腳間短路。哈特佛的電路,應該是參考日系車的邏輯,接線大致歸納如下。可搭配勁 (Zing) 150) 的配線圖。

儀表線組

雲豹接儀表的線組,為 9pin 的母接頭,顏色對應和圖示如下。千萬要小心的地方,和一般習慣的電路接法不一樣,黑線是經鑰匙的正電,綠色是負電,接車體。

  • 綠線 (G) -- 接電池負極,接車身。
  • 紅線 (R) -- 直接接電池正極。
  • 黑線 (B) -- 經鑰匙控制的正電,鑰匙打開就一直有電。這個有時真會讓人搞昏頭,一般直覺上,黑線都是負電。正電是要接給空檔燈號和油錶和轉速錶使用。     
  • 棕線 (Br) -- 小燈,日行燈,定位燈。但實際上雲豹只有留接頭,但沒有小燈。     
  • 水藍,水藍色那條帶一條紅色,就是水藍+紅,控制空檔訊號,空檔時為負電。
  • 灰白色(有點灰有點白,稱灰白) (SB) -- 右方向燈。    
  • 橘 (O) -- 左方向燈。雲豹儀錶只有一顆方向指示燈,所以把左右方向燈的信號接在指示燈兩端。數位錶則要分開。       
  • 藍 (遠燈)  

以上一共7條線,都要接。

雲豹出來的是 9pin母頭,我買的儀錶的接頭也是母頭,必須要做轉換,比較麻煩,也許能做個轉接頭比較好。但最後還是直接把儀鑆的接頭剪斷,重接最快。機車上原有的東西能不動就儘量不動,以免到最後改得一團亂,以後要修理就完全搞不清楚,要重新整線了。

油錶組 

-- 油錶組 -- 3pin 母   

綠 (負電)      
黑 (正電)     
白黑(油錶)      
  +-+
+-+-+--+
|綠|黑|白黑|
+-+-+--+

以上一共3條線,綠色和黑色是地和+12V。[黑+白] 是偵測油量的,只要把這條接到儀錶接頭的油量輸入就好。

燈頭內有兩個3PIN 接頭,油量的接頭是黑的,白的是大燈,不要接錯了。因為,我第一次就接錯了,找到 3PIN 接頭就給它插下去,然後發覺油量不顯示,開大燈,顯示也不會亮。

實際上,雖然接頭是3PIN 的,但雲豹的油量感知器是2線式的,中間的線沒用。開始時我是加滿油的,不論設 3線或2線都是滿油,就設成 3線的。在騎了一百多公里,應該消耗掉 4公升以上的油,油量指示還是滿的。把它改成 2線式後,才有作用,油量顯示降了一格。

雖然只有一條線要接儀錶,但還是要確接負電的線有接到電池的負極,必須要構成迴路才能偵測油量。感測器的電阻值會依液面高低改變,在滿油時電阻值最低,無油時最高。若油表一直顯示沒油,就表示電阻無限大,應該是浮筒感測器沒構成迴路。測試方式,直接把表的油量感測信號接負電,應該會顯示滿油位,接正電會顯示沒油。

另外,由於油箱是不規則形狀,油量顯示只是對應液面高度,和油量沒有線性關係。油量顯示只是參考,讓騎的人知道大概還有多少油,不會騎到沒油要推車。


--轉速錶--    

CDI 藍白  
加上轉速這條一共要接9條線

改儀錶接頭

儀錶的電線好短,不到10CM,原想直接把母頭改成公頭,既然線太短,就來做個轉接頭吧,順便把線延長個 10CM。只是要做好防水,比較麻煩。

導線, 規格為 0.5 mm。
雲豹端:9pin 公*1,3pin 公*1 (油量),6pin 公*1 (檔位指示,不變)
儀錶端:9pin 公*1,6pin 公*1 (檔位指示)

為了搞清楚方向燈換成 LED 會同時閃的問題,自己畫了一個圖。



按照此圖所示,分別顯示左/右方向燈指示是可行的。

新儀錶測試

因為住在樓上,只能在馬路拆儀錶,必須迅速完成,一定要事先做好準備。東西到手,也必需在短時間內確認功能正常,以免爭議。

要確認觸發動作,偵測開關的閉合與否,為了安全是接負極,例如空檔燈和檔位指示是負極觸發。而偵測是否送電,如大燈或方向燈,則為正電觸發。

  • 接12V => 儀錶開機運作。
  • 左方向指示燈 接 12V => 左方向指示燈亮
  • 右方向指示燈 接 12V => 右方向指示燈亮
  • 大燈/遠燈指示 接 12V => 對應的指示燈亮
  • 霍爾感測器 和 磁鐵 持續晃過 => 速度變化 。注意,磁鐵的極性要對。感測器的後端有 LED ,靠近磁鐵會亮,若沒亮,把磁鐵極性倒過來試試
  • 空檔指示燈,接負極 => 空檔指示燈亮
  • 各檔位線 接負極 => 顯示對應檔位
  • 二線式油表,先設成二線式油表,然後把油量感測信號接地,會看到油量顯示慢慢增加,大約 5, 6 秒增加一格。

磁鐵的極性

以前的錯誤印象,認為磁鐵隨便一個方向都能偵測。實際安裝時,踢到一個實實在在鐵板。
一切都裝好了,設定好,在路上試騎,也都會顯示時速,里程。然後想要換不同的磁鐵,看磁性大小會不會有差別。試了幾次之後,再試騎,發現時速完全不動,一直都是0。磁鐵靠近感測器,LED 也不會亮。試了幾次都沒效,以為是線被我扯斷了。只好把感測器拔下來,帶回家裡慢慢搞。
在家裡,把線剪斷,看是不是那邊扯斷了。也想把感測器拆開來看看,可惜無法拆。然後再焊接回去,順便加上一段,延長長度。
再次測試,發現只要磁鐵靠近,LED 就會亮。再試,又發現在某一點不會亮,移到另一個角度又亮。反覆測試,最後確認,感測器只對磁鐵的一個極性有反應。

所以,注意,磁鐵的極性要對,不然就會像我一樣折騰好久。

儀錶接線 

20PIN 接頭

1. Black, purple - rpm
2. Black - 來自 key 的正電
3. Light blue- 右 right side signal 
4. Blue - high beam
5. White yellow- 空檔 
6. Orange- 左 left side signal
7. Brown - low beam, running light
8. Red - memory, direct from bat
9. null
10. Black white-speed
11. Purple- Negative velocity, connect to sensor directly
12. Light green pink - gear 1
13. Light green brown - gear 2
14. Light green green - gear 3
15. Light green yellow - gear 4
16. Light green black - gear 5
17. Light green blue - gear 6
18. Green black - Negative, grounding
19. Green black - Negative, grounding
20. Blue white - fuel level

9PIN 接頭

1. Light blue- 右轉燈信號 
2. Red - memory, 直接接電池
3. Blue white - fuel level
4. Brown - 近燈 (low beam), 運轉燈 (running light)
5. Black - 鑰匙控制的正電
6. Blue - 遠燈 (high beam)
7. Orange- 左轉燈信號
8. Green black - Negative, grounding
9. Black, purple - 轉速 (rotating speed), rpm

6PIN 接頭

1. White yellow- 空檔 
2. Light green pink - gear 1
3. Light green brown - gear 2
4. Light green green - gear 3
5. Light green yellow - gear 4
6. Light green black - gear 5


2PIN 接頭

1. null
2. gear 6

3PIN 接頭

1. Purple- Negative velocity, connect to sensor directly
2. Green black - Negative, grounding
3. Black white-speed

改接頭

原則上,儘量不用變動雲豹的接頭,避免那天換人弄,或自己忘了,搞不清楚,直接把接頭插上,可能會發生嚴重的災難。

最主要的是,要把儀表的 9pin 母頭改成公頭,並且pin腳要對應雲豹的pin腳。還要多 2 條線,一條轉速,一條未經電鎖的正電,另外,空檔要改接到檔顯的接頭。另外要把油表的線分接出 3pin 公頭,可以直接插接到雲豹的油表接頭。

我在台北中華路的電子材料行找到已壓好線的 3pin 和 9pin 公頭,網路上有人賣已壓好線的 接頭。有了這個就省了很多事,例如9個 PIN 都已接上不同顏色的線,自己不用再準備各種色線,材料行都是賣整綑的。雖然顏色不完全相同,但基本的電源,地,方向,大燈等的顏色都相近。


雲豹的 9PIN接頭有2支空的,其中一支拿來接電池正極,即未經電鎖的正電,另一支則接轉速信號。空檔則要接到儀表檔顯的接頭,我是用分接的,方便以後接引擎的檔顯信號。公母接頭都需要配合修改。

另外,表的接線只有短短的10公分,順便把接線延長10公分,安裝比較方便。


末代化油雲豹已是超過 10 年的老車了。這10年當中,不少網站早收掉了,像 Yahoo 的部落格,因此很多相關資訊也都消失,查不到了,圖就更不容易找了。只能找到一些不太完整的說明,所以不是很確定轉速信號要從那裡拉出來。還好,把椅墊拆下,就看到有藍白信號的接頭了。雖然應該接主線路這端,但太難接了,就接發電機端吧。



裝上儀錶和鑰匙開關的照片。

霍爾感測器的固定,用電腦的背板鐵條,加上不鏽鋼鐵線五花大綁,勉強可用。有點醜,將就著用吧,等它都鏽了,再想辦法了。

為了讓偵測轉速的頻率高一點,貼了2個磁鐵,用綠色絕緣膠布包著的地方。不過碟盤內圈的支肋有 11 個,是奇數,沒有辦法在貼在對稱的地方。

後來在 FB 看到低溫銅鋁焊條和噴燈的廣告,就買來自己用電腦擋板焊一個感測器的固定架,再用不鏽鋼鐵絲固定在前叉上。嗯,看起來爽快多了。另外,碟盤已改為加大的300mm碟盤。

設定

雖然網路上有很多類似的多功能表,外觀和接頭幾乎一模一樣,但透過網路的討論,知道軟體不太一樣,操作方式也不一樣。這算是中國不尊重智財權,大家放心抄的成果吧。

例如,我買的這個表,在進入設定模式時,必須輸入密碼 ,有些則沒有密碼限制。

切換顯示模式

只有一個按鈕,短按為切換 [小計 TRIP] 與 [總計 ODO] 顯示。

在 [小計 TRIP] 下,長按為 RESET 成零。

在  [總計 ODO] 下,長按進入設定模式,密碼為 888。

進入設定後,不同的設定會有不同的英文開頭,算蠻清楚的,以後不用說明書也會設。

里程設定

第一個參數為輸胎周長參數 LC-XXX,XXX 為輪胎的周長,單位 CM。

例如前輸從軸心到地面高度為 305mm (直徑 61CM),則周長為

305 * 2 *3.1415926 = 1910 (mm),即 191 CM。

設好後,找到馬路的里程標示,騎個 1公里,跑個2趟,確認差不多就可以了。

用計算的,雲豹原廠前輪是 90/90-18 的胎,胎高 9*0.9 = 8.1CM,框高 18*2.54 =  45.72CM,輪胎的直徑為 61.92CM,週長 194.53CM,或 195CM。計算的和用量的直徑只差1CM左右,週長則相差 4CM左右,誤差 2%。時速 70KM/H,誤差 1.4KM/H,好像還好,但若設大一點,可以比較不用擔心超速。

第二個參數為傳感器 (sensor) 脈沖數 PULS-X,貼一個磁鐵就是 1,偵測到一個 pulse,就大約跑了 2公尺。我貼了2個磁鐵,這樣一個 pulse大約 1公尺。我是貼在碟煞片內的鐵條上,它是奇數的,所以 2個磁鐵沒有對稱,但也無法講究了。想來它計算時速應該是用平均的,不會只取一個 period 來計算。

此外,還要設定油量感測器是 3線或 2線,雲豹是2線式的。

下面幾張圖是使用說明書,留作參考。大陸的仿製產品,說明書一向是簡單到不行,就薄薄幾張紙,說明連斷行都沒有,讓人很難看得懂。說明書上就有註明「小狒狒」。





英文似乎有許多錯字,參考就好。











其他設定參考

下面的設定方式,是露天拍賣的問答搜集到的內容。不過,我買了之後,才知道外表看起來都一樣,實際的設定方式是不一樣的,這些就參考看看。拿到錶,就趕快把說明照相留存,然後實際操作幾次之後,就熟悉了。


Q: 請問10吋輪框的時速要怎麼調?
A: 你好儀表後方有一個按鈕,關電門,按住不放,再開電門等自動掃描完成後,出現 635-1-2,你量一下你10寸輪胎周長,設定635為你輪胎週長即可,設定好後關電門即保存設定。

Q: 錶一開始 123 54
A: 123這三位數設定輪胎周長,10吋可能要查一下。5 是設定油量感知器,1 表示為 100 歐母,5 表示為 500 歐母。最後一碼為缸數設定,1 表示單缸,2 表示雙缸,4 表示四缸
(我買的表,油量感知器只能設定 2線或3線)

Q: 10吋我算出來是 1287,可是只有三位數要怎麼調
A: 內付兩顆磁鐵都裝上,鎖對角,周長除 2 即可
所以建議你,如果你覺的時速表慢了些,就慢慢加大輪經數值,如 675 就加到 685,以此類推
(輪胎周長的計算,請參考下方說明,用猜的太不可靠了。另外,我買的表可以設定磁石數,不用自己除)

Q: 請問速度感應器需要設定嗎? 好像不太準
A: 磁石黏好之後,關電門,按住錶後按鈕,再開電門 等儀錶自檢完 長按讓數字閃爍 前三碼即為調整數值範圍 調整到適合數值後長按讓數字停止閃爍 在關電門儲存

Q: 我做了調整,共有5個數字 想知道這數字代表什麼意思 例:550 12
A: 550 是時速的一個調整數值 建議黏兩顆磁鐵之後 再下去做調整
1 是汽油浮筒的數值 不需理會
2 是缸數 也不需理會 

Q: 另外我的油量顯示 一直在閃低位 但油已加滿 這也有方法可以歸零重設定嗎
A: 油量顯示不准可能是油桶阻值不同或是線有接錯 可以再檢查看看
Q: 這款N檔觸發線是正極還是負極出發
A: 負極

關於油表,在網路上找到的資訊。大多數國產機車油箱浮筒電阻為 0 至 100 歐姆。滿油時浮筒升到最高點,電阻最小,接近0Ω,顯示滿油。浮筒降到最低點時,電阻最大,100Ω,顯示沒油。校正時,可用 82Ω 電阻 (灰紅黑 金),模擬調整快沒油時之油量顯示。

電路圖

使用了約一年半以後,碼表的時速突然不動了,但感應器靠近磁石時, LED 還是會閃。因為連接線動一動,有時會有時速顯示,想來應是連接線斷了。連接線會動的部分只有和前叉伸縮時會折彎的部分。因為 LED 會亮,所以 3 條線中的電源和地線是好的。

之前曾無意中在網站上找到電路圖,可以參考看看。

上圖的 pullup 電阻可能沒接,但我買的感應器上有LED,一定是有的。原始狒狒表的感應器是沒有LED的,越抄越好,就有人加上了,方便檢測。

儀表端得到信號
霍爾感應器 (Hall sensor) A3144 的方塊圖。
電源供應,4~24V,所以可以直接用在機車上,不用調整電壓。

一個元件網拍價格為 4~20元,但拍賣的網站硬是不肯賣單一個感應線,不然就是收費超級貴,一個表 1千元,單買線就要4百元,有點太過了。有空自己買元件來測試一下。只是要如何將它包在一個封裝內,比較要費一些心思而已。但現在的機車幾乎都改數位表了,有很多可以參考。

不確定是否只是感測器壞掉,乾脆再從原賣家買一組一樣的數位表,也從另一家賣場買一條 200元的感測器。收到東西,比較外觀,一模一樣。接上數位表,確定都可以運作。200元算是比較合理,原賣家一條要賣 450元,真的是太貴了,他的數位表也比別家貴了不少。


輸出電晶體有分 NPN和PNP,所以動作電壓分別是 Low 和 High,假如是 edge trigger,應該都沒差吧,但要看內部電路是否匹配了。

要找到替用品,上網搜尋 "霍爾開關 M12 接近開關 直流 三線 NPN常開",就可以找到很多類似產品,淘寶可能一條 RMB 10元。只是要確定接腳,因為我比對了一下買到的替用品,接腳有點不同。

為了確認感測器的工作原理,再次網購一組一模一樣的數位表回來。確認了下面幾點。
  • 首先,確認接頭的標識是錯誤的,不曉得是否故意誤導。電源線和訊號線是對調的。
  • 其次,供應到感測器的電源是穩壓後的5V,三用表測量值約 4.8V。
  • 沒有偵測到磁鐵時,LED 熄滅,有偵測到磁鐵,LED 才亮。而且只能感測到磁鐵其中一個極性。
  • 沒有偵測到磁鐵時,輸出電壓 HI,4.3V,有偵測到磁鐵時,輸出電壓 LO,0.2V。因此判斷輸出電晶體是NPN。
推論,假如一接上電源,LED就亮,就表示感測器已損壞。因為偵測到磁鐵,LED的亮度會有變化,猜測是輸出電晶體損壞。

壞掉的感測器,時好時壞,若再用只會造成困擾,把它拆開來研究。外殼和螺絲都是對磁鐵不反應的材質,以免干擾偵測磁場。用小砂輪把它鋸開,再耐心的把灌膠除掉。總共只有4個零件,一個霍爾IC,一顆電阻 (4.7K),一個 LED。另一個元件不曉得是什麼,雙向會導通,不像二極體,電阻值幾乎是0,所以也不是電阻。後來再仔細看,推測應該短路片。


IC 的標號像是 58L,但找不到資料。

了解感測器的內部構造,改天再來找零件自己組一個來測試。

網路上找到的 Hall IC 接 LED 的參考電路,使用 4.7K 的電阻,VCC 為 5V,LED 電流約 1mA,Hall IC 的規格中的輸出電流為 20mA,沒有問題。

在拍賣網站很容易就搜尋到 A3144,也找到 datasheet,就上網買了十顆 A3144 回來試驗。加上 LED 和限流電阻,測試 OK,如下圖。再來要想辦法封裝固定,零件很少,又很小,應該可以裝在一個很小的封裝裡。

比對前叉與碟盤之間的間隙,找到拆開的 PS2 to USB 轉換器的外殼,把零件塞進去黏好,用 AB膠封起來。一樣有 LED 當指示器,找不到紅光 LED,就拿先前要裝在機械鍵盤的黃光方型 LED 來用,還算明顯。接上數位錶測試看看,磁鐵和感測器的距離大約 1CM。把它固定到前叉上,和原來的感測器比起來,顯得協調多了,除了綠色的束帶太明顯了些。


歸納起來,買 IC 一顆不到 10元,只是花費的工錢可能更貴,那條線可能也不便宜,好處是可以自己決定外型,把它做得很小,安裝後不會顯眼。


網誌存檔