Marlin is open source firmware originally designed for RepRap project FDM (fused deposition modeling) 3D printers using the Arduino platform.
[1][2][3] 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][4] and Beltprinter.
[3][5][6] Marlin was first created in 2011 for the RepRap and Ultimaker printers by combining elements from the open source Grbl and Sprinter projects.
[7][8] 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.
The firmware can be built with Arduino IDE, PlatformIO, or Auto Build Marlin extension for Visual Studio Code.
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.
[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.