<p>When the print head changes direction, the printer must accelerate and decelerate the print head. When calibrated correctly, the printer is able to do this quickly and without causing the printer to shake too much, without drastically slowing down the print process.</p>

<p>If I set it too high, my printer shakes violently, especially during infill. If I set it too low, print times are doubled or tripled.</p>

<p>What process can I follow to determine (or how can I calculate) the fastest acceleration value my printer can use without causing problems in my print?</p>

<p>I'd prefer a process I can follow over a formula I can plug values into, especially if the formula includes magic numbers.</p>

[{'answer_id': 225, 'author': 'Tormod Haugene', 'author_id': 115, 'author_profile': 'https://3dprinting.stackexchange.com/users/115', 'pm_score': 3, 'selected': False, 'text': '<p>A tool that you might find useful for experimenting with acceleration is <a href="http://prusaprinters.org/calculator/" rel="nofollow noreferrer">RepRap Centrals Acceleration Calculator</a> (at the bottom).</p>\n\n<p>By setting an <em>acceleration</em>, <em>length of travel</em> and <em>target speed</em>, you can see:</p>\n\n<ol>\n<li>The theoretical speed that can be achieved during the travel with your set acceleration (yellow line).</li>\n<li>The distance required to reach your target speed, and for how long it will hold that speed before slowing down (blue line).</li>\n</ol>\n\n<p>For instance, setting <code>acceleration = 3000, length = 30 and speed = 150</code> means it will travel 4 mm before reaching its desired speed of 150 mm/s, while that same acceleration theoretically could give a speed of 300 mm/s for the given distance: </p>\n\n<p><a href="https://i.stack.imgur.com/g13l3.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/g13l3.png" alt="enter image description here"></a></p>\n\n<p><strong>Calculating speed, acceleration and jerk:</strong></p>\n\n<p>In many cases your printer will have some limitation in maximum speed or settings given by your provider that can be used as a starting point. If not, trial and error is the most straightforward way of doing it. </p>\n\n<p>I would separate speed calibration into three task:</p>\n\n<ol>\n<li>First find the <em>maximum speed</em> your printer can tolerate. One way of doing this is to print an object with long travel distances, and vary the maximum travel speed.</li>\n<li>Using the calculator above, increase the <em>acceleration</em> for various traveling distances until you get suitably smooth acceleration curves for your desired speed for medium to long traveling distances.</li>\n<li>Adjust your <em>jerk</em> setting to allow for quick speedup on short traveling distances. Jerk speed is the speed that the printer will immediately jump to before taking acceleration into account. With a jerk of 20mm/s, the printer will make an immediate jump from 0 to 20 mm/s, and thereafter speed up to the desired speed by following the acceleration profile.</li>\n</ol>\n\n<p>As a rule of thumb, it might be smart to then set the actual speed, jerk and acceleration approximately 20% below the the maximum found as a safeguard when printing. </p>\n\n<p>Also, bear in mind that <a href="https://www.google.no/search?q=stepper%20motor%20strength%20curve%20NEMA%2017&amp;espv=2&amp;biw=1920&amp;bih=985&amp;tbm=isch&amp;tbo=u&amp;source=univ&amp;sa=X&amp;ved=0ahUKEwi74aLL46fKAhVIdCwKHdJbDa4QsAQIGg&amp;dpr=1#imgrc=NbUjFTxiWehyKM%3A" rel="nofollow noreferrer">the strength of stepper motors lowers for higher speeds</a>, so that the nozzle will not hold its path very well if obstructed. If this becomes a problem, consider lowering the speed.  </p>\n'}, {'answer_id': 227, 'author': 'TextGeek', 'author_id': 40, 'author_profile': 'https://3dprinting.stackexchange.com/users/40', 'pm_score': 5, 'selected': True, 'text': '<p>As Tom pointed out, binary search is the best way. In case that term isn\'t familiar to all readers, here\'s a little more detail:</p>\n\n<ol>\n<li><p>Establish an acceleration value that you\'re sure is too low (call it <span class="math-container">$L$</span>), and one that you\'re sure is too high (<span class="math-container">$H$</span>). It sounds like you know such values already from experience.</p></li>\n<li><p>Figure out the speed in the middle: <span class="math-container">$(L+H)/2$</span>.  Call that <span class="math-container">$M$</span>.</p></li>\n<li><p>Try printing at speed <span class="math-container">$M$</span>. Something like a stepped calibration cube might be a good choice of object (plenty available on Thingiverse).</p></li>\n<li><p>If <span class="math-container">$M$</span> is still too fast, take <span class="math-container">$M$</span> as your new high-speed limit (that is, reset <span class="math-container">$H$</span> to the value of <span class="math-container">$M$</span>), and repeat from step #2.</p></li>\n<li><p>If it\'s slow enough to work, take <span class="math-container">$M$</span> as your new low-speed limit (<span class="math-container">$L$</span>), and repeat from step #2.</p></li>\n</ol>\n\n<p>Each repetition will cut the range in half. Keep repeating until <span class="math-container">$L$</span> and <span class="math-container">$H$</span> get as close as you want; say, within 5&nbsp;% of each other or so.</p>\n\n<p>I wouldn\'t bother trying to get super-close, because the workable value will vary somewhat over time (friction from dust getting on various parts; slight voltage differences; different mass and pulling tension for the filament roll, temperature of motors, complexity of the object you\'re printing, behavior of the slicing program you use, you name it).</p>\n'}, {'answer_id': 3594, 'author': 'DevWolf', 'author_id': 6030, 'author_profile': 'https://3dprinting.stackexchange.com/users/6030', 'pm_score': 1, 'selected': False, 'text': "<p>Most printers use between 2000 and 5000 mm/s<sup>2</sup>.... extrusion moves are usually 2000 (on average, between different printers), travel is normally seen at 3000-5000, though for most lower end or duel direct drive extruder (heavy) printers, this value should be lower (some as low as 500-1000, some as high as 2000 for travel). Heavier extruders need lower values, as well a slower jerk values, to avoid the motors skipping. The jerk setting being set lower can actually be beneficial, as this makes for smoother extrusion after a corner or a hole (some people will see ripples near these areas as it accelerates out of the direction change - lower values make these ripples smaller, but slightly increase print time).</p>\n\n<p>I've just modified mine with a prototype carriage design that I'm working on. It's added about 100 grams to the stock weight. It was finely tuned before, so this extra weight set it over that pillow of 20-30% in the setting, and makes the X and Y skip as it jerks around the plate; especially in high resolution models, particularly high resolution circles with 200 faces on the vertical axis, because the printer tries to jerk after each node - normally that isn't an issue, but in heavy designs, the jerk setting needs to be lowered. I had my jerk at 20 for XY, and its now at 4, after having tested and failed 8 and 15 values. The acceleration was at 2000 for both extrusion and travel (some firmwares don't allow separate values for travel and extrusion moves, but if yours does, it's best to have travel value about double the print moves - when your travel is twice the speed of extrusion moves - so use that 1-1 formula in relation to speed, scale it for each desired speed set in the slicer). Mine has been tested at 2000, 1500, 1000, and 800, failing all of them, with jerk setting of 5. Now testing 500 for acceleration, and beginning to get a little confused as to why this is happening. </p>\n\n<p>Now I'm having second thoughts... After going as low as 800 from 2000, and still getting skipping (seemingly worse) am I getting this backwards here? Do I need a higher value if the motor is skipping on quick moves? My understanding is that lower is better for those problems, but perhaps I've confused myself. </p>\n"}]
['https://3dprinting.stackexchange.com/questions/212', 'https://3dprinting.stackexchange.com', 'https://3dprinting.stackexchange.com/users/131/']