- JOY CON (R) SL/SR 藍芽配對鈕: 拆開看可以看到排線斷裂, 所以就是買一條新的排線更換. 台幣 25 元. 更換後依照 Youtube 的建議, 把排線折到電池下方的空隙, 避免再度被外殼壓斷.
- JOY CON (L) SL/SR: 雖然目前沒事, 但一樣的施工方式很有機會有同樣的狀況, 所以順便買了一條左手的排線, 一併更換. 台幣 25 元. 一樣, 更換後把排線折到下方空隙藏好.
- JOY CON (L) L: 更換排線後 OK, 台幣 25 元.
- JOY CON (R) R: 這顆按鍵最麻煩, 它是焊在主板上的, 要更換一定要拿烙鐵或熱風槍解焊. 但我相信我沒有那個技術, 所以就先依照 Youtube 的建議, 在微動開關兩側多加一點焊錫加固.
第一次施工後, 微動開關不會搖動了, 可是組裝起來, ABXY, 以及 +/HOME 按鍵全部沒有反應, 香菇頭跟藍芽配對鈕倒是正常. 決定重新拆裝一次.
第二次施工, 重新拆 JOY CON, 仔細清除 R 鍵兩旁多餘的焊錫, 組回的過程中發現按下 ABXY, HOME, +, R, 手把燈號都會閃動, 我想這應該是給組裝人員使用的測試燈號. 完成後, 上主機測試, R 鍵雖然有比之前好一些, 但依舊不是每次都有反應. 決定隔天拿到公司用高檔烙鐵好好處理一下.
第三次施工, 配合放大鏡, 仔細整理 R 鍵兩旁的焊錫, 確認不會搖動, 確認按鍵行程不會卡卡, 組裝回去, 發現 ABXY, +, HOME 再度沒有反應. 無論我再試幾次都一樣沒有反應.
我猜是 R 鍵的微動開關異常, hold 住了主板的 decoder, 但我沒有新的微動開關可以確認, 只好拿去外面讓專業的幫忙更換.
送修三天後, 台南的店家通知我取件, 取件時告知, 被拒修, 沒有告知原因.
第四次施工
上網搜尋, 有類似的情況, 也是處理 R 鍵之後發生其他按鍵無反應. [https://www.reddit.com/r/NintendoSwitch/comments/htt9b2/unresponsive_joycon_abxy_buttons/]
我的猜測是, 原廠的微動開關, 在焊接過程中如果受熱太久, 有可能傷到內部結構, 造成短路. 短路之後不斷送出信號, 導致主板無法接受其他按鍵的 interrupt. 如果它的內部結構如此脆弱, 那一開始不靈敏的問題也很有可能是內部結構變形造成的, 因為我記得我拆開的時候並沒有發現嚴重的搖晃現象.
拆開後, 拿三用電表量測 R 鍵的電阻值. 它沒有短路, 但是在我按下按鍵後也沒有接通. 確定這顆微動開關真的不正常.
ABXY 無反應的問題與 R 鍵應該無關. 但 R 鍵確定壞掉了, 接下來可能要送修, 最壞情況可能要下單 R 鍵然後請硬體幫我替換了.
第五次, 回高雄的時候, 拿去元素科技[https://elements-tech.cc/], 請他們協助更換 R 鍵.
收件時間星期五晚上九點半, 通知取件是星期六下午三點半, 速度很快.
取件時老闆告知, 更換 R 鍵後, 工程師一併幫我調整了 ABXY 按鍵無反應的問題. 老闆說原因是卡住! 讓我想起 Youtube 有強調, Joy Con 主板的兩顆螺絲不能鎖太緊, 也許這就是 root cause.
維修費用台幣 390. - Y 字螺絲滑牙: 這應該算我自己的包. 我一開始拿維修 iPhone 的 Y 字起子(0.8mm)來用就是錯的. Switch 的原廠螺絲是鋁製的, 受力稍微不均就很容易軟掉. 上次維修 Switch 螢幕的時候也有類似的問題, 但我沒想到是我工具不正確. 這次比較慘, 有顆螺絲中間幾乎變成圓形了. 幸好, 購買了正確尺寸的 Y 字起子(1.5mm)後, 那顆滑牙的螺絲順利轉開.
但我不想再經歷同樣的過程了, 所以這次也訂購了同尺寸的鐵製十字螺絲替換. 台幣 58.
翻舊帳
2024年10月8日 星期二
Switch JOY CON 維修數則
2024年8月20日 星期二
DIY -- Roomba 邊刷螺絲滑牙
更換 iRobot 的六角邊刷, 但這次鎖回去的時候發現鎖不緊.
隔天, 老婆說機器人掃地時邊刷一直掉下來, 連螺絲都被吃掉了.
上網查詢, 不少人遇過類似的狀況.
我選了一個最容易的解決方式: 水電常用的白色止洩帶.
在螺絲上面包纏一段止洩帶後再度鎖上, 試運行, 完美解決.
2024年4月30日 星期二
Linux 的 timezone 設定問題
昨天遇到一個謎團.
系統開機, 會先以正常的方式同步網路時間:
1. 使用 zoneinfo 的檔案更換 /etc/localtime
2. NTP client sync
接著詢問私網的 server, 獲得特定時區的差, 重新同步一次時間
3. 詢問時間差
4. 把 /etc/localtime 換回 UTC
5. NTP client sync, 另外加上時間差
謎團在於, 系統看到的時間, 與 daemon 裡看到的時間不同步.
舉例, #1 把時區設定為 Asia/Taipei, 做完 #5 之後, 會發現, Linux 系統跟 state machine daemon 的時間會差 8 個小時. Linux 系統使用 date, 會看到時區是 UTC, daemon 裡看到的時區應該是 CST(GMT+8).
很明顯, daemon 在 #4 之後沒有跟著變為 UTC.
如果在 #1, #4 變動 timezone 之後, 使用 setenv("TZ", timezone string, 1) 呢?
1. 使用 zoneinfo 的檔案更換 /etc/localtime, setenv("TZ", timezone string, 1)
2. NTP client sync
3. 詢問時間差
4. 把 /etc/localtime 換回 UTC, setenv("TZ", "UTC", 1)
5. NTP client sync, 另外加上時間差
2024年4月20日 星期六
2024年4月1日 星期一
DIY -- Cross 加裝胎壓顯示器
新車 Cross 當然有偵測器, 不過, 和泰把每個輪胎胎壓的解碼顯示器當成選配...我原本打算抝業務送我, 但沒成功. 沒關係, 蝦皮買得到, 店家還提供 DIY 的影片, 我們自己來就好.