獨立 iHeater 韌體¶
iHeater 是一個小巧且經濟高效的解決方案,適用於沒有主動恆溫室或主機板連接功能有限的 3D 印表機。它特別適用於具有專有主機板的型號,這些主機板沒有風扇、加熱器或溫度計的可用連接器。iHeater 以簡單而通用的方式解決了這個問題。
可以作為獨立設備使用自己的韌體獨立運行,或在 Klipper 管理下通過 USB 連接到印表機
關於韌體¶
iHeater 是用於 3D 印表機恆溫室溫度自主控制設備的韌體。
用途¶
該設備提供加熱和維持 3D 印表機恆溫室內穩定溫度,這對於列印 ABS、ASA 和其他對溫度敏感、收縮率高、層粘著性低的塑膠至關重要。
供電¶
iHeater 板沒有內建電源。若要在 Standalone 模式下運作,請為板子提供 5 V 電源。
請確認板子已供電。
未供電時,LED 不亮,加熱也不會啟動。請先檢查供電,再到韌體或設定中尋找原因。
供電方式:
- USB 線。 將 USB 接到電源轉接器或其他 5 V 電源。不需要主機(印表機、Klipper)。
- 外部 5 V 電源。 將電源接到板上獨立的電源接頭;接頭位置依板子版本而異。當這樣做更方便安裝時使用此方式,例如從印表機電源取電。
- 板載 5 V 電源模組(實驗性選項)。模組直接焊接在板上,並從所選電源為板子供電。此選項不屬於基本配置,測試程度不如其他方式充分。
切勿同時連接多個電源。
同時連接 USB、外部電源和電源模組會造成電源衝突與運作異常,並可能損壞設備。
板子是否已供電,可透過 LED 指示判斷。
如何配置韌體¶
config.h 檔案¶
此檔案設定設備的運行參數: 檔案位於 Core/Inc/config.h 資料夾中
| 參數 | 用途 |
|---|---|
SELECTED_THERMISTOR_TYPE |
選擇溫度計類型 (0-5,見下文) |
MODE_TEMP_0-MODE_TEMP_7 |
每個模式的溫度。可以設定任何值,包括小數,例如 MODE_TEMP_4 67.5 |
MAX_TEMP, MIN_TEMP |
加熱器允許溫度範圍 |
MAX_AIR_TEMP, MIN_AIR_TEMP |
空氣溫度範圍 |
HEATER_MIN_PWM |
最小 PWM,系統開始檢查加熱器回應時使用 |
HEATER_RESPONSE_TIMEOUT_MS |
等待加熱器溫度上升的時間 (預設 5 秒) |
AIR_TARGET_TIMEOUT_MS |
達到目標空氣溫度的最大時間 (預設 10 分鐘) |
TIMER_CLOCK, PWM_FREQUENCY, PWM_STEPS |
PWM 頻率和品質設置 |
溫度計¶
在 SELECTED_THERMISTOR_TYPE 中選擇。支持的類型:
| ID | 類型 | 評論 |
|---|---|---|
| 0 | ATC Semitec 104GT-2 | E3D 標準 |
| 1 | ATC Semitec 104NT-4-R025H42G | 104GT 的模擬 |
| 2 | EPCOS 100K B57560G104F | 流行的 |
| 3 | Generic 3950 | 預設,廣泛使用 |
| 4 | SliceEngineering 450 | 高溫支持 |
| 5 | TDK NTCG104LH104JT1 | 醫療級,精確 |
溫度模式和 LED¶
模式由溫度值設定,並以二進位形式由三個 LED 顯示:
進入模式時 LED 閃爍,達到模式時持續發光
| Mode | Temperature | LED3 | LED2 | LED1 |
|---|---|---|---|---|
| MODE_TEMP_0 | 0.0°C | ![]() |
![]() |
![]() |
| MODE_TEMP_1 | 55.0°C | ![]() |
![]() |
![]() |
| MODE_TEMP_2 | 60.0°C | ![]() |
![]() |
![]() |
| MODE_TEMP_3 | 65.0°C | ![]() |
![]() |
![]() |
| MODE_TEMP_4 | 70.0°C | ![]() |
![]() |
![]() |
| MODE_TEMP_5 | 75.0°C | ![]() |
![]() |
![]() |
| MODE_TEMP_6 | 80.0°C | ![]() |
![]() |
![]() |
| MODE_TEMP_7 | 85.0°C | ![]() |
![]() |
![]() |
自動開啟和關閉 r1.1¶
巨集
負責加熱器的開啟和關閉溫度,以及開啟時的模式。
假設觸發溫度計位於加熱台附近。 使用目前的設定,當台面溫度達到 45°C 時恆溫室加熱會開啟,當台面溫度下降到 80°C 以下時會關閉。這些參數適合大多數需要主動恆溫室的塑膠,並且在正常運行時不會造成邏輯衝突。
您也可以選擇在觸發時啟動的模式。例如,目前選擇的是 TRIGGER_MODE MODE_2,這意味著將啟動 MODE_TEMP_2 - 恆溫室溫度為 60.0°C
與 iHeater-link 協作 (r1.1 pulse 組件)¶
iheater_rev1_1_pulse 組件設計用於與 ESP 上的 iHeater-link 模組協作。該模組從印表機、門戶網站或行動應用程式接收命令,並通過單個 GPIO 線將恆溫室設定點傳達給 iHeater。iHeater 韌體不依賴於印表機端,也不知道傳輸方式 - 它只接收一個數字:所需的恆溫室空氣溫度,單位為 °C。
連接¶
- 使用
iheater_rev1_1_pulse組件對 iHeater 進行刷新 (見「如何刷新」部分)。 - 將來自 iHeater-link 的信號線連接到 iHeater 主機板上的 TH2 連接器 (引腳 PB1)。
- ESP 和 iHeater 之間的公共 GND 是必需的 - 使用單獨的接地線。
- 將加熱器溫度計保留在其標準連接器 TH0 上。空氣溫度計位於 TH1。它們的工作方式與任何其他組件中的一樣。
- 觸發連接器在此組件中未使用 (其線路被數位輸入佔用)。
切勿在有電源的情況下連接或斷開信號線。
接收的命令¶
| iHeater-link 代碼 | 含義 |
|---|---|
0 |
關閉加熱 |
10 |
關閉加熱 (協商的「off-code」) |
45..90 |
開啟加熱,空氣設定點代碼為 °C |
| 其他值 | 被忽略,保持上一個狀態 |
最小值 45 °C 在 config.h 中由巨集 PULSE_MIN_TARGET 設定。最大值受 MAX_AIR_TEMP 限制 (預設 90 °C)。
LED 指示¶
| 狀態 | LED1 | LED2 | LED3 |
|---|---|---|---|
| 等待開機後的第一個數據包 | 流動燈 LED1 → LED2 → LED3,間隔 1000 毫秒 | ||
| 通信正常,加熱已關閉 | 持續發光 (心跳「通信正常」) | 熄滅 | 每收到一個數據包短閃約 80 毫秒 |
| 通信正常,加熱已開啟 | 流動燈 LED1 → LED2 → LED3,間隔 200 毫秒 | ||
| 通信丟失 (第一次連接後超過 5 秒沒有數據包) | 「信標」:三個 LED 每 2 秒同時閃亮約 100 毫秒。加熱器已關閉,風扇已開啟。 |
標準錯誤 (過熱、溫度計斷路、加熱器無回應) 的工作方式與類比組件相同 - 見「發生錯誤時如何處理」部分。
連接遺失時的行為¶
當來自 iHeater-link 的命令停止到達時,韌體會關閉加熱;命令再次到達時,恢復運作。
通電後,韌體等待第一個數據包,並顯示緩慢流動燈 (1000 毫秒間隔)。加熱器已關閉。等待沒有時間限制:只要連接從未建立過,缺少數據包就不視為連接遺失。
收到第一個數據包後,適用以下規則:如果超過 5 秒 沒有數據包,則視為連接遺失。在這 5 秒內,iHeater 依照最後一條命令繼續運作。
連接遺失時:
- 加熱器關閉。
- 風扇開啟,並持續運轉到連接恢復。
- LED 顯示「信標」:三個 LED 每 2 秒閃亮約 100 毫秒。
錯誤不會保存到閃存,控制器不會重新啟動,也不需要按 MODE 按鈕。數據包再次到達後,iHeater 執行收到的命令:設定值為 45..90 時恢復加熱,為 0 或 10 時保持關閉。
MODE 按鈕¶
在 pulse 組件中,MODE 按鈕 不會切換模式,也不會啟動校準。它的唯一功能是在設備啟動時重設已保存的錯誤。所有加熱命令僅來自 iHeater-link。
如何刷新¶
下載¶
使用預先配置的韌體¶
韌體已使用上述 MODE_TEMP_0 至 MODE_TEMP_7 溫度模式進行預先配置,並設計用於與 Generic 3950 類型的溫度計 (根據 config.h 列表中的類型 3) 協作。
使用 DFU 模式 (USB)¶
- 設定 BOOT0 跳線
- 連接 USB,設備將被識別為 DFU 3.1 使用 STM32CubeProgrammer 載入韌體:
3.1.1 指定 .bin 韌體檔案的路徑 (例如:Firmware/iHeater_v1.2.3.bin)
3.1.2 設定載入位址:0x08000000
3.1.3 按一下「Start Programming」
或
3.2 透過命令列載入韌體: ```bash dfu-util -a 0 -s 0x08000000 -D Firmware/iHeater_vX.Y.Z.bin 4. 移除跳線並重新啟動電源
如何使用¶
使用前,請確認板子已供電——參見「供電」一節。
- 短按 MODE 按鈕 - 切換模式 (0-7)
- 長按 (2+ 秒) - 將模式重設為 0 (OFF)
- LED 根據上表顯示目前模式
- LED 閃爍 - 模式已啟用,但尚未達到溫度
- 持續發光 - 已達到目標溫度
修訂版本的差異
修訂版本 r1.1 有一個觸發埠,用於自動開啟和關閉恆溫室加熱。將溫度計連接到觸發埠時,加熱將根據 config.h 中指定的溫度自動開啟和關閉,預設值為開啟時 45 和關閉時 80。
- 短按 MODE 按鈕 - 切換模式 (0-7)
- 長按 (2+ 秒) - 將模式重設為 0 (OFF)
- LED 根據上表顯示目前模式
- LED 閃爍 - 模式已啟用,但尚未達到溫度
- 持續發光 - 已達到目標溫度
發生錯誤時如何處理¶
設備自動重新啟動並使用 LED 顯示錯誤代碼,此時冷卻風扇將打開。
重設錯誤¶
在啟動時按住 MODE 按鈕,直到 LED 指示改變。錯誤將從閃存中清除,設備將繼續正常運行。
微調¶
如果已確認溫度計讀數與實際溫度不同,可以使用微調功能。為此,需要測量相應電阻器的電阻,並記錄它們以替換預設值
#define PULLUP_TH0 4700.0f
#define PULLUP_TH1 4700.0f
#define PULLUP_TH2 4700.0f
此軟體依 GNU GPL 第 3 版或更新版本授權發布,允許商業使用。詳情見 LICENSE 文件。




