開源專案
MarlinFirmware/Marlin avatar
MarlinFirmware/Marlin

Marlin 韌體如何把 3D 印表機控制延伸到多種微控制器

Marlin 是針對 RepRap 3D 列印機的韌體,並針對 8 位元和 32 位元微控制器進行了最佳化。 Marlin 支援所有常見平台。許多商用 3D 列印機都安裝了 Marlin。如果您需要特定機器的原始碼,請諮詢您的供應商。

17,586 個 Star19,720 個 ForkC++GPL-3.0

秒懂

它是什麼?
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` 和目標板設定,在未連接機械負載的情況下完成建置檢查。

官方來源

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
社群筆記

社群筆記