diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index 03f06a781..055dd0645 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -38,18 +38,26 @@ //=========================================================================== //=============================Thermal Settings ============================ //=========================================================================== - +// +//--NORMAL IS 4.7kohm PULLUP!-- 1kohm pullup can be used on hotend sensor, using correct resistor and table +// //// Temperature sensor settings: // -2 is thermocouple with MAX6675 (only for sensor 0) // -1 is thermocouple with AD595 // 0 is not used -// 1 is 100k thermistor -// 2 is 200k thermistor -// 3 is mendel-parts thermistor +// 1 is 100k thermistor - best choice for EPCOS 100k (4.7k pullup) +// 2 is 200k thermistor - ATC Semitec 204GT-2 (4.7k pullup) +// 3 is mendel-parts thermistor (4.7k pullup) // 4 is 10k thermistor !! do not use it for a hotend. It gives bad resolution at high temp. !! -// 5 is ParCan supplied 104GT-2 100K -// 6 is EPCOS 100k -// 7 is 100k Honeywell thermistor 135-104LAG-J01 +// 5 is 100K thermistor - ATC Semitec 104GT-2 (Used in ParCan) (4.7k pullup) +// 6 is 100k EPCOS - Not as accurate as table 1 (created using a fluke thermocouple) (4.7k pullup) +// 7 is 100k Honeywell thermistor 135-104LAG-J01 (4.7k pullup) +// +// 1k ohm pullup tables - This is not normal, you would have to have changed out your 4.7k for 1k +// (but gives greater accuracy and more stable PID) +// 51 is 100k thermistor - EPCOS (1k pullup) +// 52 is 200k thermistor - ATC Semitec 204GT-2 (1k pullup) +// 55 is 100k thermistor - ATC Semitec 104GT-2 (Used in ParCan) (1k pullup) #define TEMP_SENSOR_0 -1 #define TEMP_SENSOR_1 0 diff --git a/Marlin/thermistortables.h b/Marlin/thermistortables.h index 42cda4168..6cff32930 100644 --- a/Marlin/thermistortables.h +++ b/Marlin/thermistortables.h @@ -73,27 +73,41 @@ const short temptable_1[][2] PROGMEM = { #endif #if (THERMISTORHEATER_0 == 2) || (THERMISTORHEATER_1 == 2) || (THERMISTORHEATER_2 == 2) || (THERMISTORBED == 2) //200k bed thermistor const short temptable_2[][2] PROGMEM = { +//200k ATC Semitec 204GT-2 +//Verified by linagee. Source: http://shop.arcol.hu/static/datasheets/thermistors.pdf +// Calculated using 4.7kohm pullup, voltage divider math, and manufacturer provided temp/resistance {1*OVERSAMPLENR, 848}, - {54*OVERSAMPLENR, 275}, - {107*OVERSAMPLENR, 228}, - {160*OVERSAMPLENR, 202}, - {213*OVERSAMPLENR, 185}, - {266*OVERSAMPLENR, 171}, - {319*OVERSAMPLENR, 160}, - {372*OVERSAMPLENR, 150}, - {425*OVERSAMPLENR, 141}, - {478*OVERSAMPLENR, 133}, - {531*OVERSAMPLENR, 125}, - {584*OVERSAMPLENR, 118}, - {637*OVERSAMPLENR, 110}, - {690*OVERSAMPLENR, 103}, - {743*OVERSAMPLENR, 95}, - {796*OVERSAMPLENR, 86}, - {849*OVERSAMPLENR, 77}, - {902*OVERSAMPLENR, 65}, - {955*OVERSAMPLENR, 49}, - {1008*OVERSAMPLENR, 17}, - {1020*OVERSAMPLENR, 0} //safety + {30*OVERSAMPLENR, 300}, //top rating 300C + {34*OVERSAMPLENR, 290}, + {39*OVERSAMPLENR, 280}, + {46*OVERSAMPLENR, 270}, + {53*OVERSAMPLENR, 260}, + {63*OVERSAMPLENR, 250}, + {74*OVERSAMPLENR, 240}, + {87*OVERSAMPLENR, 230}, + {104*OVERSAMPLENR, 220}, + {124*OVERSAMPLENR, 210}, + {148*OVERSAMPLENR, 200}, + {176*OVERSAMPLENR, 190}, + {211*OVERSAMPLENR, 180}, + {252*OVERSAMPLENR, 170}, + {301*OVERSAMPLENR, 160}, + {357*OVERSAMPLENR, 150}, + {420*OVERSAMPLENR, 140}, + {489*OVERSAMPLENR, 130}, + {562*OVERSAMPLENR, 120}, + {636*OVERSAMPLENR, 110}, + {708*OVERSAMPLENR, 100}, + {775*OVERSAMPLENR, 90}, + {835*OVERSAMPLENR, 80}, + {884*OVERSAMPLENR, 70}, + {924*OVERSAMPLENR, 60}, + {955*OVERSAMPLENR, 50}, + {977*OVERSAMPLENR, 40}, + {993*OVERSAMPLENR, 30}, + {1004*OVERSAMPLENR, 20}, + {1012*OVERSAMPLENR, 10}, + {1016*OVERSAMPLENR, 0}, }; #endif @@ -157,73 +171,48 @@ const short temptable_4[][2] PROGMEM = { #if (THERMISTORHEATER_0 == 5) || (THERMISTORHEATER_1 == 5) || (THERMISTORHEATER_2 == 5) || (THERMISTORBED == 5) //100k ParCan thermistor (104GT-2) const short temptable_5[][2] PROGMEM = { -{1*OVERSAMPLENR, 713}, -{18*OVERSAMPLENR, 316}, -{35*OVERSAMPLENR, 266}, -{52*OVERSAMPLENR, 239}, -{69*OVERSAMPLENR, 221}, -{86*OVERSAMPLENR, 208}, -{103*OVERSAMPLENR, 197}, -{120*OVERSAMPLENR, 188}, -{137*OVERSAMPLENR, 181}, -{154*OVERSAMPLENR, 174}, -{171*OVERSAMPLENR, 169}, -{188*OVERSAMPLENR, 163}, -{205*OVERSAMPLENR, 159}, -{222*OVERSAMPLENR, 154}, -{239*OVERSAMPLENR, 150}, -{256*OVERSAMPLENR, 147}, -{273*OVERSAMPLENR, 143}, -{290*OVERSAMPLENR, 140}, -{307*OVERSAMPLENR, 136}, -{324*OVERSAMPLENR, 133}, -{341*OVERSAMPLENR, 130}, -{358*OVERSAMPLENR, 128}, -{375*OVERSAMPLENR, 125}, -{392*OVERSAMPLENR, 122}, -{409*OVERSAMPLENR, 120}, -{426*OVERSAMPLENR, 117}, -{443*OVERSAMPLENR, 115}, -{460*OVERSAMPLENR, 112}, -{477*OVERSAMPLENR, 110}, -{494*OVERSAMPLENR, 108}, -{511*OVERSAMPLENR, 106}, -{528*OVERSAMPLENR, 103}, -{545*OVERSAMPLENR, 101}, -{562*OVERSAMPLENR, 99}, -{579*OVERSAMPLENR, 97}, -{596*OVERSAMPLENR, 95}, -{613*OVERSAMPLENR, 92}, -{630*OVERSAMPLENR, 90}, -{647*OVERSAMPLENR, 88}, -{664*OVERSAMPLENR, 86}, -{681*OVERSAMPLENR, 84}, -{698*OVERSAMPLENR, 81}, -{715*OVERSAMPLENR, 79}, -{732*OVERSAMPLENR, 77}, -{749*OVERSAMPLENR, 75}, -{766*OVERSAMPLENR, 72}, -{783*OVERSAMPLENR, 70}, -{800*OVERSAMPLENR, 67}, -{817*OVERSAMPLENR, 64}, -{834*OVERSAMPLENR, 61}, -{851*OVERSAMPLENR, 58}, -{868*OVERSAMPLENR, 55}, -{885*OVERSAMPLENR, 52}, -{902*OVERSAMPLENR, 48}, -{919*OVERSAMPLENR, 44}, -{936*OVERSAMPLENR, 40}, -{953*OVERSAMPLENR, 34}, -{970*OVERSAMPLENR, 28}, -{987*OVERSAMPLENR, 20}, -{1004*OVERSAMPLENR, 8}, -{1021*OVERSAMPLENR, 0} +// ATC Semitec 104GT-2 (Used in ParCan) +// Verified by linagee. Source: http://shop.arcol.hu/static/datasheets/thermistors.pdf +// Calculated using 4.7kohm pullup, voltage divider math, and manufacturer provided temp/resistance + {1*OVERSAMPLENR, 713}, + {17*OVERSAMPLENR, 300}, //top rating 300C + {20*OVERSAMPLENR, 290}, + {23*OVERSAMPLENR, 280}, + {27*OVERSAMPLENR, 270}, + {31*OVERSAMPLENR, 260}, + {37*OVERSAMPLENR, 250}, + {43*OVERSAMPLENR, 240}, + {51*OVERSAMPLENR, 230}, + {61*OVERSAMPLENR, 220}, + {73*OVERSAMPLENR, 210}, + {87*OVERSAMPLENR, 200}, + {106*OVERSAMPLENR, 190}, + {128*OVERSAMPLENR, 180}, + {155*OVERSAMPLENR, 170}, + {189*OVERSAMPLENR, 160}, + {230*OVERSAMPLENR, 150}, + {278*OVERSAMPLENR, 140}, + {336*OVERSAMPLENR, 130}, + {402*OVERSAMPLENR, 120}, + {476*OVERSAMPLENR, 110}, + {554*OVERSAMPLENR, 100}, + {635*OVERSAMPLENR, 90}, + {713*OVERSAMPLENR, 80}, + {784*OVERSAMPLENR, 70}, + {846*OVERSAMPLENR, 60}, + {897*OVERSAMPLENR, 50}, + {937*OVERSAMPLENR, 40}, + {966*OVERSAMPLENR, 30}, + {986*OVERSAMPLENR, 20}, + {1000*OVERSAMPLENR, 10}, + {1010*OVERSAMPLENR, 0} }; #endif #if (THERMISTORHEATER_0 == 6) || (THERMISTORHEATER_1 == 6) || (THERMISTORHEATER_2 == 6) || (THERMISTORBED == 6) // 100k Epcos thermistor const short temptable_6[][2] PROGMEM = { - {28*OVERSAMPLENR, 250}, + {1*OVERSAMPLENR, 350}, + {28*OVERSAMPLENR, 250}, //top rating 250C {31*OVERSAMPLENR, 245}, {35*OVERSAMPLENR, 240}, {39*OVERSAMPLENR, 235}, @@ -264,7 +253,8 @@ const short temptable_6[][2] PROGMEM = { #if (THERMISTORHEATER_0 == 7) || (THERMISTORHEATER_1 == 7) || (THERMISTORHEATER_2 == 7) || (THERMISTORBED == 7) // 100k Honeywell 135-104LAG-J01 const short temptable_7[][2] PROGMEM = { - {46*OVERSAMPLENR, 270}, + {1*OVERSAMPLENR, 500}, + {46*OVERSAMPLENR, 270}, //top rating 300C {50*OVERSAMPLENR, 265}, {54*OVERSAMPLENR, 260}, {58*OVERSAMPLENR, 255}, @@ -321,6 +311,150 @@ const short temptable_7[][2] PROGMEM = { }; #endif +#if (THERMISTORHEATER_0 == 51) || (THERMISTORHEATER_1 == 51) || (THERMISTORHEATER_2 == 51) || (THERMISTORBED == 51) +// 100k EPCOS (WITH 1kohm RESISTOR FOR PULLUP, R9 ON SANGUINOLOLU! NOT FOR 4.7kohm PULLUP! THIS IS NOT NORMAL!) +// Verified by linagee. +// Calculated using 1kohm pullup, voltage divider math, and manufacturer provided temp/resistance +// Advantage: Twice the resolution and better linearity from 150C to 200C +const short temptable_51[][2] PROGMEM = { + {1*OVERSAMPLENR, 350}, + {190*OVERSAMPLENR, 250}, //top rating 250C + {203*OVERSAMPLENR, 245}, + {217*OVERSAMPLENR, 240}, + {232*OVERSAMPLENR, 235}, + {248*OVERSAMPLENR, 230}, + {265*OVERSAMPLENR, 225}, + {283*OVERSAMPLENR, 220}, + {302*OVERSAMPLENR, 215}, + {322*OVERSAMPLENR, 210}, + {344*OVERSAMPLENR, 205}, + {366*OVERSAMPLENR, 200}, + {390*OVERSAMPLENR, 195}, + {415*OVERSAMPLENR, 190}, + {440*OVERSAMPLENR, 185}, + {467*OVERSAMPLENR, 180}, + {494*OVERSAMPLENR, 175}, + {522*OVERSAMPLENR, 170}, + {551*OVERSAMPLENR, 165}, + {580*OVERSAMPLENR, 160}, + {609*OVERSAMPLENR, 155}, + {638*OVERSAMPLENR, 150}, + {666*OVERSAMPLENR, 145}, + {695*OVERSAMPLENR, 140}, + {722*OVERSAMPLENR, 135}, + {749*OVERSAMPLENR, 130}, + {775*OVERSAMPLENR, 125}, + {800*OVERSAMPLENR, 120}, + {823*OVERSAMPLENR, 115}, + {845*OVERSAMPLENR, 110}, + {865*OVERSAMPLENR, 105}, + {884*OVERSAMPLENR, 100}, + {901*OVERSAMPLENR, 95}, + {917*OVERSAMPLENR, 90}, + {932*OVERSAMPLENR, 85}, + {944*OVERSAMPLENR, 80}, + {956*OVERSAMPLENR, 75}, + {966*OVERSAMPLENR, 70}, + {975*OVERSAMPLENR, 65}, + {982*OVERSAMPLENR, 60}, + {989*OVERSAMPLENR, 55}, + {995*OVERSAMPLENR, 50}, + {1000*OVERSAMPLENR, 45}, + {1004*OVERSAMPLENR, 40}, + {1007*OVERSAMPLENR, 35}, + {1010*OVERSAMPLENR, 30}, + {1013*OVERSAMPLENR, 25}, + {1015*OVERSAMPLENR, 20}, + {1017*OVERSAMPLENR, 15}, + {1018*OVERSAMPLENR, 10}, + {1019*OVERSAMPLENR, 5}, + {1020*OVERSAMPLENR, 0}, + {1021*OVERSAMPLENR, -5} +}; +#endif + +#if (THERMISTORHEATER_0 == 52) || (THERMISTORHEATER_1 == 52) || (THERMISTORHEATER_2 == 52) || (THERMISTORBED == 52) +// 200k ATC Semitec 204GT-2 (WITH 1kohm RESISTOR FOR PULLUP, R9 ON SANGUINOLOLU! NOT FOR 4.7kohm PULLUP! THIS IS NOT NORMAL!) +// Verified by linagee. Source: http://shop.arcol.hu/static/datasheets/thermistors.pdf +// Calculated using 1kohm pullup, voltage divider math, and manufacturer provided temp/resistance +// Advantage: More resolution and better linearity from 150C to 200C +const short temptable_52[][2] PROGMEM = { + {1*OVERSAMPLENR, 500}, + {125*OVERSAMPLENR, 300}, //top rating 300C + {142*OVERSAMPLENR, 290}, + {162*OVERSAMPLENR, 280}, + {185*OVERSAMPLENR, 270}, + {211*OVERSAMPLENR, 260}, + {240*OVERSAMPLENR, 250}, + {274*OVERSAMPLENR, 240}, + {312*OVERSAMPLENR, 230}, + {355*OVERSAMPLENR, 220}, + {401*OVERSAMPLENR, 210}, + {452*OVERSAMPLENR, 200}, + {506*OVERSAMPLENR, 190}, + {563*OVERSAMPLENR, 180}, + {620*OVERSAMPLENR, 170}, + {677*OVERSAMPLENR, 160}, + {732*OVERSAMPLENR, 150}, + {783*OVERSAMPLENR, 140}, + {830*OVERSAMPLENR, 130}, + {871*OVERSAMPLENR, 120}, + {906*OVERSAMPLENR, 110}, + {935*OVERSAMPLENR, 100}, + {958*OVERSAMPLENR, 90}, + {976*OVERSAMPLENR, 80}, + {990*OVERSAMPLENR, 70}, + {1000*OVERSAMPLENR, 60}, + {1008*OVERSAMPLENR, 50}, + {1013*OVERSAMPLENR, 40}, + {1017*OVERSAMPLENR, 30}, + {1019*OVERSAMPLENR, 20}, + {1021*OVERSAMPLENR, 10}, + {1022*OVERSAMPLENR, 0} +}; +#endif + +#if (THERMISTORHEATER_0 == 55) || (THERMISTORHEATER_1 == 55) || (THERMISTORHEATER_2 == 55) || (THERMISTORBED == 55) +// 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!) +// Verified by linagee. Source: http://shop.arcol.hu/static/datasheets/thermistors.pdf +// Calculated using 1kohm pullup, voltage divider math, and manufacturer provided temp/resistance +// Advantage: More resolution and better linearity from 150C to 200C +const short temptable_52[][2] PROGMEM = { + {1*OVERSAMPLENR, 500}, + {76*OVERSAMPLENR, 300}, + {87*OVERSAMPLENR, 290}, + {100*OVERSAMPLENR, 280}, + {114*OVERSAMPLENR, 270}, + {131*OVERSAMPLENR, 260}, + {152*OVERSAMPLENR, 250}, + {175*OVERSAMPLENR, 240}, + {202*OVERSAMPLENR, 230}, + {234*OVERSAMPLENR, 220}, + {271*OVERSAMPLENR, 210}, + {312*OVERSAMPLENR, 200}, + {359*OVERSAMPLENR, 190}, + {411*OVERSAMPLENR, 180}, + {467*OVERSAMPLENR, 170}, + {527*OVERSAMPLENR, 160}, + {590*OVERSAMPLENR, 150}, + {652*OVERSAMPLENR, 140}, + {713*OVERSAMPLENR, 130}, + {770*OVERSAMPLENR, 120}, + {822*OVERSAMPLENR, 110}, + {867*OVERSAMPLENR, 100}, + {905*OVERSAMPLENR, 90}, + {936*OVERSAMPLENR, 80}, + {961*OVERSAMPLENR, 70}, + {979*OVERSAMPLENR, 60}, + {993*OVERSAMPLENR, 50}, + {1003*OVERSAMPLENR, 40}, + {1010*OVERSAMPLENR, 30}, + {1015*OVERSAMPLENR, 20}, + {1018*OVERSAMPLENR, 10}, + {1020*OVERSAMPLENR, 0} +}; +#endif + #define _TT_NAME(_N) temptable_ ## _N #define TT_NAME(_N) _TT_NAME(_N)