3D printing guides – Tuning speeds

Learn how to tune your printer’s axis up to maximum speed!

I’m Tom and today i’m going to talk about printing fast. So there’s two two parts to printing speeds: One is the speed you tell your slicer to use, which is the set, ideal speed. The other is how fast the printer can actually follow along those instructions and how fast it can move between two printing areas.

Now, the early firmwares simply assumed that the printer can instantly speed up to the speed you wanted and also instantly slow down to zero. This worked because each of the printer’s axis isn’t perfectly stiff but actually have a certain amount of elasticity and also because the speeds were rather low back then. Nowadays, modern firmwares use a much more elegant approach: Each time an axis speeds up or slows down, the firmware runs through three individual stages:

Phase one works just like the old-skool firmwares: Because your printer’s axis are still somewhat elastic, the motor can skip up a certain speed without having to slowly ramp up. But instead of jumping right to the full speed, the difference between the initial and final speed after the jump is limited to a certain amount. This is what’s called “jerk”.

The second phase is acceleration. This is where the motor continuously ramps up to speed at a set rate, until the desired speed is reached.

Phase three is the constant-velocity phase, where the motor runs at a certain RPM without speeding up or slowing down. Now, depending on how long the specific move is, the motor might not have enough time to ramp up to the full speed, but goes directly from accelerating to decelerating. This is also part of the reason why a printer doesn’t print twice as fast when you simply double the printing speed without also increasing the acceleration values.

So let’s take a look at what this means in practice. Here’s my printer’s x-axis, which has a heavy greg’s wade extruder sitting on top and is driven by a fairly beefy 48 newton-centimeter motor. Let’s see how it moves [clip] Well, I’m pretty sure you didn’t see much there. Let’s take a look at the same move in slow motion: There’s the initial running jump up to the “jerk” speed, then it’s accelerating, going at constant velocity, decelerating, and finally jerking off to zero speed. So this is the basic movement from a dead stop to a dead stop. Firmwares like Marlin also incorporate a feature called “look-ahead”, which makes sure that when the printer is instructed to move along a path like for example a curved or round part of a layer, it doesn’t have to come to a dead stop between each of the path’s segment, but can conserve some of its momentum along the way. Because for each segment the firmware makes use of the jerk speed difference, the printed surface comes out smoother without all the bumps that you’d usually see where the segments meet.

So at this point, you’re probably going “well, this all well and nice,but how do i make my printer as fast as possible?”. So as you might have guessed, the three parameters of maximum speed, acceleration and jerk determine how fast the print head can get from point a to point b. So let’s start out with the most uncritical one of these: Jerk. Simply set that to about 20 to 30% of your print speed, so if you’re planning on printing at 60mm/s, a value of around 15mm/s is pretty much perfect. Set it too high, and you’ll risk introducing ringing artifacts at sharp corners, set it too low and you’ll get blobs where the sections of each move meet, so it’s not really something where you need to spend a lot of time on adjusting. You can either use the command M205 X and your jerk value, so for example M205 X15 and then save it with M500, or directly store the value in the firmware. Check out my video guide on all thing firmware if you want to go down that route. By the way, updating jerk sets the value for both X and Y.

So the next tunable parameter we’re going to look at is acceleration. Now, against popular belief, you can’t determine your maximum acceleration value by jogging an axis and checking at which value it starts to lose steps. 3D printers are a bit more complex than that. The limiting factor is going to be at what speed each axis is going to start resonating. And every 3D printer has some frequency at which it resonates. Here’s what that looks like [loud buzzing]

Now this is something that you only rarely run into, but if you do, it’s going to make it impossible to print that specific part. And by the way, even Makerbot haven’t figured this out yet, so it’s no shame if your printer sometimes skips a beat. Rectangular infill on parts with thin, rounded or tapered section are especially unforgiving when it comes to exposing resonances, just take at look at the “i made one” section of damm301’s pen holder, linked below.

So to tune accelerations, i’ve uploaded a simplified test part to Youmagine that provokes resonances in a similar way. You’ll likely hear when your printer goes into resonance, so if you listen closely, you don’t even need to have filament in your printer when doing a test print. Though i do recommend leaving it in there, since that makes it much easier to see when something has gone wrong.

To work our way up to the ideal acceleration values, set the maximum speed to a rather low value to make sure that we’re only tuning the acceleration. Use for example the command M203 X100 Y100 for that. Unlike jerk, acceleration can be set independently for both X and Y by either using the M201 command like M201 X9001 Y3000 or, again, by directly editing the firmware’s configuration.

Now, for actually fine-tuning acceleration, it’s mostly trial and error, really. So start out with some arbitrary values for both X and Y, like 9001mm/s² for X and 3000mm/s² for Y if your printer has a moving bed. If not, use the same value as for X, and then just print the test part with 100% rectangular infill and see if X or Y starts losing steps. If it works, increase the values by 10 to 20% and try again, if it doesn’t, decrease them, obviously. If you’ve found a value for each axis that’s just borderline, leave a safety margin of about 20%, and voila, that’s the maximum acceleration value you’ll want to use. Now, depending on the exact type of printer you’re using, you might want to reduce that a bit further if your printer’s frame starts to wobble around too much. Especially the x axis of the triangular Mendel and Prusa Mendel frames are prime candidates here. By the way, none of the features in Marlin or in Slic3r work particularly well to suppress resonances.

So last, but not least, speed. Or more precisely, the maximum speed. While adjusting this, keep in mind that the maximum speed has very little effect on both printing times and the quality of your prints. Also, unless you have a fairly long axis like my Mendel90, it’s pretty unlikely that your printer will ever reach anything much above 150 or 200mm/s, so if you simply want some value that works, just use 150mm/s and be done with it. If not, you can tune it much like the acceleration value, but this time, you can actually do test moves to test for the maximum speed each axis can reach. The command for setting a new maximum feedrate is M203 and it works exactly like the one for setting the acceleration parameters. So set a maximum speed and do a test move along an axis, but make sure your host doesn’t artificially slow it down. You can also move the printhead to a position by using the G1 command with the desired position along the axis in mm and the desired speed in mm per minute, so that’s 60 times the speed you’d set in your firmware. For example the command to move the X axis to the 100mm position at 200mm/s is G1 X100 F12000.

So, just like with tuning acceleration, once you’ve found a critical value that just about works, deduct a safety margin of about 20%. And generally, values far above 300mm/s aren’t much use anyways.

Now, we’ve tuned X and Y and this is probably a good moment to do a full test print to try out the new parameters you’ve found. But we still haven’t tuned the Z axis and E, the extruder, and that’s for a good reason. The speeds of both of those axis aren’t really critical to the speed of your prints. Just set jerk, acceleration and speed low enough for them to have everything working and you’ll be golden.

 

So i hope this guide helped you out with getting your printer working as reliably as possible. If you liked it, hit the thumbs up below and subscribe to my channel if you want to stay up to date when i release new videos. Also, feel free to share this video or any of my other videos on your favorite social media platform.

There’s also now a survey link in the description where you can suggest new topics and vote on which ones i should do next.

And that’s it for today, thanks for watching!

damm301’s pen holder
Resonance test part
Anonymous topics poll


You can support me without spending a single penny!