There are so many variables limiting the printing speed and/or quality you can achieve with your 3D printer. Many of them are interlinked, so I'm proposing a calculator so you can find out the what could be the maximum printing speed that's acceptable for your printer.
This post is split in 3 parts: Extrusion, Displacement, Cooling. The maximum print speed is the value that satisfy all these constraints.
Extruding plastic implies:
Point 1 above means that you must have an extruder that's powerful enough to reach and sustain the extruding pressure. If the (cold) filament is not plastic, it means that any volume of filament pushed by the extruder will get out of the nozzle. If the filament is plastic (due to a too high temperature for example), then it'll start to clog in the path and the relation input = output is no more valid, since the plastic will start to compress when it soften, and decompress when retracted: a differential equation is required to model this.
Most printers are designed so that the filament is kept as solid as possible until it enters the hotend, so the simple relation above applies.
When trying to reach the maximum speed of your printer, you'll be flirting with this limit. So it's important to remember the physical process to understand we'll compute below.
In the calculator below, we'll compute the maximum extrusion speed you can perform once you've calibrated it.
The extrusion speed is the speed at which you can drive your extruder and still get consistent plastic output. Since it depends on the ability of your hotend to melt a given plastic volume, you'll need to create a 2 dimension matrix. On one axis, you'll write down the extruder speed and on the other you'll write down the hotend temperature. The value in each cell of the matrix is the amount of plastic you've extruded for the combinaison of (hotend temperature, extruder speed).
Usually, the higher the extruder speed, the more likely it'll fail to sustain the pressure required to extrude plastic out of the hotend, so it'll miss steps => extrude less plastic. By weighting the extruded plastic for each combination, you can figure out how well the extruder performed for such combination.
M83once to change to relative extrusion (so you don't have to accumulate your numbers)
M109 Rxxx(replacing xxx with the desired temperature to test). It'll only return
okwhen the hotend reached the temperature.
3mm/s, and convert it in
mm/minby multiplying by 60 or use the calculator above). You'll then need to set the extrusion speed with a
G1 Fxxx(replacing xxx by the speed you want to test).
G1 F3followed by
G1 Fxxx(replacing xxx by the speed you want to test)
G1 E300(depending on your firmware, the extrusion length might be limited to
250mmor less so adjust in consequence)
If you perform the steps above for each combination of extrusion speed and temperature (you'll need to increase the temperature when you increase the extrusion speed, but don't go above to 260°C or 270°C for PLA) and report in an spreadsheet, you'll be able to observe and compare the limitation of the flow from the hotend. Typically, at a fixed temperature of 210°C, the quantity of extruded plastic will decrease when the extrusion speed increase. But if you increase the hotend temperature at the same time, you'll recover this loss up to a tuple.
(extrusion speed, temperature) will give you the maximum extrusion speed your hotend can support.
Then enter the extrusion speed in the calculator above and you'll find out the maximum print speed you can acheive.
This speed is theorical, since it's the case when the printer has finished accelerating (which needs space to perform), and the plastic has cooled enough to adhere but is not dripping on the last layer. With a 20% margin, you should be safe here.
As the world is cruel, we have to obey nature's laws. Those laws state that a body can't change from one speed to an other speed instantly. It has to accelerate (or decelerate) to achieve this and this takes time. In our case here, we are interested mostly in the printer's X/Y movement (you are not usually limited by the Z movement speed, unless you are using a non usual firmware).
Depending on your printer's mechanics, the X or Y movement will be different, so it's not possible to provide a calculator that'd fit all printers. Instead, I'll try to explain few rules and you'll be able to compute the maximum acceleration your printer can achieve (and based on this information, the maximum speed).
For printers with direct axis control (no Core X/Y or H movement), with a screw or a belt, there is a direct relation between the rotation of the stepper motor and the displacement. You'll need to know the stepper motor steps per revolution and the screw or belt pitch (and number of teeth per revolution). Every revolution of the screw/belt lead to a progress of the carriage of one pitch of the screw (or X teeths of the belt).
Thus, the speed of the carriage depends on the number of steps per second a motor can sustain.
The speed is one thing, and the acceleration is another thing. There's no interest to a speed of 100mm/s if you need 2 days to accelerate to reach it.
To accelerate your carriage, you must also compute how much torque it can generate. This torques is used to fight against the torque required to hold the current position and overcome the resistance to movement (aka friction). For the former, it depends on your carriage visible mass and/or moment (depending on the mechanical configuration). The latter depends on how smooth the carriage can move. You'll lower resistance with a good lubrication for a screw, by changing the screw type (going to a ball screw for example), by changing the design so that the carriage is not supported by the scew but by bearing, roller, whatever, etc...
Since the above is hard to evaluate, it can be deduced by simple experiments:
G0 X150 Y0 F1500, where
X=150, Y=0is the new position to reach (in mm),
F1500is the feedrate, ie the speed to use (in mm/min))
G0 X150 Y150 F1500)
G0 X0 Y150 F1500)
G0 X0 Y0 F1500)
While you've found the maximum extruder speed and maximum mechanical hotend speed, you must also ensure you're cooling the plastic fast enough that it does not deform anymore once extruded. I don't know the physical process enough here to provide a calculator. From an empirical observation, you can adjust the fan speed of the hotend (not the fan on the heatbreak part) from 0 to 255 and perform a temperature torture test. So, prepare a print with the maximum speed you can reach (that's the minimal of the maximum extrusion speed and the hotend speed) and print different pieces with different fan values.
You should run a dichotomic search here, that is: