翻舊帳

2025年1月8日 星期三

DIY -- 和成 HCG 免治超級馬桶 自動沖水故障

相關影片: https://www.youtube.com/watch?v=QmKB8mHFTjA

以下是紀錄.

症狀(Issue):

和成 HCG 免治超級馬桶 C230/AF230, 自動沖水作動不正常. 時好時壞.
故障的時候, 會聽到馬達轉動不順的喀搭聲, 旁邊的沖水手動鈕沒有被馬達帶動; 或是被帶動但沒有到底, 卡在一半; 甚至到底卻沒有回彈, 造成水箱不斷漏水.


根因(Root Cause):

網路上可以搜尋到, 曾經有人請師傅來修理, 換了一個橡皮圈就好了. 那個橡皮圈的專業名詞叫做油封/O環/O-Ring, 台南的中正南路上面有幾間專門店, 不知道正確尺寸的話, 可以拿舊品給老闆幫忙量測. 萬一橡皮圈如網友一般遺失了, 那就比較麻煩. 在此提供確定可以使用的尺寸: 內徑 8mm, 厚度 1.6mm.


這個油封, 功能是緩衝以及定位.

下面這張圖就是自動沖水器, 可以看到白色的推桿.
油封在推桿的另一面, 我沒有拍到.




上面這張圖是拆開的樣子, 可以看到同步馬達有個三齒的齒輪.
上蓋有個控制板, 我猜是依據馬達的耗電流, 兩段式控制齒輪的位置, 避免太早回彈. 控制板的旁邊就是推動落水皮的推桿, 我沒拍得很清楚, 推桿有三個凹槽, 剛好可以與三齒齒輪嵌合.
前面提到的油封, 會在推桿回彈的時候, 減少撞擊聲, 並且讓推桿回到定位. 如果沒有這個油封, 回彈後, 太過偏移, 同步馬達上的齒輪就有可能卡不住.

一個油封 5 塊錢, 我買了兩個以防萬一.

更換後, 試用兩天, 結論是: 沒有修好. 這不是 Root Cause.

下一個可能的原因, 就是同步馬達了, 畢竟它轉動時的異音有點明顯. 網路上可以搜尋到整個自動沖水組, 換掉當然最省事, 但是那個價錢有點貴, 貴到讓我覺得可以先試著自己換馬達.

網路上什麼都賣, 同步馬達也有. 我很幸運地買到賣家 NTD 299 的最後一顆.


換馬達的手法比較麻煩些, 除了要拆開沖水組之外, 還要把沖水組與主機板的連接頭拔起來. 因為連接頭裡頭的兩根線要一併更換. 所以我們要先把馬桶座的上蓋拆開來:

  1. 首先按下馬桶座右側的正方形卡榫, 把馬桶座往前拉.
  2. 接著拆下後方左右各兩根短螺絲.
  3. 拆下控制面板旁邊一根長螺絲
  4. 試著扳開兩側的卡榫, 就能把上蓋拆開.
要注意的是, 我的馬桶型號是C230, 如果不是同型號的, 請自行尋找拆解圖. 某些文章有提到, 自動掀蓋的機種有另外要先移除的部件.

移除上蓋後, 內部長這樣.


藍色的那個 JST 接頭就是自動沖水器的.
拔起來後, 把自動沖水組也拆下來, 就可以更換同步馬達, JST 接頭的線也一併更換, 網路上搜尋 JST 拆解應該可以找到一些教學影片.

處理後依序還原.
試用一週後, 確認沒有問題, 表示找到 Root Cause 了.


解法 (Solution):

更換自動沖水組的同步馬達.
花費:

  1. 油封 x 2: NTD 10
  2. 同步馬達 x 1: NTD 299

2024年11月14日 星期四

此網域已遭到封鎖? WTF?

開頭先破題.
我本身認為網路應該是自由的, 所以反對任何方式的封鎖限制.
但某些事情有它政治正確的存在理由, 所以我們不要對任何人發脾氣.
想辦法處理就好.

在家裡用 iPad 上網, 突然看到這畫面:

年紀有了, 處變不驚是應該的.
我大概知道原理, 所以知道怎麼繞過去, 但行動裝置不比電腦, 設定上有些麻煩, 所以我們還是看看別人有沒有甚麼好方法.

請參考以下網址:
懶得看完的話, 直接跳到"手機端"這個章節, 照著步驟做即可.


2024年10月8日 星期二

Switch JOY CON 維修數則

最初的紅藍 JOY CON, 使用了四年後, R 鍵不太靈光, SL/SR 以及藍芽配對鈕無反應.
看了 Youtube 的影片, 決定自己維修. 以下是維修紀錄.

  1. JOY CON (R) SL/SR 藍芽配對鈕: 拆開看可以看到排線斷裂, 所以就是買一條新的排線更換. 台幣 25 元. 更換後依照 Youtube 的建議, 把排線折到電池下方的空隙, 避免再度被外殼壓斷.

  2. JOY CON (L) SL/SR: 雖然目前沒事, 但一樣的施工方式很有機會有同樣的狀況, 所以順便買了一條左手的排線, 一併更換. 台幣 25 元. 一樣, 更換後把排線折到下方空隙藏好.

  3. JOY CON (L) L: 更換排線後 OK, 台幣 25 元.

  4. 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.

  5. Y 字螺絲滑牙: 這應該算我自己的包. 我一開始拿維修 iPhone 的 Y 字起子(0.8mm)來用就是錯的. Switch 的原廠螺絲是鋁製的, 受力稍微不均就很容易軟掉. 上次維修 Switch 螢幕的時候也有類似的問題, 但我沒想到是我工具不正確. 這次比較慘, 有顆螺絲中間幾乎變成圓形了. 幸好, 購買了正確尺寸的 Y 字起子(1.5mm)後, 那顆滑牙的螺絲順利轉開.

    但我不想再經歷同樣的過程了, 所以這次也訂購了同尺寸的鐵製十字螺絲替換. 台幣 58.

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, 另外加上時間差

則會出現另一個問題: daemon 裡看到的時區會回到 UTC, 但 Linux 系統裡面看到的時區則停在 CST(GMT+8). 此時回到 Linux 系統, 使用 "set" command 查詢系統參數, 會看到 TZ='Asia/Taipei'.

也就是說, #4 即使 setenv(), 也僅作用於 deamon, Linux 系統卻沒有跟著變動.
怪異的是, #1 的 setenv(), 則會作用在 Linux 系統. 因為當我把 setenv() 拿掉的時候, Linux 系統中的 TZ, 就都不會存在.

我的猜測是, 系統設定值在每個 process 應該是獨立的? 可是這樣無法說明為什麼 #1 的 setenv() 會波及 Linux 系統.