1<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"/> <meta http-equiv="X-UA-Compatible" content="IE=edge"/> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> <meta name="viewport" content="width=device-width, initial-scale=0.5"/> <link rel="apple-touch-icon" href="/apple-touch-icon.png"/> <link rel="apple-touch-icon-precomposed" href="/apple-touch-icon.png"/> <link rel="icon" href="/favicon.ico"/> <title>What is Marlin? | Marlin Firmware</title> <meta name="generator" content="Jekyll v3.10.0"/> <meta property="og:title" content="What is Marlin?"/> <meta name="author" content="jbrazio"/> <meta property="og:locale" content="en_US"/> <meta name="description" content="A brief introduction to Marlin"/> <meta property="og:description" content="A brief introduction to Marlin"/> <link rel="canonical" href="https://marlinfw.org/docs/basics/introduction.html"/> <meta property="og:url" content="https://marlinfw.org/docs/basics/introduction.html"/> <meta property="og:site_name" content="Marlin Firmware"/> <meta property="og:type" content="article"/> <meta property="article:published_time" content="2026-09-24T22:11:01-05:00"/> <meta name="twitter:card" content="summary"/> <meta property="twitter:title" content="What is Marlin?"/> <meta name="twitter:site" content="@MarlinFirmware"/> <meta name="twitter:creator" content="@jbrazio"/>
1<script type="application/ld+json"> 2{"@context":"https://schema.org","@type":"BlogPosting","author":{"@type":"Person","name":"jbrazio"},"dateModified":"2026-09-24T22:11:01-05:00","datePublished":"2026-09-24T22:11:01-05:00","description":"A brief introduction to Marlin","headline":"What is Marlin?","mainEntityOfPage":{"@type":"WebPage","@id":"https://marlinfw.org/docs/basics/introduction.html"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://marlinfw.org/assets/images/logo/marlin/small.png"},"name":"jbrazio"},"url":"https://marlinfw.org/docs/basics/introduction.html"}</script>
2 <link rel="stylesheet" href="/assets/stylesheets/fontawesome.min.css"/> <link rel="stylesheet" href="/assets/stylesheets/solid.min.css"/> <link rel="stylesheet" href="/assets/stylesheets/brands.min.css"/> <link rel="stylesheet" href="/assets/stylesheets/main.css"/> <meta id="theme-color" name="theme-color" content="#004466"/> <meta id="tile-color" name="msapplication-TileColor" content="#004466"/> <!--[if lt IE 9]>
2<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
2
2<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
2<![endif]-->
2<script src="/assets/javascript/head.min.js"></script>
2
2<script type="text/javascript"> 3 4 /** 5 * As Github pages do not support https for custom domains 6 * this is the current best workaround for #18. 7 */ 8 var domains = [ 'marlinfw.org', 'localhost', '127.0.0.1' ]; 9 var pathname = location.pathname.replace(/^\/MarlinDocumentation/, '') 10 if (domains.indexOf(window.location.hostname) == -1) 11 window.top.location.href = 'https://marlinfw.org' + pathname; 12 13 /** 14 * Another ugly workaround trying to improve UX reported by #35 15 */ 16 if (location.protocol != 'https:' && window.location.hostname == 'marlinfw.org') 17 location.href = 'https:' + window.location.href.substring(window.location.protocol.length); 18 19 /** 20 * Improves overall speed by loading javascript and css resources in parallel 21 * with the main page. 22 */ 23 head.load( 24 "/assets/javascript/jquery-2.2.1.min.js", 25 "/assets/javascript/jquery-ui.min.js", 26 "/assets/javascript/bootstrap.min.js", 27 "/assets/javascript/tocify.min.js", 28 "/assets/javascript/search.js", 29 "/assets/javascript/custom.js", 30 31 "/assets/javascript/sheetrock.min.js", 32 "/assets/javascript/cookieconsent.min.js" 33 ); 34 35 head.ready(function() { 36 window.cookieconsent_options = { 37 "message":"We use cookies to ensure you get the best experience on our website", 38 "dismiss": "Got it!", "learnMore": "More info", "link":"", "theme": "dark-bottom" 39 }; 40 }); 41 </script>
41 </head> <body role="document"><a href="https://marlinfw.org/cdn-cgi/content?id=x7Ovduh4j6iPu4iKg6_wmam75JjLpo69T_tpu6BqqmQ-1790308235.9151385-1.2.1.1-Ib1JIYOSkfG_JNnqSDXDvFehMagl4OI4WMoGaBPUUVc64jv1tbW3VZdVJXyo_Dup" aria-hidden="true" rel="nofollow noopener" style="display: none !important; visibility: hidden !important"></a> <nav class="navbar navbar-default navbar-fixed-top custom-no-margin"> <div class="container"> <div class="navbar-header"> <a href="/" class="navbar-brand"><svg id="mflogo" height="95%" version="1.1" viewbox="0 0 828.26325 270.80054"> <g id="g981"> <path d="M 69.48788,0 C 31.1751,0 0,32.61059 0,72.74045 V 198.055 c 0,40.12987 31.17607,72.74553 69.48788,72.74553 H 758.7735 c 38.3127,0 69.4898,-32.61566 69.4898,-72.74553 V 5.84382 c -0.019,-3.60102 -2,-5.68155 -6.9765,-5.84159 H 220.29327 Z m 0,21.01625 H 682.6259 c 8.157,0.43104 14.4593,1.90061 18.9474,6.50681 7.8555,8.06197 84.9293,82.07514 102.73,100.35813 1.8839,1.93509 3.8964,6.37495 3.8964,11.50813 v 58.66132 c 0,28.84892 -21.8776,51.7242 -49.4209,51.7242 H 69.4932 c -27.54239,0 -49.42089,-22.87528 -49.42089,-51.7242 V 72.73609 c 0,-0.90162 0.0193,-1.79645 0.0619,-2.6858 1.30928,-27.57002 22.67685,-49.0386 49.35799,-49.0386 z" fill="#0000ff" id="path957" style="fill-opacity:1;stroke:none;stroke-width:0.999984" class="logo"></path> <path d="m 539.5917,36.40978 -0.068,135.74053 c 0,17.73633 5.7753,32.12681 17.3285,43.16739 11.7332,11.22111 26.2205,18.88542 44.6327,18.88542 1.6257,0 4.7893,-0.14503 4.7893,-0.14503 v -30.53858 c -1.4629,0.1785 -2.9571,-0.0101 -4.5172,-0.0101 -9.3867,0 -16.3858,-3.57688 -22.162,-9.36867 -5.7765,-5.79149 -8.6669,-13.38947 -8.6617,-22.80124 l 0.068,-134.92917 z" fill="#0000ff" id="path965" style="fill-opacity:1;stroke:none;stroke-width:0.999984" class="logo"></path> <path d="m 48.89544,88.53966 c 0,-15.02233 5.05444,-27.69172 15.1637,-38.00816 10.10849,-10.31644 22.56459,-15.47466 37.36638,-15.47466 6.85957,0 12.81609,0.99594 17.8713,2.98631 5.23501,1.6288 9.65764,3.80061 13.268,6.51552 3.24931,1.99088 6.40833,4.52476 9.47717,7.60143 l 5.957,5.70143 c 1.26361,-1.62891 2.34665,-2.89595 3.24921,-3.80092 1.08314,-1.086 2.07599,-1.99087 2.97855,-2.71481 1.62466,-1.6289 5.77653,-4.70578 12.45611,-9.23064 6.67909,-4.70548 15.8856,-7.05832 27.61884,-7.05832 14.44084,0 26.89694,5.15812 37.36638,15.47466 10.4704,10.31644 15.70464,22.98583 15.70464,38.00816 V 234.05708 H 212.17203 V 90.71005 c 0,-6.3347 -2.52722,-11.94525 -7.58166,-16.83268 -4.87396,-4.88662 -10.6504,-7.32972 -17.32939,-7.32972 -6.49862,0 -11.9142,2.26207 -16.24655,6.78662 -4.33235,4.34371 -6.49852,10.13551 -6.49852,17.37527 V 234.05657 H 129.58617 V 90.70954 c 0,-5.97283 -2.16617,-11.49291 -6.49862,-16.56087 -4.33235,-5.06765 -9.47707,-7.60143 -15.43369,-7.60143 -5.95661,0 -11.46325,2.53378 -16.5175,7.60143 -4.69339,5.06735 -7.04013,10.58825 -7.04013,16.56087 V 234.05657 H 56.2045 c -4.86419,0 -7.30897,-2.56065 -7.30897,-7.68216 z" fill="#0000ff" id="path971" style="fill-opacity:1;stroke:none;stroke-width:0.999984" class="logo"></path> <path d="m 325.92573,233.97594 c -14.76501,0.48682 -35.97484,-4.07232 -49.33284,-17.10347 -13.35799,-13.21198 -20.03699,-29.59131 -20.03699,-49.13799 0,-19.90874 6.85957,-36.74041 20.5789,-50.49499 13.71933,-13.75458 30.5074,-20.63288 50.36439,-20.63288 19.857,0 36.19355,6.87749 49.00963,20.63288 12.81706,
4113.75458 19.2251,31.67347 19.2251,53.75362 v 62.98384 h -31.68024 v -61.89764 c 0,-13.39352 -3.42988,-24.07203 -10.28944,-32.03452 -6.85967,-8.14463 -15.9756,-12.21705 -27.34789,-12.21705 -10.28945,0 -19.1351,3.80082 -26.536,11.40265 -7.40118,7.60153 -11.10134,16.55986 -11.10134,26.8763 0,11.04058 3.88112,20.36108 11.64325,27.96251 7.9427,7.60143 19.68959,9.79078 29.32391,9.40397 h 21.93269 v 30.53857 z" fill="#0000ff" id="path969" style="fill-opacity:1;stroke:none;stroke-width:0.999984" class="logo"></path> <path d="m 467.4988,98.58024 c -18.4123,0 -33.485,5.60873 -45.2182,16.82963 -11.5533,11.04059 -17.32847,25.43006 -17.32847,43.16639 v 75.47169 h 31.40927 v -74.65831 c 0,-9.41137 2.8852,-17.01117 8.6617,-22.80327 5.7765,-5.79179 13.3609,-8.68875 22.7475,-8.68875 9.0258,0 16.4265,2.98682 22.2036,8.95975 5.9571,5.97231 8.934,13.48176 8.934,22.53146 l -0.1529,1.81451 h 31.4092 l 0.1529,-2.62779 c 1.04,-17.88441 -5.8668,-32.39761 -17.6003,-43.43718 -11.7332,-11.04058 -26.806,-16.55884 -45.2182,-16.55884 z" fill="#0000ff" id="path967" style="fill-opacity:1;stroke:none;stroke-width:0.999984" class="logo"></path> <path d="m 656.9725,158.62088 c 0,-17.73633 5.7765,-32.1258 17.3294,-43.16537 11.7332,-11.22111 26.8069,-16.83166 45.2192,-16.83166 18.4122,0 33.4859,5.52009 45.2191,16.55986 11.7333,11.04058 17.6004,25.5193 17.6004,43.43717 v 67.58629 c -0.039,5.32475 -2.4795,7.8854 -7.4874,7.8854 h -23.9223 v -74.65729 c 0,-9.0493 -2.9785,-16.55986 -8.9355,-22.53248 -5.7766,-5.97262 -13.178,-8.95893 -22.2037,-8.95893 -9.3869,0 -16.9684,2.89564 -22.7446,8.68723 -5.7765,5.79179 -8.6648,13.39352 -8.6648,22.80428 v 74.65729 h -31.4092 z" fill="#0000ff" id="path959" style="fill-opacity:1;stroke:none;stroke-width:0.999984" class="logo"></path> <path d="m 616.136,92.69788 h 31.6802 l 10e-5,-15.49698 v -4.28763 c 0,-8.585 -6.4197,-15.49596 -14.3934,-15.49596 h -2.8932 c -7.9741,0 -14.3934,6.91137 -14.3934,15.49596 v 4.28763 z" color="#000000" color-rendering="auto" enable-background="accumulate" fill="#0000ff" fill-rule="evenodd" image-rendering="auto" shape-rendering="auto" solid-color="#000000" style="fill-opacity:1;stroke:none;stroke-width:0.999984" id="path961" class="logo"></path> <path d="m 616.136,100.71006 h 31.6802 V 234.00637 H 616.136 Z" color="#000000" color-rendering="auto" enable-background="accumulate" fill="#0000ff" fill-rule="evenodd" image-rendering="auto" shape-rendering="auto" solid-color="#000000" style="fill-opacity:1;stroke:none;stroke-width:0.999984" id="path963" class="logo"></path> </g> </svg> </a> <button class="navbar-toggle" type="button" data-toggle="collapse" data-target="#navbar-main"> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> </div> <div class="navbar-collapse collapse" id="navbar-main"> <ul class="nav navbar-nav"> <li id="top-intro"><a href="/docs/basics/introduction.html">About Marlin</a></li> <li id="top-download"><a href="/meta/download/">Download</a></li> <li id="top-config"><a href="/docs/configuration/configuration.html">Configure</a></li> <li id="top-install"><a href="/docs/basics/install.html">Install</a></li> <li id="top-tools" class="dropdown"> <a class="dropdown-toggle" data-toggle="dropdown" href="#" id="navbar-tools">Tools <span class="caret"></span></a> <ul class="dropdown-menu"> <li><a href="/tools/u8glib/converter.html">Bitmap Converter</a></li> <li><a href="/tools/rgb565/converter.html">RGB565 Converter</a></li> <li><a href="/tools/lin_advance/k-factor.html">Calibrate Linear Advance</a></li> <li><a href="/tools/input_shaping/freq-calibr.html">Calibrate Input Shaping</a></li> <li class="divider"> <li><a href="//github.com/MarlinFirmware/Marlin/issues">Bugtracker</a></li> <li><a href="/docs/basics/reporting_bugs.html">Reporting bugs</a></li> <li class="divider"> <li><a href="//github.com/MarlinFirmware/Marlin">Source Code Repository</a></li> </ul> </li> <li id="top-help" class="dropdown"> <a class="dropdown-toggle" data-toggle="dropdown" href="#" id="navbar-documentation">Docs <span class="caret"></span></a> <ul class="dropdown-menu"> <li class="dropdown-submenu configuration"> <a href="#" class="dropdown-toggle" data-toggle="dropdown">Configuration</a> <ul class="dropdown-menu"> <li><a href="/meta/configuration/">All documents</a></li> <li class="divider"> <li><a href="/docs/configuration/1.1/laser_spindle.html">Laser/Spindle Configuration (1.1.x)</a></li> <li><a href="/docs/configuration/2.0.9/laser_spindle.html">Laser/Spindle Configuration (2.0.9.x)</a></li> <li><a href="/docs/configuration/boot_status_screen.html">Boot and Status screens</a></li> <li><a href="/docs/configuration/config-ini.html">Configuring with INI</a></li> <li><a href="/docs/configuration/configuration.html">Configuring Marlin</a></li> <li><a href="/docs/configuration/probes.html">Probe Configuration</a></li> </ul> </li> <li class="dropdown-submenu development"> <a href="#" class="dropdown-toggle" data-toggle="dropdown">Developer Guide</a> <ul class="dropdown-menu"> <li><a href="/meta/development/">All documents</a></li> <li class="divider"> <li><a href="/docs/development/boards.html">Boards</a></li> <li class="divider"> <li><a href="/docs/development/code_structure.html">Code Structure</a></li> <li><a href="/docs/development/coding_standards.html">Coding Standards</a></li> <li><a href="/docs/development/fastio.html">FastIO</a></li> <li><a href="/docs/development/hal.html">Hardware Abstraction Layer</a></li> <li class="divider"> <li><a href="/docs/development/contributing.html">Contributing to Marlin</a></li> <li class="divider"> <li><a href="/docs/development/feature_request.html">Feature requests</a></li> <li><a href="/docs/development/getting_started_pull_requests.html">Contributing Code with Pull Requests</a></li> <li><a href="/docs/development/git_scripts.html">Marlin Github Scripts</a></li> <li class="divider"> <li><a href="/docs/development/fonts.html">Adding new fonts</a></li> <li><a href="/docs/development/lcd_language.html">LCD Language System</a></li> </ul> </li> <li class="dropdown-submenu features"> <a href="#" class="dropdown-toggle" data-toggle="dropdown">Features</a> <ul class="dropdown-menu"> <li><a href="/meta/features/">All documents</a></li> <li class="divider"> <li><a href="/docs/features/auto_bed_leveling.html">Automatic Bed Leveling</a></li> <li><a href="/docs/features/unified_bed_leveling.html">Unified Bed Leveling</a></li> <li class="divider"> <li><a href="/docs/features/autostart.html">Autostart</a></li> <li class="divider"> <li><a href="/docs/features/eeprom.html">EEPROM</a></li> <li class="divider"> <li><a href="/docs/features/ft_motion.html">Fixed Time Motion</a></li> <li><a href="/docs/features/fwretract.html">Firmware Retract</a></li> <li><a href="/docs/features/input_shaping.html">Input Shaping</a></li> <li><a href="/docs/features/lin_advance.html">Linear Advance</a></li> <li><a href="/docs/features/model_predictive_control.html">Model Predictive Temperature Control</a></li> <li><a href="/docs/features/probe_temp_compensation.html">Probe Temperature Compensation</a></li> <li class="divider"> <li><a href="/docs/features/lcd_menu.html">LCD Menu Tree</a></li> <li class="divider"> <li><a href="/docs/features/runout_sensor.html">Filament Runout Sensor</a></li> </ul> </li> <li class="dropdown-submenu gcode"> <a href="#" class="dropdown-toggle" data-toggle="dropdown">G-code</a> <ul class="dropdown-menu"> <li><a href="/meta/gcode/">All documents</a></li> <li class="divider"> <li><a href="/docs/gcode/G000-G001.html"><strong>G0-G1</strong>: Linear Move</a></li> <li><a href="/docs/gcode/G002-G003.html"><strong>G2-G3</strong>: Arc or Circle Move</a></li> <li><a href="/docs/gcode/G004.html"><strong>G4</strong>: Dwell</a></li> <li><a href="/docs/gcode/G005.html"><strong>G5</strong>: Bézier Cubic Spline Move</a></li> <li><a href="/docs/gcode/G006.html"><strong>G6</strong>: Direct Stepper Move</a></li> <li><a href="/docs/gcode/G010.html"><strong>G10</strong>: Retract</a></li> <li><a href="/docs/gcode/G011.html"><strong>G11</strong>: Recover</a></li> <li><a href="/docs/gcode/G012.html"><strong>
41G12</strong>: Clean the Nozzle</a></li> <li><a href="/docs/gcode/G017-G019.html"><strong>G17-G19</strong>: CNC Workspace Planes</a></li> <li><a href="/docs/gcode/G020.html"><strong>G20</strong>: Inch Units</a></li> <li><a href="/docs/gcode/G021.html"><strong>G21</strong>: Millimeter Units</a></li> <li><a href="/docs/gcode/G026.html"><strong>G26</strong>: Mesh Validation Pattern</a></li> <li><a href="/docs/gcode/G027.html"><strong>G27</strong>: Park toolhead</a></li> <li><a href="/docs/gcode/G028.html"><strong>G28</strong>: Auto Home</a></li> <li><a href="/docs/gcode/G029.html"><strong>G29</strong>: Bed Leveling</a></li> <li><a href="/docs/gcode/G029-abl-3point.html"><strong>G29</strong>: Bed Leveling (3-Point)</a></li> <li><a href="/docs/gcode/G029-abl-linear.html"><strong>G29</strong>: Bed Leveling (Linear)</a></li> <li><a href="/docs/gcode/G029-mbl.html"><strong>G29</strong>: Bed Leveling (Manual)</a></li> <li><a href="/docs/gcode/G029-abl-bilinear.html"><strong>G29</strong>: Bed Leveling (Bilinear)</a></li> <li><a href="/docs/gcode/G029-ubl.html"><strong>G29</strong>: Bed Leveling (Unified)</a></li> <li><a href="/docs/gcode/G030.html"><strong>G30</strong>: Single Z-Probe</a></li> <li><a href="/docs/gcode/G031.html"><strong>G31</strong>: Dock Sled</a></li> <li><a href="/docs/gcode/G032.html"><strong>G32</strong>: Undock Sled</a></li> <li><a href="/docs/gcode/G033.html"><strong>G33</strong>: Delta Auto Calibration</a></li> <li><a href="/docs/gcode/G034-zsaa.html"><strong>G34</strong>: Z Steppers Auto-Alignment</a></li> <li><a href="/docs/gcode/G034-mgc.html"><strong>G34</strong>: Mechanical Gantry Calibration</a></li> <li><a href="/docs/gcode/G035.html"><strong>G35</strong>: Tramming Assistant</a></li> <li><a href="/docs/gcode/G038.html"><strong>G38.2-G38.5</strong>: Probe target</a></li> <li><a href="/docs/gcode/G042.html"><strong>G42</strong>: Move to mesh coordinate</a></li> <li><a href="/docs/gcode/G053.html"><strong>G53</strong>: Move in Machine Coordinates</a></li> <li><a href="/docs/gcode/G054-G059.html"><strong>G54-G59.3</strong>: Select Workspace</a></li> <li><a href="/docs/gcode/G060.html"><strong>G60</strong>: Stored Positions</a></li> <li><a href="/docs/gcode/G061.html"><strong>G61</strong>: Return to Saved Position</a></li> <li><a href="/docs/gcode/G076.html"><strong>G76</strong>: Probe temperature calibration</a></li> <li><a href="/docs/gcode/G080.html"><strong>G80</strong>: Cancel Current Motion Mode</a></li> <li><a href="/docs/gcode/G090.html"><strong>G90</strong>: Absolute Positioning</a></li> <li><a href="/docs/gcode/G091.html"><strong>G91</strong>: Relative Positioning</a></li> <li><a href="/docs/gcode/G092.html"><strong>G92</strong>: Set Position</a></li> <li><a href="/docs/gcode/G425.html"><strong>G425</strong>: Backlash and Toolhead Offset Calibration</a></li> <li><a href="/docs/gcode/M000-M001.html"><strong>M0-M1</strong>: Unconditional stop</a></li> <li><a href="/docs/gcode/M003.html"><strong>M3</strong>: Spindle CW / Laser On</a></li> <li><a href="/docs/gcode/M004.html"><strong>M4</strong>: Spindle CCW / Laser On</a></li> <li><a href="/docs/gcode/M005.html"><strong>M5</strong>: Spindle / Laser Off</a></li> <li><a href="/docs/gcode/M007-M009.html"><strong>M7-M9</strong>: Coolant Controls</a></li> <li><a href="/docs/gcode/M010-M011.html"><strong>M10-M11</strong>: Vacuum / Blower Control</a></li> <li><a href="/docs/gcode/M016.html"><strong>M16</strong>: Expected Printer Check</a></li> <li><a href="/docs/gcode/M017.html"><strong>M17</strong>: Enable Steppers</a></li> <li><a href="/docs/gcode/M018.html"><strong>M18, M84</strong>: Disable steppers</a></li> <li><a href="/docs/gcode/M020.html"><strong>M20</strong>: List SD Card</a></li> <li><a href="/docs/gcode/M021.html"><strong>M21</strong>: Init SD card</a></li> <li><a href="/docs/gcode/M022.html"><strong>M22</strong>: Release SD card</a></li> <li><a href="/docs/gcode/M023.html"><strong>M23</strong>: Select SD file</a></li> <li><a href="/docs/gcode/M024.html"><strong>M24</strong>: Start or Resume SD print</a></li> <li><a href="/docs/gcode/M025.html"><strong>M25</strong>: Pause SD print</a></li> <li><a href="/docs/gcode/M026.html"><strong>M26</strong>: Set SD position</a></li> <li><a href="/docs/gcode/M027.html"><strong>M27</strong>: Report SD print status</a></li> <li><a href="/docs/gcode/M028.html"><strong>M28</strong>: Start SD write</a></li> <li><a href="/docs/gcode/M029.html"><strong>M29</strong>: Stop SD write</a></li> <li><a href="/docs/gcode/M030.html"><strong>M30</strong>
41: Delete SD file</a></li> <li><a href="/docs/gcode/M031.html"><strong>M31</strong>: Report Print Time</a></li> <li><a href="/docs/gcode/M032.html"><strong>M32</strong>: Select and Start</a></li> <li><a href="/docs/gcode/M033.html"><strong>M33</strong>: Get Long Path</a></li> <li><a href="/docs/gcode/M034.html"><strong>M34</strong>: SDCard Sorting</a></li> <li><a href="/docs/gcode/M042.html"><strong>M42</strong>: Set Pin State</a></li> <li><a href="/docs/gcode/M043.html"><strong>M43</strong>: Pins Debugging</a></li> <li><a href="/docs/gcode/M043-T.html"><strong>M43 T</strong>: Toggle Pins</a></li> <li><a href="/docs/gcode/M048.html"><strong>M48</strong>: Probe Repeatability Test</a></li> <li><a href="/docs/gcode/M073.html"><strong>M73</strong>: Set Print Progress</a></li> <li><a href="/docs/gcode/M075.html"><strong>M75</strong>: Start Print Job Timer</a></li> <li><a href="/docs/gcode/M076.html"><strong>M76</strong>: Pause Print Job Timer</a></li> <li><a href="/docs/gcode/M077.html"><strong>M77</strong>: Stop Print Job Timer</a></li> <li><a href="/docs/gcode/M078.html"><strong>M78</strong>: Print Job Stats</a></li> <li><a href="/docs/gcode/M080.html"><strong>M80</strong>: Power On</a></li> <li><a href="/docs/gcode/M081.html"><strong>M81</strong>: Power Off</a></li> <li><a href="/docs/gcode/M082.html"><strong>M82</strong>: E Absolute</a></li> <li><a href="/docs/gcode/M083.html"><strong>M83</strong>: E Relative</a></li> <li><a href="/docs/gcode/M085.html"><strong>M85</strong>: Inactivity Shutdown</a></li> <li><a href="/docs/gcode/M086.html"><strong>M86</strong>: Hotend Idle Timeout</a></li> <li><a href="/docs/gcode/M087.html"><strong>M87</strong>: Disable Hotend Idle Timeout</a></li> <li><a href="/docs/gcode/M092.html"><strong>M92</strong>: Set Axis Steps-per-unit</a></li> <li><a href="/docs/gcode/M100.html"><strong>M100</strong>: Free Memory</a></li> <li><a href="/docs/gcode/M102.html"><strong>M102</strong>: Configure Bed Distance Sensor</a></li> <li><a href="/docs/gcode/M104.html"><strong>M104</strong>: Set Hotend Temperature</a></li> <li><a href="/docs/gcode/M105.html"><strong>M105</strong>: Report Temperatures</a></li> <li><a href="/docs/gcode/M106.html"><strong>M106</strong>: Set Fan Speed</a></li> <li><a href="/docs/gcode/M107.html"><strong>M107</strong>: Fan Off</a></li> <li><a href="/docs/gcode/M108.html"><strong>M108</strong>: Break and Continue</a></li> <li><a href="/docs/gcode/M109.html"><strong>M109</strong>: Wait for Hotend Temperature</a></li> <li><a href="/docs/gcode/M110.html"><strong>M110</strong>: Set / Get Line Number</a></li> <li><a href="/docs/gcode/M111.html"><strong>M111</strong>: Debug Level</a></li> <li><a href="/docs/gcode/M112.html"><strong>M112</strong>: Full Shutdown</a></li> <li><a href="/docs/gcode/M113.html"><strong>M113</strong>: Host Keepalive</a></li> <li><a href="/docs/gcode/M114.html"><strong>M114</strong>: Get Current Position</a></li> <li><a href="/docs/gcode/M115.html"><strong>M115</strong>: Firmware Info</a></li> <li><a href="/docs/gcode/M117.html"><strong>M117</strong>: Set LCD Message</a></li> <li><a href="/docs/gcode/M118.html"><strong>M118</strong>: Serial print</a></li> <li><a href="/docs/gcode/M119.html"><strong>M119</strong>: Endstop States</a></li> <li><a href="/docs/gcode/M120.html"><strong>M120</strong>: Enable Endstops</a></li> <li><a href="/docs/gcode/M121.html"><strong>M121</strong>: Disable Endstops</a></li> <li><a href="/docs/gcode/M122.html"><strong>M122</strong>: TMC Debugging</a></li> <li><a href="/docs/gcode/M123.html"><strong>M123</strong>: Fan Tachometers</a></li> <li><a href="/docs/gcode/M125.html"><strong>M125</strong>: Park Head</a></li> <li><a href="/docs/gcode/M126.html"><strong>M126</strong>: Baricuda 1 Open</a></li> <li><a href="/docs/gcode/M127.html"><strong>M127</strong>: Baricuda 1 Close</a></li> <li><a href="/docs/gcode/M128.html"><strong>M128</strong>: Baricuda 2 Open</a></li> <li><a href="/docs/gcode/M129.html"><strong>M129</strong>: Baricuda 2 Close</a></li> <li><a href="/docs/gcode/M140.html"><strong>M140</strong>: Set Bed Temperature</a></li> <li><a href="/docs/gcode/M141.html"><strong>M141</strong>: Set Chamber Temperature</a></li> <li><a href="/docs/gcode/M143.html"><strong>M143</strong>: Set Laser Cooler Temperature</a></li> <li><a href="/docs/gcode/M145.html"><strong>M145</strong>: Set Material Preset</a></li> <li><a href="/docs/gcode/M149.html"><strong>M149</strong>: Set Temperature Units</a></li> <li><a href="/docs/gcode/M150.html"><strong>M150</strong>: Set RGB(W) Color</a></li> <li><a href="/docs/gcode/M154.html"><strong>M154</strong>: Position Auto-Report</a></li> <li><a href="/docs/gcode/M155.html"><strong>M155</strong>: Temperature Auto-Report</a></li> <li><a href="/docs/gcode/M163.html"><strong>M163</strong>: Set Mix Factor</a></li> <li><a href="/docs/gcode/M164.html"><strong>M164</strong>: Save Mix</a></li> <li><a href="/docs/gcode/M165.html"><strong>M165</strong>: Set Mix</a></li> <li><a href="/docs/gcode/M166.html"><strong>M166</strong>: Gradient Mix</a></li> <li><a href="/docs/gcode/M190.html"><strong>M190</strong>: Wait for Bed Temperature</a></li> <li><a href="/docs/gcode/M191.html"><strong>M191</strong>: Wait for Chamber Temperature</a></li> <li><a href="/docs/gcode/M192.html"><strong>M192</strong>: Wait for Probe temperature</a></li> <li><a href="/docs/gcode/M193.html"><strong>M193</strong>: Wait For Laser Cooler Temperature</a></li> <li><a href="/docs/gcode/M200.html"><strong>M200</strong>: Volumetric Extrusion Diameter</a></li> <li><a href="/docs/gcode/M201.html"><strong>M201</strong>: Print / Travel Move Limits</a></li> <li><a href="/docs/gcode/M203.html"><strong>M203</strong>: Set Max Feedrate</a></li> <li><a href="/docs/gcode/M204.html"><strong>M204</strong>: Set Starting Acceleration</a></li> <li><a href="/docs/gcode/M205.html"><strong>M205</strong>: Set Advanced Settings</a></li> <li><a href="/docs/gcode/M206.html"><strong>M206</strong>: Set Home Offsets</a></li> <li><a href="/docs/gcode/M207.html"><strong>M207</strong>: Firmware Retraction Settings</a></li> <li><a href="/docs/gcode/M208.html"><strong>M208</strong>: Firmware Recover Settings</a></li> <li><a href="/docs/gcode/M209.html"><strong>M209</strong>: Set Auto Retract</a></li> <li><a href="/docs/gcode/M210.html"><strong>M210</strong>: Homing Feedrate</a></li> <li><a href="/docs/gcode/M211.html"><strong>M211</strong>: Software Endstops</a></li> <li><a href="/docs/gcode/M217.html"><strong>M217</strong>: Filament swap parameters</a></li> <li><a href="/docs/gcode/M218.html"><strong>M218</strong>: Set Hotend Offset</a></li> <li><a href="/docs/gcode/M220.html"><strong>M220</strong>: Set Feedrate Percentage</a></li> <li><a href="/docs/gcode/M221.html"><strong>M221</strong>: Set Flow Percentage</a></li> <li><a href="/docs/gcode/M226.html"><strong>M226</strong>: Wait for Pin State</a></li> <li><a href="/docs/gcode/M240.html"><strong>M240</strong>: Trigger Camera</a></li> <li><a href="/docs/gcode/M250.html"><strong>M250</strong>: LCD Contrast</a></li> <li><a href="/docs/gcode/M255.html"><strong>M255</strong>: LCD Sleep/Backlight Timeout</a></li> <li><a href="/docs/gcode/M256.html"><strong>M256</strong>: LCD Brightness</a></li> <li><a href="/docs/gcode/M260.html"><strong>M260</strong>: I2C Send</a></li> <li><a href="/docs/gcode/M261.html"><strong>M261</strong>: I2C Request</a></li> <li><a href="/docs/gcode/M265.html"><strong>M265</strong>: Scan I2C Bus</a></li> <li><a href="/docs/gcode/M280.html"><strong>M280</strong>: Servo Position</a></li> <li><a href="/docs/gcode/M281.html"><strong>M281</strong>: Edit Servo Angles</a></li> <li><a href="/docs/gcode/M282.html"><strong>M282</strong>: Detach Servo</a></li> <li><a href="/docs/gcode/M290.html"><strong>M290</strong>: Babystep</a></li> <li><a href="/docs/gcode/M300.html"><strong>M300</strong>: Play Tone</a></li> <li><a href="/docs/gcode/M301.html"><strong>M301</strong>: Set Hotend PID</a></li> <li><a href="/docs/gcode/M302.html"><strong>M302</strong>: Cold Extrude</a></li> <li><a href="/docs/gcode/M303.html"><strong>M303</strong>: PID autotune</a></li> <li><a href="/docs/gcode/M304.html"><strong>M304</strong>: Set Bed PID</a></li> <li><a href="/docs/gcode/M305.html"><strong>M305</strong>: User Thermistor Parameters</a></li> <li><a href="/docs/gcode/M306.html"><strong>M306</strong>
41: Model Predictive Temp. Control</a></li> <li><a href="/docs/gcode/M309.html"><strong>M309</strong>: Set Chamber PID</a></li> <li><a href="/docs/gcode/M350.html"><strong>M350</strong>: Set micro-stepping</a></li> <li><a href="/docs/gcode/M351.html"><strong>M351</strong>: Set Microstep Pins</a></li> <li><a href="/docs/gcode/M355.html"><strong>M355</strong>: Case Light Control</a></li> <li><a href="/docs/gcode/M360.html"><strong>M360</strong>: SCARA Theta A</a></li> <li><a href="/docs/gcode/M361.html"><strong>M361</strong>: SCARA Theta-B</a></li> <li><a href="/docs/gcode/M362.html"><strong>M362</strong>: SCARA Psi-A</a></li> <li><a href="/docs/gcode/M363.html"><strong>M363</strong>: SCARA Psi-B</a></li> <li><a href="/docs/gcode/M364.html"><strong>M364</strong>: SCARA Psi-C</a></li> <li><a href="/docs/gcode/M380.html"><strong>M380</strong>: Activate Solenoid</a></li> <li><a href="/docs/gcode/M381.html"><strong>M381</strong>: Deactivate Solenoids</a></li> <li><a href="/docs/gcode/M400.html"><strong>M400</strong>: Finish Moves</a></li> <li><a href="/docs/gcode/M401.html"><strong>M401</strong>: Deploy Probe</a></li> <li><a href="/docs/gcode/M402.html"><strong>M402</strong>: Stow Probe</a></li> <li><a href="/docs/gcode/M403.html"><strong>M403</strong>: MMU2 Filament Type</a></li> <li><a href="/docs/gcode/M404.html"><strong>M404</strong>: Filament Width Sensor Nominal Diameter</a></li> <li><a href="/docs/gcode/M405.html"><strong>M405</strong>: Filament Width Sensor On</a></li> <li><a href="/docs/gcode/M406.html"><strong>M406</strong>: Filament Width Sensor Off</a></li> <li><a href="/docs/gcode/M407.html"><strong>M407</strong>: Read Filament Width</a></li> <li><a href="/docs/gcode/M410.html"><strong>M410</strong>: Quickstop</a></li> <li><a href="/docs/gcode/M412.html"><strong>M412</strong>: Filament Runout</a></li> <li><a href="/docs/gcode/M413.html"><strong>M413</strong>: Power-loss Recovery</a></li> <li><a href="/docs/gcode/M414.html"><strong>M414</strong>: LCD language</a></li> <li><a href="/docs/gcode/M420.html"><strong>M420</strong>: Bed Leveling State</a></li> <li><a href="/docs/gcode/M421.html"><strong>M421</strong>: Set Mesh Value</a></li> <li><a href="/docs/gcode/M422.html"><strong>M422</strong>: Set Z Motor XY</a></li> <li><a href="/docs/gcode/M423.html"><strong>M423</strong>: X Twist Compensation</a></li> <li><a href="/docs/gcode/M425.html"><strong>M425</strong>: Backlash compensation</a></li> <li><a href="/docs/gcode/M428.html"><strong>M428</strong>: Home Offsets Here</a></li> <li><a href="/docs/gcode/M430.html"><strong>M430</strong>: Power Monitor</a></li> <li><a href="/docs/gcode/M486.html"><strong>M486</strong>: Cancel Objects</a></li> <li><a href="/docs/gcode/M493.html"><strong>M493</strong>: Fixed-Time Motion</a></li> <li><a href="/docs/gcode/M494.html"><strong>M494</strong>: FT Motion Trajectory Smoothing</a></li> <li><a href="/docs/gcode/M500.html"><strong>M500</strong>: Save Settings</a></li> <li><a href="/docs/gcode/M501.html"><strong>M501</strong>: Restore Settings</a></li> <li><a href="/docs/gcode/M502.html"><strong>M502</strong>: Factory Reset</a></li> <li><a href="/docs/gcode/M503.html"><strong>M503</strong>: Report Settings</a></li> <li><a href="/docs/gcode/M504.html"><strong>M504</strong>: Validate EEPROM contents</a></li> <li><a href="/docs/gcode/M510.html"><strong>M510</strong>: Lock Machine</a></li> <li><a href="/docs/gcode/M511.html"><strong>M511</strong>: Unlock Machine</a></li> <li><a href="/docs/gcode/M512.html"><strong>M512</strong>: Set Passcode</a></li> <li><a href="/docs/gcode/M524.html"><strong>M524</strong>: Abort SD print</a></li> <li><a href="/docs/gcode/M540.html"><strong>M540</strong>: Endstops Abort SD</a></li> <li><a href="/docs/gcode/M550.html"><strong>M550</strong>: Machine Name</a></li> <li><a href="/docs/gcode/M552.html"><strong>M552</strong>: Ethernet IP Address, Network IF</a></li> <li><a href="/docs/gcode/M553.html"><strong>M553</strong>: Ethernet Subnet Mask</a></li> <li><a href="/docs/gcode/M554.html"><strong>M554</strong>: Ethernet Gateway IP Address</a></li> <li><a href="/docs/gcode/M569.html"><strong>M569</strong>: Set TMC Stepping Mode</a></li> <li><a href="/docs/gcode/M575.html"><strong>M575</strong>: Serial baud rate</a></li> <li><a href="/docs/gcode/M592.html"><strong>M592</strong>: Nonlinear Extrusion Control</a></li> <li><a href="/docs/gcode/M593.html"><strong>M593</strong>: ZV Input Shaping</a></li> <li><a href="/docs/gcode/M600.html"><strong>M600</strong>: Filament Change</a></li> <li><a href="/docs/gcode/M603.html"><strong>M603</strong>: Configure Filament Change</a></li> <li><a href="/docs/gcode/M605.html"><strong>M605</strong>: Multi Nozzle Mode</a></li> <li><a href="/docs/gcode/M665.html"><strong>M665</strong>: Delta Configuration</a></li> <li><a href="/docs/gcode/M665-scara.html"><strong>M665</strong>
41: SCARA Configuration</a></li> <li><a href="/docs/gcode/M666.html"><strong>M666</strong>: Set Delta endstop adjustments</a></li> <li><a href="/docs/gcode/M666-dual.html"><strong>M666</strong>: Dual endstop offsets</a></li> <li><a href="/docs/gcode/M672.html"><strong>M672</strong>: Duet Smart Effector sensitivity</a></li> <li><a href="/docs/gcode/M701.html"><strong>M701</strong>: Load filament</a></li> <li><a href="/docs/gcode/M702.html"><strong>M702</strong>: Unload filament</a></li> <li><a href="/docs/gcode/M710.html"><strong>M710</strong>: Controller Fan settings</a></li> <li><a href="/docs/gcode/M808.html"><strong>M808</strong>: Repeat Marker</a></li> <li><a href="/docs/gcode/M810-M819.html"><strong>M810-M819</strong>: G-code macros</a></li> <li><a href="/docs/gcode/M820.html"><strong>M820</strong>: Report G-code macros</a></li> <li><a href="/docs/gcode/M851.html"><strong>M851</strong>: XYZ Probe Offset</a></li> <li><a href="/docs/gcode/M852.html"><strong>M852</strong>: Bed Skew Compensation</a></li> <li><a href="/docs/gcode/M860-M869.html"><strong>M860-M869</strong>: I2C Position Encoders</a></li> <li><a href="/docs/gcode/M871.html"><strong>M871</strong>: Probe temperature config</a></li> <li><a href="/docs/gcode/M876.html"><strong>M876</strong>: Handle Prompt Response</a></li> <li><a href="/docs/gcode/M900.html"><strong>M900</strong>: Linear Advance Factor</a></li> <li><a href="/docs/gcode/M906.html"><strong>M906</strong>: Stepper Motor Current</a></li> <li><a href="/docs/gcode/M907.html"><strong>M907</strong>: Trimpot Stepper Motor Current</a></li> <li><a href="/docs/gcode/M908.html"><strong>M908</strong>: Set Trimpot Pins</a></li> <li><a href="/docs/gcode/M909.html"><strong>M909</strong>: Report DAC Stepper Current</a></li> <li><a href="/docs/gcode/M910.html"><strong>M910</strong>: Commit DAC to EEPROM</a></li> <li><a href="/docs/gcode/M911.html"><strong>M911</strong>: TMC OT Pre-Warn Condition</a></li> <li><a href="/docs/gcode/M912.html"><strong>M912</strong>: Clear TMC OT Pre-Warn</a></li> <li><a href="/docs/gcode/M913.html"><strong>M913</strong>: Set Hybrid Threshold Speed</a></li> <li><a href="/docs/gcode/M914.html"><strong>M914</strong>: TMC Bump Sensitivity</a></li> <li><a href="/docs/gcode/M915.html"><strong>M915</strong>: TMC Z axis calibration</a></li> <li><a href="/docs/gcode/M916.html"><strong>M916</strong>: L6474 Thermal Warning Test</a></li> <li><a href="/docs/gcode/M917.html"><strong>M917</strong>: L6474 Overcurrent Warning Test</a></li> <li><a href="/docs/gcode/M918.html"><strong>M918</strong>: L6474 Speed Warning Test</a></li> <li><a href="/docs/gcode/M919.html"><strong>M919</strong>: TMC Chopper Timing</a></li> <li><a href="/docs/gcode/M920.html"><strong>M920</strong>: TMC Homing Current</a></li> <li><a href="/docs/gcode/M928.html"><strong>M928</strong>: Start SD Logging</a></li> <li><a href="/docs/gcode/M951.html"><strong>M951</strong>: Magnetic Parking Extruder</a></li> <li><a href="/docs/gcode/M993.html"><strong>M993</strong>: Back up flash settings to SD</a></li> <li><a href="/docs/gcode/M994.html"><strong>M994</strong>: Restore flash from SD</a></li> <li><a href="/docs/gcode/M995.html"><strong>M995</strong>: Touch Screen Calibration</a></li> <li><a href="/docs/gcode/M997.html"><strong>M997</strong>: Firmware update</a></li> <li><a href="/docs/gcode/M999.html"><strong>M999</strong>: STOP Restart</a></li> <li><a href="/docs/gcode/M7219.html"><strong>M7219</strong>: MAX7219 Control</a></li> <li><a href="/docs/gcode/T.html"><strong>T0-T7</strong>: Select or Report Tool</a></li> <li><a href="/docs/gcode/T-mmu2.html"><strong>T?-Tx</strong>: MMU2 Special Commands</a></li> </ul> </li> <li class="dropdown-submenu hardware"> <a href="#" class="dropdown-toggle" data-toggle="dropdown">Hardware</a> <ul class="dropdown-menu"> <li><a href="/meta/hardware/">All documents</a></li> <li class="divider"> <li><a href="/docs/hardware/boards.html">Boards</a></li> <li><a href="/docs/hardware/controllers.html">Controllers and displays</a></li> <li class="divider"> <li><a href="/docs/hardware/endstops.html">Endstops</a></li> <li><a href="/docs/hardware/tmc_drivers.html">Trinamic drivers</a></li> </ul> </li> <li class="dropdown-submenu setting"> <a href="#" class="dropdown-toggle" data-toggle="dropdown">Settings</a> <ul class="dropdown-menu"> <li><a href="/meta/setting/">All documents</a></li> <li class="divider"> <li><a href="/docs/setting/config_info.html">Configuration Info</a></li> <li><a href="/docs/setting/extruder.html">Extruders</a></li> <li><a href="/docs/setting/geometry.html">Geometry</a></li> <li><a href="/docs/setting/hardware.html">Hardware</a></li> <li><a href="/docs/setting/interface.html">Interface</a></li> <li><a href="/docs/setting/lcd.html">LCD</a></li> <li><a href="/docs/setting/machine_info.html">Machine Info</a></li> <li><a href="/docs/setting/motion.html">Motion</a></li> <li><a href="/docs/setting/serial.html">Serial Ports</a></li> <li><a href="/docs/setting/stepper_drivers.html">Stepper Drivers</a></li> <li><a href="/docs/setting/temp_bed.html">Temperature - Bed</a></li> <li><a href="/docs/setting/temp_chamber.html">Temperature - Chamber</a></li> <li><a href="/docs/setting/temp_hotend.html">Temperature - Hotend</a></li> <li><a href="/docs/setting/temperature.html">Temperature</a></li> </ul> </li> <li><a href="/docs/basics/troubleshooting.html">Troubleshooting</a></li> <li class="divider"> <li><a href="/meta/in-review/">Documentation Needing Review</a></li> </ul> </li> <li id="top-donate"><a href="/docs/development/contributing.html#donate">â¤ï¸ Donate</a></li> <li id="daynite"><img src="/assets/images/btn-night.svg" alt="Dark Mode" width="32" height="32"></li> <li id="searchbox"> <form action="/meta/search/"> <input type="search" name="q" placeholder="Search"> </form> </li> </ul> <ul class="nav navbar-right"> <li class="hidden-sm edit-page"><a href="https://github.com/MarlinFirmware/MarlinDocumentation/edit/master/_basics/introduction.md" data-proofer-ignore><i class="fa fa-pen-to-square" aria-hidden="true"></i> <span>Edit Page</span></a></li> </ul> </div> </div> </nav> <div class="custom-btn"> <div class="row hidden-md hidden-lg hidden-xl"> <a class="btn btn-edit e-btn btn-block btn-lg" href="https://github.com/MarlinFirmware/MarlinDocumentation/edit/master/_basics/introduction.md" data-proofer-ignore role="button"><span class="e-btn-text"><em class="fa fa-pen-to-square" aria-hidden="true"></em> Edit Page</span></a> </div> <div class="row"> <a class="btn btn-learn e-btn btn-block btn-lg" href="/docs/basics/introduction.html" role="button"><span class="e-btn-text"><em class="fa fa-book" aria-hidden="true"></em> Learn more</span></a> </div> <div class="row"> <a class="btn btn-contribute e-btn btn-block btn-lg" href="/docs/development/contributing.html" role="button"><span class="e-btn-text"><em class="fa fa-users" aria-hidden="true"></em>
41Â Contribute</span></a> </div> <div class="row"> <a class="btn btn-download e-btn btn-block btn-lg" href="/meta/download/" role="button"><span class="e-btn-text"><em class="fa fa-download" aria-hidden="true"></em>Â Download</span></a> </div> <div class="row"> <a class="btn btn-follow e-btn btn-block btn-lg" href="//x.com/marlinfirmware" role="button"><span class="e-btn-text"><em class="fa-brands fa-x" aria-hidden="true"></em>Â Follow on X</span></a> </div> <div class="row"> <a class="btn btn-follow e-btn btn-block btn-lg" href="//bsky.app/profile/marlinfw.org" role="button"><span class="e-btn-text"><em class="fa-brands fa-bluesky" aria-hidden="true"></em>Â Follow on Bluesky</span></a> </div> <div class="row"> <a class="btn btn-follow e-btn btn-block btn-lg" href="//fosstodon.org/@marlinfirmware" role="button"><span class="e-btn-text"><em class="fa-brands fa-mastodon" aria-hidden="true"></em>Â Follow on Mastodon</span></a> </div> </div> <div class="container detail" role="main"> <div class="row"> <div class="col-lg-3 col-md-4 visible-lg-block visible-md-block custom-no-padding"> <div class="custom-fixed-sidebar"> <div id="toc"></div> </div> </div> <div class="col-lg-9 col-md-8"> <div class="row"> <div class="col-md-12 custom-article"> <div id="authors"> <a href="//github.com/jbrazio" data-toggle="tooltip" data-placement="bottom" title="Visit jbrazio's profile on Github"><img class="avatar avatar-small" alt="jbrazio" width="30" height="30" data-proofer-ignore="true" src="https://avatars2.githubusercontent.com/jbrazio?v=3&s=30" srcset="https://avatars2.githubusercontent.com/jbrazio?v=3&s=30 1x, https://avatars2.githubusercontent.com/jbrazio?v=3&s=60 2x, https://avatars2.githubusercontent.com/jbrazio?v=3&s=90 3x, https://avatars2.githubusercontent.com/jbrazio?v=3&s=120 4x"></a> <a href="//github.com/shitcreek" data-toggle="tooltip" data-placement="bottom" title="Visit shitcreek's profile on Github"><img class="avatar avatar-small" alt="shitcreek" width="30" height="30" data-proofer-ignore="true" src="https://avatars1.githubusercontent.com/shitcreek?v=3&s=30" srcset="https://avatars1.githubusercontent.com/shitcreek?v=3&s=30 1x, https://avatars1.githubusercontent.com/shitcreek?v=3&s=60 2x, https://avatars1.githubusercontent.com/shitcreek?v=3&s=90 3x, https://avatars1.githubusercontent.com/shitcreek?v=3&s=120 4x"></a> <a href="//github.com/thinkyhead" data-toggle="tooltip" data-placement="bottom" title="Visit thinkyhead's profile on Github"><img class="avatar avatar-small" alt="thinkyhead" width="30" height="30" data-proofer-ignore="true" src="https://avatars1.githubusercontent.com/thinkyhead?v=3&s=30" srcset="https://avatars1.githubusercontent.com/thinkyhead?v=3&s=30 1x, https://avatars1.githubusercontent.com/thinkyhead?v=3&s=60 2x, https://avatars1.githubusercontent.com/thinkyhead?v=3&s=90 3x, https://avatars1.githubusercontent.com/thinkyhead?v=3&s=120 4x"></a> </div> <h1 class="custom-article-header">What is Marlin?</h1> <p><img src="/assets/images/basics/what_is_marlin.png" alt="What is Marlin?"></p> <p>Marlin is an open source <a href="//en.wikipedia.org/wiki/Firmware">firmware</a> for the <a href="//en.wikipedia.org/wiki/RepRap_project">RepRap</a> family of replicating rapid prototypers â popularly known as â3D printers.â Originally derived from <a href="//reprap.org/wiki/List_of_Firmware#Sprinter">Sprinter</a> and <a href="//reprap.org/wiki/Grbl#Grbl">grbl</a>, Marlin became a standalone <a href="//en.wikipedia.org/wiki/Open-source_software">open source</a> project on August 12, 2011 with its <a href="//github.com/MarlinFirmware/Marlin/commit/f850af5c1ca343ed65b94c4b9da5dd1ab4c4a53c">Github release</a>. Marlin is licensed under the GPLv3 and is free for all applications.</p> <p>From the start Marlin was built by and for <a href="//reprap.org/wiki/">RepRap</a> 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. <a href="//www.lulzbot.com/">LulzBot</a>
41, <a href="//www.prusa3d.com/">Průša Research</a>, <a href="//creality3d.shop/">Creality3D</a>, <a href="//www.biqu.equipment/">BIQU</a>, <a href="//www.geeetech.com/">Geeetech</a>, and <a href="//ultimaker.com/">Ultimaker</a> are just a few of the vendors who ship a variant of Marlin. Marlin is also capable of driving CNC machines and laser engravers.</p> <p>One key to Marlinâs usefulness is that itâs built around the lightweight Arduino framework, so it runs on a huge number of inexpensive <a href="//en.wikipedia.org/wiki/Microcontroller">micro-controllers</a> from classic <a href="//www.atmel.com/products/microcontrollers/avr/">Atmel AVR</a> 8-bit boards all the way up to the latest ARM 32-bit OEM and upgrade boards from companies like BigTreeTech and Makerbase.</p> <p>Marlin aims to support all possible boards and machine configurations. We want it to be configurable, customizable, extensible, and economical for hobbyists and vendors alike. A minimal Marlin build can be very small (under 64KB), for use on a headless printer with only modest hardware. Features are enabled as-needed to support added components.</p> <h2 id="how-marlin-works">How Marlin Works</h2> <p>Marlin Firmware runs as a single large self-contained application on the 3D printerâs mainboard. It manages all the real-time activities of the machine. It coordinates the heaters, steppers, sensors, lights, LCD display, buttons, and everything else involved in the 3D printing process. While you <em>can</em> connect a host like OctoPrint for remote monitoring, the distinct advantage of Marlin is that it can run completely standalone.</p> <p>Marlin implements an additive manufacturing process called <a href="//en.wikipedia.org/wiki/Fused_deposition_modeling">Fused Deposition Modeling (FDM)</a> â aka <a href="//en.wikipedia.org/wiki/Fused_filament_fabrication">Fused Filament Fabrication (FFF)</a>. In this process a motor pushes plastic filament through a hot nozzle that melts and extrudes the material while the nozzle is moved under computer control. After several minutes (or a couple of days) of laying down thin layers of plastic, the result is a useful physical object.</p> <p>Marlinâs main loop handles command processing, updating the display, reading controller events, and running periodic tasks like monitoring endstops and filament sensors. While the command processor can be blocked by any command, other important tasks are maintained cooperatively by frequently calling the main <code class="language-plaintext highlighter-rouge">idle()</code> routine during long commands.</p> <p>A print job is described using a simplified derivative of <a href="//en.wikipedia.org/wiki/G-code">G-code</a>. This simple language tells robots to do things like âset heater 1 to 180°â (<code class="language-plaintext highlighter-rouge">M109 T1 S180</code>), or âmove to XY at speed Fâ (<code class="language-plaintext highlighter-rouge">G0 X100 Y100 F3000</code>). A 3D model must be prepared for 3D printing with a slicer application that takes parameters such as print temperature, layer height, infill density, etc., and generates a G-code file for printing. See below for details.</p> <p>Marlin runs G-code commands sent from a host over USB serial, from a serial controller, or directly from a file. Most G-code commands execute right away, while movement commands are queued up and calculated by the Planner.</p> <p>The Planner converts movement commands into one or more linear segments. Since the Planner only does straight linear moves, commands like <code class="language-plaintext highlighter-rouge">G2</code>, <code class="language-plaintext highlighter-rouge">G3</code>, and <code class="language-plaintext highlighter-rouge">G5</code> that do curves end up generating many small segments. The Planner examines segments for changes in speed, acceleration, and angular momentum and makes adjustments to ensure that movement is smooth and continuous and within physical limits.</p> <p>The high priority <em>Stepper Interrupt</em> reads blocks from the Planner Queue and generates precisely-timed electronic pulses to the stepper drivers. Even at modest movement speeds Marlin needs to generate thousands of stepper pulses every second. A typical consumer 3D printer will need to generate 80 steps-per-mm at 50mm/s for a total of 4000 steps-per-second, and thatâs just for a single axis! And in modern times itâs not uncommon to go 5 to 10 times faster!</p> <p>Since CPU speed places a limit on machine speed weâre always looking for innovative ways to optimize our motion code for 16MHz AVR, and this ends up benefitting ARM as well.</p> <h2 id="highlighted-features">Highlighted Features</h2> <ul> <li>Support for a wide range of MCUs from 16MHz AVR to the fastest ARM processors</li> <li>Intelligent interrupt-based motion system <ul> <li>Lookahead planner, linear acceleration, Input Shaping, Linear / Pressure Advance</li> <li> <a href="/docs/configuration/configuration.html#s-curve-acceleration">S-Curve Acceleration</a> for smoother acceleration</li> <li> <a href="/docs/features/input_shaping.html">ZV Input Shaping</a> for faster motion with almost no vibration</li> <li>Up to 10 linear and/or rotary axes for custom applications</li> </ul> </li> <li>Fixed-Time Motion system â <strong><em>New!</em></strong> <ul> <li>Optimized motion timing using the full power of ARM</li> <li>Faster, smoother, and quieter stepping</li> <li>Advanced Input Shapers: ZV, ZVD, ZVDD, ZVDDD, EI, 2HEI, 3HEI, MZV</li> <li>5th- and 6th-order Polynomial Trajectory Curves</li> </ul> </li> <li>Full-featured <a href="/meta/gcode/">G-code</a> vocabulary with over 150 commands <ul> <li>Motion commands for lines, arcs, Bézier curves, and fast travel</li> <li>Control commands to set temperature targets, fan speeds, etc.</li> <li>Parameter commands to change machine behaviors</li> <li>EEPROM storage for settings and calibration results</li> </ul> </li> <li>Versatile Machine Types <ul> <li>Primarily focused on 3D Printers (i.e., Replicating Rapid Prototypers)</li> <li>Kinematics for Cartesian, CoreXY, Delta, SCARA, Hangprinter, etc.</li> <li>Laser and Cutter control for CNC</li> <li>Foam Cutter, Polar Plotter, Pick-and-place</li> </ul> </li> <li>Temperature Control <ul> <li>Closed-loop PID heating</li> <li>
41Model Predictive Control for more stable hotend temperature</li> <li>Automated PID and MPC tuning</li> <li>Thermal protection, safety cutoff</li> <li>Heated bed, heated chamber, laser cooler</li> <li>Fan control for hotend, print cooling, and electronics</li> </ul> </li> <li>Automated Calibration and Compensation <ul> <li>Assisted Tramming</li> <li>Support for many probe types</li> <li>Manual and Automatic Bed Probing</li> <li>Bed Leveling Compensation</li> <li>Obstacle Avoidance</li> <li>Mesh Validation, Probe Offset Wizard, Probe Repeatability test</li> <li>Backlash Compensation, Skew Correction</li> </ul> </li> <li>Fused Filament Fabrication <ul> <li>Up to 8 physical extruders <ul> <li>Standard extruders (single E stepper per nozzle)</li> <li>Singlenozzle (multiple E steppers per nozzle)</li> <li>Switching Extruder (servo, magnetic, etc.)</li> <li>Mixing Extruder (Geeetech A20M)</li> <li>Multi-extruder (Cyclops, Chimera, Diamond)</li> <li>Mult-material (Prusa MMU, Chameleon 3D)</li> </ul> </li> <li>Firmware-based extrusion and retraction control <ul> <li> <a href="/docs/features/lin_advance.html">Linear Advance</a> for pressure-based extrusion</li> <li>Non-linear extrusion, slippage compensation</li> <li>Volumetric extrusion, Filament Width Sensor</li> </ul> </li> </ul> </li> <li>Print Job Control <ul> <li>Host-based and SD Card printing with autostart</li> <li>Print Job Timer with Remaining Time estimation</li> <li>Filament Runout Detection, Filament Change Procedure</li> <li>Object Cancel</li> <li>Print Counter and Service Reminders</li> <li>Print Pause with Nozzle Park</li> </ul> </li> <li>LCD Menu interface <ul> <li>HD44780 / GLCD support for <a href="/docs/development/lcd_language.html">30+ languages</a> </li> <li>Portable APIs for various LCD and OLED controllers</li> <li>Creality DWIN display with Pro UI, Jyers UI, and Marlin UI variants</li> <li>Configurable Quick Preheat</li> </ul> </li> </ul> <h2 id="printing-things">Printing Things</h2> <h2 id="modeling">Modeling</h2> <p>While Marlin only prints G-code, most slicers only slice <a href="//en.wikipedia.org/wiki/STL_(file_format)">STL</a> files.</p> <p>Whatever you use for your <a href="//en.wikipedia.org/wiki/Computer-aided_design">CAD</a> toolchain, as long as you can export a solid model, a slicer can âsliceâ it into G-code, and Marlin firmware will do its best to print the final result.</p> <p>Before Marlin can dream of printing, first youâll need a <a href="//www.thingiverse.com/thing:7900">3D model</a>. You can either <a href="//www.thingiverse.com/thing:7900/zip">download</a> models or make your own with one of many free CAD programs, such as <a href="//www.freecadweb.org/">FreeCAD</a>, <a href="//www.openscad.org/">OpenSCAD</a>, <a href="//www.tinkercad.com/">Tinkercad</a>, <a href="//www.autodesk.com/products/fusion-360/overview">Autodesk Fusion 360</a>, <a href="//www.sketchup.com/">SketchUp</a>, etc.</p> <p>A high degree of knowledge is needed to model complex objects like a <a href="//www.thingiverse.com/thing:308335">T-Rex Skull</a>, but other objects can be quite <a href="//www.thingiverse.com/thing:172175">simple to model</a>. To get ideas and test things out, explore sites like <a href="//www.thingiverse.com/explore/popular">Thingiverse</a>, <a href="//www.youmagine.com/">YouMagine</a> and <a href="//www.printables.com/">Printables</a> and print things for fun.</p> <h2 id="slicing">Slicing</h2> <p>Slicers prepare a solid 3D model by dividing it up into thin slices (layers). In the process it generates the <a href="//en.wikipedia.org/wiki/G-code">G-code</a> that tells the printer in minute detail how to reproduce the model. There are many slicers to choose from, including:</p> <ul> <li> <a href="//www.prusa3d.com/prusaslicer/">PrůšaSlicer</a> is a very capable, cutting-edge, free, open source slicer based on Slic3r.</li> <li> <a href="//github.com/bambulab/BambuStudio">Bambu Studio</a> is a fork of PrůšaSlicer introduced in 2023 by Bambu Labs.</li> <li> <a href="//github.com/SoftFever/OrcaSlicer">Orca Slicer</a> is a popular fork of Bambu Studio with some refinements.</li> <li> <a href="//ultimaker.com/en/products/cura-software">Cura</a> is a popular free slicer thatâs included with many printers and often re-branded.</li> <li> <a href="//slic3r.org/">Slic3r</a> is one of the first slicers and is the basis for many others.</li> <li> <a href="//www.simplify3d.com/">Simplify3D</a> is a solid commercial offering with a simplified interface.</li> <li> <a href="//grid.space/kiri/">Kiri:Moto</a> is a free web-based slicer that is fine for simpler print jobs.</li> </ul> <h2 id="sd-printing">SD Printing</h2> <p>Marlin can print a file from an SD Card with no connection to a host device. On a headless printer with an SD card, a standalone SD print can be initiated from the host and then the host can still monitor the print.</p> <p>USB Flash drives (and USB-C dongles as on the AnkerMake M5) are also supported, and Marlin 2.x can switch between two media drives. In a future update weâll be adding support for several arbitrary media types.</p> <p>Itâs a hassle to carry Micro-SD cards around, so some printer boards have a âtarget modeâ (look for âSDIOâ âCDCâ âMSCâ) allowing you to tell the printer to temporarily release the onboard media. Then the SD/FD can be mou
41nted as a USB drive on your PC for quick file transfers and firmware updates.</p> <h2 id="host-printing">Host Printing</h2> <p>Host software is available for several platforms, including desktop systems, Raspberry Pi, and Android tablets. Any device with a USB port and serial terminal can technically act as a host, but youâll have a better printing experience using host software specifically designed for 3D printers. Current selections include:</p> <ul> <li> <a href="//octoprint.org/">OctoPrint</a> is a powerful open source host for Raspberry Pi by <a href="//www.patreon.com/foosel">Gina HäuÃge</a>.</li> <li> <a href="//www.pronterface.com/">Pronterface</a> is an open source host by Kliment that runs on desktop.</li> <li> <a href="//www.repetier.com/">Repetier Host</a> is a closed-source host by Repetier Software.</li> <li> <a href="//ultimaker.com/en/products/cura-software">Cura</a> is an open source host by Ultimaker. YMMV depending on your printer.</li> <li> <a href="//www.simplify3d.com/">Simplify3D</a> is a slicer but includes a basic host and console to send a print job.</li> </ul> <p>Many 3D printers ship with a customized version of Repetier or Cura. While this helps to associate the printer brand with a companion piece of software, these versions are usually obsolete and receive few upgrades. We recommend you download the latest generic or open source version instead. The latest innovations can also save time and material, so it pays to stay up to date.</p> </div> </div> </div> </div> </div> <footer> <div class="container shift-footer "> <div class="row"> <div class="col-8"> <p class="text-center">Brought to you with <i class="fa fa-heart text-danger" aria-hidden="true"></i>, lack of <i class="fa fa-bed" aria-hidden="true"></i>, and lots of <i class="fa fa-coffee" aria-hidden="true"></i>. <br> The contents of this website are © 2026 under the terms of the <a href="//www.gnu.org/licenses/gpl-3.0.txt">GPLv3</a> License.</p> </div> <div class="col-4"> <div class="pull-right back-to-top"> <a href="#top" data-proofer-ignore> Back to top <i class="fa fa-level-up" aria-hidden="true"></i></a> </div> </div> </div> </div> </footer>
41<script>
vendor: 365 bytes, lines 41-47
41 42 (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ 43 (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), 44 m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) 45 })(window,document,'script','https://www.google-analytics.com/analytics.js','ga'); 46 47 ga('create', '
47UA-76230130-1
vendor: 100 bytes, lines 47-52
47', { 48 'cookieDomain': 'marlinfw.org', 49 'siteSpeedSampleRate': 80 50 }); 51 52
52ga('require', 'displayfeatures'); 53 ga('send', 'pageview'); 54 </script>
54
54<script>(function(){function c(){var b=a.contentDocument||(a.contentWindow&&a.contentWindow.document);if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'a40710ca7d919d42',t:'MTc5MDMwODIzNQ=='};var a=document.createElement('script');a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script>
54<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"af7e0910834f42fab8a5cec97dd14446","r":1,"spa":2}' crossorigin="anonymous"></script>
54 55</body> </html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.