Motion Controll
Firmware

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)

  • RepRap Firmware.webp

  • 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)

  • Marlin.webp

  • Used on multiple boards

  • Uses VS Code and the PlatformIO extension to build firmware based on config.h and configadv.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