Marlin - 3D Printer Open Source Firmware
Marlin firmware is an open-source firmware for 3D printers.
3D printing firmware types are Reprap, Repetier, Klipper, and others. Marlin is the most popular in the world of 3D printing, and it is updated very quickly. Marlin is an open source firmware for the RepRap family of reproduction rapid prototyping machines - commonly known as "3D printers". It originated from Sprinter and Grbl and was released as an independent open source project through its GitHub release on August 12, 2011. Marlin is licensed under GPLv3 and is free for all applications.
How to make your machine run with Marlin?
If you know the motherboard model your machine uses, you can find it here https://marlinfw.org/docs/hardware/boards.html
If your printer's motherboard is listed on the marlin-supported list, then that means your printer (unmodified) is already supported.
1) You can find the compiled firmware on the printer manufacturer's official website or its official GitHub
Then you just need to use the platform ide in the visual studio code software to upload the firmware
2) You can download the latest firmware on Marlin's official GitHub. Then you can upload your firmware to your
printer motherboard
DIY type printer
If your printer is a DIY type, how do we use it?
We generally need to change the following files to match your printer: boards.h, pins_xxx.h, configuration.h and configuration_adv.h.
Boards.h. This includes the motherboard types that are already supported. The motherboards used by DIY-type printers may not be listed here.
Then we need to add a new line here to add the model of the motherboard (custom). Please be sure to note that the sequence of the new motherboard model is larger than that of other motherboards.
Pins_xxx.h. There is no such file in the source folder. This file needs to be newly created by you. A quick way: you can refer to other motherboards
Pin definition file, which allows you to avoid a lot of unnecessary troubles and allow you to better understand the definition of pins. About the motherboard pins, you can get it from the public development documentation of the motherboard
Or you can ask the motherboard author/manufacturer's technical support to get it.
Configuration.h. This contains the configuration of the basic functions of the marlin. For example, the number of steps of each axis, temperature detection, heating, screen configuration, fan configuration, and other settings.
Marlin provides a lot of features that allow you to configure your printer in great detail.
Configuration_adv.h. This file contains configuration for advanced (extra) features of marlin. For example, the size of the motor driver current of the TMC, the configuration of the bltouch, and other configurations of the heating sensor.
This file is mainly used with the configuration.h file.
Related information
Marlin is created in C language and C++ language, which are standard languages for embedded development. Both C++ and C just need once compiled then it can run at a highly efficient.
It only needs one compilation and is a very efficient machine language, which can significantly reduce hardware requirements.
But Marlin's disadvantages are also obvious:
1) Due to the C language and C++ used by marlin, its cross-platform capability is relatively poor
2) Due to its architecture, it is difficult to add some new features which fit your printer
3) In order to improve compatibility, many parts are not optimized for the structure and internal system of the machine, which does not meet the rigorous specification requirements.
For example, when designing CNC, the optimization and professionalism of the machine's mechanism and internal systems are considered.
It can be said that it is only for new functions and convenient control, and the threshold for beginners is not high.
Compared with the 2. X version, the 1. x version supports not many printers and has relatively few functions. The structure is simple but very confusing. and
The 2. X version has undergone major structural changes and began to support 32-bit motherboards. The structure is more rigorous (although still relatively poor).
Marlin is updated very quickly and maintains its open-source nature, making it a great choice for beginners.
For more information, please refer to
https://marlinfw.org
https://github.com/MarlinFirmware/Marlin
https://github.com/MarlinFirmware/Configurations