Marlin Firmware
Open source motion control and UI for RepRap 3D printers
Marlin is the firmware inside the printer. It reads G-code from a host or an SD card and turns it into smooth, precise motion, reliable temperature control and a responsive user interface, all on a single microcontroller. It has driven RepRap-style machines since 2011 and today runs on everything from classic 8-bit boards to modern 32-bit ARM, ESP32 and RP2040 controllers.
Download Marlin 2.1.2.9 Get startedG-code reference
Latest release 2.1.2.9 · Beta 2.1.3-b3 · About releases
- 417 controller boards
- 15+ MCU platforms
- 301 G-code commands
- 2658 configuration options
- 296 example printer configs
- 2011 project started
A complete firmware for the whole machine
Motion
A look-ahead planner with acceleration and junction control, Linear Advance, Input Shaping and Fixed-Time Motion for cleaner prints at higher speeds. Cartesian, CoreXY, Delta, SCARA, Polar, IDEX and belt kinematics.
Heating and safety
PID and Model Predictive temperature control for hotends, beds and chambers. Thermal runaway protection, power-loss recovery and filament runout detection are built in and on by default where it matters.
User interface
Character and graphical LCDs, color TFT touch screens and DWIN displays, plus host interfaces and SD card printing. Menus, status screens and messages in dozens of languages.
Hardware
Hundreds of controller boards across more than a dozen MCU families, Trinamic stepper drivers, every common bed probe, multiple extruders and tool changers, and lasers and spindles for CNC work.
Built for RepRap, ready for what comes next
Marlin began in 2011 when Erik van der Zalm combined Sprinter and Grbl into one firmware for RepRap and Ultimaker machines. It has been owned and maintained by the maker community ever since, and it now ships in many of the world’s desktop 3D printers.
The project’s direction is simple: provide every firmware function a complete motion system and user interface needs, with RepRap-style 3D printers as the first priority, on a modern foundation. That means 32-bit boards and current toolchains as the main target, continued care for the 8-bit boards still in wide use, and a single code base that you can configure for your own machine rather than a vendor’s.
Find your way around
Introduction
What Marlin is, how it processes G-code, and how a print job flows from slicer to steppers.
Build & Install
Get Marlin onto your board, from pre-built binaries and online builds to Auto Build Marlin and PlatformIO.
Configuration
How Configuration.h and Configuration_adv.h work, with guides for probes, displays and more.
Printer Types
How each kind of machine moves, and what that means for homing, leveling and limits.
Features
Bed leveling, Linear Advance, Input Shaping, firmware retraction and other major features explained.
Settings
Every configuration option, grouped by section, with defaults, requirements and notes.
G-code
Every command Marlin understands, with parameters, examples and the version it arrived in.
Tools
Calibration pattern generators for Linear Advance and Input Shaping, bitmap and color converters.
Appendix
Boards, controllers, thermistors, endstops, the printer directory and troubleshooting.
Get Marlin
| Release | 2.1.2.9 | Current Marlin Release |
|---|---|---|
| Beta | 2.1.3-b3 | Marlin 2.1.3 beta 3 |
| Nightly | bugfix-2.1.x | Latest fixes, lightly tested |
Source code is on the Download page; ready-made configurations for hundreds of printers are in the Configurations repository, and pre-built binaries for popular machines in MarlinBuilds. New to Marlin? Start with Build & Install.
Marlin is free software released under the GNU General Public License v3. This documentation is maintained by the community in the MarlinDocumentation repository. Learn how to contribute.