-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
268 lines (264 loc) · 12.8 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
<title>Extruder Microstep Calculator</title>
<!-- Bootstrap -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous">
<link href="css/page.css" rel="stylesheet">
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body>
<div class="container">
<h1>Extruder Microstep Calculator</h1>
<div class="well">
<h4>Instructions
<button class="btn btn-sm btn-light" type="button" data-toggle="collapse" data-target="#instructions" aria-expanded="false" aria-controls="instructions">
Open/Close
</button>
</h4>
<div class="collapse" id="instructions">
<p>
The purpose of this calculator is to find the optimal microstep setting for your extruder. A combination of various
factors can lead to the extruder not being advanced even though it should. This can then lead to underextrusion.
</p>
<p>
<ol>
<li>Enter your extrusion width</li>
<li>Enter your layer height</li>
<li>Enter your flow rate - or mixing ratio. Whatever applies.</li>
<li>Enter your filament diameter</li>
<li>Enter a length for a print move.<br/>
This should be less or equal to 0.5mm. You can look at a sliced GCode file and search for very small moves or just take a guess here.
Sometimes this value can also be adjusted in the slicer to never be smaller than this (Slic3r has such a setting).<br/>
If you are unsure leave the default 0.2 in there.<br/>
If you want to be extra safe replace it with 0.1 - smaller values should only be used if found in sliced GCode.
You can use <a href="https://github.com/wilriker/pmds" target="_blank">Print Move Distance Statistics</a> to find smaller values and
their statistical distribution.
</li>
<li>Enter your extruder steps/mm for 16x microstepping</li>
<li>Enter your retraction speed in mm/min</li>
<li>Optional: Adjust your maximum step rate</li>
</ol>
</p>
<p>
Check the table down the page. It will give you information on
<ul>
<li>what amount of steps/mm you will have at which microstepping-factor</li>
<li>how many mm of filament will be pushed into the hotend by the extruder with one microstep</li>
<li>what is the shortest print move possible with the selected values where at least one microstep is advanced</li>
<li>how fast you could theoretically retract if the only limit would be the MCU speed and in the last column</li>
<li>how many microsteps are required to extrude the filament for the move selected in step 5 above</li>
</ul>
</p>
<p>
Values of the last two colums will be colored. For the maximum retraction speed this will be green if it is greater or equal to the speed
you selected in step 7 above.<br/>
Microsteps on print move will be marked red if less than 1, green otherwise.
</p>
<p>
You should choose a microstepping-factor with a green values in the last two columns because otherwise for such a move no extrusion might
happen at all which would lead to under-extrusion and loss of print quality or the extruder would be loosing steps when retracting because
the MCU can not create all the necessary steps.
</p>
</div>
<h4>Notes
<button class="btn btn-sm btn-light" type="button" data-toggle="collapse" data-target="#notes" aria-expanded="false" aria-controls="notes">
Open/Close
</button>
</h4>
<div class="collapse" id="notes">
<ul>
<li>If there is no row with both columns at the right in green you should check if you could reduce either the retracting speed or limit the minimum size of small printing moves.</li>
<li>Going to a higher microstepping-factor can lead to loss of torque. If you encounter problems try a lower microstepping value that still fulfills the requirements (if available)</li>
<li>Low torque motors (such as pancake steppers) might not be able to reliably produce very short microsteps</li>
</ul>
</div>
<h4>Issues and Improvements
<button class="btn btn-sm btn-light" type="button" data-toggle="collapse" data-target="#issues" aria-expanded="false" aria-controls="issues">
Open/Close
</button>
</h4>
<div class="collapse" id="issues">
<p>
If you have any issues or improvements please report them at <a href="https://forum.duet3d.com/topic/6156/guide-how-to-select-extruder-microstep-setting" target="_blank">the Duet Forum</a>
</p>
</div>
</div>
<form autocomplete="off" action="javascript:void(0);">
<h3>Print Settings</h3>
<div class="row">
<div class="col-md-2">
<label for="line_width">Line width:</label>
<div class="input-group">
<input type="number" class="form-control" id="line_width" required="required" value="0.4" min="0" step="any"/>
<span class="input-group-addon">mm</span>
</div>
</div>
<div class="col-md-2">
<label for="layer_height">Layer height:</label>
<div class="input-group">
<input type="number" class="form-control" id="layer_height" required="required" value="0.2" min="0" step="any"/>
<span class="input-group-addon">mm</span>
</div>
</div>
<div class="col-md-2">
<label for="flow">Flow rate/Mixing ratio:</label>
<div class="input-group">
<input type="number" class="form-control" id="flow" required="required" value="100" min="0" max="300" step="any"/>
<span class="input-group-addon">%</span>
</div>
</div>
<div class="col-md-2">
<label for="filament_diameter">Filament diameter:</label>
<div class="input-group">
<input type="number" class="form-control" id="filament_diameter" required="required" value="1.75" min="0" step="any"/>
<span class="input-group-addon">mm</span>
</div>
</div>
<div class="col-md-2">
<label for="segment_size"><a href="https://github.com/wilriker/pmds" target="_blank">Print move distance:</a></label>
<div class="input-group">
<input type="number" title="Distance of a very short print move" class="form-control" id="segment_size" required="required" value="0.2" min="0" step="any"/>
<span class="input-group-addon">mm</span>
</div>
</div>
</div>
<h3>Extruder Settings</h3>
<div class="row">
<div class="col-md-3">
<label for="extruder_steps">Extruder steps @16x microstepping:</label>
<div class="input-group">
<input type="number" class="form-control" id="extruder_steps" required="required" value="415" min="1" step="any"/>
<span class="input-group-addon">steps/mm</span>
</div>
</div>
<div class="col-md-2">
<label for="retraction_speed">Retraction speed:</label>
<div class="input-group">
<input type="number" class="form-control" id="retraction_speed" required="required" value="1800" min="0" step="any"/>
<span class="input-group-addon">mm/min</span>
</div>
</div>
</div>
<h4>Optional Adjustments</h4>
<div class="row">
<div class="col-md-2">
<label for="step_rate">Maximum step rate:</label>
<div class="input-group">
<input type="number" class="form-control" id="step_rate" required="required" value="200" min="1" step="any"/>
<span class="input-group-addon">kHz</span>
</div>
</div>
</div>
<div class="well well-lg">
<div id="microstepping_table">
<h3>Microstepping Comparison</h3>
<div class="row">
<table class="table table-bordered table-striped">
<thead>
<tr>
<th title="Microstepping factor">Microstepping</th>
<th title="Steps/mm that the extruder has on this microstepping factor">Steps/mm</th>
<th title="Movement of filament in mm for one microstep">mm/Microstep</th>
<th title="Shortest possible print move based on above extrusion settings at this microstepping factor">Shortest Print Move (mm)</th>
<th title="Theoretical maximum retraction speed that the MCU can handle - this will probably be capped by the stepper motor much earlier in most cases">Max Retraction Speed (mm/min)</th>
<th title="This many microsteps are required for the print move entered above">Microsteps on Print Move</th>
</tr>
</thead>
<tbody>
<tr>
<td class="number">1</td>
<td class="number"><span id="steps_mm_1"/></td>
<td class="number"><span id="mm_ustep_1"/></td>
<td class="number"><span id="shortest_move_1"/></td>
<td class="number"><span id="max_retract_1"/></td>
<td class="number"><span id="usteps_on_segment_1"/></td>
</tr>
<tr>
<td class="number">2</td>
<td class="number"><span id="steps_mm_2"/></td>
<td class="number"><span id="mm_ustep_2"/></td>
<td class="number"><span id="shortest_move_2"/></td>
<td class="number"><span id="max_retract_2"/></td>
<td class="number"><span id="usteps_on_segment_2"/></td>
</tr>
<tr>
<td class="number">4</td>
<td class="number"><span id="steps_mm_4"/></td>
<td class="number"><span id="mm_ustep_4"/></td>
<td class="number"><span id="shortest_move_4"/></td>
<td class="number"><span id="max_retract_4"/></td>
<td class="number"><span id="usteps_on_segment_4"/></td>
</tr>
<tr>
<td class="number">8</td>
<td class="number"><span id="steps_mm_8"/></td>
<td class="number"><span id="mm_ustep_8"/></td>
<td class="number"><span id="shortest_move_8"/></td>
<td class="number"><span id="max_retract_8"/></td>
<td class="number"><span id="usteps_on_segment_8"/></td>
</tr>
<tr>
<td class="number">16</td>
<td class="number"><span id="steps_mm_16"/></td>
<td class="number"><span id="mm_ustep_16"/></td>
<td class="number"><span id="shortest_move_16"/></td>
<td class="number"><span id="max_retract_16"/></td>
<td class="number"><span id="usteps_on_segment_16"/></td>
</tr>
<tr>
<td class="number">32</td>
<td class="number"><span id="steps_mm_32"/></td>
<td class="number"><span id="mm_ustep_32"/></td>
<td class="number"><span id="shortest_move_32"/></td>
<td class="number"><span id="max_retract_32"/></td>
<td class="number"><span id="usteps_on_segment_32"/></td>
</tr>
<tr>
<td class="number">64</td>
<td class="number"><span id="steps_mm_64"/></td>
<td class="number"><span id="mm_ustep_64"/></td>
<td class="number"><span id="shortest_move_64"/></td>
<td class="number"><span id="max_retract_64"/></td>
<td class="number"><span id="usteps_on_segment_64"/></td>
</tr>
<tr>
<td class="number">128</td>
<td class="number"><span id="steps_mm_128"/></td>
<td class="number"><span id="mm_ustep_128"/></td>
<td class="number"><span id="shortest_move_128"/></td>
<td class="number"><span id="max_retract_128"/></td>
<td class="number"><span id="usteps_on_segment_128"/></td>
</tr>
<tr>
<td class="number">256</td>
<td class="number"><span id="steps_mm_256"/></td>
<td class="number"><span id="mm_ustep_256"/></td>
<td class="number"><span id="shortest_move_256"/></td>
<td class="number"><span id="max_retract_256"/></td>
<td class="number"><span id="usteps_on_segment_256"/></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</form>
</div>
<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<!-- Include all compiled plugins (below), or include individual files as needed -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
<script src="js/main.js"></script>
</body>
</html>