-
Notifications
You must be signed in to change notification settings - Fork 0
/
Configuration_8h_source.html
604 lines (602 loc) · 82.8 KB
/
Configuration_8h_source.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
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Prusa3d Marlin fork: Configuration.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Prusa3d Marlin fork
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle">
<div class="title">Configuration.h</div> </div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="preprocessor">#ifndef CONFIGURATION_H</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="preprocessor">#define CONFIGURATION_H</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>  </div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#include "boards.h"</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>  </div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#define STR_HELPER(x) #x</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="preprocessor">#define STR(x) STR_HELPER(x)</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>  </div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">//-//</span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#include <avr/pgmspace.h></span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="keyword">extern</span> <span class="keyword">const</span> uint16_t _nPrinterType;</div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keywordtype">char</span> _sPrinterName[] <a class="code" href="tmc2130_8cpp.html#a9af229851ad799a08675ac18bf30c7e6">PROGMEM</a>;</div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="keyword">extern</span> <span class="keyword">const</span> uint16_t _nPrinterMmuType;</div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keywordtype">char</span> _sPrinterMmuName[] <a class="code" href="tmc2130_8cpp.html#a9af229851ad799a08675ac18bf30c7e6">PROGMEM</a>;</div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>  </div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// Firmware version</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#define FW_MAJOR 3</span></div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#define FW_MINOR 13</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#define FW_REVISION 0</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#define FW_FLAVOR ALPHA </span><span class="comment">//uncomment if DEBUG, DEVEL, ALPHA, BETA or RC</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#define FW_FLAVERSION 1 </span><span class="comment">//uncomment if FW_FLAVOR is defined and versioning is needed. Limited to max 8.</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#ifndef FW_FLAVOR</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor"> #define FW_VERSION STR(FW_MAJOR) "."</span> STR(FW_MINOR) "." STR(FW_REVISION)</div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#else</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor"> #define FW_VERSION STR(FW_MAJOR) "."</span> STR(FW_MINOR) "." STR(FW_REVISION) "-" STR(FW_FLAVOR) "" STR(FW_FLAVERSION)</div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  </div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#define FW_COMMIT_NR 6054</span></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  </div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="comment">// FW_VERSION_UNKNOWN means this is an unofficial build.</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="comment">// The firmware should only be checked into github with this symbol.</span></div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#define FW_DEV_VERSION FW_VERSION_UNKNOWN</span></div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#define FW_REPOSITORY "Unknown"</span></div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#define FW_VERSION_FULL FW_VERSION "-"</span> STR(FW_COMMIT_NR)</div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  </div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="comment">// G-code language level</span></div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#define GCODE_LEVEL 1</span></div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  </div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="comment">// Debug version has debugging enabled (the symbol DEBUG_BUILD is set).</span></div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="comment">// The debug build may be a bit slower than the non-debug build, therefore the debug build should</span></div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="comment">// not be shipped to a customer.</span></div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#define FW_VERSION_DEBUG 6</span></div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="comment">// This is a development build. A development build is either built from an unofficial git repository, </span></div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment">// or from an unofficial branch, or it does not have a label set. Only the build server should set this build type.</span></div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#define FW_VERSION_DEVEL 5</span></div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment">// This is an alpha release. Only the build server should set this build type.</span></div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#define FW_VERSION_ALPHA 4</span></div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="comment">// This is a beta release. Only the build server should set this build type.</span></div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor">#define FW_VERSION_BETA 3</span></div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="comment">// This is a release candidate build. Only the build server should set this build type.</span></div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="preprocessor">#define FW_VERSION_RC 2</span></div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="comment">// This is a final release. Only the build server should set this build type.</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="preprocessor">#define FW_VERSION_GOLD 1</span></div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="comment">// This is an unofficial build. The firmware should only be checked into github with this symbol,</span></div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="comment">// the build server shall never produce builds with this build type.</span></div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="preprocessor">#define FW_VERSION_UNKNOWN 0</span></div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  </div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="preprocessor">#if FW_DEV_VERSION == FW_VERSION_DEBUG</span></div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="preprocessor">#define DEBUG_BUILD</span></div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="preprocessor">#else</span></div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="preprocessor">#undef DEBUG_BUILD</span></div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  </div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="preprocessor">#ifndef SOURCE_DATE_EPOCH</span></div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="preprocessor">#define SOURCE_DATE_EPOCH __DATE__</span></div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="preprocessor">#ifndef SOURCE_TIME_EPOCH</span></div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="preprocessor">#define SOURCE_TIME_EPOCH __TIME__</span></div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  </div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="preprocessor">#include "Configuration_var.h"</span></div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  </div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="preprocessor">#define FW_PRUSA3D_MAGIC "PRUSA3DFW"</span></div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="preprocessor">#define FW_PRUSA3D_MAGIC_LEN 10</span></div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  </div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="preprocessor">#include "<a class="code" href="eeprom_8h.html">eeprom.h</a>"</span></div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  </div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="comment">// This configuration file contains the basic settings.</span></div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="comment">// Advanced settings can be found in Configuration_adv.h</span></div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="comment">// BASIC SETTINGS: select your board type, temperature sensor type, axis scaling, and endstop configuration</span></div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  </div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="comment">// User-specified version info of this build to display in [Pronterface, etc] terminal window during</span></div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="comment">// startup. Implementation of an idea by Prof Braino to inform user that any changes made to this</span></div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="comment">// build by the user have been successfully uploaded into firmware.</span></div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  </div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="preprocessor">#define STRING_VERSION_CONFIG_H SOURCE_DATE_EPOCH " "</span> SOURCE_TIME_EPOCH <span class="comment">// build date and time</span></div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="preprocessor">#define STRING_CONFIG_H_AUTHOR "(none, default config)"</span> <span class="comment">// Who made the changes.</span></div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  </div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="comment">// SERIAL_PORT selects which serial port should be used for communication with the host.</span></div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="comment">// This allows the connection of wireless adapters (for instance) to non-default port pins.</span></div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="comment">// Serial port 0 is still used by the Arduino bootloader regardless of this setting.</span></div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="preprocessor">#define SERIAL_PORT 0</span></div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  </div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="comment">// This determines the communication speed of the printer</span></div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="preprocessor">#define BAUDRATE 115200</span></div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  </div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="comment">// This enables the serial port associated to the Bluetooth interface</span></div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="comment">//#define BTENABLED // Enable BT interface on AT90USB devices</span></div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  </div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="comment">// The following define selects which electronics board you have.</span></div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="comment">// Please choose the name from boards.h that matches your setup</span></div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  </div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  </div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  </div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  </div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  </div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  </div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  </div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="comment">// Define this to set a unique identifier for this printer, (Used by some programs to differentiate between machines)</span></div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="comment">// You can use an online service to generate a random UUID. (eg http://www.uuidgenerator.net/version4)</span></div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <span class="comment">// #define MACHINE_UUID "00000000-0000-0000-0000-000000000000"</span></div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  </div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="comment">// This defines the number of extruders</span></div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="preprocessor">#define EXTRUDERS 1</span></div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  </div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <span class="comment">// 1 = ATX</span></div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="comment">// 2 = X-Box 360 203Watts (the blue wire connected to PS_ON and the red wire to VCC)</span></div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  </div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <span class="preprocessor">#define POWER_SUPPLY 1</span></div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  </div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  </div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  </div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  </div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  </div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> <span class="comment">// Define this to have the electronics keep the power supply off on startup. If you don't know what this is leave it.</span></div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> <span class="comment">// #define PS_DEFAULT_OFF</span></div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  </div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  </div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> <span class="comment">// Actual temperature must be close to target for this long before M109 returns success</span></div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> <span class="preprocessor">#define TEMP_RESIDENCY_TIME 3 </span><span class="comment">// (seconds)</span></div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> <span class="preprocessor">#define TEMP_HYSTERESIS 5 </span><span class="comment">// (degC) range of +/- temperatures considered "close" to the target one</span></div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <span class="preprocessor">#define TEMP_WINDOW 1 </span><span class="comment">// (degC) Window around target to start the residency timer x degC early.</span></div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  </div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  </div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  </div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> <span class="comment">// If your bed has low resistance e.g. .6 ohm and throws the fuse you can duty cycle it to reduce the</span></div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span> <span class="comment">// average current. The value should be an integer and the heat bed will be turned on for 1 interval of</span></div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> <span class="comment">// HEATER_BED_DUTY_CYCLE_DIVIDER intervals.</span></div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> <span class="comment">//#define HEATER_BED_DUTY_CYCLE_DIVIDER 4</span></div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  </div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> <span class="comment">// If you want the M105 heater power reported in watts, define the BED_WATTS, and (shared for all extruders) EXTRUDER_WATTS</span></div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> <span class="comment">//#define EXTRUDER_WATTS (12.0*12.0/6.7) // P=I^2/R</span></div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> <span class="comment">//#define BED_WATTS (12.0*12.0/1.1) // P=I^2/R</span></div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  </div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> <span class="comment">// PID settings:</span></div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> <span class="comment">// Comment the following line to disable PID and enable bang-bang.</span></div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> <span class="preprocessor">#define PIDTEMP</span></div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> <span class="preprocessor">#define BANG_MAX 255 </span><span class="comment">// limits current to nozzle while in bang-bang mode; 255=full current</span></div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> <span class="preprocessor">#define PID_MAX BANG_MAX </span><span class="comment">// limits current to nozzle while PID is active; 255=full current</span></div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> <span class="preprocessor">#ifdef PIDTEMP</span></div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <span class="comment">//#define PID_DEBUG // Sends debug data to the serial port.</span></div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <span class="comment">//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX</span></div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <span class="comment">//#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay</span></div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> <span class="preprocessor"> #define PID_INTEGRAL_DRIVE_MAX PID_MAX </span><span class="comment">//limit for the integral term</span></div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> <span class="preprocessor"> #define PID_K1 0.95 </span><span class="comment">//smoothing factor within the PID</span></div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> <span class="preprocessor"> #define PID_dT ((OVERSAMPLENR * 10.0)/(F_CPU / 64.0 / 256.0)) </span><span class="comment">//sampling period of the temperature routine</span></div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  </div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> <span class="comment">// If you are using a pre-configured hotend then you can use one of the value sets by uncommenting it</span></div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> <span class="comment">// Ultimaker</span></div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  </div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  </div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> <span class="comment">// MakerGear</span></div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> <span class="comment">// #define DEFAULT_Kp 7.0</span></div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> <span class="comment">// #define DEFAULT_Ki 0.1</span></div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> <span class="comment">// #define DEFAULT_Kd 12</span></div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  </div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> <span class="comment">// Mendel Parts V9 on 12V</span></div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> <span class="comment">// #define DEFAULT_Kp 63.0</span></div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> <span class="comment">// #define DEFAULT_Ki 2.25</span></div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> <span class="comment">// #define DEFAULT_Kd 440</span></div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> <span class="preprocessor">#endif </span><span class="comment">// PIDTEMP</span></div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  </div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  </div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> <span class="comment">//this prevents dangerous Extruder moves, i.e. if the temperature is under the limit</span></div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> <span class="comment">//can be software-disabled for whatever purposes by</span></div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> <span class="preprocessor">#define PREVENT_DANGEROUS_EXTRUDE</span></div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> <span class="comment">//if PREVENT_DANGEROUS_EXTRUDE is on, you can still disable (uncomment) very long bits of extrusion separately.</span></div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> <span class="preprocessor">#define PREVENT_LENGTHY_EXTRUDE</span></div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  </div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> <span class="preprocessor">#ifdef DEBUG_DISABLE_PREVENT_EXTRUDER</span></div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> <span class="preprocessor">#undef PREVENT_DANGEROUS_EXTRUDE</span></div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> <span class="preprocessor">#undef PREVENT_LENGTHY_EXTRUDE</span></div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> <span class="preprocessor">#endif </span><span class="comment">//DEBUG_DISABLE_PREVENT_EXTRUDER</span></div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  </div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> <span class="preprocessor">#define EXTRUDE_MAXLENGTH (X_MAX_LENGTH+Y_MAX_LENGTH) </span><span class="comment">//prevent extrusion of very large distances.</span></div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  </div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> <span class="comment">/*================== Thermal Runaway Protection ==============================</span></div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> <span class="comment">This is a feature to protect your printer from burn up in flames if it has</span></div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> <span class="comment">a thermistor coming off place (this happened to a friend of mine recently and</span></div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> <span class="comment">motivated me writing this feature).</span></div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> <span class="comment"></span> </div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> <span class="comment">The issue: If a thermistor come off, it will read a lower temperature than actual.</span></div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> <span class="comment">The system will turn the heater on forever, burning up the filament and anything</span></div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> <span class="comment">else around.</span></div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> <span class="comment"></span> </div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> <span class="comment">After the temperature reaches the target for the first time, this feature will </span></div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> <span class="comment">start measuring for how long the current temperature stays below the target </span></div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> <span class="comment">minus _HYSTERESIS (set_temperature - THERMAL_RUNAWAY_PROTECTION_HYSTERESIS).</span></div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> <span class="comment"></span> </div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> <span class="comment">If it stays longer than _PERIOD, it means the thermistor temperature</span></div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> <span class="comment">cannot catch up with the target, so something *may be* wrong. Then, to be on the</span></div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> <span class="comment">safe side, the system will he halt.</span></div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> <span class="comment"></span> </div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> <span class="comment">Bear in mind the count down will just start AFTER the first time the </span></div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> <span class="comment">thermistor temperature is over the target, so you will have no problem if</span></div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> <span class="comment">your extruder heater takes 2 minutes to hit the target on heating.</span></div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> <span class="comment"></span> </div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> <span class="comment">*/</span></div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> <span class="comment">// If you want to enable this feature for all your extruder heaters,</span></div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> <span class="comment">// uncomment the 2 defines below:</span></div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  </div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> <span class="comment">// Parameters for all extruder heaters</span></div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span> <span class="comment">//#define THERMAL_RUNAWAY_PROTECTION_PERIOD 40 //in seconds</span></div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> <span class="comment">//#define THERMAL_RUNAWAY_PROTECTION_HYSTERESIS 4 // in degree Celsius</span></div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  </div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> <span class="comment">// If you want to enable this feature for your bed heater,</span></div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> <span class="comment">// uncomment the 2 defines below:</span></div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  </div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span> <span class="comment">// Parameters for the bed heater</span></div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> <span class="comment">//#define THERMAL_RUNAWAY_PROTECTION_BED_PERIOD 20 //in seconds</span></div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> <span class="comment">//#define THERMAL_RUNAWAY_PROTECTION_BED_HYSTERESIS 2 // in degree Celsius</span></div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span> <span class="comment">//===========================================================================</span></div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  </div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  </div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> <span class="comment">//===========================================================================</span></div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span> <span class="comment">//=============================Mechanical Settings===========================</span></div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span> <span class="comment">//===========================================================================</span></div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  </div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> <span class="comment">// Uncomment the following line to enable CoreXY kinematics</span></div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> <span class="comment">// #define COREXY</span></div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  </div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span> <span class="comment">// coarse Endstop Settings</span></div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span> <span class="preprocessor">#define ENDSTOPPULLUPS </span><span class="comment">// Comment this out (using // at the start of the line) to disable the endstop pullup resistors</span></div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  </div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span> <span class="preprocessor">#ifndef ENDSTOPPULLUPS</span></div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  <span class="comment">// fine endstop settings: Individual pullups. will be ignored if ENDSTOPPULLUPS is defined</span></div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  <span class="comment">// #define ENDSTOPPULLUP_XMAX</span></div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  <span class="comment">// #define ENDSTOPPULLUP_YMAX</span></div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  <span class="comment">// #define ENDSTOPPULLUP_ZMAX</span></div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  <span class="comment">// #define ENDSTOPPULLUP_XMIN</span></div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  <span class="comment">// #define ENDSTOPPULLUP_YMIN</span></div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  <span class="comment">// #define ENDSTOPPULLUP_ZMIN</span></div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span> <span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  </div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span> <span class="preprocessor">#ifdef ENDSTOPPULLUPS</span></div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span> <span class="preprocessor"> #define ENDSTOPPULLUP_XMAX</span></div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span> <span class="preprocessor"> #define ENDSTOPPULLUP_YMAX</span></div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span> <span class="preprocessor"> #define ENDSTOPPULLUP_ZMAX</span></div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span> <span class="preprocessor"> #define ENDSTOPPULLUP_XMIN</span></div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span> <span class="preprocessor"> #define ENDSTOPPULLUP_YMIN</span></div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> <span class="preprocessor"> #define ENDSTOPPULLUP_ZMIN</span></div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span> <span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  </div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span> <span class="comment">// The pullups are needed if you directly connect a mechanical endswitch between the signal and ground pins.</span></div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  </div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span> <span class="preprocessor">#define X_MAX_ENDSTOP_INVERTING 0 </span><span class="comment">// set to 1 to invert the logic of the endstop.</span></div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span> <span class="preprocessor">#define Y_MAX_ENDSTOP_INVERTING 0 </span><span class="comment">// set to 1 to invert the logic of the endstop.</span></div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span> <span class="preprocessor">#define Z_MAX_ENDSTOP_INVERTING 1 </span><span class="comment">// set to 1 to invert the logic of the endstop.</span></div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> <span class="comment">//#define DISABLE_MAX_ENDSTOPS</span></div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span> <span class="comment">//#define DISABLE_MIN_ENDSTOPS</span></div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  </div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span> <span class="comment">// Disable max endstops for compatibility with endstop checking routine</span></div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> <span class="preprocessor">#if defined(COREXY) && !defined(DISABLE_MAX_ENDSTOPS)</span></div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span> <span class="preprocessor"> #define DISABLE_MAX_ENDSTOPS</span></div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span> <span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  </div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span> <span class="comment">// For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1</span></div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span> <span class="preprocessor">#define X_ENABLE_ON 0</span></div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span> <span class="preprocessor">#define Y_ENABLE_ON 0</span></div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span> <span class="preprocessor">#define Z_ENABLE_ON 0</span></div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span> <span class="preprocessor">#define E_ENABLE_ON 0 </span><span class="comment">// For all extruders</span></div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  </div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span> <span class="comment">// Disables axis when it's not being used.</span></div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span> <span class="preprocessor">#define DISABLE_X 0</span></div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span> <span class="preprocessor">#define DISABLE_Y 0</span></div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span> <span class="preprocessor">#define DISABLE_Z 0</span></div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span> <span class="preprocessor">#define DISABLE_E 0</span><span class="comment">// For all extruders</span></div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  </div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  </div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span> <span class="comment">// ENDSTOP SETTINGS:</span></div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span> <span class="comment">// Sets direction of endstops when homing; 1=MAX, -1=MIN</span></div>
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span> <span class="preprocessor">#define X_HOME_DIR -1</span></div>
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span> <span class="preprocessor">#define Y_HOME_DIR -1</span></div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span> <span class="preprocessor">#define Z_HOME_DIR -1</span></div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  </div>
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span> <span class="preprocessor">#ifdef DEBUG_DISABLE_SWLIMITS</span></div>
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span> <span class="preprocessor">#define min_software_endstops 0</span></div>
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span> <span class="preprocessor">#define max_software_endstops 0</span></div>
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span> <span class="preprocessor">#else</span></div>
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span> <span class="preprocessor">#define min_software_endstops 1 </span><span class="comment">// If true, axis won't move to coordinates less than HOME_POS.</span></div>
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span> <span class="preprocessor">#define max_software_endstops 1 </span><span class="comment">// If true, axis won't move to coordinates greater than the defined lengths below.</span></div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span> <span class="preprocessor">#endif </span><span class="comment">//DEBUG_DISABLE_SWLIMITS</span></div>
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  </div>
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  </div>
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span> <span class="preprocessor">#define X_MAX_LENGTH (X_MAX_POS - X_MIN_POS)</span></div>
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span> <span class="preprocessor">#define Y_MAX_LENGTH (Y_MAX_POS - Y_MIN_POS) </span></div>
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span> <span class="preprocessor">#define Z_MAX_LENGTH (Z_MAX_POS - Z_MIN_POS)</span></div>
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  </div>
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span> <span class="preprocessor">#define Z_HEIGHT_HIDE_LIVE_ADJUST_MENU 2.0f</span></div>
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  </div>
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span> <span class="preprocessor">#define HOME_Z_SEARCH_THRESHOLD 0.15f </span><span class="comment">// Threshold of the Z height in calibration</span></div>
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  </div>
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span> <span class="comment">//============================= Bed Auto Leveling ===========================</span></div>
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  </div>
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span> <span class="comment">//#define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line)</span></div>
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span> <span class="preprocessor">#define Z_PROBE_REPEATABILITY_TEST </span><span class="comment">// If not commented out, Z-Probe Repeatability test will be included if Auto Bed Leveling is Enabled.</span></div>
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  </div>
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span> <span class="preprocessor">#ifdef ENABLE_AUTO_BED_LEVELING</span></div>
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  </div>
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span> <span class="comment">// There are 2 different ways to pick the X and Y locations to probe:</span></div>
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  </div>
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span> <span class="comment">// - "grid" mode</span></div>
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span> <span class="comment">// Probe every point in a rectangular grid</span></div>
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span> <span class="comment">// You must specify the rectangle, and the density of sample points</span></div>
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span> <span class="comment">// This mode is preferred because there are more measurements.</span></div>
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span> <span class="comment">// It used to be called ACCURATE_BED_LEVELING but "grid" is more descriptive</span></div>
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  </div>
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span> <span class="comment">// - "3-point" mode</span></div>
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span> <span class="comment">// Probe 3 arbitrary points on the bed (that aren't colinear)</span></div>
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span> <span class="comment">// You must specify the X & Y coordinates of all 3 points</span></div>
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  </div>
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span> <span class="preprocessor"> #define AUTO_BED_LEVELING_GRID</span></div>
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  <span class="comment">// with AUTO_BED_LEVELING_GRID, the bed is sampled in a</span></div>
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  <span class="comment">// AUTO_BED_LEVELING_GRID_POINTSxAUTO_BED_LEVELING_GRID_POINTS grid</span></div>
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  <span class="comment">// and least squares solution is calculated</span></div>
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  <span class="comment">// Note: this feature occupies 10'206 byte</span></div>
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span> <span class="preprocessor"> #ifdef AUTO_BED_LEVELING_GRID</span></div>
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  </div>
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  <span class="comment">// set the rectangle in which to probe</span></div>
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span> <span class="preprocessor"> #define LEFT_PROBE_BED_POSITION 15</span></div>
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span> <span class="preprocessor"> #define RIGHT_PROBE_BED_POSITION 170</span></div>
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span> <span class="preprocessor"> #define BACK_PROBE_BED_POSITION 180</span></div>
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span> <span class="preprocessor"> #define FRONT_PROBE_BED_POSITION 20</span></div>
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  </div>
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  <span class="comment">// set the number of grid points per dimension</span></div>
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  <span class="comment">// I wouldn't see a reason to go above 3 (=9 probing points on the bed)</span></div>
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span> <span class="preprocessor"> #define AUTO_BED_LEVELING_GRID_POINTS 2</span></div>
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  </div>
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  </div>
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span> <span class="preprocessor"> #else </span><span class="comment">// not AUTO_BED_LEVELING_GRID</span></div>
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  <span class="comment">// with no grid, just probe 3 arbitrary points. A simple cross-product</span></div>
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  <span class="comment">// is used to esimate the plane of the print bed</span></div>
<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  </div>
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span> <span class="preprocessor"> #define ABL_PROBE_PT_1_X 15</span></div>
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span> <span class="preprocessor"> #define ABL_PROBE_PT_1_Y 180</span></div>
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span> <span class="preprocessor"> #define ABL_PROBE_PT_2_X 15</span></div>
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span> <span class="preprocessor"> #define ABL_PROBE_PT_2_Y 20</span></div>
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span> <span class="preprocessor"> #define ABL_PROBE_PT_3_X 170</span></div>
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span> <span class="preprocessor"> #define ABL_PROBE_PT_3_Y 20</span></div>
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  </div>
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span> <span class="preprocessor"> #endif </span><span class="comment">// AUTO_BED_LEVELING_GRID</span></div>
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  </div>
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  </div>
<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  <span class="comment">// these are the offsets to the probe relative to the extruder tip (Hotend - Probe)</span></div>
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  <span class="comment">// X and Y offsets must be integers</span></div>
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span> <span class="preprocessor"> #define X_PROBE_OFFSET_FROM_EXTRUDER -25</span></div>
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span> <span class="preprocessor"> #define Y_PROBE_OFFSET_FROM_EXTRUDER -29</span></div>
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span> <span class="preprocessor"> #define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35</span></div>
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  </div>
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span> <span class="preprocessor"> #define Z_RAISE_BEFORE_HOMING 5 </span><span class="comment">// (in mm) Raise Z before homing (G28) for Probe Clearance.</span></div>
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  <span class="comment">// Be sure you have this distance over your Z_MAX_POS in case</span></div>
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  </div>
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span> <span class="preprocessor"> #define XY_TRAVEL_SPEED 8000 </span><span class="comment">// X and Y axis travel speed between probes, in mm/min</span></div>
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  </div>
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span> <span class="preprocessor"> #define Z_RAISE_BEFORE_PROBING 15 </span><span class="comment">//How much the extruder will be raised before traveling to the first probing point.</span></div>
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span> <span class="preprocessor"> #define Z_RAISE_BETWEEN_PROBINGS 5 </span><span class="comment">//How much the extruder will be raised when traveling from between next probing points</span></div>
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  </div>
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  <span class="comment">//#define Z_PROBE_SLED // turn on if you have a z-probe mounted on a sled like those designed by Charles Bell</span></div>
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  <span class="comment">//#define SLED_DOCKING_OFFSET 5 // the extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like.</span></div>
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  </div>
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  <span class="comment">//If defined, the Probe servo will be turned on only during movement and then turned off to avoid jerk</span></div>
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  <span class="comment">//The value is the delay to turn the servo off after powered on - depends on the servo speed; 300ms is good value, but you can try lower it.</span></div>
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  <span class="comment">// You MUST HAVE the SERVO_ENDSTOPS defined to use here a value higher than zero otherwise your code will not compile.</span></div>
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  </div>
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span> <span class="comment">// #define PROBE_SERVO_DEACTIVATION_DELAY 300</span></div>
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  </div>
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  </div>
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span> <span class="comment">//If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing,</span></div>
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span> <span class="comment">//it is highly recommended you let this Z_SAFE_HOMING enabled!</span></div>
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  </div>
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  <span class="comment">//#define Z_SAFE_HOMING // This feature is meant to avoid Z homing with probe outside the bed area.</span></div>
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  <span class="comment">// When defined, it will:</span></div>
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  <span class="comment">// - Allow Z homing only after X and Y homing AND stepper drivers still enabled</span></div>
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  <span class="comment">// - If stepper drivers timeout, it will need X and Y homing again before Z homing</span></div>
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  <span class="comment">// - Position the probe in a defined XY point before Z Homing when homing all axis (G28)</span></div>
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  <span class="comment">// - Block Z homing only when the probe is outside bed area.</span></div>
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  </div>
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span> <span class="preprocessor"> #ifdef Z_SAFE_HOMING</span></div>
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  </div>
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span> <span class="preprocessor"> #define Z_SAFE_HOMING_X_POINT (X_MAX_LENGTH/2) </span><span class="comment">// X point for Z homing when homing all axis (G28)</span></div>
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span> <span class="preprocessor"> #define Z_SAFE_HOMING_Y_POINT (Y_MAX_LENGTH/2) </span><span class="comment">// Y point for Z homing when homing all axis (G28)</span></div>
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  </div>
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span> <span class="preprocessor"> #endif</span></div>
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  </div>
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span> <span class="preprocessor"> #ifdef AUTO_BED_LEVELING_GRID </span><span class="comment">// Check if Probe_Offset * Grid Points is greater than Probing Range</span></div>
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span> <span class="preprocessor"> #if X_PROBE_OFFSET_FROM_EXTRUDER < 0</span></div>
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span> <span class="preprocessor"> #if (-(X_PROBE_OFFSET_FROM_EXTRUDER * AUTO_BED_LEVELING_GRID_POINTS) >= (RIGHT_PROBE_BED_POSITION - LEFT_PROBE_BED_POSITION))</span></div>
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span> <span class="preprocessor"> #error "The X axis probing range is not enough to fit all the points defined in AUTO_BED_LEVELING_GRID_POINTS"</span></div>
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span> <span class="preprocessor"> #endif</span></div>
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span> <span class="preprocessor"> #else</span></div>
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span> <span class="preprocessor"> #if ((X_PROBE_OFFSET_FROM_EXTRUDER * AUTO_BED_LEVELING_GRID_POINTS) >= (RIGHT_PROBE_BED_POSITION - LEFT_PROBE_BED_POSITION))</span></div>
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span> <span class="preprocessor"> #error "The X axis probing range is not enough to fit all the points defined in AUTO_BED_LEVELING_GRID_POINTS"</span></div>
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span> <span class="preprocessor"> #endif</span></div>
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span> <span class="preprocessor"> #endif</span></div>
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span> <span class="preprocessor"> #if Y_PROBE_OFFSET_FROM_EXTRUDER < 0</span></div>
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span> <span class="preprocessor"> #if (-(Y_PROBE_OFFSET_FROM_EXTRUDER * AUTO_BED_LEVELING_GRID_POINTS) >= (BACK_PROBE_BED_POSITION - FRONT_PROBE_BED_POSITION))</span></div>
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span> <span class="preprocessor"> #error "The Y axis probing range is not enough to fit all the points defined in AUTO_BED_LEVELING_GRID_POINTS"</span></div>
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span> <span class="preprocessor"> #endif</span></div>
<div class="line"><a name="l00410"></a><span class="lineno"> 410</span> <span class="preprocessor"> #else</span></div>
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span> <span class="preprocessor"> #if ((Y_PROBE_OFFSET_FROM_EXTRUDER * AUTO_BED_LEVELING_GRID_POINTS) >= (BACK_PROBE_BED_POSITION - FRONT_PROBE_BED_POSITION))</span></div>
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span> <span class="preprocessor"> #error "The Y axis probing range is not enough to fit all the points defined in AUTO_BED_LEVELING_GRID_POINTS"</span></div>
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span> <span class="preprocessor"> #endif</span></div>
<div class="line"><a name="l00414"></a><span class="lineno"> 414</span> <span class="preprocessor"> #endif</span></div>
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  </div>
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  </div>
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span> <span class="preprocessor"> #endif</span></div>
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  </div>
<div class="line"><a name="l00419"></a><span class="lineno"> 419</span> <span class="preprocessor">#endif </span><span class="comment">// ENABLE_AUTO_BED_LEVELING</span></div>
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  </div>
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  </div>
<div class="line"><a name="l00422"></a><span class="lineno"> 422</span> <span class="comment">// The position of the homing switches</span></div>
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span> <span class="comment">//#define MANUAL_HOME_POSITIONS // If defined, MANUAL_*_HOME_POS below will be used</span></div>
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span> <span class="comment">//#define BED_CENTER_AT_0_0 // If defined, the center of the bed is at (X=0, Y=0)</span></div>
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  </div>
<div class="line"><a name="l00426"></a><span class="lineno"> 426</span> <span class="comment">//Manual homing switch locations:</span></div>
<div class="line"><a name="l00427"></a><span class="lineno"> 427</span> <span class="comment">// For deltabots this means top and center of the Cartesian print volume.</span></div>
<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  </div>
<div class="line"><a name="l00429"></a><span class="lineno"> 429</span> <span class="comment">// The speed change that does not require acceleration (i.e. the software might assume it can be done instantaneously)</span></div>
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span> <span class="preprocessor">#define DEFAULT_XJERK 10 </span><span class="comment">// (mm/sec)</span></div>
<div class="line"><a name="l00431"></a><span class="lineno"> 431</span> <span class="preprocessor">#define DEFAULT_YJERK 10 </span><span class="comment">// (mm/sec)</span></div>
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span> <span class="preprocessor">#define DEFAULT_ZJERK 0.4 </span><span class="comment">// (mm/sec)</span></div>
<div class="line"><a name="l00433"></a><span class="lineno"> 433</span> <span class="preprocessor">#define DEFAULT_EJERK 4.5 </span><span class="comment">// (mm/sec)</span></div>
<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  </div>
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span> <span class="comment">//===========================================================================</span></div>
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span> <span class="comment">//=============================Additional Features===========================</span></div>
<div class="line"><a name="l00437"></a><span class="lineno"> 437</span> <span class="comment">//===========================================================================</span></div>
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>  </div>
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span> <span class="comment">// Custom M code points</span></div>
<div class="line"><a name="l00440"></a><span class="lineno"> 440</span> <span class="preprocessor">#define CUSTOM_M_CODES</span></div>
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span> <span class="preprocessor">#ifdef CUSTOM_M_CODES</span></div>
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span> <span class="preprocessor">#ifdef ENABLE_AUTO_BED_LEVELING</span></div>
<div class="line"><a name="l00443"></a><span class="lineno"> 443</span> <span class="preprocessor"> #define CUSTOM_M_CODE_SET_Z_PROBE_OFFSET 851</span></div>
<div class="line"><a name="l00444"></a><span class="lineno"> 444</span> <span class="preprocessor"> #define Z_PROBE_OFFSET_RANGE_MIN -15</span></div>
<div class="line"><a name="l00445"></a><span class="lineno"> 445</span> <span class="preprocessor"> #define Z_PROBE_OFFSET_RANGE_MAX -5</span></div>
<div class="line"><a name="l00446"></a><span class="lineno"> 446</span> <span class="preprocessor">#endif </span><span class="comment">// ENABLE_AUTO_BED_LEVELING</span></div>
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span> <span class="preprocessor">#endif </span><span class="comment">// CUSTOM_M_CODES</span></div>
<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  </div>
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  </div>
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span> <span class="comment">// Host Keepalive</span></div>
<div class="line"><a name="l00451"></a><span class="lineno"> 451</span> <span class="comment">//</span></div>
<div class="line"><a name="l00452"></a><span class="lineno"> 452</span> <span class="comment">// When enabled Marlin will send a busy status message to the host</span></div>
<div class="line"><a name="l00453"></a><span class="lineno"> 453</span> <span class="comment">// every couple of seconds when it can't accept commands.</span></div>
<div class="line"><a name="l00454"></a><span class="lineno"> 454</span> <span class="comment">//</span></div>
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span> <span class="preprocessor">#ifndef HEATBED_ANALYSIS</span></div>
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span> <span class="preprocessor">#define HOST_KEEPALIVE_FEATURE </span><span class="comment">// Disable this if your host doesn't like keepalive messages</span></div>
<div class="line"><a name="l00457"></a><span class="lineno"> 457</span> <span class="preprocessor">#endif </span><span class="comment">//HEATBED_ANALYSIS</span></div>
<div class="line"><a name="l00458"></a><span class="lineno"> 458</span> <span class="preprocessor">#define HOST_KEEPALIVE_INTERVAL 2 </span><span class="comment">// Number of seconds between "busy" messages. Set with M113.</span></div>
<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>  </div>
<div class="line"><a name="l00460"></a><span class="lineno"> 460</span> <span class="comment">//LCD and SD support</span></div>
<div class="line"><a name="l00461"></a><span class="lineno"> 461</span> <span class="preprocessor">#define SDSUPPORT </span><span class="comment">// Enable SD Card Support in Hardware Console</span></div>
<div class="line"><a name="l00462"></a><span class="lineno"> 462</span> <span class="comment">//#define SDSLOW // Use slower SD transfer mode (not normally needed - uncomment if you're getting volume init error)</span></div>
<div class="line"><a name="l00463"></a><span class="lineno"> 463</span> <span class="preprocessor">#define SD_CHECK_AND_RETRY </span><span class="comment">// Use CRC checks and retries on the SD communication</span></div>
<div class="line"><a name="l00464"></a><span class="lineno"> 464</span> <span class="preprocessor">#define ENCODER_PULSES_PER_STEP 4 </span><span class="comment">// Increase if you have a high resolution encoder</span></div>
<div class="line"><a name="l00465"></a><span class="lineno"> 465</span> <span class="comment">//#define ENCODER_STEPS_PER_MENU_ITEM 1 // Set according to ENCODER_PULSES_PER_STEP or your liking</span></div>
<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>  </div>
<div class="line"><a name="l00467"></a><span class="lineno"> 467</span> <span class="comment">// The RepRapDiscount Smart Controller (white PCB)</span></div>
<div class="line"><a name="l00468"></a><span class="lineno"> 468</span> <span class="comment">// http://reprap.org/wiki/RepRapDiscount_Smart_Controller</span></div>
<div class="line"><a name="l00469"></a><span class="lineno"> 469</span> <span class="preprocessor">#define REPRAP_DISCOUNT_SMART_CONTROLLER</span></div>
<div class="line"><a name="l00470"></a><span class="lineno"> 470</span> <span class="preprocessor">#define SDSUPPORT</span></div>
<div class="line"><a name="l00471"></a><span class="lineno"> 471</span> <span class="preprocessor">#define LCD_WIDTH 20</span></div>
<div class="line"><a name="l00472"></a><span class="lineno"> 472</span> <span class="preprocessor">#define LCD_HEIGHT 4</span></div>
<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>  </div>
<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>  </div>
<div class="line"><a name="l00475"></a><span class="lineno"> 475</span> <span class="comment">// Increase the FAN pwm frequency. Removes the PWM noise but increases heating in the FET/Arduino</span></div>
<div class="line"><a name="l00476"></a><span class="lineno"> 476</span> <span class="comment">//#define FAST_PWM_FAN</span></div>
<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>  </div>
<div class="line"><a name="l00478"></a><span class="lineno"> 478</span> <span class="comment">// Use software PWM to drive the fan, as for the heaters. This uses a very low frequency</span></div>
<div class="line"><a name="l00479"></a><span class="lineno"> 479</span> <span class="comment">// which is not ass annoying as with the hardware PWM. On the other hand, if this frequency</span></div>
<div class="line"><a name="l00480"></a><span class="lineno"> 480</span> <span class="comment">// is too low, you should also increment SOFT_PWM_SCALE.</span></div>
<div class="line"><a name="l00481"></a><span class="lineno"> 481</span> <span class="preprocessor">#define FAN_SOFT_PWM</span></div>
<div class="line"><a name="l00482"></a><span class="lineno"> 482</span> <span class="preprocessor">#define FAN_SOFT_PWM_BITS 4 </span><span class="comment">//PWM bit resolution = 4bits, freq = 62.5Hz</span></div>
<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>  </div>
<div class="line"><a name="l00484"></a><span class="lineno"> 484</span> <span class="comment">// Bed soft pwm</span></div>
<div class="line"><a name="l00485"></a><span class="lineno"> 485</span> <span class="preprocessor">#define HEATER_BED_SOFT_PWM_BITS 5 </span><span class="comment">//PWM bit resolution = 5bits, freq = 31.25Hz</span></div>
<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>  </div>
<div class="line"><a name="l00487"></a><span class="lineno"> 487</span> <span class="comment">// Incrementing this by 1 will double the software PWM frequency,</span></div>
<div class="line"><a name="l00488"></a><span class="lineno"> 488</span> <span class="comment">// affecting heaters, and the fan if FAN_SOFT_PWM is enabled.</span></div>
<div class="line"><a name="l00489"></a><span class="lineno"> 489</span> <span class="comment">// However, control resolution will be halved for each increment;</span></div>
<div class="line"><a name="l00490"></a><span class="lineno"> 490</span> <span class="comment">// at zero value, there are 128 effective control positions.</span></div>
<div class="line"><a name="l00491"></a><span class="lineno"> 491</span> <span class="preprocessor">#define SOFT_PWM_SCALE 0</span></div>
<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>  </div>
<div class="line"><a name="l00493"></a><span class="lineno"> 493</span> <span class="comment">// M240 Triggers a camera by emulating a Canon RC-1 Remote</span></div>
<div class="line"><a name="l00494"></a><span class="lineno"> 494</span> <span class="comment">// Data from: http://www.doc-diy.net/photo/rc-1_hacked/</span></div>
<div class="line"><a name="l00495"></a><span class="lineno"> 495</span> <span class="comment">// #define PHOTOGRAPH_PIN 23</span></div>
<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  </div>
<div class="line"><a name="l00497"></a><span class="lineno"> 497</span> <span class="comment">// SF send wrong arc g-codes when using Arc Point as fillet procedure</span></div>
<div class="line"><a name="l00498"></a><span class="lineno"> 498</span> <span class="comment">//#define SF_ARC_FIX</span></div>
<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>  </div>
<div class="line"><a name="l00500"></a><span class="lineno"> 500</span> <span class="comment">//define BlinkM/CyzRgb Support</span></div>
<div class="line"><a name="l00501"></a><span class="lineno"> 501</span> <span class="comment">//#define BLINKM</span></div>
<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>  </div>
<div class="line"><a name="l00503"></a><span class="lineno"> 503</span> <span class="comment">/*********************************************************************\</span></div>
<div class="line"><a name="l00504"></a><span class="lineno"> 504</span> <span class="comment">* R/C SERVO support</span></div>
<div class="line"><a name="l00505"></a><span class="lineno"> 505</span> <span class="comment">* Sponsored by TrinityLabs, Reworked by codexmas</span></div>
<div class="line"><a name="l00506"></a><span class="lineno"> 506</span> <span class="comment">**********************************************************************/</span></div>
<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>  </div>
<div class="line"><a name="l00508"></a><span class="lineno"> 508</span> <span class="comment">// Number of servos</span></div>
<div class="line"><a name="l00509"></a><span class="lineno"> 509</span> <span class="comment">//</span></div>
<div class="line"><a name="l00510"></a><span class="lineno"> 510</span> <span class="comment">// If you select a configuration below, this will receive a default value and does not need to be set manually</span></div>
<div class="line"><a name="l00511"></a><span class="lineno"> 511</span> <span class="comment">// set it manually if you have more servos than extruders and wish to manually control some</span></div>
<div class="line"><a name="l00512"></a><span class="lineno"> 512</span> <span class="comment">// leaving it undefined or defining as 0 will disable the servo subsystem</span></div>
<div class="line"><a name="l00513"></a><span class="lineno"> 513</span> <span class="comment">// If unsure, leave commented / disabled</span></div>
<div class="line"><a name="l00514"></a><span class="lineno"> 514</span> <span class="comment">//</span></div>
<div class="line"><a name="l00515"></a><span class="lineno"> 515</span> <span class="comment">//#define NUM_SERVOS 3 // Servo index starts with 0 for M280 command</span></div>
<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>  </div>
<div class="line"><a name="l00517"></a><span class="lineno"> 517</span> <span class="preprocessor">#define DEFAULT_NOMINAL_FILAMENT_DIA 1.75 </span><span class="comment">//Enter the diameter (in mm) of the filament generally used (3.0 mm or 1.75 mm). Used by the volumetric extrusion.</span></div>
<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>  </div>
<div class="line"><a name="l00519"></a><span class="lineno"> 519</span> <span class="comment">// Try to maintain a minimum distance from the bed even when Z is</span></div>
<div class="line"><a name="l00520"></a><span class="lineno"> 520</span> <span class="comment">// unknown when doing the following operations</span></div>
<div class="line"><a name="l00521"></a><span class="lineno"> 521</span> <span class="preprocessor">#define MIN_Z_FOR_LOAD 50 </span><span class="comment">// lcd filament loading or autoload</span></div>
<div class="line"><a name="l00522"></a><span class="lineno"> 522</span> <span class="preprocessor">#define MIN_Z_FOR_UNLOAD 50 </span><span class="comment">// lcd filament unloading</span></div>
<div class="line"><a name="l00523"></a><span class="lineno"> 523</span> <span class="preprocessor">#define MIN_Z_FOR_SWAP 27 </span><span class="comment">// filament change (including M600)</span></div>
<div class="line"><a name="l00524"></a><span class="lineno"> 524</span> <span class="preprocessor">#define MIN_Z_FOR_PREHEAT 10 </span><span class="comment">// lcd preheat</span></div>
<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>  </div>
<div class="line"><a name="l00526"></a><span class="lineno"> 526</span> <span class="preprocessor">#include "Configuration_adv.h"</span></div>
<div class="line"><a name="l00527"></a><span class="lineno"> 527</span> <span class="preprocessor">#include "thermistortables.h"</span></div>
<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>  </div>
<div class="line"><a name="l00529"></a><span class="lineno"> 529</span> <span class="preprocessor">#endif </span><span class="comment">//__CONFIGURATION_H</span></div>
<div class="ttc" id="aeeprom_8h_html"><div class="ttname"><a href="eeprom_8h.html">eeprom.h</a></div></div>
<div class="ttc" id="atmc2130_8cpp_html_a9af229851ad799a08675ac18bf30c7e6"><div class="ttname"><a href="tmc2130_8cpp.html#a9af229851ad799a08675ac18bf30c7e6">PROGMEM</a></div><div class="ttdeci">const char eMotorCurrentScalingEnabled[] PROGMEM</div><div class="ttdoc">Positions of the bed reference points in print area coordinates. ver. 05d/24V.</div><div class="ttdef"><b>Definition:</b> tmc2130.cpp:46</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
</small></address>
</body>
</html>