2024.9.22 22:59

By 김민준

3D Printer Kinematics Types

Ther are 3 main kinematic types of 3d printers. Cartesian, CoreXY and Delta.

Cartesian

Cartesian is the most common, commonly referred to as i3 or bedslingers. These types of printers are what most people know as a ‘3d printer’.

Source - ResearchGate

Source - ResearchGate

They have individual motors for each axis. This allows for much easier kinematic calculations as to move one axis, a single motor needs to be driven. However, it comes with some downsides, especially when printing fast. The main downside is that the X and Y axis has heavy parts attached to them. The Y axis has the printbed attached to it, which is quite heavy, and the X axis has the toolhead attached to it. This means that while printing fast, there can be oscillations when the printer makes a move and it will result in wobbles in printing, known as ghosting. Furthermore, since there are heavy objects attached to each axis, there is a limit to the acceleration and therefore, speed that these printers can print at. Furthermore, the bed itself is moving, which means there needs to be space reserved both in front and the back of the printer, resulting in more space occupied than the build plate volume.

CoreXY

CoreXY has surged in popularity recently, where there are more and more CoreXY printers. The main reason for it’s surge in popularity is the fact that it allows for much faster printing.

Source - 3D Distributed

Source - 3D Distributed

CoreXY kinematics are more complex than Cartesian printers, where the XY motors are linked together that moves the toolhead, while the Z motor moves the bed. There are some ‘flying gantry’ 3d printers, such as the Voron 2.4 where the bed is stationary and the gantry(XY rails + toolhead) moves up, but they are not very common. CoreXY’s benefits are obvious. Instead of having to move the heavy bed and toolhead, they just need to move the toolhead. This allows for much higher acceleration values and due to the reduced mass and therefore inertia, there is much less oscillations that happen.

3D Printer Firmwares

3D printers use a mainboard that runs the entire printer kinematics, temperature control and more. If the user adds a raspberry pi or other computers, they can use a print server with Octoprint or others to facilitate printing and monitoring machine state and print states. These printer mainboards are based off microprocessors. Older printers or even custom made printers may have arduinos or similar 8-bit microprocessors, and newer or custom built printers has 32-bit microprocessors. Faster and higher bit microprocessors do enable better printing and more features.

In terms of 3D printers, there are 2 main ‘flavors’. There’s Marlin firmware and Klipper firmware. Marlin used to be the main firmware as it supports many different types of machines, is compatible with many mainboards and is frequently updated. However, recently, Klipper firmware has taken over as it has several features that are desirable. Marlin is great to run on generic machines, and older machines such as Ender series or Artillery genius run them. However, with small modifications, most if not all printers can run Klipper.

Klipper’s main fame was input shaping. As mentioned above, there can be oscillations that happen during fast print moves. Klipper can use a accelerometer that is attached to the toolhead to measure the vibration dynamics of the printer and then actively tune the vibrations out during prints. This allows for faster print speeds without sacrificing quality. Another massive benefit that Klipper has is how it works.

3D printers use stepper motors with stepper drivers. Stepper drivers work by receiving step pulse signals, where if a pulse is given, the motor rotates a certain degree. Typically, a stepper motor rotates 1.8 degrees/pulse. They also need direction signals and other information, but that isn’t too relevant here. Traditionally, the 3d printer mainboards had to calculate these step pulse timings and execute them. This is quite taxing on the mainboard as it needs to calculate everything. Gcode translation, step pulse generation, hotend temperature PID control, heated bed(if the printer has one) PID control, fan control, display and more. However, with Klipper, a raspi that is typically only used as a print server on Marlin based machines calculates the printer movements. The raspi calculates step directions with the timings based on the machine kinematics then sends them to the microprocessor. Then the microprocessor just executes the printer movements. This allows for much faster and precise step pulse executions, allowing for faster and more precise printing.

Klipper is also great as with Marlin firmware, changing the machine parameters requires a recompile and reupload. Klipper instead uses a config file that stores all of the machine settings and parameters, allowing parameter changes without having to reboot the machine. This is especially useful when setting up the machine for the first time, but also useful to add features to the printer.