3D Printing Terminology

Ender 3S1 Mainboard
Ender 3S1 Mainboard

What is Marlin, and why would I use it?

Marlin is an open-source firmware for 3D printers. It is one of the most widely used and well-known firmwares for 3D printers, and is designed to run on the microcontroller that controls the printer’s motors and other components.

Marlin provides a comprehensive set of features for 3D printers, including:

  • G-code interpretation: Marlin can interpret and execute g-code commands, which are the instructions that tell the printer how to build the 3D model.
  • Motion control: Marlin can control the stepper motors that drive the printer’s movements, ensuring precise and accurate positioning of the print head and build platform.
  • Temperature control: Marlin can monitor and control the temperature of the hotend and bed, which are critical to the quality and success of the print.
  • Endstop support: Marlin can detect when the printer has reached its limits and stop the motors to prevent damage to the printer or printed parts.
  • Safety features: Marlin includes safety features such as thermal protection and emergency stop functionality to help prevent accidents and protect the printer and user.

One of the primary benefits of using Marlin is that it is easy to set up and use, and provides a comprehensive set of features for 3D printing. It is also highly customizable, allowing users to modify the firmware to suit their specific needs and requirements. Additionally, Marlin has a large and active community of users and developers, which provides a wealth of resources and support for users.

Overall, Marlin is a good choice for users who want a feature-rich and easy-to-use firmware for their 3D printer, or who want to take advantage of the large and active community of users and developers. It is especially well-suited for users who are just starting out with 3D printing and want a straightforward and reliable firmware solution.

What is Klipper and why would I use it?

Klipper is an alternative firmware for 3D printers that aims to improve the performance and capabilities of the printers. It is a unique approach to 3D printer firmware that separates the tasks of interpreting g-code, controlling the motors, and performing advanced calculations into two separate processes, which can run on different hardware components.

In Klipper, a computer running a Python-based software communicates with the microcontroller on the 3D printer over a USB or serial connection. The computer performs tasks such as slicing the 3D model into g-code, running advanced calculations such as pressure advance, and controlling the printer’s motors. The microcontroller acts as a simple “motion controller,” performing low-level tasks such as driving the stepper motors and reading the endstop switches.

The primary benefit of using Klipper is that it allows for advanced features and improved performance that are not possible with traditional monolithic 3D printer firmwares like Marlin. Some of these features include:

  • Faster printing speeds: Klipper can perform advanced calculations and motion planning on the computer, allowing for faster printing speeds and improved performance compared to traditional firmwares.
  • Advanced extruder control: Klipper supports advanced features such as pressure advance and multi-extruder support, which can help to improve the accuracy and quality of the printed parts.
  • Customizability: Klipper is highly customizable, allowing users to write their own plugins and scripts to extend its functionality.
  • Reduced hardware requirements: Klipper’s design allows it to run on lower-end microcontrollers, reducing the cost and complexity of the 3D printer hardware.

Overall, Klipper is a good choice for users who want to take advantage of advanced features and improved performance for their 3D printer, or who want a highly customizable and flexible firmware solution. However, it does require a computer to run the additional software and may have a steeper learning curve compared to traditional firmwares like Marlin.

What is Input Shaping?

Input shaping is a technique used in control systems to improve the performance of mechanical systems by modifying the input signals to the system. In the context of 3D printing, input shaping refers to modifying the g-code commands that are sent to the printer to control its movement and behavior. The goal of input shaping in 3D printing is to reduce vibrations, ringing, and other unwanted mechanical resonances that can affect the quality and accuracy of the printed parts.

Input shaping works by adding small, carefully chosen modifications to the g-code commands, which can help to reduce the excitation of mechanical resonances and minimize the impact of vibrations on the printing process. The modifications can take various forms, such as adding small amounts of damping, or delaying the input signals to counteract the phase lag between the input and output of the system.

Input shaping is typically implemented in the firmware that runs on the 3D printer’s microcontroller, such as Marlin or Klipper. It can also be performed on the host computer that generates the g-code, although this approach is less common. The choice of input shaping method and the amount of modification applied will depend on the specific mechanical properties of the printer and the desired performance goals.

What is Pressure Advance?

Pressure advance is a technique used in 3D printing to improve the accuracy and quality of the extrusion process. The extrusion process is the process of pushing melted filament through a hotend nozzle to form the layers of a 3D printed object.

In a typical 3D printer, the extruder motor pulls the filament into the hotend, where it is melted and extruded through the nozzle. The speed of the extruder motor is controlled by the firmware to determine the flow rate of the filament. However, due to the mechanical properties of the filament, the actual flow rate of the filament can be affected by pressure changes within the hotend and nozzle. This can lead to variations in the filament flow rate, which can cause variations in the layer thickness, surface finish, and overall quality of the printed part.

Pressure advance is a technique that compensates for these pressure variations by adjusting the extruder motor speed in real-time based on the pressure of the melted filament within the hotend. This helps to ensure that the filament is extruded at a consistent rate, even as the pressure within the hotend changes. As a result, pressure advance can improve the accuracy and quality of the printed parts, especially for complex or highly detailed prints.

The amount of pressure advance applied will depend on the specific mechanical properties of the printer and the filament being used. It is typically calibrated and adjusted during the setup process of the printer and can be adjusted based on the results of test prints.

What is the difference between ABL and UBL mesh leveling?

Automatic Bed Leveling (ABL) and Unified Bed Leveling (UBL) are both techniques used in 3D printing to level the build platform and ensure that the first layer of the print adheres properly.

Automatic Bed Leveling (ABL) is a technique in which the printer probes the build platform at multiple points to determine the level of the bed. The firmware then uses this information to adjust the Z-axis offset during the print, ensuring that the first layer of the print is level and adheres properly to the bed. ABL is typically performed before each print and is generally fast and straightforward to use.

Unified Bed Leveling (UBL) is an advanced form of ABL that takes into account the entire build platform, rather than just a few points. UBL creates a mesh of the entire bed and uses this information to determine the best Z-axis offset for each point on the bed. This allows for a much more accurate and consistent bed level, even on irregular or warped build platforms. UBL is typically performed during the setup of the printer and may require more time and effort to set up and calibrate compared to ABL.