Firmware
3D printers use microcontrollers to send individual movement commands to motors.
The resulting motion is movement in the X, Y, Z, and E (extrusion) axes.
There are three main firmware packages that manage these commands.
There are several manufacturer-specific options, such as Bambu, but most function very similarly. All listed are open source.
RepRap (opens in a new tab)
-
-
Primarily uses Duet control boards
-
All settings controlled via G-code
-
Uses the RepRap configurator
-
Web-based control interface
Marlin (opens in a new tab)
-
-
Used on multiple boards
-
Uses VS Code and the PlatformIO extension to build firmware based on
config.h
andconfigadv.h
files -
Has predetermined settings for most controllers and situations. (Config References) (opens in a new tab)
Klipper (opens in a new tab)
- Klipper uses a separate MCU, such as a Raspberry Pi, to process and send commands to the microcontroller
- Configuration is based on a
printer.cfg
file (Config Examples) (opens in a new tab) - A separate configuration is needed for the serial ID of the microcontroller in the
moonraker.cfg
file - Web-based interface
- Can support multiple controllers
Kiauh (opens in a new tab) is a useful tool to install this