mirror of
https://github.com/teachingtechYT/teachingtechYT.github.io.git
synced 2024-08-30 18:23:26 +00:00
Add acceleration part 1 - calc max feedrate
This commit is contained in:
@ -109,6 +109,12 @@ iframe {
|
||||
margin: 0 20px;
|
||||
}
|
||||
|
||||
#warning {
|
||||
background-color: #ffcccc;
|
||||
border: 1px solid red;
|
||||
border-radius: 15px;
|
||||
}
|
||||
|
||||
.exp {
|
||||
background-color: rgb(230, 230, 230);
|
||||
padding: 1px 0;
|
||||
@ -133,6 +139,13 @@ iframe {
|
||||
font-size: 1.2em;
|
||||
}
|
||||
|
||||
.result {
|
||||
border: 5px solid #00c5ad;
|
||||
border-radius: 15px;
|
||||
font-size: 1.2em;
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
#flow1result, #flow2result {
|
||||
display: none;
|
||||
border: 5px solid #00c5ad;
|
||||
|
BIN
img/temperatureresults.jpg
Normal file
BIN
img/temperatureresults.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 252 KiB |
97
index.html
97
index.html
@ -41,8 +41,24 @@
|
||||
<h2>Introduction</h2>
|
||||
<p>This page serves as a companion for this video: <a href="https://www.youtube.com/watch?v=" target="_blank"></a></p>
|
||||
<p>It aims to make calibrating your 3D printer as easy as possible. If you find it helps you and you would like to say thank you, here is a donation link: <a href="https://paypal.me/testlawgicau" target="blank">PayPal.me</a></p>
|
||||
<p>Special thanks to my <a href="http://www.patreon.com/teachingtech" target="_blank">Patrons</a> for suggesting this video and helping define the contents.</p>
|
||||
<p>Watch the video and then work through each tab. I have created a custom gcode generator to assist in testing towers. Every attempt has been made to ensure this is safe but ultimately there always is risk in running presliced gcode from the internet. Preview the gcode in your slicer or <a href="http://gcode.ws/" target="_blank">Gcode.ws</a> and <span class="warning">print at your own risk.</span></p>
|
||||
<p>Special thanks to my <a href="http://www.patreon.com/teachingtech" target="_blank">Patrons</a> for suggesting this video, helping define the contents and testing/proofing.</p>
|
||||
<p>Watch the video and then work through each tab. I have created a custom gcode generator to assist in making testing towers.</p>
|
||||
<div id="warning">
|
||||
<h2>Warning - Read carefully!</h2>
|
||||
<p>Every attempt has been made to ensure this is safe but ultimately there always is risk in running presliced gcode from the internet. Preview the gcode in your slicer or <a href="http://gcode.ws/" target="_blank">Gcode.ws</a> and <span class="warning">print at your own risk.</span></p>
|
||||
<p>Only print this gcode when you are present, alert and capable of stopping the printer in case of emergency.</p>
|
||||
<p>Validation has been built into the forms to only allow sensible min and max values, however this is not foolproof.</p>
|
||||
<p>The gcode generated by this page has the following general characteristics:</p>
|
||||
<ul>
|
||||
<li>0.2mm layer height</li>
|
||||
<li>0.4mm nozzle</li>
|
||||
<li>Base feedrate of 60mm/sec</li>
|
||||
<li>0.2 - 0.4mm of Z hop</li>
|
||||
<li>Nozzle priming has been turned off to avoid bed clips or problems with deltas</li>
|
||||
<li>A single layer skirt</li>
|
||||
</ul>
|
||||
<p>To be compatible, your printer should have a miniumum bed size of 100 x 100mm.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="frame">
|
||||
@ -530,8 +546,8 @@
|
||||
<p>Instead here we are tuning the temperature at which the filament is extruded.</p>
|
||||
<div class="exp">
|
||||
<h5>Rule of thumb and special note:</h5>
|
||||
<p>A higher nozzle temperature should result in stronger parts, particularly interlayer adhesion. Part surface may be shinier. The filament will be softer so ooze and stringing may be increased, and some surface detail potentially lost. A hot end temperature too high may damage parts of the assembly such as internal PTFE tube.</p>
|
||||
<p>A lower nozzle temperature shiould result in weaker parts, particularly interlayer adhesion. Part surface may be duller. The filament will be firmer so ooze and stringing may be reduced, with good surface detail. A hot end temperature too low can cause the hot end to jam.</p>
|
||||
<p>A higher nozzle temperature should result in stronger parts, particularly interlayer adhesion. Part surface may be shinier. The filament will be softer so ooze and stringing may be increased, and some surface detail potentially lost, especially on overhangs. A hot end temperature too high may damage parts of the assembly such as internal PTFE tube.</p>
|
||||
<p>A lower nozzle temperature shiould result in weaker parts, particularly interlayer adhesion. Part surface may be duller. The filament will be firmer so ooze and stringing may be reduced, with good surface detail, especially on overhangs. A hot end temperature too low can cause the hot end to jam.</p>
|
||||
<p>Temperature tuning and retraction tuning are related to each other. You could do them in either order, and it may be necessary to tune back and forth to reach an ideal result.</p>
|
||||
</div>
|
||||
<p>The following form will create a temperature tower to conveniently test back to back parameters in the same print. There are five segments to vary the temperature. Generally the lowest temperatures would be at the start of the print (segment A) and the increase up to the highest by the top of the print (segment E).</p>
|
||||
@ -604,9 +620,82 @@
|
||||
</table>
|
||||
<p><input type="button" onclick="processTemperature()" value="Download Gcode"></p>
|
||||
</form>
|
||||
<h2>Interpreting Results:</h2>
|
||||
<p>Inspect your finished print. Hopefully there will be a clear difference between the segments that reflect the temperatures you entered. In the example below (Ender 3 direct drive, PLA, linear advance enabled), the hot end temperature varied from 185 to 225 in 10 degree increments"</p>
|
||||
<a href="#" data-featherlight="img/temperatureresults.jpg"><img class="thumb" src="img/temperatureresults.jpg" /></a>
|
||||
<p>For the first layer, there was some extruder clicking as the extruder struggled to push the filament through the cooler nozzle. As expected, surface becomes more glossy as the temperature increases. What was unexpected, was surface rippling either being more prominent or at least more obvious as the temperature went up. Underhangs and bridges all look good on this test.</p>
|
||||
<p>My previous hot end temperature was 200 degrees for this printer, but I will consider lowring it to 190 degrees after this test.</p>
|
||||
<p>You may also wish to conduct some destructive teasting to test part strength. In many cases this is more important than the appearance of the part.</p>
|
||||
</div>
|
||||
|
||||
<div id="accel">
|
||||
<div class="exp">
|
||||
<h2>Acceleration Tuning</h2>
|
||||
<h5>Aim:</h5>
|
||||
<p>To find the right compromise between printing speed and quality, specifically related to surface artefacts such as ghosting.</p>
|
||||
<h5>Required:</h5>
|
||||
<p>Initial calibration, when significant changes are made to the motion system (eg. heavier bed, conversion to direct drive from bowden tube).</p>
|
||||
</div>
|
||||
<p>We set a feedrate ort movement speed in our slicer, but the printer does not instantly reach these speeds. Like a motor vehicle, it needs time to accelerate. If the extrusion is short, it may not even have time to reach the specified speed. A handy <a href="https://blog.prusaprinters.org/calculator/" target="_blank">acceleration calculator is available on the Prusa website</a>.</p>
|
||||
<p>Complemtary to acceleration we have jerk, replaced by junction deviation in newer versions of Marlin. This setting is reponsible for making sure the printer does not come to a complete stop between each movement, but rather decelerates an appropriate amount deending on the angle of the next 'corner'.</p>
|
||||
<p>We will be tuning both of these parameters with another tower.</p>
|
||||
<div class="exp">
|
||||
<h5>Rule of thumb:</h5>
|
||||
<p>Higher acceleration and jerk wil result in a faster print time, as the printer reaches top speed faster and maintains a higher speed when corning. This is harder on the printer, and may result in reduced lifespan of components and the need for more regular maintenance. It also introduces more surface defects such as ghosting.</p>
|
||||
<p>Lower acceleration and jerk will result in a slower print time, as the printer reaches top speed more gradually and corners at a lower velocity. This is easier on the printer, with potentially increased component lifespan and less need for regular maintenance. It reduces surface artefacts such as ghosting, unless it is far too conservative, in which case it may introduce bulging in corners.</p>
|
||||
</div>
|
||||
<p>I have previously made a detailed video guide on this subject, which will be built upon with an easier to use calculator and custom gcode generation below.</p>
|
||||
<div class="videoThumb" data-youtube="https://youtu.be/Mnvj6xCzikM"></div>
|
||||
<h2>Calculating maxmimum feedrate - optional</h2>
|
||||
<p>One strategy is to calculate the fastest your 3D printer can while while extruding cleanly, set this feedrate in the slicer, and then tune acceleration to meet this speed. If you are not interested in printing as fast as possible, skip to the next section.</p>
|
||||
<p><i>This guide and calculator is adapted on <a href="https://grabcad.com/tutorials/dialing-in-a-filament-and-specifying-the-max-volumetric-e-xtrusion-value"target="_blank">Martin Pirringer's tutorial</a>. Please consider supporting him and his robotics team through <a href="paypal.me/DudeWithaPulse" target="_blank">paypal</a> or you can also donate to team 1989 through their <a href="www.vernonrobotics.com" target="_blank">Team 1989 Web Site</a></i></p>
|
||||
<p>The following calculator will assist you in determing the maximum feedrate your printer/extruder/hot end is capable of.</p>
|
||||
<form id="maxExtrusion" name="maxExtrusion">
|
||||
<ol>
|
||||
<li>Clear debris from hobbed gear, bring nozzle up to normal printing temp and load filament.</li>
|
||||
<li>Enter the following into pronterface. This will set movement to relative and then extrude 50mm of filament at a feedrate of 2mm/sec:</li>
|
||||
<pre>G91</pre>
|
||||
<pre>G1 F50 F120</pre>
|
||||
<li>Inspect extuded filament for consistency. If all is well, keep repeating with higher feedrate F, until extrusion is inconsistent, extruder stepper skips steps and/or hobbed gear starts eating into filament.<br />
|
||||
The following are examples of increasing the extruder feed rate by 1mm/sec each time:</li>
|
||||
<pre>G1 F50 F180</pre>
|
||||
<pre>G1 F50 F240</pre>
|
||||
<pre>G1 F50 F300</pre>
|
||||
<pre>G1 F50 F360</pre>
|
||||
<pre>G1 F50 F420</pre>
|
||||
<li>After you find the limiting speed, back off and repeat the test at a lower feedrate several times in a row until you are confident of reliable and repeatable extrusion.</li>
|
||||
<li>Enter your reliable feerate and filament diameter below:</li>
|
||||
<label>Reliable feedrate: <input type="number" min="60" max="1000" name="maxFeed" value="180" step="10" onchange="maxExt(); maxFee();"></label>
|
||||
<label>Filament diameter: <input type="number" min="1.5" max="4" name="filDia" value="1.75" step="0.05" onchange="maxExt(); maxFee();"></label>
|
||||
<p class="result">Your maximum reliable extrusion speed is <b><span id="maxExt">7.22</span> mm/3</b> per second.</p>
|
||||
<li>Enter the following settings from your slicer:</li>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Input setting:</th>
|
||||
<th>Cura</th>
|
||||
<th>Simplify3D</th>
|
||||
<th>PrusaSlicer</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><label>Layer height: <input type="number" name="layerH" min="0.05" max="1" value="0.2" step="0.05" onchange="maxFee();"></label></td>
|
||||
<td>Quality > Layer height</td>
|
||||
<td>Layer > Primary layer height</td>
|
||||
<td>Print settings > Layer height</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><label>Extrusion width: <input type="number" name="layerW" min="0.1" max="1" value="0.4" step="0.01" onchange="maxFee();"></label></td>
|
||||
<td>Quality > Line width</td>
|
||||
<td>Extruder > Extrusion width</td>
|
||||
<td>Print settings > Advanced > Extrusion width > Default extrusion width</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p class="result">Your maximum reliable XY feedrate is <b><span id="maxFee">90</span> mm</b> per second.</p>
|
||||
</ol>
|
||||
</form>
|
||||
<h2>Acceleration Tuning</h2>
|
||||
<p></p>
|
||||
</div>
|
||||
|
@ -51,6 +51,25 @@ function flowCalc2(){
|
||||
$("#flow2result").show();
|
||||
}
|
||||
|
||||
var maxExtVol = 7.22;
|
||||
var maxFeedRate = 100;
|
||||
function maxExt(){
|
||||
var dia = document.maxExtrusion.filDia.value;
|
||||
var max = document.maxExtrusion.maxFeed.value;
|
||||
var result = ((Math.pow(dia/2, 2))*Math.PI)*(max/60);
|
||||
var str = result.toFixed(2);
|
||||
maxExtVol = parseFloat(str);
|
||||
$('#maxExt').html(maxExtVol);
|
||||
}
|
||||
|
||||
function maxFee(){
|
||||
var layH = document.maxExtrusion.layerH.value;
|
||||
var layW = document.maxExtrusion.layerW.value;
|
||||
var maxFeedRate = Math.floor(maxExtVol/(layH*layW));
|
||||
$('#maxFee').html(maxFeedRate);
|
||||
}
|
||||
|
||||
|
||||
function processBaseline(){
|
||||
var hotendTemp = document.baselineForm.hotendtemp.value;
|
||||
var bedTemp = document.baselineForm.bedtemp.value;
|
||||
|
Reference in New Issue
Block a user