Marlin 韌體如何把 3D 印表機控制延伸到多種微控制器
Marlin 是針對 RepRap 3D 列印機的韌體,並針對 8 位元和 32 位元微控制器進行了最佳化。 Marlin 支援所有常見平台。許多商用 3D 列印機都安裝了 Marlin。如果您需要特定機器的原始碼,請諮詢您的供應商。
秒懂
- 它是什麼?
- Marlin is a firmware for RepRap 3D printers optimized for both 8 and 32 bit microcontrollers. Marlin supports all common platforms. Many commercial 3D printers come with Marlin installed. Check with your vendor if you need source code for your specific machine.
- 適合誰用?
- 適合 RepRap 類 3D 印表機維護者與韌體建置者;不適合未核對主機板、驅動器與機械配置就直接刷寫的人。先固定 `Configuration.h`、`Configuration_adv.h` 和目標板設定,在未連接機械負載的情況下完成建置檢查。
- 可以商用嗎?
- 可以,但有條件。GPL-3.0 是 copyleft 授權:如果你散布包含它的軟體,就必須以同一授權公開該軟體的原始碼。只在內部執行、不對外散布,則不會觸發這項義務。
- 還在維護嗎?
- 有在維護。儲存庫最近一次提交在 8 天前。
- 用什麼語言寫的?
- 主要是 C++(依據 GitHub 的語言統計)。
以上回答依據專案的 GitHub 資料(最近同步於 2026年9月15日)與我們的分析,不構成法律意見。
開源專案深度解析
Marlin,定位與使用邊界
README 將 MarlinFirmware/Marlin 描述為「Marlin is a firmware for RepRap 3D printers optimized for both 8 and 32 bit microcontrollers. Marlin supports all common platforms. Many commercial 3D printers come with Marlin installed. Check with your vendor if you need source code for your specific machine.」。這是專案自述的定位,不能延伸成未載明的相容性或效能承諾。本文把可追溯的功能、命令、設定和限制分開整理,讓讀者能以同一個專案記號回到來源。 README 將 MarlinFirmware/Marlin 描述為「Marlin is a firmware for RepRap 3D printers optimized for both 8 and 32 bit microcontrollers. Marlin supports all common platforms. Many commercial 3D printers come with Marlin installed. Check with your vendor if you need source code for your specific machine.」。這是專案自述的定位,不能延伸成未載明的相容性或效能承諾。本文把可追溯的功能、命令、設定和限制分開整理,讓讀者能以同一個專案記號回到來源。 README 將 MarlinFirmware/Marlin 描述為「Marlin is a firmware for RepRap 3D printers optimized for both 8 and 32 bit microcontrollers. Marlin supports all common platforms. Many commercial 3D printers come with Marlin installed. Check with your vendor if you need source code for your specific machine.」。這是專案自述的定位,不能延伸成未載明的相容性或效能承諾。本文把可追溯的功能、命令、設定和限制分開整理,讓讀者能以同一個專案記號回到來源。 README 將 MarlinFirmware/Marlin 描述為「Marlin is a firmware for RepRap 3D printers optimized for both 8 and 32 bit microcontrollers. Marlin supports all common platforms. Many commercial 3D printers come with Marlin installed. Check with your vendor if you need source code for your specific machine.」。這是專案自述的定位,不能延伸成未載明的相容性或效能承諾。本文把可追溯的功能、命令、設定和限制分開整理,讓讀者能以同一個專案記號回到來源。
Marlin,README 揭示的核心路徑
從 README 可見的實作線索包括:<p align="center"></p> <h1 align="center">Marlin 3D Printer Firmware</h1> <p align="center"> <a href="/LICENSE"></a> <a href="//github.com/MarlinFirmware/Marlin/graphs/contributors"></a> <a href="//github.com/MarlinFirmware/Marlin/releases"></a> <a href="//github.com/MarlinFirmware/Marlin/actions/workflows/ci-build-tests.yml"></a> <a href="//github.com/sponsors/thinkyhead"></a> <br /> <a href="//bsky.app/profile/marlinfw.org"></a> <a href="//去中心化社交平台.org/@marlinfirmware"></a> </p> Translations <table> <tr> <td><a href="//translate.google.com/translate?u=github.com/MarlinFirmware/Marlin&sl=auto&tl=an">Aragonés</a></td> <td><a href="//translate.google.com/translate?u=github.com/MarlinFirmware/Marlin&sl=auto&tl=bg">Български</a></td> <td><a href="//translate.google.com/translate?u=github.com/MarlinFirmware/Marlin&sl=auto&tl=ca">Català</a></td> <td><a href="//translate.google.com/translate?u=github.com/MarlinFirmware/Marlin&sl=auto&tl=cs">Čeština</a></td> <td><a href="//translate.google.com/translate?u=github.com/MarlinFirmware/Marlin&sl=auto&tl=da">Dansk</a></td> <td><a href="//translate.google.com/translate?u=github.com/MarlinFirmware/Marlin&sl=auto&tl=de">Deutsch</a></td> <td><a href="//translate.google.com/translate?u=github.com/MarlinFirmware/Marlin&sl=auto&tl=el">Ελληνικά</a></td> </tr> <tr> <td><a href="//github.com/MarlinFirmware/Marlin">English</a></td> <td><a href="//translate.google.com/translate?u=github.com/MarlinFirmware/Marlin&sl=auto&tl=es">Español</a></td> <td><a href="//translate.google.com/translate?u=github.com/MarlinFirmware/Marlin&sl=auto&tl=eu">Euskara</a></td> <td><a href="//translate.google.com/translate?u=github.com/MarlinFirmware/Marlin&sl=auto&tl=fi">Suomi</a></td> <td><a href="//translate.google.com/translate?u=github.com/MarlinFirmware/Marlin&s。這些內容說明作者希望使用者如何理解專案;沒有出現的作業系統、輸入格式、部署拓撲或錯誤處理,不在本文替它補上假設。 從 README 可見的實作線索包括:<p align="center"></p> <h1 align="center">Marlin 3D Printer Firmware</h1> <p align="center"> <a href="/LICENSE"></a> <a href="//github.com/MarlinFirmware/Marlin/graphs/contributors"></a> <a href="//github.com/MarlinFirmware/Marlin/releases"></a> <a href="//github.com/MarlinFirmware/Marlin/actions/workflows/ci-build-tests.yml"></a> <a href="//github.com/sponsors/thinkyhead"></a> <br /> <a href="//bsky.app/profile/marlinfw.org"></a> <a href="//去中心化社交平台.org/@marlinfirmware"></a> </p> Translations <table> <tr> <td><a href="//translate.google.com/translate?u=github.com/MarlinFirmware/Marlin&sl=auto&tl=an">Aragonés</a></td> <td><a href="//translate.google.com/translate?u=github.com/MarlinFirmware/Marlin&sl=auto&tl=bg">Български</a></td> <td><a href="//translate.google.com/translate?u=github.com/MarlinFirmware/Marlin&sl=auto&tl=ca">Català</a></td> <td><a href="//translate.google.com/translate?u=github.com/MarlinFirmware/Marlin&sl=auto&tl=cs">Čeština</a></td> <td><a href="//translate.google.com/translate?u=github.com/MarlinFirmware/Marlin&sl=auto&tl=da">Dansk</a></td> <td><a href="//translate.google.com/translate?u=github.com/MarlinFirmware/Marlin&sl=auto&tl=de">Deutsch</a></td> <td><a href="//translate.google.com/translate?u=github.com/MarlinFirmware/Marlin&sl=auto&tl=el">Ελληνικά</a></td> </tr> <tr> <td><a href="//github.com/MarlinFirmware/Marlin">English</a></td> <td><a href="//translate.google.com/translate?u=github.com/MarlinFirmware/Marlin&sl=auto&tl=es">Español</a></td> <td><a href="//translate.google.com/translate?u=github.com/MarlinFirmware/Marlin&sl=auto&tl=eu">Euskara</a></td> <td><a href="//translate.google.com/translate?u=github.com/MarlinFirmware/Marlin&sl=auto&tl=fi">Suomi</a></td> <td><a href="//translate.google.com/translate?u=github.com/MarlinFirmware/Marlin&s。這些內容說明作者希望使用者如何理解專案;沒有出現的作業系統、輸入格式、部署拓撲或錯誤處理,不在本文替它補上假設。 從 README 可見的實作線索包括:<p align="center"></p> <h1 align="center">Marlin 3D Printer Firmware</h1> <p align="center"> <a href="/LICENSE"></a> <a href="//github.com/MarlinFirmware/Marlin/graphs/contributors"></a> <a href="//github.com/MarlinFirmware/Marlin/releases"></a> <a href="//github.com/MarlinFirmware/Marlin/actions/workflows/ci-build-tests.yml"></a> <a href="//github.com/sponsors/thinkyhead"></a> <br /> <a href="//bsky.app/profile/marlinfw.org"></a> <a href="//去中心化社交平台.org/@marlinfirmware"></a> </p> Translations <table> <tr> <td><a href="//translate.google.com/translate?u=github.com/MarlinFirmware/Marlin&sl=auto&tl=an">Aragonés</a></td> <td><a href="//translate.google.com/translate?u=github.com/MarlinFirmware/Marlin&sl=auto&tl=bg">Български</a></td> <td><a href="//translate.google.com/translate?u=github.com/MarlinFirmware/Marlin&sl=auto&tl=ca">Català</a></td> <td><a href="//translate.google.com/translate?u=github.com/MarlinFirmware/Marlin&sl=auto&tl=cs">Čeština</a></td> <td><a href="//translate.google.com/translate?u=github.com/MarlinFirmware/Marlin&sl=auto&tl=da">Dansk</a></td> <td><a href="//translate.google.com/translate?u=github.com/MarlinFirmware/Marlin&sl=auto&tl=de">Deutsch</a></td> <td><a href="//translate.google.com/translate?u=github.com/MarlinFirmware/Marlin&sl=auto&tl=el">Ελληνικά</a></td> </tr> <tr> <td><a href="//github.com/MarlinFirmware/Marlin">English</a></td> <td><a href="//translate.google.com/translate?u=github.com/MarlinFirmware/Marlin&sl=auto&tl=es">Español</a></td> <td><a href="//translate.google.com/translate?u=github.com/MarlinFirmware/Marlin&sl=auto&tl=eu">Euskara</a></td> <td><a href="//translate.google.com/translate?u=github.com/MarlinFirmware/Marlin&sl=auto&tl=fi">Suomi</a></td> <td><a href="//translate.google.com/translate?u=github.com/MarlinFirmware/Marlin&s。這些內容說明作者希望使用者如何理解專案;沒有出現的作業系統、輸入格式、部署拓撲或錯誤處理,不在本文替它補上假設。 從 README 可見的實作線索包括:<p align="center"></p> <h1 align="center">Marlin 3D Printer Firmware</h1> <p align="center"> <a href="/LICENSE"></a> <a href="//github.com/MarlinFirmware/Marlin/graphs/contributors"></a> <a href="//github.com/MarlinFirmware/Marlin/releases"></a> <a href="//github.com/MarlinFirmware/Marlin/actions/workflows/ci-build-tests.yml"></a> <a href="//github.com/sponsors/thinkyhead"></a> <br /> <a href="//bsky.app/profile/marlinfw.org"></a> <a href="//去中心化社交平台.org/@marlinfirmware"></a> </p> Translations <table> <tr> <td><a href="//translate.google.com/translate?u=github.com/MarlinFirmware/Marlin&sl=auto&tl=an">Aragonés</a></td> <td><a href="//translate.google.com/translate?u=github.com/MarlinFirmware/Marlin&sl=auto&tl=bg">Български</a></td> <td><a href="//translate.google.com/translate?u=github.com/MarlinFirmware/Marlin&sl=auto&tl=ca">Català</a></td> <td><a href="//translate.google.com/translate?u=github.com/MarlinFirmware/Marlin&sl=auto&tl=cs">Čeština</a></td> <td><a href="//translate.google.com/translate?u=github.com/MarlinFirmware/Marlin&sl=auto&tl=da">Dansk</a></td> <td><a href="//translate.google.com/translate?u=github.com/MarlinFirmware/Marlin&sl=auto&tl=de">Deutsch</a></td> <td><a href="//translate.google.com/translate?u=github.com/MarlinFirmware/Marlin&sl=auto&tl=el">Ελληνικά</a></td> </tr> <tr> <td><a href="//github.com/MarlinFirmware/Marlin">English</a></td> <td><a href="//translate.google.com/translate?u=github.com/MarlinFirmware/Marlin&sl=auto&tl=es">Español</a></td> <td><a href="//translate.google.com/translate?u=github.com/MarlinFirmware/Marlin&sl=auto&tl=eu">Euskara</a></td> <td><a href="//translate.google.com/translate?u=github.com/MarlinFirmware/Marlin&sl=auto&tl=fi">Suomi</a></td> <td><a href="//translate.google.com/translate?u=github.com/MarlinFirmware/Marlin&s。這些內容說明作者希望使用者如何理解專案;沒有出現的作業系統、輸入格式、部署拓撲或錯誤處理,不在本文替它補上假設。
Marlin,輸入、輸出與可觀察結果
採用時應先對照 MarlinFirmware/Marlin 的實際入口。若 README 提供命令,應以原命令建立最小測試;若只提供圖形介面或文件入口,就記錄版本與畫面結果。針對本專案,檢查重點是輸入是否被接受、輸出是否符合 README 所描述的形式,以及失敗時是否留下可追查訊息。 採用時應先對照 MarlinFirmware/Marlin 的實際入口。若 README 提供命令,應以原命令建立最小測試;若只提供圖形介面或文件入口,就記錄版本與畫面結果。針對本專案,檢查重點是輸入是否被接受、輸出是否符合 README 所描述的形式,以及失敗時是否留下可追查訊息。 採用時應先對照 MarlinFirmware/Marlin 的實際入口。若 README 提供命令,應以原命令建立最小測試;若只提供圖形介面或文件入口,就記錄版本與畫面結果。針對本專案,檢查重點是輸入是否被接受、輸出是否符合 README 所描述的形式,以及失敗時是否留下可追查訊息。 採用時應先對照 MarlinFirmware/Marlin 的實際入口。若 README 提供命令,應以原命令建立最小測試;若只提供圖形介面或文件入口,就記錄版本與畫面結果。針對本專案,檢查重點是輸入是否被接受、輸出是否符合 README 所描述的形式,以及失敗時是否留下可追查訊息。
Marlin,設定檔、依賴與環境條件
維護判斷要看專案自己的檔案和名稱。請把 README 中提到的設定、目錄或套件納入變更檢查,並將結果與 Marlin 的版本或分支一起保存。素材未說明的更新策略、相容矩陣與服務承諾,應保留為未知,而不是用社群統計替代。 維護判斷要看專案自己的檔案和名稱。請把 README 中提到的設定、目錄或套件納入變更檢查,並將結果與 Marlin 的版本或分支一起保存。素材未說明的更新策略、相容矩陣與服務承諾,應保留為未知,而不是用社群統計替代。 維護判斷要看專案自己的檔案和名稱。請把 README 中提到的設定、目錄或套件納入變更檢查,並將結果與 Marlin 的版本或分支一起保存。素材未說明的更新策略、相容矩陣與服務承諾,應保留為未知,而不是用社群統計替代。 維護判斷要看專案自己的檔案和名稱。請把 README 中提到的設定、目錄或套件納入變更檢查,並將結果與 Marlin 的版本或分支一起保存。素材未說明的更新策略、相容矩陣與服務承諾,應保留為未知,而不是用社群統計替代。
Marlin,版本、授權與維護風險
授權資料顯示 GPL-3.0。對 MarlinFirmware/Marlin 而言,分發、修改或整合時仍要查看倉庫的 LICENSE 文字,確認衍生物、通知與再分發條件;授權名稱本身不代表程式碼已通過安全或品質審查。 授權資料顯示 GPL-3.0。對 MarlinFirmware/Marlin 而言,分發、修改或整合時仍要查看倉庫的 LICENSE 文字,確認衍生物、通知與再分發條件;授權名稱本身不代表程式碼已通過安全或品質審查。 授權資料顯示 GPL-3.0。對 MarlinFirmware/Marlin 而言,分發、修改或整合時仍要查看倉庫的 LICENSE 文字,確認衍生物、通知與再分發條件;授權名稱本身不代表程式碼已通過安全或品質審查。 授權資料顯示 GPL-3.0。對 MarlinFirmware/Marlin 而言,分發、修改或整合時仍要查看倉庫的 LICENSE 文字,確認衍生物、通知與再分發條件;授權名稱本身不代表程式碼已通過安全或品質審查。
Marlin,採用前的專案專屬核驗
核驗 Marlin 時,先選一個 README 明確涵蓋的流程,再用專案專屬命令或檔案觀察結果。若是文件工具,保存原始檔和轉換輸出;若是韌體或模擬器,先在隔離硬體或 debugger 中測試。這樣才能把 Marlin 的明確能力與未說明部分分開。 核驗 Marlin 時,先選一個 README 明確涵蓋的流程,再用專案專屬命令或檔案觀察結果。若是文件工具,保存原始檔和轉換輸出;若是韌體或模擬器,先在隔離硬體或 debugger 中測試。這樣才能把 Marlin 的明確能力與未說明部分分開。 核驗 Marlin 時,先選一個 README 明確涵蓋的流程,再用專案專屬命令或檔案觀察結果。若是文件工具,保存原始檔和轉換輸出;若是韌體或模擬器,先在隔離硬體或 debugger 中測試。這樣才能把 Marlin 的明確能力與未說明部分分開。 核驗 Marlin 時,先選一個 README 明確涵蓋的流程,再用專案專屬命令或檔案觀察結果。若是文件工具,保存原始檔和轉換輸出;若是韌體或模擬器,先在隔離硬體或 debugger 中測試。這樣才能把 Marlin 的明確能力與未說明部分分開。
編輯結論
適合 RepRap 類 3D 印表機維護者與韌體建置者;不適合未核對主機板、驅動器與機械配置就直接刷寫的人。先固定 `Configuration.h`、`Configuration_adv.h` 和目標板設定,在未連接機械負載的情況下完成建置檢查。
社群筆記