Esta página se muestra en inglés. Una traducción al español está en curso.
ScriptsMay 6, 2026·3 min de lectura

Marlin — Open-Source 3D Printer Firmware

Configure and build Marlin firmware for FDM and resin 3D printers with support for auto bed leveling, linear advance, and thermal runaway protection.

Introduction

Marlin is the most widely used open-source firmware for FDM 3D printers and CNC machines. It runs on 8-bit AVR and 32-bit ARM boards, providing precise stepper motor control, thermal management, and G-code interpretation with extensive configuration options for virtually any RepRap-style machine.

What Marlin Does

  • Interprets G-code commands to coordinate stepper motors, heaters, and fans
  • Supports auto bed leveling with BLTouch, inductive, and capacitive probes
  • Implements thermal runaway protection and safety features for unattended printing
  • Provides an LCD/touchscreen UI for on-printer control and SD card printing
  • Handles kinematics for Cartesian, Delta, CoreXY, SCARA, and polar machines

Architecture Overview

Marlin runs as a single firmware image on the printer control board. The motion planner converts G-code moves into a look-ahead buffer of trapezoidal velocity segments. Stepper ISRs generate precise step pulses using hardware timers. The temperature manager runs a PID loop for hotend and heated bed control. On 32-bit boards, Marlin uses a HAL layer to abstract hardware differences across STM32, LPC, and ESP32 platforms.

Self-Hosting & Configuration

  • Clone the repository and copy the example configuration for your printer model
  • Edit Configuration.h for board type, stepper drivers, bed size, and probe settings
  • Edit Configuration_adv.h for linear advance, junction deviation, and input shaping
  • Build with PlatformIO CLI or VS Code with the PlatformIO extension
  • Flash via SD card, USB-DFU, or serial bootloader depending on the board

Key Features

  • Linear Advance for pressure compensation and cleaner corners
  • Input Shaping to reduce ringing artifacts at higher print speeds
  • Unified Bed Leveling with mesh-based compensation across the build surface
  • Multi-extruder support including mixing, switching, and IDEX configurations
  • Host action commands for OctoPrint and Klipper integration

Comparison with Similar Tools

  • Klipper — Offloads computation to a host Raspberry Pi for higher step rates; Marlin runs entirely on the printer MCU with no external dependency
  • RepRapFirmware — Feature-rich with web interface and runtime configuration; Marlin has broader board support and a larger configuration database
  • Smoothieware — Optimized for 32-bit LPC boards; Marlin supports both 8-bit and 32-bit with wider hardware coverage
  • grbl — Focused on CNC milling; Marlin adds 3D printing features like temperature control, bed leveling, and filament sensors

FAQ

Q: Should I use Marlin or Klipper? A: Marlin works entirely on the printer board with no extra hardware needed. Klipper requires a Raspberry Pi but offers faster kinematics and runtime configuration changes. Both produce excellent print quality.

Q: How do I find the right configuration for my printer? A: Check the Configurations repository on GitHub, which contains pre-made configs for hundreds of printer models. Start from the closest match and adjust.

Q: Can Marlin run on 8-bit boards? A: Yes, though some features (input shaping, S-curve acceleration) require 32-bit boards due to processing constraints.

Q: How do I enable auto bed leveling? A: Define your probe type and pin in Configuration.h, set probe offsets, enable one of the leveling systems (bilinear, UBL, or mesh), and run G29 before printing.

Sources

Discusión

Inicia sesión para unirte a la discusión.
Aún no hay comentarios. Sé el primero en compartir tus ideas.

Activos relacionados