YellowPrinter 3D printer assembly part 2

In the previous article, we talked about the general design assumptions of the YellowPrinter and began to discuss its construction, starting with the aluminium frame. This time we will discuss the next steps of assembling frame of this printer but before we will do that I want to describe you process of choosing correct stepper motors to drive our Z axi. Remember that YellowPrinter has kinematically coupled bed so besid linear movement it alse can make tilts and rolls, so it has 3 degrees of freedom. We will also talk about features unique to this printer, which are very important and have a significant impact on the quality of prototyping.

Front frame view with linear guides mounted

Stepper motors for Z axi

The next stage of construction begins with the installation of stepper motors and not just any. Each YellowPrinter component has been carefully selected and has characteristics appropriate to the working conditions in which it will operate. To control the position of the heating bed, I used NEMA 17 stepper motors from Nanotec, with the serial number ST4118L3004-A. Here are parameters of this motor:

Current3 A
Rotor inertia82 gcm²
Inductance on the winding1.03 mH
Length of the engine48.5 mm
Size42 mm
Holding moment50 Ncm
Winding resistance0.63 Ohm
Resolution1.8 °/step
Weight0.34 kg
Nanotec ST4118L3004-A specification
Nanotec ST4118L3004-A stepper motor

You are probably wondering how to match the engine to the requirements of a given project. Contrary to what you may think, this is not a difficult issue and there are also planty of articles that will help us in this topic. At this point, I would like you to have a look at a very interesting article from the documentation of the Duet motherboard, where you can read in a very accessible way how to choose stepper motors for our 3D printers:

There is also interesting article about microstepping which is also worth to read:

Few words about microstepping

I’ll try to make it as short and as clear as possible. Generally speaking, the higher the winding current, the greater the holding torque of the motor and the greater the acceleration that can be achieved. Maybe in the case of the Z axis, this parameter is not so important, but in the case of CoreXY kinematics, the weak point of which is diagonal movement – when it works only one engine – it has a huge impact. So I describe the case of selecting a motor for the bed drive, but remember that you can also apply this method to selecting a drive for any other axis of the 3D printer.

Because of higher amount of degrees of freedom choosing right motor has a slight bigger impact on this particular 3D printing than in standard machines. One of the usecase will be non-planar 3D printing which tilt and roll printing bed during running G-code. It means that moves has to be smooth and precise. In the project, we use the Duet 3 motherboard, which theoretically allows to use motors with a winding current up to 5.5A. Nanotec has a current rated in the level of 3A, which is one of the highest values in this engine size on the market. It should also be remembered that that we should take precautions against heating up motor too much. It means that the current controlling its operation should not exceed about 85% of the nominal current.

Many people may be surprised by the fact that I choose motors with a resolution of 1.8 ° / step and not 0.9 ° / step. As we know, stepper motors move in discrete steps, i.e. fractions of total revolutions. In our case, a stepper motor with a single step angle of 1.8 ° resolution will make 200 steps for each full revolution of the motor (360 ÷ 1.8). This discreet movement means that the rotation of the motor is not perfectly smooth, and the slower the rotation, the less smooth due to the relatively large step size. One way to mitigate this lack of fluidity at low speeds is to reduce the size of the motor’s steps. This is where the concept of microstepping comes in. Microstepping control breaks down each complete step into smaller parts to help smooth engine revolutions to a minimum. This is especially important at low speeds.

Some people believe that microstepping reduces motor torque, but this is not entirely true. Obviously, when the slip angle of the stepper motor is equal to the angle corresponding to only one microstep, the higher row of microsteps means a smaller slip angle and hence a lower torque. However, the torque with respect to the slip angle unit does not decrease with an increase in the order of microsteps. Put simply, sending a single 1/16 microstep to the motor produces exactly the same phase current (and therefore same torque) as sending it 2 x 1/32 microsteps or 4 x 1/64 microsteps to it, and so on. But of course the view that the maximum moment per single microstep decreases as the order of its division increases is true.

1204 ball screw

With a screw with a pitch of 4mm, the minimum shift of the nut with 1/16 microstepping would be 0.0125mm, i.e. to get the planned layer height of 0.1mm, 8 microsteps should be made. The positioning accuracy for the ST4118L3004-A is ± 5% which translates into an absolute value of 0.18 ° of the maximum error and this translates into a positioning error of only 0.002mm. This means, however, that when using a larger order of microstepping, i.e. 1/32 (equivalent to the minimum rotation of 0.05625 °), even 3 microstepping would fit within the error, which effectively eliminates the advantages of such a configuration. 1/16 or even 1/8 will in this case be completely sufficient and accurate enough for FDM 3D printing.

There are many 0.9 ° / step resolution motors on the market. There are some good companies, such as Linengineering, whose parameters are very promising, but unfortunately it is difficult to buy their products in Europe. Unfortunately, most Chinese products of this type are characterized by incomparably lower winding currents (in relation to the motor with a resolution of 1.8 ° / step controlled by microstepping), much higher resistance values and they do not give the desired positioning error values. Therefore the choice of the Nanotec company and their ST4118L3004-A engines seems to be a very good choice, because it is difficult to find something equally professional in the NEMA 17 size with such a small positioning error.

CNC machined parts

Coming back to the construction of the printer. The motors are attached into the YellowPrinter frame via 3mm thick stainless steel plate, which perfectly defines their correct position in relation to the linear guides of the Z axis. You can see this in the pictures below. The mounting plate has holes cut on a CNC laser machine. In some places holes have also been threaded to facilitate installation in hard-to-reach places.

A similar situation occurs with the upper mounting plate, which is designed to define the position of the aluminum profiles and the entire Core XY kinematics. In the pictures below you can see the bean-shaped holes for mounting stepper motors for example. Thanks to them you can make your belts tight.

To the top plate I attached plastic belt tensioners, whcih are also responsible for separating XY steppers from hot printing chamber. On the back side of the printer cable I attached cable chain mounting bracket and bowden cable passage. Thanks to this You will be able to easily replace bowden in case it tear down and make working area clear from cables.

CoreXY steel plate with belt tensioners attached into it

You can see more close up details below:

Steel plate has been attached to the frame using black M5x8mm ISO 7380 screws and T-Nuts.

Z stepper motors mount steel plate attached to the frame

As I mentioned before steel plate has precut passages for cables. Thanks to this all of them are completely separated from working area of the printer.

Z stepper motors mounting plate holes for cables

Some of them have already tapped screw holes as in the picture below:

USB and CAN port mounting passage

Stepper motors mount

Four pictures below show how Z stepper motors are attached to the frame. The outer flange of the motor positions the motor in the horizontal plane, thanks to which we can be sure that it has been correctly mounted in relation to the linear guide.

The hole for motor flange has been cut with such accuracy that the motor does not move to the sides, but not tight enough to make its assembly difficult.

Z stepper motor attached to the steel plate

Here you can see all three motors attached:

All 3 Z stepper motors attached to the steel plate


YellowPrinter frame is equipped with a hidden tour of the filament. It means that I had to design special 3D printed parts that will define that tour from spools to the extruder. One ofe those parts is Y passage, which combine tour from 2 spools into one single path. It doesn’t mean that we can mix 2 filaments together of course, it only means that, in case big prints, you can put 2 filament into the frame and if one is empty you can put into extruder second one mounted on the opposite site of the printer.

Filament Y passage

The places, where we put the filament into the bowden, are I passages screwed to the steel cover.

All passages are equipped with PC10 fittings, which connect them together with appropriate bowden length.

The hidden path of the filament below steel plate

Finally the bowden exits the I passage at the top of the frame which ends its way inside the frame.

Top bowden passage

USB and Ethernet connectors

One of the elements of the lower cover is the plastic mounting for the USB and Ethernet connectors, which will later be connected to the Raspberry Pi SBC and the Duet 3 motherboard. You can see this element below:

USB & Ethernet ports mounted to the steel plate


At the moment, the following stages have been completed:

  • assembling of the steel plates that holds the X,Y and Z stepper motors,
  • attaching belt tensioners,
  • mounting cable chain fastening,
  • mounting all bowden passages,
  • attaching Z stepper motors,
  • mounting USB and Ethernet ports.

In next publication I will start with ball screws assembling. So I would like to invite you to visit my blog in a few days. See you later 🙂

Top right corner view on frame with assembled steel plates