Browse Source

Merge pull request #170 from linagee/Marlin_v1

Marlin v1
Bernhard Kubicek 12 years ago
parent
commit
6b14f95b3e
2 changed files with 232 additions and 90 deletions
  1. 15
    7
      Marlin/Configuration.h
  2. 217
    83
      Marlin/thermistortables.h

+ 15
- 7
Marlin/Configuration.h View File

@@ -38,18 +38,26 @@
38 38
 //===========================================================================
39 39
 //=============================Thermal Settings  ============================
40 40
 //===========================================================================
41
-
41
+//
42
+//--NORMAL IS 4.7kohm PULLUP!-- 1kohm pullup can be used on hotend sensor, using correct resistor and table
43
+//
42 44
 //// Temperature sensor settings:
43 45
 // -2 is thermocouple with MAX6675 (only for sensor 0)
44 46
 // -1 is thermocouple with AD595
45 47
 // 0 is not used
46
-// 1 is 100k thermistor
47
-// 2 is 200k thermistor
48
-// 3 is mendel-parts thermistor
48
+// 1 is 100k thermistor - best choice for EPCOS 100k (4.7k pullup)
49
+// 2 is 200k thermistor - ATC Semitec 204GT-2 (4.7k pullup)
50
+// 3 is mendel-parts thermistor (4.7k pullup)
49 51
 // 4 is 10k thermistor !! do not use it for a hotend. It gives bad resolution at high temp. !!
50
-// 5 is ParCan supplied 104GT-2 100K
51
-// 6 is EPCOS 100k
52
-// 7 is 100k Honeywell thermistor 135-104LAG-J01
52
+// 5 is 100K thermistor - ATC Semitec 104GT-2 (Used in ParCan) (4.7k pullup)
53
+// 6 is 100k EPCOS - Not as accurate as table 1 (created using a fluke thermocouple) (4.7k pullup)
54
+// 7 is 100k Honeywell thermistor 135-104LAG-J01 (4.7k pullup)
55
+//
56
+//    1k ohm pullup tables - This is not normal, you would have to have changed out your 4.7k for 1k 
57
+//                          (but gives greater accuracy and more stable PID)
58
+// 51 is 100k thermistor - EPCOS (1k pullup)
59
+// 52 is 200k thermistor - ATC Semitec 204GT-2 (1k pullup)
60
+// 55 is 100k thermistor - ATC Semitec 104GT-2 (Used in ParCan) (1k pullup)
53 61
 
54 62
 #define TEMP_SENSOR_0 -1
55 63
 #define TEMP_SENSOR_1 0

+ 217
- 83
Marlin/thermistortables.h View File

@@ -73,27 +73,41 @@ const short temptable_1[][2] PROGMEM = {
73 73
 #endif
74 74
 #if (THERMISTORHEATER_0 == 2) || (THERMISTORHEATER_1 == 2) || (THERMISTORHEATER_2 == 2) || (THERMISTORBED == 2) //200k bed thermistor
75 75
 const short temptable_2[][2] PROGMEM = {
76
+//200k ATC Semitec 204GT-2
77
+//Verified by linagee. Source: http://shop.arcol.hu/static/datasheets/thermistors.pdf
78
+// Calculated using 4.7kohm pullup, voltage divider math, and manufacturer provided temp/resistance
76 79
    {1*OVERSAMPLENR, 848},
77
-   {54*OVERSAMPLENR, 275},
78
-   {107*OVERSAMPLENR, 228},
79
-   {160*OVERSAMPLENR, 202},
80
-   {213*OVERSAMPLENR, 185},
81
-   {266*OVERSAMPLENR, 171},
82
-   {319*OVERSAMPLENR, 160},
83
-   {372*OVERSAMPLENR, 150},
84
-   {425*OVERSAMPLENR, 141},
85
-   {478*OVERSAMPLENR, 133},
86
-   {531*OVERSAMPLENR, 125},
87
-   {584*OVERSAMPLENR, 118},
88
-   {637*OVERSAMPLENR, 110},
89
-   {690*OVERSAMPLENR, 103},
90
-   {743*OVERSAMPLENR, 95},
91
-   {796*OVERSAMPLENR, 86},
92
-   {849*OVERSAMPLENR, 77},
93
-   {902*OVERSAMPLENR, 65},
94
-   {955*OVERSAMPLENR, 49},
95
-   {1008*OVERSAMPLENR, 17},
96
-   {1020*OVERSAMPLENR, 0} //safety
80
+   {30*OVERSAMPLENR, 300}, //top rating 300C
81
+   {34*OVERSAMPLENR, 290},
82
+   {39*OVERSAMPLENR, 280},
83
+   {46*OVERSAMPLENR, 270},
84
+   {53*OVERSAMPLENR, 260},
85
+   {63*OVERSAMPLENR, 250},
86
+   {74*OVERSAMPLENR, 240},
87
+   {87*OVERSAMPLENR, 230},
88
+   {104*OVERSAMPLENR, 220},
89
+   {124*OVERSAMPLENR, 210},
90
+   {148*OVERSAMPLENR, 200},
91
+   {176*OVERSAMPLENR, 190},
92
+   {211*OVERSAMPLENR, 180},
93
+   {252*OVERSAMPLENR, 170},
94
+   {301*OVERSAMPLENR, 160},
95
+   {357*OVERSAMPLENR, 150},
96
+   {420*OVERSAMPLENR, 140},
97
+   {489*OVERSAMPLENR, 130},
98
+   {562*OVERSAMPLENR, 120},
99
+   {636*OVERSAMPLENR, 110},
100
+   {708*OVERSAMPLENR, 100},
101
+   {775*OVERSAMPLENR, 90},
102
+   {835*OVERSAMPLENR, 80},
103
+   {884*OVERSAMPLENR, 70},
104
+   {924*OVERSAMPLENR, 60},
105
+   {955*OVERSAMPLENR, 50},
106
+   {977*OVERSAMPLENR, 40},
107
+   {993*OVERSAMPLENR, 30},
108
+   {1004*OVERSAMPLENR, 20},
109
+   {1012*OVERSAMPLENR, 10},
110
+   {1016*OVERSAMPLENR, 0},
97 111
 };
98 112
 
99 113
 #endif
@@ -157,73 +171,48 @@ const short temptable_4[][2] PROGMEM = {
157 171
 
158 172
 #if (THERMISTORHEATER_0 == 5) || (THERMISTORHEATER_1 == 5) || (THERMISTORHEATER_2 == 5) || (THERMISTORBED == 5) //100k ParCan thermistor (104GT-2)
159 173
 const short temptable_5[][2] PROGMEM = {
160
-{1*OVERSAMPLENR, 713},
161
-{18*OVERSAMPLENR, 316},
162
-{35*OVERSAMPLENR, 266},
163
-{52*OVERSAMPLENR, 239},
164
-{69*OVERSAMPLENR, 221},
165
-{86*OVERSAMPLENR, 208},
166
-{103*OVERSAMPLENR, 197},
167
-{120*OVERSAMPLENR, 188},
168
-{137*OVERSAMPLENR, 181},
169
-{154*OVERSAMPLENR, 174},
170
-{171*OVERSAMPLENR, 169},
171
-{188*OVERSAMPLENR, 163},
172
-{205*OVERSAMPLENR, 159},
173
-{222*OVERSAMPLENR, 154},
174
-{239*OVERSAMPLENR, 150},
175
-{256*OVERSAMPLENR, 147},
176
-{273*OVERSAMPLENR, 143},
177
-{290*OVERSAMPLENR, 140},
178
-{307*OVERSAMPLENR, 136},
179
-{324*OVERSAMPLENR, 133},
180
-{341*OVERSAMPLENR, 130},
181
-{358*OVERSAMPLENR, 128},
182
-{375*OVERSAMPLENR, 125},
183
-{392*OVERSAMPLENR, 122},
184
-{409*OVERSAMPLENR, 120},
185
-{426*OVERSAMPLENR, 117},
186
-{443*OVERSAMPLENR, 115},
187
-{460*OVERSAMPLENR, 112},
188
-{477*OVERSAMPLENR, 110},
189
-{494*OVERSAMPLENR, 108},
190
-{511*OVERSAMPLENR, 106},
191
-{528*OVERSAMPLENR, 103},
192
-{545*OVERSAMPLENR, 101},
193
-{562*OVERSAMPLENR, 99},
194
-{579*OVERSAMPLENR, 97},
195
-{596*OVERSAMPLENR, 95},
196
-{613*OVERSAMPLENR, 92},
197
-{630*OVERSAMPLENR, 90},
198
-{647*OVERSAMPLENR, 88},
199
-{664*OVERSAMPLENR, 86},
200
-{681*OVERSAMPLENR, 84},
201
-{698*OVERSAMPLENR, 81},
202
-{715*OVERSAMPLENR, 79},
203
-{732*OVERSAMPLENR, 77},
204
-{749*OVERSAMPLENR, 75},
205
-{766*OVERSAMPLENR, 72},
206
-{783*OVERSAMPLENR, 70},
207
-{800*OVERSAMPLENR, 67},
208
-{817*OVERSAMPLENR, 64},
209
-{834*OVERSAMPLENR, 61},
210
-{851*OVERSAMPLENR, 58},
211
-{868*OVERSAMPLENR, 55},
212
-{885*OVERSAMPLENR, 52},
213
-{902*OVERSAMPLENR, 48},
214
-{919*OVERSAMPLENR, 44},
215
-{936*OVERSAMPLENR, 40},
216
-{953*OVERSAMPLENR, 34},
217
-{970*OVERSAMPLENR, 28},
218
-{987*OVERSAMPLENR, 20},
219
-{1004*OVERSAMPLENR, 8},
220
-{1021*OVERSAMPLENR, 0}
174
+// ATC Semitec 104GT-2 (Used in ParCan)
175
+// Verified by linagee. Source: http://shop.arcol.hu/static/datasheets/thermistors.pdf
176
+// Calculated using 4.7kohm pullup, voltage divider math, and manufacturer provided temp/resistance
177
+   {1*OVERSAMPLENR, 713},
178
+   {17*OVERSAMPLENR, 300}, //top rating 300C
179
+   {20*OVERSAMPLENR, 290},
180
+   {23*OVERSAMPLENR, 280},
181
+   {27*OVERSAMPLENR, 270},
182
+   {31*OVERSAMPLENR, 260},
183
+   {37*OVERSAMPLENR, 250},
184
+   {43*OVERSAMPLENR, 240},
185
+   {51*OVERSAMPLENR, 230},
186
+   {61*OVERSAMPLENR, 220},
187
+   {73*OVERSAMPLENR, 210},
188
+   {87*OVERSAMPLENR, 200},
189
+   {106*OVERSAMPLENR, 190},
190
+   {128*OVERSAMPLENR, 180},
191
+   {155*OVERSAMPLENR, 170},
192
+   {189*OVERSAMPLENR, 160},
193
+   {230*OVERSAMPLENR, 150},
194
+   {278*OVERSAMPLENR, 140},
195
+   {336*OVERSAMPLENR, 130},
196
+   {402*OVERSAMPLENR, 120},
197
+   {476*OVERSAMPLENR, 110},
198
+   {554*OVERSAMPLENR, 100},
199
+   {635*OVERSAMPLENR, 90},
200
+   {713*OVERSAMPLENR, 80},
201
+   {784*OVERSAMPLENR, 70},
202
+   {846*OVERSAMPLENR, 60},
203
+   {897*OVERSAMPLENR, 50},
204
+   {937*OVERSAMPLENR, 40},
205
+   {966*OVERSAMPLENR, 30},
206
+   {986*OVERSAMPLENR, 20},
207
+   {1000*OVERSAMPLENR, 10},
208
+   {1010*OVERSAMPLENR, 0}
221 209
 };
222 210
 #endif
223 211
 
224 212
 #if (THERMISTORHEATER_0 == 6) || (THERMISTORHEATER_1 == 6) || (THERMISTORHEATER_2 == 6) || (THERMISTORBED == 6) // 100k Epcos thermistor
225 213
 const short temptable_6[][2] PROGMEM = {
226
-   {28*OVERSAMPLENR, 250},
214
+   {1*OVERSAMPLENR, 350},
215
+   {28*OVERSAMPLENR, 250}, //top rating 250C
227 216
    {31*OVERSAMPLENR, 245},
228 217
    {35*OVERSAMPLENR, 240},
229 218
    {39*OVERSAMPLENR, 235},
@@ -264,7 +253,8 @@ const short temptable_6[][2] PROGMEM = {
264 253
 
265 254
 #if (THERMISTORHEATER_0 == 7) || (THERMISTORHEATER_1 == 7) || (THERMISTORHEATER_2 == 7) || (THERMISTORBED == 7) // 100k Honeywell 135-104LAG-J01
266 255
 const short temptable_7[][2] PROGMEM = {
267
-   {46*OVERSAMPLENR, 270},
256
+   {1*OVERSAMPLENR, 500},
257
+   {46*OVERSAMPLENR, 270}, //top rating 300C
268 258
    {50*OVERSAMPLENR, 265},
269 259
    {54*OVERSAMPLENR, 260},
270 260
    {58*OVERSAMPLENR, 255},
@@ -321,6 +311,150 @@ const short temptable_7[][2] PROGMEM = {
321 311
 };
322 312
 #endif
323 313
 
314
+#if (THERMISTORHEATER_0 == 51) || (THERMISTORHEATER_1 == 51) || (THERMISTORHEATER_2 == 51) || (THERMISTORBED == 51) 
315
+// 100k EPCOS (WITH 1kohm RESISTOR FOR PULLUP, R9 ON SANGUINOLOLU! NOT FOR 4.7kohm PULLUP! THIS IS NOT NORMAL!)
316
+// Verified by linagee.
317
+// Calculated using 1kohm pullup, voltage divider math, and manufacturer provided temp/resistance
318
+// Advantage: Twice the resolution and better linearity from 150C to 200C
319
+const short temptable_51[][2] PROGMEM = {
320
+   {1*OVERSAMPLENR, 350},
321
+   {190*OVERSAMPLENR, 250}, //top rating 250C
322
+   {203*OVERSAMPLENR, 245},
323
+   {217*OVERSAMPLENR, 240},
324
+   {232*OVERSAMPLENR, 235},
325
+   {248*OVERSAMPLENR, 230},
326
+   {265*OVERSAMPLENR, 225},
327
+   {283*OVERSAMPLENR, 220},
328
+   {302*OVERSAMPLENR, 215},
329
+   {322*OVERSAMPLENR, 210},
330
+   {344*OVERSAMPLENR, 205},
331
+   {366*OVERSAMPLENR, 200},
332
+   {390*OVERSAMPLENR, 195},
333
+   {415*OVERSAMPLENR, 190},
334
+   {440*OVERSAMPLENR, 185},
335
+   {467*OVERSAMPLENR, 180},
336
+   {494*OVERSAMPLENR, 175},
337
+   {522*OVERSAMPLENR, 170},
338
+   {551*OVERSAMPLENR, 165},
339
+   {580*OVERSAMPLENR, 160},
340
+   {609*OVERSAMPLENR, 155},
341
+   {638*OVERSAMPLENR, 150},
342
+   {666*OVERSAMPLENR, 145},
343
+   {695*OVERSAMPLENR, 140},
344
+   {722*OVERSAMPLENR, 135},
345
+   {749*OVERSAMPLENR, 130},
346
+   {775*OVERSAMPLENR, 125},
347
+   {800*OVERSAMPLENR, 120},
348
+   {823*OVERSAMPLENR, 115},
349
+   {845*OVERSAMPLENR, 110},
350
+   {865*OVERSAMPLENR, 105},
351
+   {884*OVERSAMPLENR, 100},
352
+   {901*OVERSAMPLENR, 95},
353
+   {917*OVERSAMPLENR, 90},
354
+   {932*OVERSAMPLENR, 85},
355
+   {944*OVERSAMPLENR, 80},
356
+   {956*OVERSAMPLENR, 75},
357
+   {966*OVERSAMPLENR, 70},
358
+   {975*OVERSAMPLENR, 65},
359
+   {982*OVERSAMPLENR, 60},
360
+   {989*OVERSAMPLENR, 55},
361
+   {995*OVERSAMPLENR, 50},
362
+   {1000*OVERSAMPLENR, 45},
363
+   {1004*OVERSAMPLENR, 40},
364
+   {1007*OVERSAMPLENR, 35},
365
+   {1010*OVERSAMPLENR, 30},
366
+   {1013*OVERSAMPLENR, 25},
367
+   {1015*OVERSAMPLENR, 20},
368
+   {1017*OVERSAMPLENR, 15},
369
+   {1018*OVERSAMPLENR, 10},
370
+   {1019*OVERSAMPLENR, 5},
371
+   {1020*OVERSAMPLENR, 0},
372
+   {1021*OVERSAMPLENR, -5}
373
+};
374
+#endif
375
+
376
+#if (THERMISTORHEATER_0 == 52) || (THERMISTORHEATER_1 == 52) || (THERMISTORHEATER_2 == 52) || (THERMISTORBED == 52) 
377
+// 200k ATC Semitec 204GT-2 (WITH 1kohm RESISTOR FOR PULLUP, R9 ON SANGUINOLOLU! NOT FOR 4.7kohm PULLUP! THIS IS NOT NORMAL!)
378
+// Verified by linagee. Source: http://shop.arcol.hu/static/datasheets/thermistors.pdf
379
+// Calculated using 1kohm pullup, voltage divider math, and manufacturer provided temp/resistance
380
+// Advantage: More resolution and better linearity from 150C to 200C
381
+const short temptable_52[][2] PROGMEM = {
382
+   {1*OVERSAMPLENR, 500},
383
+   {125*OVERSAMPLENR, 300}, //top rating 300C
384
+   {142*OVERSAMPLENR, 290},
385
+   {162*OVERSAMPLENR, 280},
386
+   {185*OVERSAMPLENR, 270},
387
+   {211*OVERSAMPLENR, 260},
388
+   {240*OVERSAMPLENR, 250},
389
+   {274*OVERSAMPLENR, 240},
390
+   {312*OVERSAMPLENR, 230},
391
+   {355*OVERSAMPLENR, 220},
392
+   {401*OVERSAMPLENR, 210},
393
+   {452*OVERSAMPLENR, 200},
394
+   {506*OVERSAMPLENR, 190},
395
+   {563*OVERSAMPLENR, 180},
396
+   {620*OVERSAMPLENR, 170},
397
+   {677*OVERSAMPLENR, 160},
398
+   {732*OVERSAMPLENR, 150},
399
+   {783*OVERSAMPLENR, 140},
400
+   {830*OVERSAMPLENR, 130},
401
+   {871*OVERSAMPLENR, 120},
402
+   {906*OVERSAMPLENR, 110},
403
+   {935*OVERSAMPLENR, 100},
404
+   {958*OVERSAMPLENR, 90},
405
+   {976*OVERSAMPLENR, 80},
406
+   {990*OVERSAMPLENR, 70},
407
+   {1000*OVERSAMPLENR, 60},
408
+   {1008*OVERSAMPLENR, 50},
409
+   {1013*OVERSAMPLENR, 40},
410
+   {1017*OVERSAMPLENR, 30},
411
+   {1019*OVERSAMPLENR, 20},
412
+   {1021*OVERSAMPLENR, 10},
413
+   {1022*OVERSAMPLENR, 0}
414
+};
415
+#endif
416
+
417
+#if (THERMISTORHEATER_0 == 55) || (THERMISTORHEATER_1 == 55) || (THERMISTORHEATER_2 == 55) || (THERMISTORBED == 55) 
418
+// 100k ATC Semitec 104GT-2 (Used on ParCan) (WITH 1kohm RESISTOR FOR PULLUP, R9 ON SANGUINOLOLU! NOT FOR 4.7kohm PULLUP! THIS IS NOT NORMAL!)
419
+// Verified by linagee. Source: http://shop.arcol.hu/static/datasheets/thermistors.pdf
420
+// Calculated using 1kohm pullup, voltage divider math, and manufacturer provided temp/resistance
421
+// Advantage: More resolution and better linearity from 150C to 200C
422
+const short temptable_52[][2] PROGMEM = {
423
+   {1*OVERSAMPLENR, 500},
424
+   {76*OVERSAMPLENR, 300},
425
+   {87*OVERSAMPLENR, 290},
426
+   {100*OVERSAMPLENR, 280},
427
+   {114*OVERSAMPLENR, 270},
428
+   {131*OVERSAMPLENR, 260},
429
+   {152*OVERSAMPLENR, 250},
430
+   {175*OVERSAMPLENR, 240},
431
+   {202*OVERSAMPLENR, 230},
432
+   {234*OVERSAMPLENR, 220},
433
+   {271*OVERSAMPLENR, 210},
434
+   {312*OVERSAMPLENR, 200},
435
+   {359*OVERSAMPLENR, 190},
436
+   {411*OVERSAMPLENR, 180},
437
+   {467*OVERSAMPLENR, 170},
438
+   {527*OVERSAMPLENR, 160},
439
+   {590*OVERSAMPLENR, 150},
440
+   {652*OVERSAMPLENR, 140},
441
+   {713*OVERSAMPLENR, 130},
442
+   {770*OVERSAMPLENR, 120},
443
+   {822*OVERSAMPLENR, 110},
444
+   {867*OVERSAMPLENR, 100},
445
+   {905*OVERSAMPLENR, 90},
446
+   {936*OVERSAMPLENR, 80},
447
+   {961*OVERSAMPLENR, 70},
448
+   {979*OVERSAMPLENR, 60},
449
+   {993*OVERSAMPLENR, 50},
450
+   {1003*OVERSAMPLENR, 40},
451
+   {1010*OVERSAMPLENR, 30},
452
+   {1015*OVERSAMPLENR, 20},
453
+   {1018*OVERSAMPLENR, 10},
454
+   {1020*OVERSAMPLENR, 0}
455
+};
456
+#endif
457
+
324 458
 #define _TT_NAME(_N) temptable_ ## _N
325 459
 #define TT_NAME(_N) _TT_NAME(_N)
326 460
 

Loading…
Cancel
Save