Products > 3D printing

Turning the knop on speed


Hi everybody.
I am new to 3D printing but I have used stepper motor with Trinamic drivers for close to 8 years. I am aware that 3D printing outcome is a "dance" of quite a few parameters and also involves not only the kind of filament you use, PLA i.e. and what quality the supplier of the filaments provide and if it has been stored in a dry environment. I want to limit myself in this thread to the topic of printing speed only.

The first aspect I want to touch is the controller used being used in a controller board. If speed printing is one objective 8-bit controllers are not an option. 32-bit controllers are the ones to look on. I had chosen the BTT-SKR-PRO V1.2 as it was the only one that uses an ARM Cortex M4 controller in the list of boards I saw on a YouTube video from Kersey Fabrications. It runs at 168 MHz, this data is not even displayed in the webpage from BTT about this one of their products.

Also comparing the quality of the prints of different boards done by Kersey Fabrications there were cases where the computing performance of the controller executing G Code came to its limits when testing higher speeds. Also, it had an impact when the controller had to operate a graphic display that required a bit of processing power from the main controller.

Here I wonder why ARM Cortex M4 dual-core controllers are not being used. These controllers run at 200 MHz which results in >20% processing power and those controllers are not expensive. But also their ARM Cortex M0+ core could be used to control peripheral functions leaving the ARM M3 core to dedicate its computing performance exclusively dedicated to executing G Code instructions.

As I take out of this is that the computing performance of a 3D printer using such a controller could have the rate at which it can pass commands to the SilentStepStick much faster and so that the parameter of available computing power could be improved a lot. The problem that I would dig in deeper is to analyze how Marlin 2.0 could be adapted to benefit from using a dual-core controller.

The next parameter influencing the potential to increase printing speed is to make sure that the stepper motor used to implement moves in either X, Y or Z. As Trinamic writes in its FAQ section for motors on their website, stepper motors would typically be used supplying a voltage up to 20x the value of the nominal voltage the stepper motor is characterized. I have purchased together with the BTT-SKR-PRO V1.2 board a Meanwell 600W 48 VDC power supply and 3 SilentStepSticksTMC5160hv that were still available at Watterott, the partner of Trinamic for designing and production of SilentStepSticks for their driver ICs. These driver ICs can be fed with up to 60 VDC and 20 A, far above the 48 VDC I am using and far below the nominal value for their current for NEMA17 stepper motors. Higher supply voltage makes possible 2 things. One is that much higher step frequencies can be achieved by a stepper motor as the induction voltage resulting from the faster change of voltages applied to the coils of the stepper motors. As you all might be aware, the induced voltage in the coils is always of inverse polarity to the applied voltage and so the effective voltage the sum of both will stay above the nominal voltage value that is responsible for the amount of current flowing through the coils that are being limited to its nominal value by the PWM the Trinamic driver uses. The second benefit results from the fact that Trinamic stepper motor drivers are aware of the torque load a stepper motor faces. It can reduce the amount of current if less torque would be sufficient to tackle the actual torque load resulting in less stepper motor heating and less power consumption. This was important to me as I do operate a stepper motor in my hobby, naval modeling to operate as winch and the supply does come from a battery pack, 12 LIFePO4 battery cells connected in series. But Trinamic stepper motor drivers also use the higher supply voltage to address peak torque loads by temporarily increasing the current flow under control via the PWM of up to 20% for a brief time. Time is limited due to stressing the motor with a current value above the nominal value which results in additional heating of the motor.

The final aspect I see to increase the speed of printing is in the selection of the stepper motor. This really seems to apply only to those stepper motors responsible for the movement in the X, Y, and Z directions. Moving the filament in the extruder the key objective is to keep its weight as low as possible to have the least amount of kinetic energy stressing the rigidity of the 3D printer frame. Without problems to exchange apply as long as we use NEMA17 stepper motors. Typically in the 3D printers for the consumer market that I have been seeing, is that the nominal values are not shown on a plate as it should always be with any motor.

It requires a bit of searching on the Internet to find NEMA17 stepper motors that do have such a plate showing its nominal value and the torque. The differences are of the factor of 2 of the torque that is directly linked to the amount of current its nominal current value has. But also relevant is the length of those stepper motors. The standard length can be up to 3x and those offer the highest amount of torque. Replacing the existing stepper motors that move the X, Y, and Z directions at least on my 3D printer, a Creality Ender 5 Plus, is not a problem and can be changed with minimal effort.

What has to be analyzed and understood is obviously the settings for Marlin and the Slicer to be used.

The next parameters of interest are the temperature of the nozzle, the heat bed, and in the air in the environment of the printing volume. But those are parameters, together with the topic of the cooling fans I am leaving for later.

It took me 10 minutes to read all  of that, very detailed.

Let's start with the basics, what printer do you have?

In my past experience increasing the speed means also less time for the cooler fan to bring down the melted plastic temperature... this can cause warping/stringing ....
That said, I read the best method to increase printer speed is to go with a >=0.6 nozzle.
I personally strive for perfection and I do not care about printing time.

Welcome to the forum!

IMO, until you upgrade to larger stepper drivers, which usually also means a different controller board (unless you're ready to do some hackery), it's a moot point as the current capacity of the common Trinamic drivers is your real limiting factor. Most NEMA 17 steppers, properly-rated or not, can handle considerably load more than the Trinamics can deliver current.

Layer cooling is probably going to be a bigger limiting factor, as Zucca suggests. Speed is usually the driving force behind the folks tinkering with Fang-type layer coolers, not making a quieter printer as was my reason for turning to that format... but once dialed-in, you can have both. :-+

If you want to get real speed, you do need to be looking more towards buying or designing a real commercial-quality large-format printer, rather than trying to get it from a hobbyist-grade machine with rubber rollers and V-slot that is going to get sloppy fast.

Or look into one of the continuous-belt designs that you can set up to print unattended for days on end; problem with most of those is the same tho: The affordable ones are V-Slot & rubber rollers which wear and require maintenance; they may not be able to keep acceptable accuracy over even a single multi-day print.


@Zucca: I own a Creality Ender 5 Plus.

My purpose of this thread is purely to engage in conversations about stepper motors. Stepper motors are used both in 3D printers and CNC  machines for the consumer market. And as I wrote only about bipolar stepper motors as I have no experience with unipolar stepper motors.

To engage in a detailed discussion related to all the parameters that influence 3D printing is a story of its own. The 3D printing process is depending on many parameters. Some are hardware related, others software related and i.e. filament and the material used in them. As a fellow naval modeler wrote, 3D printing involves a dance of all the parameters that impact the printing. If you felt my first contribution was quite extensive and detailed, even just dedicated to stepper motors. Printing speed and quality is not the result of just making the stepper motors and the processing of the G-Code faster to be able to feed control signals to the stepper motor at the proper frequency.

Without major changes, it is easy to replace NEMA 17 stepper motors used to move the printing process in all 3 dimensions. Changing the length and therefore the weight of the stepper motors has no negative effect on the 3D printer execution. Feeding the extruder with filament is not a process that requires a lot of torque and keeping the weight as low as possible when the stepper motor is positioned next to the extruder.

Cooling is an aspect that I would prefer to get into at a later point in time. It is relevant to my 3D printer to protect it from the dust being generated with the other machines in my workshop.

@mnementh: I fear I am not of your opinion about the Trinamic stepper motor driver being the limiting factor. Just to refer to the datasheet of the TMC5160hv that I had purchased and that I will have to replace against TMC5161, they can handle a current of up to 20 A and voltages of up to 60 VDC. To my knowledge, there is no NEMA stepper motor up to the size of NEMA 42 for example that requires 10 A or more. Using the Meanwell 600 W 48VDC power supply. So the SilentStepSticksTMC2208, TMC2209, or TMC5161 are able to handle the current and voltage demands of any stepper motor to be used in consumer products. When you go for professional class CNC machines you will probable find brushless motors.

As to the controller board. It is really amazing that an ARM Cortex M4 core running at 200 MHz gets into problems when executing Marlin The code has to be coded in a very inefficient manner for this to be the case. But if you consider from where the controller boards used in 3D printers come from, just 8 Bit controllers, then the coding and the transfer of the code to 32-bit Marlin has to have been done not very good. But I do not see why i.e. the BTT-SKR-PRO V1.2 that uses an ARM Cortex single-core M4 would be insufficient to be used as the controller board in CNC machines. The controller boards in 3D printer boards are there to execute G-Code and I would guess that in consumer machines CNC milling or graving machines do not run faster than 3d Printer heads.

So, I have tried to respond in detail to your answers and I hope this is the beginning of a process where I also will be learning a lot. So my question related to the use of the CMSIC API in Marlin is key to understand and to see how to improve things efficiently.


[0] Message Index

There was an error while thanking
Go to full version
Powered by SMFPacks Advanced Attachments Uploader Mod