🞴 Engineering Index About Search

Design for a Linear Motor FDM 3D Printer


I engaged in my previous linear motor projects with their potential use in a 3D printer in mind. Linear motors offer very high control bandwidth, which is one factor limitating in 3D printer speed (although 3D printing at high speeds involves a lot more than just fast movement). Linear motors are almost certainly overkill for a 3D printer, but thats part of the point for me. I learned a lot about motor control and firmware development when I built my linear motor prototypes, but there is still more for me to learn (particularly making the controllers robust to unpredictable use) by integrating the prototypes I've built into a useful application. At the moment, most of the kinematic design is complete, but I've left many of the decisions about specific 3D printer parts for later, as availability of hobby parts fluctuates and new products are released.

An overview of the bare printer design without any encloser or electronics.

Kinematic Design Overview

First of all, I decided to use a cross-gantry design for the XY axes. These axes are the parts that move the most and the fastest, and the cross-gantry design has many advantages. First of all, design wise the X and Y axes are identical and behave the same kinematically (note that this is not true of a design such as a CoreXY printer). The cross-gantry design also won't have issues with gantry racking because each gantry must be actuated on both sides. One downside, however, is that the design requires 6 linear rails for the XY design, which increases the cost.

For the Z axis, I decided to use a triple leadscrew system, which allows for automatic bed leveling with kinematic mounts. Triple-Z setups have become popular recently in many DIY printer designs because it greatly improves the consistency of prints and overall rigidity. The only downside is, again, cost, since you need 3 separate Z actuators. I decided to use leadscrews for simplicity because the alternative, a belt drive, is more complex to design properly and less rigid.

Frame Design

I decided to use the typical aluminum extrusions, since they are readily available from many suppliers and easy to work with and assemble. I decided to use 3030 extrusions so I could fit MGN12 rails within the width of the profile.

A mockup of the frame structure. The different sections are placed to support the various motion components and are joined with blind extrusion joints.

X and Y Axis Design

I decided the simplest and quickest way to get a precise XY system was to use laser cut sheet metal parts for many of the components. I was also able to reduce both the number of unique parts and the overall part count using sheet metal parts.

An overview of the XY motion assembly.

Each carriage consists of a baseplate that is bolted to the carriage of a rail carries the gantry, a linear motor, and encoder.

One of four identical XY carriages used on the X and Y axes.

Z Axis Design

For the Z axis, I used a 12mm leadscrew, which should be a bit better than the standard 8mm leadscrew in terms of rigidity. In order to avoid wobble in the leadscrew, the leadscrew is mounted at the bottom by a pulley held between two bearings, which reduces eccentricity of the leadscrew rotation and introduces another reduction stage for more precise motion.

One of 3 identical Z axis modules used in the triple Z system. The leadscrew is driven by the motor through a 2-to-1 reduction.

Toolhead and Extruder Design

I want to experiment with multiple extrusion system, so I designed a minimal tool plate that could be a versatile mount for various attachments.

One of four identical XY carriages used on the X and Y axes.

For the time being, I designed a simple mount for an extruder I already have on hand and a couple fans for part cooling.

An all-in-one extruder I have on-hand. I also want to experiment with a pellet extruder eventually.