Marlin README

The project's README from github.com/MarlinFirmware/Marlin. As one markdown file: README.md.

MarlinFirmware's logo

Marlin 3D Printer Firmware

GPL-V3.0 License Contributors Last Release Date CI Status GitHub Sponsors
Follow marlinfw.org on Bluesky Follow MarlinFirmware on Mastodon

🌍 Translations

Aragonés Български Català Čeština Dansk Deutsch Ελληνικά
English Español Euskara Suomi Français Galego Hrvatski
Magyar Italiano にほんご 한국어 Nederlands Polski Português
Português (Brasil) Română Русский Slovenčina Svenska Türkçe Українська
Tiếng Việt 简体中文 繁體中文

Official documentation can be found at the Marlin Home Page.

Please test this firmware and let us know if it misbehaves in any way. Volunteers are standing by!


Marlin 2.1 Bugfix Branch

Not for production use. Use with caution!

Marlin 2.1 supports both 32-bit ARM and 8-bit AVR boards while adding support for up to 9 coordinated axes and to up to 8 extruders.

This branch is for patches to the latest 2.1.x release version. Periodically this branch will form the basis for the next minor 2.1.x release.

Download earlier versions of Marlin on the Releases page.

Example Configurations

Before you can build Marlin for your machine you'll need a configuration for your specific hardware. Upon request, your vendor will be happy to provide you with the complete source code and configurations for your machine, but you'll need to get updated configuration files if you want to install a newer version of Marlin. Fortunately, Marlin users have contributed hundreds of tested configurations to get you started. Visit the MarlinFirmware/Configurations repository to find the right configuration for your hardware. Make sure to select a compatible branch! The Marlin Download Page matches compatible software and configuration packages.

Building Marlin 2.1

To build and upload Marlin you will use one of these tools:

32-bit ARM boards

Marlin is compatible with a plethora of 32-bit ARM boards, which offer ample computational power and memory and allows Marlin to deliver state-of-the-art performance and features we like to see in modern 3d printers. Some of the newer features in Marlin will require use of a 32-bit ARM board.

8-Bit AVR Boards

Marlin originates from the era of Arduino based 8-bit boards, and we aim to support 8-bit AVR boards in perpetuity. Both 32-bit and 8-bit boards are covered by a single code base that can apply to all machines. Our goal is to support casual hobbyists, tinkerers, and owners of older machines and boards, striving to allow them to benefit from the community's innovations just as much as those with fancier machines and newer boards. In addition, these venerable AVR-based machines are often the best for testing and feedback!

Hardware Abstraction Layer (HAL)

Marlin's Hardware Abstraction Layer provides a common API for all the platforms it targets. This allows Marlin code to address the details of motion and user interface tasks at the lowest and highest levels with no system overhead, tying all events directly to the hardware clock.

Every new HAL opens up a world of hardware. Marlin currently has HALs for more than a dozen platforms. While AVR and STM32 are the most well known and popular ones, others like ESP32 and LPC1768 support a variety of less common boards. At this time, an HAL for RP2040 is available in beta; we would like to add one for the Duet3D family of boards. A HAL that wraps an RTOS is an interesting concept that could be explored.

Did you know that Marlin includes a Simulator that can run on Windows, macOS, and Linux? Join the Discord to help move these sub-projects forward!

Supported Platforms

Platform MCU Example Boards
Arduino AVR ATmega RAMPS, Melzi, RAMBo
Teensy++ 2.0 AT90USB1286 Printrboard
Arduino Due SAM3X8E RAMPS-FD, RADDS, RAMPS4DUE
ESP32 ESP32 FYSETC E4, E4d@BOX, MRR
GD32 GD32 ARM Cortex-M4 Creality MFL GD32 V4.2.2
HC32 HC32 Ender-2 Pro, Voxelab Aquila
LPC1768 ARM® Cortex-M3 MKS SBASE, Re-ARM, Selena Compact
LPC1769 ARM® Cortex-M3 Smoothieboard, Azteeg X5 mini, TH3D EZBoard
Pico RP2040 Dual Cortex M0+ BigTreeTech SKR Pico
STM32F103 ARM® Cortex-M3 Malyan M200, GTM32 Pro, MKS Robin, BTT SKR Mini
STM32F401 ARM® Cortex-M4 ARMED, Rumba32, SKR Pro, Lerdge, FYSETC S6, Artillery Ruby
STM32F7x6 ARM® Cortex-M7 The Borg, RemRam V1
STM32G0B1RET6 ARM® Cortex-M0+ BigTreeTech SKR mini E3 V3.0
STM32H743xIT6 ARM® Cortex-M7 BigTreeTech SKR V3.0, SKR EZ V3.0, SKR SE BX V2.0/V3.0
SAMD21P20A ARM® Cortex-M0+ Adafruit Grand Central M4
SAMD51P20A ARM® Cortex-M4 Adafruit Grand Central M4
Teensy 3.2/3.1 MK20DX256VLH7 ARM® Cortex-M4
Teensy 3.5 MK64FX512-VMD12 ARM® Cortex-M4
Teensy 3.6 MK66FX1MB-VMD18 ARM® Cortex-M4
Teensy 4.0 MIMXRT1062-DVL6B ARM® Cortex-M7
Teensy 4.1 MIMXRT1062-DVJ6B ARM® Cortex-M7
Linux Native x86 / ARM / RISC-V Raspberry Pi GPIO
Simulator Windows, macOS, Linux Desktop OS
All supported boards All platforms All boards

Marlin Discord

The Marlin Firmware Discord is a great place to discuss issues with Marlin users and developers, get interactive help with troubleshooting, and build on your best ideas to improve to Marlin in tandem with the most active members of the development team.

Other Marlin Support

The Issue Queue is reserved for Bug Reports and Feature Requests. Please use the following resources for help with configuration and troubleshooting:

Contributing Patches

Contribute your patches to Marlin by submitting a Pull Request to the (bugfix-2.1.x) branch.

Contributors

Marlin is constantly improving thanks to a huge number of contributors from all over the world bringing their specialties and talents. Huge thanks are due to all the contributors who regularly patch up bugs, help direct traffic, and basically keep Marlin from falling apart. Marlin's continued existence would not be possible without them.

Marlin Firmware original logo design by Ahmet Cem TURAN @ahmetcemturan.

Project Leadership

Name Role Link Donate
🇺🇸 Scott Lahteine Project Lead [@thinkyhead] ❤️ Donate
🇳🇿 Peter Ellens Admin [@ellensp] ❤️ Donate
🇬🇧 Chris Pepper Admin [@p3p]
🇺🇸 Keith Bennett Admin [@thisiskeithb] ❤️ Donate
🇺🇸 Roxanne Neufeld Admin [@Roxy-3D]
🇺🇸 Jason Smith Admin [@sjasonsmith]
🇧🇷 Victor Oliveira Admin [@rhapsodyv]
🇺🇸 Bob Kuhn Admin [@Bob-the-Kuhn]
🇳🇱 Erik van der Zalm Founder [@ErikZalm]

Star History

Star History Chart

License

Marlin is published under the GPL license because we believe in open development. The GPL comes with both rights and obligations. Whether you use Marlin firmware as the driver for your open or closed-source product, you must keep Marlin open, and you must provide your compatible Marlin source code to end users upon request. The most straightforward way to comply with the Marlin license is to make a fork of Marlin on GitHub, perform your modifications, and direct users to your modified fork.

Marlin (MarlinFirmware/Marlin)

Searching Database…

17.6K ·GitHub
这是什么?Marlin 是一个开源固件,用于 RepRap 3D 打印机,既能跑在 8 位 AVR 主板上,也能跑在 32 位 ARM 主板上。很多市售 3D 打印机出厂就预装了它,而且一套代码就能覆盖所有支持的机型。
那它是我电脑上的程序,还是打印机里的软件?它是直接运行在打印机控制板上的固件——支持 ATmega、STM32、ESP32、Teensy 等很多主板。电脑只在编译和上传时才用得上,另外还有一个能在桌面系统上运行的模拟器(Simulator)。
怎么把它装到我的打印机上?先从 MarlinFirmware/Configurations 仓库里找到适合你主板的配置,然后在 VS Code 里用 Auto Build Marlin 扩展或 PlatformIO IDE 编译并上传固件。
编译之前我需要装好哪些东西?推荐用的是免费的 Visual Studio Code 加 PlatformIO IDE 扩展这套工具链。VSCode devcontainer 或经典的 Arduino IDE 也可以,只是 Arduino 那条路体验比较粗糙。
这个仓库里的代码可以直接刷机吗,还是属于实验性的?这个仓库托管的是 2.1 的 bugfix 分支,团队明确标注它不适合用于生产环境——正式使用请去 Releases 页面下载稳定版本。另外要注意,一些较新的功能需要 32 位 ARM 主板才支持。
我用的是一台比较老的 8 位机器——还能继续支持吗,还是开发只面向新的 32 位主板?老硬件是一等公民:团队打算长期支持 8 位 AVR 主板,所以普通爱好者和老机器用户同样能享受到社区的种种改进,和新款打印机的用户待遇一样。
它能跑在哪些打印机主板上?借助它的硬件抽象层(HAL),支持十多种平台:RAMPS、Melzi 这类 AVR 主板,多种 STM32 变体,ESP32,LPC1768/69,从 2.x 到 4.1 的 Teensy,测试版的 RP2040,甚至还有能跑在 x86、ARM 和 RISC-V 上的 Linux 原生版本。
如果厂商出厂的打印机里内置了 Marlin,GPL 有什么要求?即使 Marlin 被放进闭源产品里,它也必须保持开源:厂商应最终用户的要求,必须提供与之兼容的 Marlin 源代码。推荐的合规方式是在 GitHub 上 fork Marlin,并把用户引导到那个 fork。
Marlin 能协调多少根轴和多少个挤出头?Marlin 2.1 最多支持 9 根联动轴和 8 个挤出头,32 位 ARM 和 8 位 AVR 硬件上都适用。
没有真实的打印机硬件,我能试用 Marlin 吗?可以——内置的模拟器(Simulator)能在 Windows、macOS 和 Linux 上运行这份固件,另外还有一个 Linux Native 目标,可以驱动 Raspberry Pi 的 GPIO。
如果找不到和我这台打印机完全对应的配置怎么办?MarlinFirmware/Configurations 仓库里有数百份经过社区测试的配置;此外只要提出要求,厂商也会为你的机器提供完整的源代码和配置。
Size
255.9 MB
Stars
17.6K
Age
15y
Commits · 90 Days