Marlin is
open source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use and view the source code, design documents, or content of the product. The open source model is a decentrali ...
firmware
In computing
Computing is any goal-oriented activity requiring, benefiting from, or creating computer, computing machinery. It includes the study and experimentation of algorithmic processes, and the development of both computer hardware, h ...
originally designed for
RepRap project
RepRap (a contraction of ''replicating rapid prototyper'') is a project to develop low-cost 3D printers that can print most of their own components. As open designs, all of the designs produced by the project are released under a free software l ...
FDM (fused deposition modeling) 3D printers using the
Arduino
Arduino () is an Italian open-source hardware and open-source software, software company, project, and user community that designs and manufactures single-board microcontrollers and microcontroller kits for building digital devices. Its hardwar ...
platform.
Marlin supports many different types of 3D printing
robot platforms, including
basic Cartesian,
Core XY,
Delta
Delta commonly refers to:
* Delta (letter) (Δ or δ), the fourth letter of the Greek alphabet
* D (NATO phonetic alphabet: "Delta"), the fourth letter in the Latin alphabet
* River delta, at a river mouth
* Delta Air Lines, a major US carrier ...
, and
SCARA
The SCARA is a type of industrial robot. The acronym stands for selective compliance assembly robot arm or selective compliance articulated robot arm.
By virtue of the SCARA's parallel-axis joint layout, the arm is slightly compliant in the ...
printers, as well as some other less conventional designs like
Hangprinter
Hangprinter is an open-source fused deposition modeling delta 3D printer notable for its unique frameless design. It was created by Torbjørn Ludvigsen residing in Sweden. The Hangprinter uses relatively low cost parts and can be constructed fo ...
and
Beltprinter. In addition to 3D printers, Marlin is generally adaptable to any machine requiring control and interaction. It has been used to drive SLA and
SLS 3D printers, custom
CNC mills,
laser engravers (or
laser beam machining),
laser cutters,
vinyl cutters,
pick-and-place machines, foam cutters, and
egg painting robots.
History
Marlin was first created in 2011 for the RepRap and
Ultimaker printers by combining elements from the open source Grbl and Sprinter projects. Development continued at a slow pace while gaining in popularity and acceptance as a superior alternative to the other available firmware. By 2015, companies were beginning to introduce commercial 3D printers with Marlin pre-installed and contributing their improvements to the project. Early machines included the
Ultimaker 1, the TAZ series by
Aleph Objects and the
Prusa i3
The Prusa i3 is a family of fused filament fabrication 3D printers, manufactured by Czech company Prusa Research under the trademarked name Original Prusa i3. Part of the RepRap project, Prusa i3 printers were called the most used 3D printer in ...
by Prusa Research.
By 2018 manufacturers had begun to favor boards with more powerful and efficient ARM processors, often at a lower cost than the AVR boards they supplant. After extensive
refactoring
In computer programming and software design, code refactoring is the process of restructuring existing source code—changing the '' factoring''—without changing its external behavior. Refactoring is intended to improve the design, structure, ...
Marlin 2.0 was officially released in late 2019 with full support for 32-bit ARM-based controller boards through a lightweight extensible
hardware access layer. While Marlin 1.x had only supported 8-bit AVR (e.g., ATMega) and ATSAM3X8E (Due) platforms, the HAL added ATSAMD51 (Grand Central),
Espressif ESP32
ESP32 is a family of low-cost, energy-efficient microcontrollers that integrate both Wi-Fi and Bluetooth capabilities. These chips feature a variety of processing options, including the Tensilica Xtensa LX6 microprocessor available in both dual-c ...
, NXP LPC176x, and STMicro STM32. Marlin also acquired
HAL code to run natively on Linux, Mac, and Windows, but only within a simulation for debugging purposes.
As of October 2022, Marlin was still under active development and continues to be very popular, claiming to be "the most widely used 3D printing firmware in the world."
Some of the most successful companies using Marlin today are
Ultimaker,
LulzBot,
Prusa Research, and
Creality.
Marlin firmware is not alone in the field of open source 3D printer firmware. Other popular open source firmware offerings include
RepRap Firmware by
Duet3D,
Buddy Firmware by Prusa Research, and
Klipper by the Klipper Foundation. These alternatives take advantage of extra processing power to offer advanced features like
input shaping, which has only recently been added to Marlin (only limited version; Marlin does not support hardware accelerometers which is the best way to fully take advantage of input shaping).
Technical
Marlin firmware is hosted on GitHub, where it is developed and maintained by a community of contributors. Marlin's lead developer is Scott Lahteine (aka Thinkyhead), an independent
shareware
Shareware is a type of proprietary software that is initially shared by the owner for trial use at little or no cost. Often the software has limited functionality or incomplete documentation until the user sends payment to the software developer. ...
and former
Amiga game developer who joined the project in 2014.
His work is entirely supported by
crowdfunding
Crowdfunding is the practice of funding a project or venture by raising money from a large number of people, typically via the internet. Crowdfunding is a form of crowdsourcing and Alternative Finance, alternative finance, to fund projects "withou ...
.
Marlin is written in optimized C++ for the Arduino API in a mostly embedded-C++ style, which avoids the use of
dynamic memory allocation
Memory management (also dynamic memory management, dynamic storage allocation, or dynamic memory allocation) is a form of resource management applied to computer memory. The essential requirement of memory management is to provide ways to dyna ...
. The firmware can be built with
Arduino IDE,
PlatformIO, or
Auto Build Marlin extension for
Visual Studio Code
Visual Studio Code, commonly referred to as VS Code, is an integrated development environment developed by Microsoft for Windows, Linux, macOS and web browsers. Features include support for debugging, syntax highlighting, intelligent code comp ...
. The latter method is recommended because it is very easy but it only being an Visual Studio Code extension requires Visual Studio Code to be installed on the building system first.
Once the firmware has been compiled from C++ source code; it is installed and runs on a mainboard with onboard components and general-purpose I/O pins to control and communicate with other components. For control the firmware receives input from a USB port or attached media in the form of
G-code
G-code (abbreviation for geometric code; also called RS-274, standardized today in ISO 6983-1) is the most widely used computer numerical control (CNC) and 3D printing programming language. It is used mainly in computer-aided manufacturing t ...
commands instructing the machine what to do. For example, the command "G1 X10" tells the machine to perform a smooth linear move of the X axis to position 10. The main loop manages all of the
machine
A machine is a physical system that uses power to apply forces and control movement to perform an action. The term is commonly applied to artificial devices, such as those employing engines or motors, but also to natural biological macromol ...
's real-time activities like commanding the
stepper motor
A stepper motor, also known as step motor or stepping motor,Clarence W. de Silva. Mechatronics: An Integrated Approach (2005). CRC Press. p. 675. "The terms ''stepper motor'', ''stepping motor'', and ''step motor'' are synonymous and are often u ...
s through stepper drivers, controlling heaters, sensors, and lights, managing the
display and user interface, etc.
License
Marlin is distributed under the GPL license which requires that organizations and individuals share their source code if they distribute the firmware in binary form, including firmware that comes pre-installed on the mainboard. Vendors have occasionally failed to comply with the license, leading to some distributors dropping their products.
In 2018 the US distributor Printed Solid ended its relationship with
Creality due to GPL violations and quality issues.
As of 2022, some vendors are still spotty in their compliance, deflecting customer requests for the source code for an extended period or in perpetuity after a product release.
Usage and license compliance
Marlin firmware is used by several 3D printer manufacturers, most of which are fully compliant with the license. Compliance is tracked by Tim Hoogland of TH3D Studio, ''et. al.''. The following table may be out of date by the time you read this.
{, class="wikitable"
, +
!Company
!GPL compliance
, -
,
Aleph Objects' Lulzbot printers
, Yes
, -
,
Anet
Anet () is a commune in the Eure-et-Loir department in the Centre-Val de Loire region of north-central France. It lies 14 km north-northeast of Dreux between the rivers Eure and Vesgre, the latter flowing into the former some 4 km n ...
,
, -
, Artillery 3D
, Yes
, -
,
AnyCubic
, Yes
, -
,
Alphawise
, Yes
, -
,
Bibo
,
, -
,
BQ
,
, -
,
BCN3D
, Yes
, -
,
BCN3D
, Yes
, -
BIQU/BTT, Yes
, -
,
Creality
, No: CR-X
Yes: CR-10S and Ender3
, -
, FLSun
, Yes
, -
,
FolgerTech
,
, -
, Geeetech
, Yes
, -
,
JGAurora
, No: A8, A7, Z-603S
Yes: A1, A5S, A3S, A5
, -
, Ideaformer
, No
, -
, LMYSTAR
, No
, -
, Makerbase
, Yes
, -
, Mingda
, No
, -
,
Printrbot
, Yes
, -
,
Prusa Research
, Yes, and they base their custom firmware on Marlin
, -
, Sunlu
, No
, -
, Tevo
, No
, -
, TronXY
, No
, -
,
Ultimaker[{{Cite web, url=https://github.com/Ultimaker/Ultimaker2Marlin/tree/master/Marlin, title=Ultimaker/Ultimaker2Marlin, website=GitHub, language=en, access-date=2018-08-04]
, Yes
, -
, Wanhao
, Yes
, -
, Zonestar
, Yes
See also
*
RepRap Project
RepRap (a contraction of ''replicating rapid prototyper'') is a project to develop low-cost 3D printers that can print most of their own components. As open designs, all of the designs produced by the project are released under a free software l ...
*
G-code
G-code (abbreviation for geometric code; also called RS-274, standardized today in ISO 6983-1) is the most widely used computer numerical control (CNC) and 3D printing programming language. It is used mainly in computer-aided manufacturing t ...
*
RAMPS
*
3D printing
3D printing, or additive manufacturing, is the construction of a three-dimensional object from a CAD model or a digital 3D model. It can be done in a variety of processes in which material is deposited, joined or solidified under computer ...
*
Applications of 3D printing
*
List of 3D printer manufacturers
*
List of 3D printing software
This is a list of 3D printing software.
See also
* 3D printing - or additive manufacturing
* 3D scanning - replicating objects to 3D models to potentially 3D print
* Comparison of computer-aided design software
* 3D Manufacturing Format - ...
*
Comparison of 3D printers
*
3D printing processes
A variety of processes, equipment, and materials are used in the production of a three-dimensional object via additive manufacturing. 3D printing is also known as additive manufacturing, because the numerous available 3D printing process tend to ...
*
3D Manufacturing Format
*
3D printing speed
*
Fused filament fabrication
Fused filament fabrication (FFF), also known as fused deposition modeling (with the trademarked acronym FDM), or ''filament freeform fabrication'', is a 3D printing process that uses a continuous filament of a thermoplastic material. Filament is ...
*
Construction 3D printing
Construction 3D Printing (c3Dp) or 3D construction Printing (3DCP) refers to various technologies that use 3D printing as a core method to fabricate buildings or construction components. Alternative terms for this process include "additive constru ...
References
External links
Marlin official websiteMarlin GitHub repositoryMarlin Patreon pageHow it's Made: The Marlin Firmware!, an interview with Scott Laheine YouTube
3D printing software
Firmware
RepRap project