如何設定 Mellow Fly Gemini V3 與 SHT 36 V2 ( VORON 0.2 升級 CAN bus toolhead board )

話 說 早 前 入 手 了 Siboor 的 入 門 級 全 包 Voron 0.2 KIT,KIT 裡 面 用 的 是 一 片 Mellow Fly 的 Gemini V3 二 合 一 主 板

既 然 是 一 台 VORON,砌 好 之 後 當 然 係 要 改 裝 、升 級 、再 改 裝 ,把 它 打 造 成 一 台 獨 一 無 二 的 3D 打 印 機 。在 升 級 的 過 程 中 ,Toolhead 成 日 要 又 裝 又 拆 ,加 上 Toolhead 的 電 線 又 多 又 長 ,其 實 都 幾 鬼 煩 ,仲 好 嘥 時 間 。

在 VORON 0.1 的 時 代 ,就 有 人 聰 明 人 發 明 了 V0 umbilical mod,可 以 十 分 快 速 方 便 地 斷 開 和 連 接 toolhead 的 一 大 抽 連 接 線 。後 來 ,又 有 人 改 進 推 出 了 V0 umbilical plus,主 要 是 加 入 了 input shaper tuning 用 的 ADXL345。

不 過 umbilical mod 也 不 是 沒 有 缺 點 。其 中 最 主 要 的 一 點 ,就 是 擴 充 性 完 全 是 零 。你 的 Toolhead 想 加 任 何 野 ,umbilical mod 都 是 沒 有 任 何 多 餘 的 接 線 供 你 使 用 的 。例 如 你 想 在 Toolhead 加 幾 粒 LED,又 或 者 加 個 filament runout sensor,都 是 不 可 能 的 。除 非 你 另 外 自 己 走 線 ,但 這 就 完 全 沒 必 要 用 umbilical mod 了 。

後 來 ,又 有 聰 明 人 利 用 了 汽 車 業 使 用 多 年 的 CAN bus 通 訊 協 定 ( controller area network ),來 減 少 Toolhead 到 主 板 的 接 線 數 目 。CAN bus 通 訊 協 定 只 需 要 2 根 線 ,分 別 定 義 為 CAN High 和 CAN Low。另 外 ,所 有 使 用 CAN 通 訊 的 都 是 電 子 零 件 ,那 當 然 是 要 供 電 的 ,所 以 亦 需 要 2 條 分 別 為 正 極 和 負 極 的 電 源 線 。

CAN bus 和 umbilical mod 是 有 根 本 性 的 不 同 的 。Umbilical 只 是 簡 單 的 電 線 接 頭 和 延 長 線 。但 CAN bus toolhead board 卻 是 完 整 的 MCU。

什 麼 是 MCU?讓 我 們 回 到 Klipper 基 礎 第 一 課 。在 最 簡 單 的 系 統 裡 ,Klipper 會 用 一 台 Host ( 通 常 是 Raspberry Pi ) 來 遙 控 一 台 MCU ( Microcontroller,通 常 是 指 3D 打 印 機 控 制 板 )。

因 為 早 期 3D 打 印 機 主 板 的 步 進 電 機 驅 動 數 量 不 足 ( 以 前 大 多 只 有 4 個 ),所 以 根 本 不 能 開 發 更 複 雜 的 機 器 ( 例 如 VORON )。Klipper 就 十 分 聰 明 的 以 一 個 Host 可 以 控 制 多 個 MCU 來 解 決 這 個 問 題 。

Host 和 MCU 的 通 訊 ,一 般 靠 USB 連 接 。在 我 的 VORON 0.2,除 了 3D 打 印 機 控 制 板 是 MCU 之 外 ,V0 Display 也 是 一 個 MCU,同 樣 靠 USB 連 接 到 Host。

所 以 MCU 發 展 到 後 來 也 可 以 是 很 多 不 同 的 周 邊 設 備 。我 就 有 一 個 用 USB 連 線 的 ADXL345,同 樣 是 一 個 MCU ( 用 了 Raspberry Pi 的 RP2040,這 個 很 方 便 轉 換 到 不 同 的 printer 上 去 用 )。

但 是 USB 線 比 較 粗 走 線 不 太 方 便 ,而 且 供 電 也 不 足 。CAN bus 就 正 好 可 以 解 決 這 些 問 題 。所 以 全 部 CAN bus 的 Toolhead board,其 實 都 是 一 個 MCU。只 不 過 它 不 是 用 USB 和 host 通 訊 ,而 是 用 CAN bus。

不 過 CAN bus 也 不 是 沒 有 問 題 ,其 中 最 主 要 的 是 Raspberry Pi 本 身 並 不 支 持 CAN bus,所 以 你 是 需 要 一 個 USB to CAN bus 模 塊 ,一 般 會 叫 CAN bus bridge。

不 過 後 來 又 有 聰 明 人 優 化 了 設 計 ,把 CAN bus bridge 整 合 到 3D 打 印 機 主 板 之 上 ( 例 如 BTT Octopus PRO )。

我 的 Fly Mellow Gemini V3,也 正 正 就 是 內 建 了 CAN bus bridge 的 3D 打 印 機 主 板 ( 之 前 的 V1 和 V2 都 未 有 內 建 )。

至 於 CAN bus 的 Toolhead board,大 至 上 可 分 為 3 大 類 。一 類 是 Voron 2.4 StealthBurner 專 用 的 。第 二 類 主 要 是 給 42mm 步 進 電 機 使 用 的 ( NEMA 17 ),多 數 呈 正 方 形 。第 三 類 是 主 要 給 36mm 圓 形 步 進 電 機 使 用 的 ,多 數 呈 三 角 形 。

不 同 牌 子 的 CAN bus bridge 和 toolhead board 是 可 以 互 通 的 ,即 是 你 可 以 把 BTT 的 Toolhead board 連 接 上 Mellow Fly Gemini V3。不 過 有 一 點 要 注 意 ,就 是 CAN bus 接 口 是 不 統 一 的 。即 是 BTT 的 CAN bus 接 口 ,和 Mellow Fly 的 接 口 是 完 全 不 同 ,互 不 兼 容 的 。而 且 因 為 CAN bus 算 是 比 較 新 的 玩 意 ,同 一 牌 子 不 同 時 代 的 產 品 ,用 的 接 口 也 不 一 定 一 樣 。

稍 為 了 解 一 下 什 麼 是 CAN bus 之 後 ,就 可 以 開 始 進 行 設 定 。

Mellow Fly Gemini V3 是 二 合 一 主 板 ,其 實 就 是 把 host 和 mcu 合 併 在 同 一 塊 電 路 板 之 上 ,但 兩 者 其 實 是 完 全 獨 立 ,河 水 不 犯 井 水 的 。

二 合 一 主 板 的 host 和 mcu,其 實 還 是 要 用 USB port 來 連 線 的 ,只 不 過 是 把 連 接 線 也 建 在 電 路 板 之 中 。所 以 Mellow Fly Gemini V3 的 4 個 外 接 USB port,有 一 個 是 不 能 用 的 。

1. 為 Gemini V3 燒 錄 CAN bus 固 件

https://mellow.klipper.cn/#/board/fly_gemini_v3/flash

Gemini V3 出 廠 時 的 CAN bridge 算 是 disable 的 ,我 們 要 先 enable 它 。Gemini V3 的 MCU 固 件 ,其 實 有 兩 種 設 定 方 法 的 。一 種 是 普 通 USB 連 接 ( 出 廠 時 的 設 定 )。另 一 種 是 通 過 USB CAN bridge 來 連 接 。根 據 上 文 的 方 法 ,編 譯 和 燒 錄 好 USB CAN bridge 的 固 件 。

1.1 移 除 G/BT1/3.3V 上 的 jumper。
1.2 在 klipper 編 譯 好 新 的 固 件 。
1.3 使 用 geminiv3-flash 把 新 固 件 燒 錄 到 Gemini V3 的 MCU。
1.4 插 回 G/BT1/3.3V 上 的 jumper。

2. 修 改 printer.cfg,MCU 使 用 CAN bus 來 運 接

https://mellow.klipper.cn/#/board/fly_gemini_v3/canbridge

完 成 之 後 ( 即 插 回 jumper 之 後 ),因 為 連 接 的 方 法 改 變 了 ,所 以 要 相 應 地 修 改 printer.cfg 檔 裡 面 的 連 接 方 法 。根 據 上 文 的 方 法 來 找 出 CAN uuid 和 更 新 config 檔 。

2.1 使 用 canbus_query.py 找 出 Gemini V3 的 MCU 的 CAN uuid。
2.2 在 printer.cfg,找 到 [mcu] section,用 新 的 連 接 方 法 canbus_uuid 取 代 原 來 的 serial。

如 果 你 和 我 一 樣 ,是 舊 機 升 級 ,去 到 這 一 步 ,在 web interface 還 是 能 看 到 所 有 資 訊 ,也 是 可 以 正 常 打 印 的 。我 們 只 是 更 改 了 host 和 mcu 的 連 接 方 法 而 已 。

3. 為 Fly SHT36 V2 燒 錄 固 件

https://mellow.klipper.cn/#/board/fly_sht_v2/flash

然 後 就 要 為 Fly SHT36 V2 刷 寫 固 件 ,因 為 它 出 廠 時 是 未 有 燒 錄 任 何 固 件 的 。這 時 候 接 上 電 源 的 話 ,中 間 的 LED 是 會 一 閃 一 閃 的 。根 據 上 文 的 方 法 ,編 譯 和 固 件 到 Fly SHT36 V2。

3.1 連 接 好 CAN H 和 CAN L 兩 條 訊 號 線 ,並 為 SHT36 V2 供 電 。
3.2 在 klipper 編 譯 好 SHT36 V2 的 新 固 件 。
3.3 查 看 SHT36 V2 的 CAN uuid。
3.4 使 用 剛 找 到 的 uuid 來 為 SHT36 V2 燒 錄 固 件 。

成 功 的 話 ,一 閃 一 閃 的 LED 會 變 成 恆 亮 。供 電 方 面 ,在 燒 錄 固 件 時 ,你 可 以 選 擇 用 3D 打 印 機 的 火 牛 ( 12V / 24V ),也 可 以 用 USB-C 供 電 。

4. 修 改 硬 件 接 線

https://mellow.klipper.cn/#/board/fly_sht_v2/shtv2line

燒 錄 完 成 之 後 ,就 可 以 拆 機 。安 裝 好 Fly SHT36 V2 之 後 ,再 把 toolhead 的 接 線 剪 短 並 插 到 toolhead board 之 上 。

真 正 使 用 時 ,就 不 能 用 USB 供 電 ,因 為 步 進 摩 打 和 加 熱 棒 都 是 需 要 大 電 流 供 電 的 。這 時 必 須 用 回 3D 打 印 機 的 火 牛 ( 12V / 24V )。

5. 修 改 printer.cfg 以 應 用 SHT36 V2 上 的 pins

https://mellow.klipper.cn/#/board/fly_sht_v2/cfg

完 成 之 後 ,就 可 以 根 據 原 廠 的 documentation 去 修 改 printer.cfg 的 配 置 。首 先 是 要 增 加 一 個 extra MCU,連 接 的 方 法 當 然 是 用 CAN bus。

[mcu sht36v2] # 工 具 主 板 序 列 号 
canbus_uuid: e51d5c71a901

然 後 就 把 toolhead 上 原 來 的 零 件 的 那 些 pins,都 改 用 toolhead board 的 pins。以 extruder 的 其 中 一 小 部 分 為 例 ,原 來 的 設 置 是 :

[extruder]                         # 挤 出 机 
step_pin: PC3                       # 挤 出 电 机 方 脉 冲 引 脚 
dir_pin: PC8                        # 挤 出 电 机 方 向 引 脚 设 置 
enable_pin: !PC11                   # 挤 出 电 机 方 使 能 引 脚 设 置 

就 要 改 成 :

[extruder]                          # 挤 出 机 
step_pin: sht36v2:PB4               # 挤 出 电 机 方 脉 冲 引 脚 
dir_pin: sht36v2:PB3               # 挤 出 电 机 方 向 引 脚 设 置 
enable_pin: !sht36v2:PA15           # 挤 出 电 机 方 使 能 引 脚 设 置 

當 然 ,要 改 的 地 方 還 有 很 多 很 多 ,例 如 加 熱 棒 、熱 敏 電 阻 、風 扇 、ADXL345、LED 等 等 等 等 ,就 不 一 一 贅 述 了 。

https://docs.vorondesign.com/build/startup/

完 成 之 後 ,就 可 以 嘗 試 打 印 一 下 測 試 模 型 。如 果 真 怕 出 錯 ,就 最 好 跟 著 Voron documentation 再 做 一 次 initial startup。

升 級 CAN bus toolhead board,步 驟 的 確 是 比 較 多 ,而 且 每 個 步 驟 的 順 序 很 重 要 ,次 序 不 能 調 亂 。但 如 果 掌 握 了 背 後 的 原 理 ,了 解 每 一 個 步 驟 背 後 的 原 因 ,總 的 來 說 其 實 並 不 算 難 。

前 面 有 說 過 umbilical mod 擴 充 性 為 零 ,CAN bus toolhead board 又 如 何 呢 ?趁 著 這 次 大 拆 機 的 機 會 ,我 還 升 級 了 orbiter 2.0 擠 出 機 ,還 有 ,orbiter 專 用 的 filament sensor。這 個 並 不 單 單 是 filament runout sensor,它 還 有 一 個 按 鈕 用 來 自 動 load 或 unload filament。

Orbiter 擠 出 機 當 然 唔 會 要 用 多 幾 條 線 ,但 filament sensor 卻 有 4 條 接 線 。分 別 為 5V、GUN、sensor signal、botton signal。SHT36 V2 上 面 有 大 量 未 使 用 的 pin,例 如 X Y 限 位 、調 平 感 應 接 口 、RGB 等 等 ,可 以 供 filament sensor 使 用 。

大 家 也 別 忘 了 ,當 很 多 東 西 都 轉 插 到 CAN bus toolhead board 之 上 ,那 原 來 MCU 的 接 口 就 空 了 出 來 。例 如 我 的 Fly Mellow Gemini V3 只 有 3 個 風 扇 插 口 ,令 我 不 能 加 裝 可 以 軟 件 控 制 的 風 扇 。現 在 轉 用 了 CAN bus,我 終 於 可 以 安 裝 V0-Auxilliary-Fan mod 了 。

前 面 也 有 提 到 最 好 先 更 新 Klipper 才 升 級 。我 就 很 明 顯 是 搞 好 晒 所 有 野 之 後 ,才 發 現 klipper 有 得 升 級 。一 升 級 完 成 就 見 到 上 面 的 畫 面 。雖 說 不 是 SHT36 V2 的 問 題 ( 主 要 是 V0 display 的 固 件 太 舊 ),但 我 也 花 了 一 點 時 間 ,把 4 個 MCU 的 固 件 都 升 級 到 最 新 。

ctleung張先生,男性,肖龍。
職業:I.T. Consultant
簡介:不好好讀書;七尺差五寸,手長過膝,雙耳垂肩;性寬和,寡言語,喜怒不形於色。據說少時曾斬白蛇於鳳凰山下……

This entry was posted in GRBL + 3D 打印 and tagged , , , , , , , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *