What is Marlin?

Marlin is an open source firmware for the RepRap family of replicating rapid prototypers — popularly known as “3D printers.” It was derived from Sprinter and grbl, and became a standalone open source project on August 12, 2011 with its Github release. Marlin is licensed under the GPLv3 and is free for all applications.

From the start Marlin was built by and for RepRap enthusiasts to be a straightforward, reliable, and adaptable printer driver that “just works.” As a testament to its quality, Marlin is used by several respected commercial 3D printers. Ultimaker, Printrbot, AlephObjects (Lulzbot), and Prusa Research are just a few of the vendors who ship a variant of Marlin. Marlin is also capable of driving CNC’s and laser engravers.

One key to Marlin’s popularity is that it runs on inexpensive 8-bit Atmel AVR micro-controllers - Marlin 2.x has added support for 32-bit boards. These chips are at the center of the popular open source Arduino/Genuino platform. The reference platforms for Marlin is an Arduino Mega2560 with RAMPS 1.4 and Re-Arm with Ramps 1.4.

As a community product, Marlin aims to be adaptable to as many boards and configurations as possible. We want it to be configurable, customizable, extensible, and economical for hobbyists and vendors alike. A Marlin build can be very small, for use on a headless printer with only modest hardware. Features are enabled as-needed to adapt Marlin to added components.

Main features

  • Full-featured G-code with over 150 commands
  • Complete G-code movement suite, including lines, arcs, and Bézier curves
  • Smart motion system with lookahead, interrupt-based movement, linear acceleration
  • Support for Cartesian, Delta, SCARA, and Core/H-Bot kinematics
  • Closed-loop PID heater control with auto-tuning, thermal protection, safety cutoff
  • Support for up to 5 extruders plus a heated printbed
  • LCD Controller UI with more than 30 language translations
  • Host-based and SD Card printing with autostart
  • Bed Leveling Compensation — with or without a bed probe
  • Linear Advance for pressure-based extrusion
  • Support for Volumetric extrusion
  • Support for mixing and multi-extruders (Cyclops, Chimera, Diamond)
  • Support for Filament Runout/Width Sensors
  • Print Job Timer and Print Counter


How Marlin Works

Marlin Firmware runs on the 3D printer’s main board, managing all the real-time activities of the machine. It coordinates th