Marlin (firmware)

Last updated
Marlin (firmware)
Developer(s) Marlin core team + Marlin community
Initial releaseDecember 2011;12 years ago (2011-12)
Stable release
2.1.2 / December 18, 2022
Repository
Written in C++ core
Operating system Arduino platform
Platform 8-bit AVR and 32-bit ARM based microcontroller units
Type 3D printing
License GPLv3
Website marlinfw.org

Marlin is open source firmware originally designed for RepRap project FDM (fused deposition modeling) 3D printers using the Arduino platform. [1] [2] [3]

Contents

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 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's real-time activities like commanding the stepper motors through stepper drivers, controlling heaters, sensors, and lights, managing the display and user interface, etc. [4]

Marlin supports many different types of 3D printing robot platforms, including basic Cartesian, Core XY, Delta, and SCARA printers, as well as some other less conventional designs like Hangprinter [2] [5] 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. [3] [6] [7]

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 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 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. [8] [9] 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, 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 is still under active development and continues to be very popular, claiming to be "the most widely used 3D printing firmware in the world." [2] 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). [10]

Development

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 and former Amiga game developer who joined the project in 2014. [11] [3] His work is entirely supported by crowdfunding.

Marlin is written in optimized C++ for the Arduino API in a mostly embedded-C++ style, which avoids the use of dynamic memory allocation. The firmware can be built with Arduino IDE, PlatformIO, or Auto Build Marlin extension for Visual Studio Code. 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.

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. [12]

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. [13]

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.

CompanyGPL compliance
Aleph Objects' Lulzbot printers [14] [15] Yes [16]
Anet [17]
Artillery 3DYes [18]
AnyCubic Yes [19]
Alphawise [20] Yes [16]
Bibo [17]
BQ [17]
BCN3D [21] Yes
BCN3D [22] Yes
BIQU/BTT [23] Yes
Creality [24] [25] No: CR-X [26]

Yes: CR-10S and Ender3 [27]

FLSunYes [16]
FolgerTech [17]
GeeetechYes [16]
JGAurora [28] No: A8, A7, Z-603S [16]

Yes: A1, A5S, A3S, A5

IdeaformerNo
LMYSTARNo [16]
MakerbaseYes [29]
MingdaNo
Printrbot [30] Yes
Prusa Research Yes, and they base their custom firmware on Marlin [31]
SunluNo [16]
TevoNo [16]
TronXYNo [16]
Ultimaker [32] Yes [16]
WanhaoYes [16]
ZonestarYes [16]

See also

Related Research Articles

<span class="mw-page-title-main">Ghostscript</span> Interpreter for the PostScript language

Ghostscript is a suite of software based on an interpreter for Adobe Systems' PostScript and Portable Document Format (PDF) page description languages. Its main purposes are the rasterization or rendering of such page description language files, for the display or printing of document pages, and the conversion between PostScript and PDF files.

<span class="mw-page-title-main">Open-source hardware</span> Hardware from the open-design movement

Open-source hardware consists of physical artifacts of technology designed and offered by the open-design movement. Both free and open-source software (FOSS) and open-source hardware are created by this open-source culture movement and apply a like concept to a variety of components. It is sometimes, thus, referred to as FOSH. The term usually means that information about the hardware is easily discerned so that others can make it – coupling it closely to the maker movement. Hardware design, in addition to the software that drives the hardware, are all released under free/libre terms. The original sharer gains feedback and potentially improvements on the design from the FOSH community. There is now significant evidence that such sharing can drive a high return on investment for the scientific community.

<span class="mw-page-title-main">Arduino</span> Italian open-source hardware and software company

Arduino is an Italian open-source hardware and software company, project, and user community that designs and manufactures single-board microcontrollers and microcontroller kits for building digital devices. Its hardware products are licensed under a CC BY-SA license, while the software is licensed under the GNU Lesser General Public License (LGPL) or the GNU General Public License (GPL), permitting the manufacture of Arduino boards and software distribution by anyone. Arduino boards are available commercially from the official website or through authorized distributors.

<span class="mw-page-title-main">MakerBot</span> American desktop 3D printer manufacturer company

MakerBot Industries, LLC was an American desktop 3D printer manufacturer company headquartered in New York City. It was founded in January 2009 by Bre Pettis, Adam Mayer, and Zach "Hoeken" Smith to build on the early progress of the RepRap Project. It was acquired by Stratasys in June 2013. As of April 2016, MakerBot had sold over 100,000 desktop 3D printers worldwide. Between 2009 and 2019, the company released 7 generations of 3D printers, ending with the METHOD and METHOD X. It was at one point the leader of the desktop market with an important presence in the media, but its market share declined over the late 2010s. MakerBot also founded and operated Thingiverse, the largest online 3D printing community and file repository. In August 2022, the company completed a merger with its long-time competitor Ultimaker. The combined company is known as UltiMaker, but retains the MakerBot name for its Sketch line of education-focused 3D printers.

<span class="mw-page-title-main">Thingiverse</span> Design-sharing website

Thingiverse is a website dedicated to the sharing of user-created digital design files. Providing primarily free, open-source hardware designs licensed under the GNU General Public License or Creative Commons licenses, the site allows contributors to select a user license type for the designs that they share. 3D printers, laser cutters, milling machines and many other technologies can be used to physically create the files shared by the users on Thingiverse.

Printrbot is a 3D printer company created by Brook Drumm in 2011 and originally funded through Kickstarter. Printrbot printers use fused deposition modelling to manufacture 3-dimensional artifacts.

<span class="mw-page-title-main">Fused filament fabrication</span> 3D printing process

Fused filament fabrication (FFF), also known as fused deposition modeling, or filament freeform fabrication, is a 3D printing process that uses a continuous filament of a thermoplastic material. Filament is fed from a large spool through a moving, heated printer extruder head, and is deposited on the growing work. The print head is moved under computer control to define the printed shape. Usually the head moves in two dimensions to deposit one horizontal plane, or layer, at a time; the work or the print head is then moved vertically by a small amount to begin a new layer. The speed of the extruder head may also be controlled to stop and start deposition and form an interrupted plane without stringing or dribbling between sections. "Fused filament fabrication" was coined by the members of the RepRap project to give an acronym (FFF) that would be legally unconstrained in its use.

<span class="mw-page-title-main">NodeMCU</span> Open-source IoT platform

NodeMCU is a low-cost open source IoT platform. It initially included firmware which runs on the ESP8266 Wi-Fi SoC from Espressif Systems, and hardware which was based on the ESP-12 module. Later, support for the ESP32 32-bit MCU was added.

<span class="mw-page-title-main">ESP8266</span> System-on-a-chip microcontroller model with Wi-Fi

The ESP8266 is a low-cost Wi-Fi microcontroller, with built-in TCP/IP networking software, and microcontroller capability, produced by Espressif Systems in Shanghai, China.

<span class="mw-page-title-main">Prusa i3</span> 3D printer product line and related designs

The Prusa i3 is a family of fused deposition modeling 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 the world in 2016. The first Prusa i3 was designed by Josef Průša in 2012, and was released as a commercial kit product in 2015. The latest model is available in both kit and factory assembled versions. The Prusa i3's comparable low cost and ease of construction and modification made it popular in education and with hobbyists and professionals, with the Prusa i3 model MK2 printer receiving several awards in 2016.

<span class="mw-page-title-main">FarmBot</span> Open-source precision agriculture CNC farming project

FarmBot is an open source precision agriculture CNC farming project consisting of a Cartesian coordinate robot farming machine, software and documentation including a farming data repository. The project aims to "Create an open and accessible technology aiding everyone to grow food and to grow food for everyone."

<span class="mw-page-title-main">Cura (software)</span> 3D printer software

Cura is an open source slicing application for 3D printers. It was created by David Braam who was later employed by Ultimaker, a 3D printer manufacturing company, to maintain the software. Cura is available under LGPLv3 license. Cura was initially released under the open source Affero General Public License version 3, but on 28 September 2017 the license was changed to LGPLv3. This change allowed for more integration with third-party CAD applications. Development is hosted on GitHub. Ultimaker Cura is used by over one million users worldwide and handles 1.4 million print jobs per week. It is the preferred 3D printing software for Ultimaker 3D printers, but it can be used with other printers as well.

<span class="mw-page-title-main">Hangprinter</span> 3D printer

Hangprinter is an open-source fused deposition modeling delta 3D printer notable for its unique frameless design. It was created by Torbjørn Ludvigsen. The Hangprinter uses relatively low cost parts and can be constructed for around US$250. The printer is part of the RepRap project, meaning many of the parts of the printer are able to be produced on the printer itself. The design files for the printer are available on GitHub for download, modification and redistribution.

<span class="mw-page-title-main">OctoPrint</span>

OctoPrint is an open source 3D printer controller application, which provides a web interface for the connected printers. It displays printers' status and key parameters and allows user to schedule prints and remotely control the printer.

<span class="mw-page-title-main">Prusa Mini</span> Czech open-source fused deposition modelling 3D printer

The Prusa Mini, stylized as the Original Prusa MINI, is an open-source fused deposition modeling 3D printer that is manufactured by the Czech company Prusa Research. The printer is the lowest cost machine produced by Prusa Research and is designed as a first printer or as part of a 'print farm'.

<span class="mw-page-title-main">Creality</span> 3D printing company

Creality, officially known as Shenzhen Creality 3D Technology Co, Ltd., is a Chinese 3D printer manufacturing company established in 2014, with headquarters located in Shenzhen.

<span class="mw-page-title-main">Chinedum Okwudire</span> American academic in the field of engineering

Chinedum (Chi) Okwudire is a Nigerian-American mechanical engineer and a professor of Mechanical Engineering and Miller Faculty Scholar at the University of Michigan, where he directs the Smart and Sustainable Automation Research Lab. He is also the founder and chief technology officer of Ulendo Technologies, Inc. His research is in the area of manufacturing automation, control engineering, and mechatronics.

<span class="mw-page-title-main">Polar Cloud</span>

The Polar Cloud is an American software platform for 3D printers that is owned and operated by Polar3D, LLC. The platform was launched in March 2017 and is now home to over 500,000 users in 160 countries. The platform is home to several programs and initiatives, including the Boys & Girls Club of America, GE's Additive Education Program, and a COVID-19 Mask Making effort.

<span class="mw-page-title-main">FatFs</span> Software library for microcontrollers

FatFs is a lightweight software library for microcontrollers and embedded systems that implements FAT/exFAT file system support. Written on pure ANSI C, FatFs is platform-independent and easy to port on many hardware platforms such as 8051, PIC, AVR, ARM, Z80. FatFs is designed as thread-safe and is built into ChibiOS, RT-Thread, ErlendOS, and Zephyr real-time operating systems.

Open-source firmware is firmware that is published under an open-source license. It can be contrasted with proprietary firmware, which is published under a proprietary license or EULA.

References

  1. "Marlin 1.1 Beginner Guide for 3D Printer Firmware | 3DAddict". 3DAddict. 2017-07-26. Retrieved 2018-08-04.
  2. 1 2 3 Thomas Sanladerer (2018-08-04), How it's Made: The Marlin Firmware! , retrieved 2018-08-04
  3. 1 2 3 "mUVe3D releases improved Marlin firmware for all 3D printers". 3ders.org. Retrieved 2018-08-04.
  4. "3D Printering: Trinamic TMC2130 Stepper Motor Drivers". Hackaday. 2016-09-30. Retrieved 2018-08-04.
  5. Thomas Sanladerer (2016-08-20), [2016 version] How to set up the Marlin firmware! , retrieved 2018-08-04
  6. "3D printing on eggs: 50% infill, one shell?". 3ders.org. Retrieved 2018-08-04.
  7. "Custom Built 3D Printer / CNC Mill marlin firmware help". 3D Hubs. Retrieved 2018-08-04.
  8. "R/3Dprinting - Marlin Firmware 2.0.0 final has been tagged for release".
  9. "New Part Day: ST's 32-Bit 3D Printer Controller". Hackaday. 2016-07-19. Retrieved 2018-08-04.
  10. "Marlin Input Shaping". GitHub .
  11. "Marlin 3D printer firmware developer 'thinkyhead' seeking support". 3ders.org. Retrieved 2018-08-04.
  12. "GPL Violations Cost Creality a US Distributor". Hackaday. 2018-08-27. Retrieved 2018-08-29.
  13. "Known GPL violations list on webpage". Marlin GitHub, issue 24801. Retrieved 26 September 2022.
  14. "Marlin". code.alephobjects.com. Archived from the original on 2019-10-10. Retrieved 2018-08-04.
  15. "Aleph Objects Debuts Aerostruder v2 Micro Tool Head | All3DP". All3DP. Retrieved 2018-08-22.
  16. 1 2 3 4 5 6 7 8 9 10 11 12 "3D Printer Companies". 3D Printer - Known License Violators. 2018-04-05. Archived from the original on 2018-08-29. Retrieved 2018-08-29.
  17. 1 2 3 4 "MarlinFirmware/Marlin". GitHub. Retrieved 2018-08-07.
  18. Ciprian. "Artillery Genius Firmware With Marlin 2.0.5.3". 3D Print Beginner. Retrieved 2020-05-24.
  19. "AnyCubic returns to GPL compliance! Chiron Firmware source released". 3D Printer - Known License Violators. 2018-08-27. Archived from the original on 2018-08-29. Retrieved 2018-08-29.
  20. "Alfawise U10 : une imprimante 3D grand format à prix très agressif". Génération-NT (in French). Retrieved 2018-08-07.
  21. "BCN3D/BCN3DSigma-Firmware". GitHub. Retrieved 2018-08-07.
  22. "BCN3D/BCN3DSigma-Firmware". GitHub. Retrieved 2018-08-07.
  23. "BTT/BIQU Firmware". GitHub. Retrieved 2021-11-11.
  24. 3D Printing Nerd (2018-04-09), Creality GPL Update - Naomi Wu Released CR-10S Marlin Source Code , retrieved 2018-08-04{{citation}}: CS1 maint: numeric names: authors list (link)
  25. "First Completely Open Source 3D Printer from China". 3D Printer - Known License Violators. 2018-07-09. Archived from the original on 2018-08-07. Retrieved 2018-08-07.
  26. "A disappointing month for GPL compliance". 3D Printer - Known License Violators. 2018-08-26. Archived from the original on 2018-08-29. Retrieved 2018-08-29.
  27. Solid, Printed. "We are ending our relationship with Creality". Printed Solid. Retrieved 2018-08-29.
  28. "JGAurora release A3S and A5 GPL compliant source code". 3D Printer - Known License Violators. 2018-04-16. Archived from the original on 2018-08-07. Retrieved 2018-08-07.
  29. Ciprian (5 March 2020). "Sapphire Plus Review - Affordable CoreXY". 3D Print Beginner. Retrieved 2020-05-24.
  30. "Printrbot/Marlin". GitHub. Retrieved 2018-08-04.
  31. "Prusa Shows Us the New i3 MK2 3D Printer and Where the Community is Headed". Hackaday. 2016-06-15. Retrieved 2018-08-04.
  32. "Ultimaker/Ultimaker2Marlin". GitHub. Retrieved 2018-08-04.