Marlin
Marlin is a firmware for RepRap 3D printers optimized for both 8 and 32 bit microcontrollers. Marlin supports all common platforms. Many commercial 3D printers come with Marlin installed. Check with your vendor if you need source code for your specific machine.
Marlin is open-source firmware for RepRap-style 3D printers that translates print instructions into motor, heater, and fan movements, running on both old 8-bit AVR and newer 32-bit ARM printer boards.
Marlin is the software that runs inside 3D printers — the program living on the printer's main control board that translates the print instructions sent from a computer into the actual movements of motors, heaters, and fans. It is firmware, meaning it sits between the hardware and any higher-level software, and it is built for RepRap-style 3D printers. Many commercial 3D printers ship with Marlin already installed.
The way it works centers on a Hardware Abstraction Layer, or HAL, which is a translation layer that lets the same Marlin code drive very different printer boards without rewriting everything. The 2.1 branch supports up to 9 coordinated axes and up to 8 extruders, and runs on both older 8-bit AVR boards and newer 32-bit ARM boards. Because every printer has a different physical layout, Marlin requires a configuration file specific to your machine. The MarlinFirmware/Configurations repository collects dozens of tested configurations contributed by users so you don't have to start from scratch.
Someone would use Marlin if they own a 3D printer and want to upgrade or customize what it can do — fixing a bug their vendor hasn't addressed, supporting older hardware that no longer gets updates, or tinkering with new features. To build and upload a new version you use a tool like Visual Studio Code with the Auto Build Marlin extension, the Arduino IDE, or PlatformIO, which the project notes is the better choice. The code is C++. The full README is longer than what was provided.
Where it fits
- Upgrade a 3D printer that no longer gets vendor firmware updates to add bug fixes and new features.
- Configure Marlin for a custom-built or modified 3D printer using a machine-specific configuration file.
- Enable advanced features like multi-extruder support or up to 9 coordinated axes on a custom printer build.