@ -30,1277 +30,139 @@
# define ANY_THERMISTOR_IS(n) (THERMISTORHEATER_0 == n || THERMISTORHEATER_1 == n || THERMISTORHEATER_2 == n || THERMISTORHEATER_3 == n || THERMISTORBED == n)
// Pt1000 and Pt100 handling
//
// Rt=R0*(1+a*T+b*T*T) [for T>0]
// a=3.9083E-3, b=-5.775E-7
# define PtA 3.9083E-3
# define PtB -5.775E-7
# define PtRt(T,R0) ((R0)*(1.0+(PtA)*(T)+(PtB)*(T)*(T)))
# define PtAdVal(T,R0,Rup) (short)(1024 / (Rup / PtRt(T,R0)+1))
# define PtLine(T,R0,Rup) { PtAdVal(T,R0,Rup)*OVERSAMPLENR, T },
# if ANY_THERMISTOR_IS(1) // 100k bed thermistor
const short temptable_1 [ ] [ 2 ] PROGMEM = {
{ 23 * OVERSAMPLENR , 300 } ,
{ 25 * OVERSAMPLENR , 295 } ,
{ 27 * OVERSAMPLENR , 290 } ,
{ 28 * OVERSAMPLENR , 285 } ,
{ 31 * OVERSAMPLENR , 280 } ,
{ 33 * OVERSAMPLENR , 275 } ,
{ 35 * OVERSAMPLENR , 270 } ,
{ 38 * OVERSAMPLENR , 265 } ,
{ 41 * OVERSAMPLENR , 260 } ,
{ 44 * OVERSAMPLENR , 255 } ,
{ 48 * OVERSAMPLENR , 250 } ,
{ 52 * OVERSAMPLENR , 245 } ,
{ 56 * OVERSAMPLENR , 240 } ,
{ 61 * OVERSAMPLENR , 235 } ,
{ 66 * OVERSAMPLENR , 230 } ,
{ 71 * OVERSAMPLENR , 225 } ,
{ 78 * OVERSAMPLENR , 220 } ,
{ 84 * OVERSAMPLENR , 215 } ,
{ 92 * OVERSAMPLENR , 210 } ,
{ 100 * OVERSAMPLENR , 205 } ,
{ 109 * OVERSAMPLENR , 200 } ,
{ 120 * OVERSAMPLENR , 195 } ,
{ 131 * OVERSAMPLENR , 190 } ,
{ 143 * OVERSAMPLENR , 185 } ,
{ 156 * OVERSAMPLENR , 180 } ,
{ 171 * OVERSAMPLENR , 175 } ,
{ 187 * OVERSAMPLENR , 170 } ,
{ 205 * OVERSAMPLENR , 165 } ,
{ 224 * OVERSAMPLENR , 160 } ,
{ 245 * OVERSAMPLENR , 155 } ,
{ 268 * OVERSAMPLENR , 150 } ,
{ 293 * OVERSAMPLENR , 145 } ,
{ 320 * OVERSAMPLENR , 140 } ,
{ 348 * OVERSAMPLENR , 135 } ,
{ 379 * OVERSAMPLENR , 130 } ,
{ 411 * OVERSAMPLENR , 125 } ,
{ 445 * OVERSAMPLENR , 120 } ,
{ 480 * OVERSAMPLENR , 115 } ,
{ 516 * OVERSAMPLENR , 110 } ,
{ 553 * OVERSAMPLENR , 105 } ,
{ 591 * OVERSAMPLENR , 100 } ,
{ 628 * OVERSAMPLENR , 95 } ,
{ 665 * OVERSAMPLENR , 90 } ,
{ 702 * OVERSAMPLENR , 85 } ,
{ 737 * OVERSAMPLENR , 80 } ,
{ 770 * OVERSAMPLENR , 75 } ,
{ 801 * OVERSAMPLENR , 70 } ,
{ 830 * OVERSAMPLENR , 65 } ,
{ 857 * OVERSAMPLENR , 60 } ,
{ 881 * OVERSAMPLENR , 55 } ,
{ 903 * OVERSAMPLENR , 50 } ,
{ 922 * OVERSAMPLENR , 45 } ,
{ 939 * OVERSAMPLENR , 40 } ,
{ 954 * OVERSAMPLENR , 35 } ,
{ 966 * OVERSAMPLENR , 30 } ,
{ 977 * OVERSAMPLENR , 25 } ,
{ 985 * OVERSAMPLENR , 20 } ,
{ 993 * OVERSAMPLENR , 15 } ,
{ 999 * OVERSAMPLENR , 10 } ,
{ 1004 * OVERSAMPLENR , 5 } ,
{ 1008 * OVERSAMPLENR , 0 } ,
{ 1012 * OVERSAMPLENR , - 5 } ,
{ 1016 * OVERSAMPLENR , - 10 } ,
{ 1020 * OVERSAMPLENR , - 15 }
} ;
# include "thermistortable_1.h"
# endif
# if ANY_THERMISTOR_IS(2) // 200k bed thermistor
// 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
const short temptable_2 [ ] [ 2 ] PROGMEM = {
{ 1 * OVERSAMPLENR , 848 } ,
{ 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 }
} ;
# include "thermistortable_2.h"
# endif
# if ANY_THERMISTOR_IS(3) // mendel-parts
const short temptable_3 [ ] [ 2 ] PROGMEM = {
{ 1 * OVERSAMPLENR , 864 } ,
{ 21 * OVERSAMPLENR , 300 } ,
{ 25 * OVERSAMPLENR , 290 } ,
{ 29 * OVERSAMPLENR , 280 } ,
{ 33 * OVERSAMPLENR , 270 } ,
{ 39 * OVERSAMPLENR , 260 } ,
{ 46 * OVERSAMPLENR , 250 } ,
{ 54 * OVERSAMPLENR , 240 } ,
{ 64 * OVERSAMPLENR , 230 } ,
{ 75 * OVERSAMPLENR , 220 } ,
{ 90 * OVERSAMPLENR , 210 } ,
{ 107 * OVERSAMPLENR , 200 } ,
{ 128 * OVERSAMPLENR , 190 } ,
{ 154 * OVERSAMPLENR , 180 } ,
{ 184 * OVERSAMPLENR , 170 } ,
{ 221 * OVERSAMPLENR , 160 } ,
{ 265 * OVERSAMPLENR , 150 } ,
{ 316 * OVERSAMPLENR , 140 } ,
{ 375 * OVERSAMPLENR , 130 } ,
{ 441 * OVERSAMPLENR , 120 } ,
{ 513 * OVERSAMPLENR , 110 } ,
{ 588 * OVERSAMPLENR , 100 } ,
{ 734 * OVERSAMPLENR , 80 } ,
{ 856 * OVERSAMPLENR , 60 } ,
{ 938 * OVERSAMPLENR , 40 } ,
{ 986 * OVERSAMPLENR , 20 } ,
{ 1008 * OVERSAMPLENR , 0 } ,
{ 1018 * OVERSAMPLENR , - 20 }
} ;
# include "thermistortable_3.h"
# endif
# if ANY_THERMISTOR_IS(4) // 10k thermistor
const short temptable_4 [ ] [ 2 ] PROGMEM = {
{ 1 * OVERSAMPLENR , 430 } ,
{ 54 * OVERSAMPLENR , 137 } ,
{ 107 * OVERSAMPLENR , 107 } ,
{ 160 * OVERSAMPLENR , 91 } ,
{ 213 * OVERSAMPLENR , 80 } ,
{ 266 * OVERSAMPLENR , 71 } ,
{ 319 * OVERSAMPLENR , 64 } ,
{ 372 * OVERSAMPLENR , 57 } ,
{ 425 * OVERSAMPLENR , 51 } ,
{ 478 * OVERSAMPLENR , 46 } ,
{ 531 * OVERSAMPLENR , 41 } ,
{ 584 * OVERSAMPLENR , 35 } ,
{ 637 * OVERSAMPLENR , 30 } ,
{ 690 * OVERSAMPLENR , 25 } ,
{ 743 * OVERSAMPLENR , 20 } ,
{ 796 * OVERSAMPLENR , 14 } ,
{ 849 * OVERSAMPLENR , 7 } ,
{ 902 * OVERSAMPLENR , 0 } ,
{ 955 * OVERSAMPLENR , - 11 } ,
{ 1008 * OVERSAMPLENR , - 35 }
} ;
# include "thermistortable_4.h"
# endif
# if ANY_THERMISTOR_IS(5) // 100k ParCan thermistor (104GT-2)
// 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
const short temptable_5 [ ] [ 2 ] PROGMEM = {
{ 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 }
} ;
# include "thermistortable_5.h"
# endif
# if ANY_THERMISTOR_IS(6) // 100k Epcos thermistor
const short temptable_6 [ ] [ 2 ] PROGMEM = {
{ 1 * OVERSAMPLENR , 350 } ,
{ 28 * OVERSAMPLENR , 250 } , // top rating 250C
{ 31 * OVERSAMPLENR , 245 } ,
{ 35 * OVERSAMPLENR , 240 } ,
{ 39 * OVERSAMPLENR , 235 } ,
{ 42 * OVERSAMPLENR , 230 } ,
{ 44 * OVERSAMPLENR , 225 } ,
{ 49 * OVERSAMPLENR , 220 } ,
{ 53 * OVERSAMPLENR , 215 } ,
{ 62 * OVERSAMPLENR , 210 } ,
{ 71 * OVERSAMPLENR , 205 } , // fitted graphically
{ 78 * OVERSAMPLENR , 200 } , // fitted graphically
{ 94 * OVERSAMPLENR , 190 } ,
{ 102 * OVERSAMPLENR , 185 } ,
{ 116 * OVERSAMPLENR , 170 } ,
{ 143 * OVERSAMPLENR , 160 } ,
{ 183 * OVERSAMPLENR , 150 } ,
{ 223 * OVERSAMPLENR , 140 } ,
{ 270 * OVERSAMPLENR , 130 } ,
{ 318 * OVERSAMPLENR , 120 } ,
{ 383 * OVERSAMPLENR , 110 } ,
{ 413 * OVERSAMPLENR , 105 } ,
{ 439 * OVERSAMPLENR , 100 } ,
{ 484 * OVERSAMPLENR , 95 } ,
{ 513 * OVERSAMPLENR , 90 } ,
{ 607 * OVERSAMPLENR , 80 } ,
{ 664 * OVERSAMPLENR , 70 } ,
{ 781 * OVERSAMPLENR , 60 } ,
{ 810 * OVERSAMPLENR , 55 } ,
{ 849 * OVERSAMPLENR , 50 } ,
{ 914 * OVERSAMPLENR , 45 } ,
{ 914 * OVERSAMPLENR , 40 } ,
{ 935 * OVERSAMPLENR , 35 } ,
{ 954 * OVERSAMPLENR , 30 } ,
{ 970 * OVERSAMPLENR , 25 } ,
{ 978 * OVERSAMPLENR , 22 } ,
{ 1008 * OVERSAMPLENR , 3 } ,
{ 1023 * OVERSAMPLENR , 0 } // to allow internal 0 degrees C
} ;
# include "thermistortable_6.h"
# endif
# if ANY_THERMISTOR_IS(7) // 100k Honeywell 135-104LAG-J01
const short temptable_7 [ ] [ 2 ] PROGMEM = {
{ 1 * OVERSAMPLENR , 941 } ,
{ 19 * OVERSAMPLENR , 362 } ,
{ 37 * OVERSAMPLENR , 299 } , // top rating 300C
{ 55 * OVERSAMPLENR , 266 } ,
{ 73 * OVERSAMPLENR , 245 } ,
{ 91 * OVERSAMPLENR , 229 } ,
{ 109 * OVERSAMPLENR , 216 } ,
{ 127 * OVERSAMPLENR , 206 } ,
{ 145 * OVERSAMPLENR , 197 } ,
{ 163 * OVERSAMPLENR , 190 } ,
{ 181 * OVERSAMPLENR , 183 } ,
{ 199 * OVERSAMPLENR , 177 } ,
{ 217 * OVERSAMPLENR , 171 } ,
{ 235 * OVERSAMPLENR , 166 } ,
{ 253 * OVERSAMPLENR , 162 } ,
{ 271 * OVERSAMPLENR , 157 } ,
{ 289 * OVERSAMPLENR , 153 } ,
{ 307 * OVERSAMPLENR , 149 } ,
{ 325 * OVERSAMPLENR , 146 } ,
{ 343 * OVERSAMPLENR , 142 } ,
{ 361 * OVERSAMPLENR , 139 } ,
{ 379 * OVERSAMPLENR , 135 } ,
{ 397 * OVERSAMPLENR , 132 } ,
{ 415 * OVERSAMPLENR , 129 } ,
{ 433 * OVERSAMPLENR , 126 } ,
{ 451 * OVERSAMPLENR , 123 } ,
{ 469 * OVERSAMPLENR , 121 } ,
{ 487 * OVERSAMPLENR , 118 } ,
{ 505 * OVERSAMPLENR , 115 } ,
{ 523 * OVERSAMPLENR , 112 } ,
{ 541 * OVERSAMPLENR , 110 } ,
{ 559 * OVERSAMPLENR , 107 } ,
{ 577 * OVERSAMPLENR , 105 } ,
{ 595 * OVERSAMPLENR , 102 } ,
{ 613 * OVERSAMPLENR , 99 } ,
{ 631 * OVERSAMPLENR , 97 } ,
{ 649 * OVERSAMPLENR , 94 } ,
{ 667 * OVERSAMPLENR , 92 } ,
{ 685 * OVERSAMPLENR , 89 } ,
{ 703 * OVERSAMPLENR , 86 } ,
{ 721 * OVERSAMPLENR , 84 } ,
{ 739 * OVERSAMPLENR , 81 } ,
{ 757 * OVERSAMPLENR , 78 } ,
{ 775 * OVERSAMPLENR , 75 } ,
{ 793 * OVERSAMPLENR , 72 } ,
{ 811 * OVERSAMPLENR , 69 } ,
{ 829 * OVERSAMPLENR , 66 } ,
{ 847 * OVERSAMPLENR , 62 } ,
{ 865 * OVERSAMPLENR , 59 } ,
{ 883 * OVERSAMPLENR , 55 } ,
{ 901 * OVERSAMPLENR , 51 } ,
{ 919 * OVERSAMPLENR , 46 } ,
{ 937 * OVERSAMPLENR , 41 } ,
{ 955 * OVERSAMPLENR , 35 } ,
{ 973 * OVERSAMPLENR , 27 } ,
{ 991 * OVERSAMPLENR , 17 } ,
{ 1009 * OVERSAMPLENR , 1 } ,
{ 1023 * OVERSAMPLENR , 0 } // to allow internal 0 degrees C
} ;
# include "thermistortable_7.h"
# endif
# if ANY_THERMISTOR_IS(71) // 100k Honeywell 135-104LAF-J01
// R0 = 100000 Ohm
// T0 = 25 °C
// Beta = 3974
// R1 = 0 Ohm
// R2 = 4700 Ohm
const short temptable_71 [ ] [ 2 ] PROGMEM = {
{ 35 * OVERSAMPLENR , 300 } ,
{ 51 * OVERSAMPLENR , 270 } ,
{ 54 * OVERSAMPLENR , 265 } ,
{ 58 * OVERSAMPLENR , 260 } ,
{ 59 * OVERSAMPLENR , 258 } ,
{ 61 * OVERSAMPLENR , 256 } ,
{ 63 * OVERSAMPLENR , 254 } ,
{ 64 * OVERSAMPLENR , 252 } ,
{ 66 * OVERSAMPLENR , 250 } ,
{ 67 * OVERSAMPLENR , 249 } ,
{ 68 * OVERSAMPLENR , 248 } ,
{ 69 * OVERSAMPLENR , 247 } ,
{ 70 * OVERSAMPLENR , 246 } ,
{ 71 * OVERSAMPLENR , 245 } ,
{ 72 * OVERSAMPLENR , 244 } ,
{ 73 * OVERSAMPLENR , 243 } ,
{ 74 * OVERSAMPLENR , 242 } ,
{ 75 * OVERSAMPLENR , 241 } ,
{ 76 * OVERSAMPLENR , 240 } ,
{ 77 * OVERSAMPLENR , 239 } ,
{ 78 * OVERSAMPLENR , 238 } ,
{ 79 * OVERSAMPLENR , 237 } ,
{ 80 * OVERSAMPLENR , 236 } ,
{ 81 * OVERSAMPLENR , 235 } ,
{ 82 * OVERSAMPLENR , 234 } ,
{ 84 * OVERSAMPLENR , 233 } ,
{ 85 * OVERSAMPLENR , 232 } ,
{ 86 * OVERSAMPLENR , 231 } ,
{ 87 * OVERSAMPLENR , 230 } ,
{ 89 * OVERSAMPLENR , 229 } ,
{ 90 * OVERSAMPLENR , 228 } ,
{ 91 * OVERSAMPLENR , 227 } ,
{ 92 * OVERSAMPLENR , 226 } ,
{ 94 * OVERSAMPLENR , 225 } ,
{ 95 * OVERSAMPLENR , 224 } ,
{ 97 * OVERSAMPLENR , 223 } ,
{ 98 * OVERSAMPLENR , 222 } ,
{ 99 * OVERSAMPLENR , 221 } ,
{ 101 * OVERSAMPLENR , 220 } ,
{ 102 * OVERSAMPLENR , 219 } ,
{ 104 * OVERSAMPLENR , 218 } ,
{ 106 * OVERSAMPLENR , 217 } ,
{ 107 * OVERSAMPLENR , 216 } ,
{ 109 * OVERSAMPLENR , 215 } ,
{ 110 * OVERSAMPLENR , 214 } ,
{ 112 * OVERSAMPLENR , 213 } ,
{ 114 * OVERSAMPLENR , 212 } ,
{ 115 * OVERSAMPLENR , 211 } ,
{ 117 * OVERSAMPLENR , 210 } ,
{ 119 * OVERSAMPLENR , 209 } ,
{ 121 * OVERSAMPLENR , 208 } ,
{ 123 * OVERSAMPLENR , 207 } ,
{ 125 * OVERSAMPLENR , 206 } ,
{ 126 * OVERSAMPLENR , 205 } ,
{ 128 * OVERSAMPLENR , 204 } ,
{ 130 * OVERSAMPLENR , 203 } ,
{ 132 * OVERSAMPLENR , 202 } ,
{ 134 * OVERSAMPLENR , 201 } ,
{ 136 * OVERSAMPLENR , 200 } ,
{ 139 * OVERSAMPLENR , 199 } ,
{ 141 * OVERSAMPLENR , 198 } ,
{ 143 * OVERSAMPLENR , 197 } ,
{ 145 * OVERSAMPLENR , 196 } ,
{ 147 * OVERSAMPLENR , 195 } ,
{ 150 * OVERSAMPLENR , 194 } ,
{ 152 * OVERSAMPLENR , 193 } ,
{ 154 * OVERSAMPLENR , 192 } ,
{ 157 * OVERSAMPLENR , 191 } ,
{ 159 * OVERSAMPLENR , 190 } ,
{ 162 * OVERSAMPLENR , 189 } ,
{ 164 * OVERSAMPLENR , 188 } ,
{ 167 * OVERSAMPLENR , 187 } ,
{ 170 * OVERSAMPLENR , 186 } ,
{ 172 * OVERSAMPLENR , 185 } ,
{ 175 * OVERSAMPLENR , 184 } ,
{ 178 * OVERSAMPLENR , 183 } ,
{ 181 * OVERSAMPLENR , 182 } ,
{ 184 * OVERSAMPLENR , 181 } ,
{ 187 * OVERSAMPLENR , 180 } ,
{ 190 * OVERSAMPLENR , 179 } ,
{ 193 * OVERSAMPLENR , 178 } ,
{ 196 * OVERSAMPLENR , 177 } ,
{ 199 * OVERSAMPLENR , 176 } ,
{ 202 * OVERSAMPLENR , 175 } ,
{ 205 * OVERSAMPLENR , 174 } ,
{ 208 * OVERSAMPLENR , 173 } ,
{ 212 * OVERSAMPLENR , 172 } ,
{ 215 * OVERSAMPLENR , 171 } ,
{ 219 * OVERSAMPLENR , 170 } ,
{ 237 * OVERSAMPLENR , 165 } ,
{ 256 * OVERSAMPLENR , 160 } ,
{ 300 * OVERSAMPLENR , 150 } ,
{ 351 * OVERSAMPLENR , 140 } ,
{ 470 * OVERSAMPLENR , 120 } ,
{ 504 * OVERSAMPLENR , 115 } ,
{ 538 * OVERSAMPLENR , 110 } ,
{ 552 * OVERSAMPLENR , 108 } ,
{ 566 * OVERSAMPLENR , 106 } ,
{ 580 * OVERSAMPLENR , 104 } ,
{ 594 * OVERSAMPLENR , 102 } ,
{ 608 * OVERSAMPLENR , 100 } ,
{ 622 * OVERSAMPLENR , 98 } ,
{ 636 * OVERSAMPLENR , 96 } ,
{ 650 * OVERSAMPLENR , 94 } ,
{ 664 * OVERSAMPLENR , 92 } ,
{ 678 * OVERSAMPLENR , 90 } ,
{ 712 * OVERSAMPLENR , 85 } ,
{ 745 * OVERSAMPLENR , 80 } ,
{ 758 * OVERSAMPLENR , 78 } ,
{ 770 * OVERSAMPLENR , 76 } ,
{ 783 * OVERSAMPLENR , 74 } ,
{ 795 * OVERSAMPLENR , 72 } ,
{ 806 * OVERSAMPLENR , 70 } ,
{ 818 * OVERSAMPLENR , 68 } ,
{ 829 * OVERSAMPLENR , 66 } ,
{ 840 * OVERSAMPLENR , 64 } ,
{ 850 * OVERSAMPLENR , 62 } ,
{ 860 * OVERSAMPLENR , 60 } ,
{ 870 * OVERSAMPLENR , 58 } ,
{ 879 * OVERSAMPLENR , 56 } ,
{ 888 * OVERSAMPLENR , 54 } ,
{ 897 * OVERSAMPLENR , 52 } ,
{ 905 * OVERSAMPLENR , 50 } ,
{ 924 * OVERSAMPLENR , 45 } ,
{ 940 * OVERSAMPLENR , 40 } ,
{ 955 * OVERSAMPLENR , 35 } ,
{ 967 * OVERSAMPLENR , 30 } ,
{ 970 * OVERSAMPLENR , 29 } ,
{ 972 * OVERSAMPLENR , 28 } ,
{ 974 * OVERSAMPLENR , 27 } ,
{ 976 * OVERSAMPLENR , 26 } ,
{ 978 * OVERSAMPLENR , 25 } ,
{ 980 * OVERSAMPLENR , 24 } ,
{ 982 * OVERSAMPLENR , 23 } ,
{ 984 * OVERSAMPLENR , 22 } ,
{ 985 * OVERSAMPLENR , 21 } ,
{ 987 * OVERSAMPLENR , 20 } ,
{ 995 * OVERSAMPLENR , 15 } ,
{ 1001 * OVERSAMPLENR , 10 } ,
{ 1006 * OVERSAMPLENR , 5 } ,
{ 1010 * OVERSAMPLENR , 0 }
} ;
# include "thermistortable_71.h"
# endif
# if ANY_THERMISTOR_IS(8)
// 100k 0603 SMD Vishay NTCS0603E3104FXT (4.7k pullup)
const short temptable_8 [ ] [ 2 ] PROGMEM = {
{ 1 * OVERSAMPLENR , 704 } ,
{ 54 * OVERSAMPLENR , 216 } ,
{ 107 * OVERSAMPLENR , 175 } ,
{ 160 * OVERSAMPLENR , 152 } ,
{ 213 * OVERSAMPLENR , 137 } ,
{ 266 * OVERSAMPLENR , 125 } ,
{ 319 * OVERSAMPLENR , 115 } ,
{ 372 * OVERSAMPLENR , 106 } ,
{ 425 * OVERSAMPLENR , 99 } ,
{ 478 * OVERSAMPLENR , 91 } ,
{ 531 * OVERSAMPLENR , 85 } ,
{ 584 * OVERSAMPLENR , 78 } ,
{ 637 * OVERSAMPLENR , 71 } ,
{ 690 * OVERSAMPLENR , 65 } ,
{ 743 * OVERSAMPLENR , 58 } ,
{ 796 * OVERSAMPLENR , 50 } ,
{ 849 * OVERSAMPLENR , 42 } ,
{ 902 * OVERSAMPLENR , 31 } ,
{ 955 * OVERSAMPLENR , 17 } ,
{ 1008 * OVERSAMPLENR , 0 }
} ;
# if ANY_THERMISTOR_IS(8) // 100k 0603 SMD Vishay NTCS0603E3104FXT (4.7k pullup)
# include "thermistortable_8.h"
# endif
# if ANY_THERMISTOR_IS(9)
// 100k GE Sensing AL03006-58.2K-97-G1 (4.7k pullup)
const short temptable_9 [ ] [ 2 ] PROGMEM = {
{ 1 * OVERSAMPLENR , 936 } ,
{ 36 * OVERSAMPLENR , 300 } ,
{ 71 * OVERSAMPLENR , 246 } ,
{ 106 * OVERSAMPLENR , 218 } ,
{ 141 * OVERSAMPLENR , 199 } ,
{ 176 * OVERSAMPLENR , 185 } ,
{ 211 * OVERSAMPLENR , 173 } ,
{ 246 * OVERSAMPLENR , 163 } ,
{ 281 * OVERSAMPLENR , 155 } ,
{ 316 * OVERSAMPLENR , 147 } ,
{ 351 * OVERSAMPLENR , 140 } ,
{ 386 * OVERSAMPLENR , 134 } ,
{ 421 * OVERSAMPLENR , 128 } ,
{ 456 * OVERSAMPLENR , 122 } ,
{ 491 * OVERSAMPLENR , 117 } ,
{ 526 * OVERSAMPLENR , 112 } ,
{ 561 * OVERSAMPLENR , 107 } ,
{ 596 * OVERSAMPLENR , 102 } ,
{ 631 * OVERSAMPLENR , 97 } ,
{ 666 * OVERSAMPLENR , 92 } ,
{ 701 * OVERSAMPLENR , 87 } ,
{ 736 * OVERSAMPLENR , 81 } ,
{ 771 * OVERSAMPLENR , 76 } ,
{ 806 * OVERSAMPLENR , 70 } ,
{ 841 * OVERSAMPLENR , 63 } ,
{ 876 * OVERSAMPLENR , 56 } ,
{ 911 * OVERSAMPLENR , 48 } ,
{ 946 * OVERSAMPLENR , 38 } ,
{ 981 * OVERSAMPLENR , 23 } ,
{ 1005 * OVERSAMPLENR , 5 } ,
{ 1016 * OVERSAMPLENR , 0 }
} ;
# if ANY_THERMISTOR_IS(9) // 100k GE Sensing AL03006-58.2K-97-G1 (4.7k pullup)
# include "thermistortable_9.h"
# endif
# if ANY_THERMISTOR_IS(10)
// 100k RS thermistor 198-961 (4.7k pullup)
const short temptable_10 [ ] [ 2 ] PROGMEM = {
{ 1 * OVERSAMPLENR , 929 } ,
{ 36 * OVERSAMPLENR , 299 } ,
{ 71 * OVERSAMPLENR , 246 } ,
{ 106 * OVERSAMPLENR , 217 } ,
{ 141 * OVERSAMPLENR , 198 } ,
{ 176 * OVERSAMPLENR , 184 } ,
{ 211 * OVERSAMPLENR , 173 } ,
{ 246 * OVERSAMPLENR , 163 } ,
{ 281 * OVERSAMPLENR , 154 } ,
{ 316 * OVERSAMPLENR , 147 } ,
{ 351 * OVERSAMPLENR , 140 } ,
{ 386 * OVERSAMPLENR , 134 } ,
{ 421 * OVERSAMPLENR , 128 } ,
{ 456 * OVERSAMPLENR , 122 } ,
{ 491 * OVERSAMPLENR , 117 } ,
{ 526 * OVERSAMPLENR , 112 } ,
{ 561 * OVERSAMPLENR , 107 } ,
{ 596 * OVERSAMPLENR , 102 } ,
{ 631 * OVERSAMPLENR , 97 } ,
{ 666 * OVERSAMPLENR , 91 } ,
{ 701 * OVERSAMPLENR , 86 } ,
{ 736 * OVERSAMPLENR , 81 } ,
{ 771 * OVERSAMPLENR , 76 } ,
{ 806 * OVERSAMPLENR , 70 } ,
{ 841 * OVERSAMPLENR , 63 } ,
{ 876 * OVERSAMPLENR , 56 } ,
{ 911 * OVERSAMPLENR , 48 } ,
{ 946 * OVERSAMPLENR , 38 } ,
{ 981 * OVERSAMPLENR , 23 } ,
{ 1005 * OVERSAMPLENR , 5 } ,
{ 1016 * OVERSAMPLENR , 0 }
} ;
# if ANY_THERMISTOR_IS(10) // 100k RS thermistor 198-961 (4.7k pullup)
# include "thermistortable_10.h"
# endif
# if ANY_THERMISTOR_IS(11)
// QU-BD silicone bed QWG-104F-3950 thermistor
const short temptable_11 [ ] [ 2 ] PROGMEM = {
{ 1 * OVERSAMPLENR , 938 } ,
{ 31 * OVERSAMPLENR , 314 } ,
{ 41 * OVERSAMPLENR , 290 } ,
{ 51 * OVERSAMPLENR , 272 } ,
{ 61 * OVERSAMPLENR , 258 } ,
{ 71 * OVERSAMPLENR , 247 } ,
{ 81 * OVERSAMPLENR , 237 } ,
{ 91 * OVERSAMPLENR , 229 } ,
{ 101 * OVERSAMPLENR , 221 } ,
{ 111 * OVERSAMPLENR , 215 } ,
{ 121 * OVERSAMPLENR , 209 } ,
{ 131 * OVERSAMPLENR , 204 } ,
{ 141 * OVERSAMPLENR , 199 } ,
{ 151 * OVERSAMPLENR , 195 } ,
{ 161 * OVERSAMPLENR , 190 } ,
{ 171 * OVERSAMPLENR , 187 } ,
{ 181 * OVERSAMPLENR , 183 } ,
{ 191 * OVERSAMPLENR , 179 } ,
{ 201 * OVERSAMPLENR , 176 } ,
{ 221 * OVERSAMPLENR , 170 } ,
{ 241 * OVERSAMPLENR , 165 } ,
{ 261 * OVERSAMPLENR , 160 } ,
{ 281 * OVERSAMPLENR , 155 } ,
{ 301 * OVERSAMPLENR , 150 } ,
{ 331 * OVERSAMPLENR , 144 } ,
{ 361 * OVERSAMPLENR , 139 } ,
{ 391 * OVERSAMPLENR , 133 } ,
{ 421 * OVERSAMPLENR , 128 } ,
{ 451 * OVERSAMPLENR , 123 } ,
{ 491 * OVERSAMPLENR , 117 } ,
{ 531 * OVERSAMPLENR , 111 } ,
{ 571 * OVERSAMPLENR , 105 } ,
{ 611 * OVERSAMPLENR , 100 } ,
{ 641 * OVERSAMPLENR , 95 } ,
{ 681 * OVERSAMPLENR , 90 } ,
{ 711 * OVERSAMPLENR , 85 } ,
{ 751 * OVERSAMPLENR , 79 } ,
{ 791 * OVERSAMPLENR , 72 } ,
{ 811 * OVERSAMPLENR , 69 } ,
{ 831 * OVERSAMPLENR , 65 } ,
{ 871 * OVERSAMPLENR , 57 } ,
{ 881 * OVERSAMPLENR , 55 } ,
{ 901 * OVERSAMPLENR , 51 } ,
{ 921 * OVERSAMPLENR , 45 } ,
{ 941 * OVERSAMPLENR , 39 } ,
{ 971 * OVERSAMPLENR , 28 } ,
{ 981 * OVERSAMPLENR , 23 } ,
{ 991 * OVERSAMPLENR , 17 } ,
{ 1001 * OVERSAMPLENR , 9 } ,
{ 1021 * OVERSAMPLENR , - 27 }
} ;
# if ANY_THERMISTOR_IS(11) // QU-BD silicone bed QWG-104F-3950 thermistor
# include "thermistortable_11.h"
# endif
# if ANY_THERMISTOR_IS(13)
// Hisens thermistor B25/50 =3950 +/-1%
const short temptable_13 [ ] [ 2 ] PROGMEM = {
{ 20.04 * OVERSAMPLENR , 300 } ,
{ 23.19 * OVERSAMPLENR , 290 } ,
{ 26.71 * OVERSAMPLENR , 280 } ,
{ 31.23 * OVERSAMPLENR , 270 } ,
{ 36.52 * OVERSAMPLENR , 260 } ,
{ 42.75 * OVERSAMPLENR , 250 } ,
{ 50.68 * OVERSAMPLENR , 240 } ,
{ 60.22 * OVERSAMPLENR , 230 } ,
{ 72.03 * OVERSAMPLENR , 220 } ,
{ 86.84 * OVERSAMPLENR , 210 } ,
{ 102.79 * OVERSAMPLENR , 200 } ,
{ 124.46 * OVERSAMPLENR , 190 } ,
{ 151.02 * OVERSAMPLENR , 180 } ,
{ 182.86 * OVERSAMPLENR , 170 } ,
{ 220.72 * OVERSAMPLENR , 160 } ,
{ 316.96 * OVERSAMPLENR , 140 } ,
{ 447.17 * OVERSAMPLENR , 120 } ,
{ 590.61 * OVERSAMPLENR , 100 } ,
{ 737.31 * OVERSAMPLENR , 80 } ,
{ 857.77 * OVERSAMPLENR , 60 } ,
{ 939.52 * OVERSAMPLENR , 40 } ,
{ 986.03 * OVERSAMPLENR , 20 } ,
{ 1008.7 * OVERSAMPLENR , 0 }
} ;
# if ANY_THERMISTOR_IS(13) // Hisens thermistor B25/50 =3950 +/-1%
# include "thermistortable_13.h"
# endif
# if ANY_THERMISTOR_IS(20) // PT100 with INA826 amp on Ultimaker v2.0 electronics
// The PT100 in the Ultimaker v2.0 electronics has a high sample value for a high temperature.
// This does not match the normal thermistor behaviour so we need to set the following defines
# if (THERMISTORHEATER_0 == 20)
# define HEATER_0_RAW_HI_TEMP 16383
# define HEATER_0_RAW_LO_TEMP 0
# endif
# if (THERMISTORHEATER_1 == 20)
# define HEATER_1_RAW_HI_TEMP 16383
# define HEATER_1_RAW_LO_TEMP 0
# include "thermistortable_20.h"
# endif
# if (THERMISTORHEATER_2 == 20)
# define HEATER_2_RAW_HI_TEMP 16383
# define HEATER_2_RAW_LO_TEMP 0
# if ANY_THERMISTOR_IS(51) // 100k EPCOS (WITH 1kohm RESISTOR FOR PULLUP, R9 ON SANGUINOLOLU! NOT FOR 4.7kohm PULLUP! THIS IS NOT NORMAL!)
# include "thermistortable_51.h"
# endif
# if (THERMISTORHEATER_3 == 20)
# define HEATER_3_RAW_HI_TEMP 16383
# define HEATER_3_RAW_LO_TEMP 0
# endif
# if (THERMISTORBED == 20)
# define HEATER_BED_RAW_HI_TEMP 16383
# define HEATER_BED_RAW_LO_TEMP 0
# if ANY_THERMISTOR_IS(52) // 200k ATC Semitec 204GT-2 (WITH 1kohm RESISTOR FOR PULLUP, R9 ON SANGUINOLOLU! NOT FOR 4.7kohm PULLUP! THIS IS NOT NORMAL!)
# include "thermistortable_52.h"
# endif
const short temptable_20 [ ] [ 2 ] PROGMEM = {
{ 0 * OVERSAMPLENR , 0 } ,
{ 227 * OVERSAMPLENR , 1 } ,
{ 236 * OVERSAMPLENR , 10 } ,
{ 245 * OVERSAMPLENR , 20 } ,
{ 253 * OVERSAMPLENR , 30 } ,
{ 262 * OVERSAMPLENR , 40 } ,
{ 270 * OVERSAMPLENR , 50 } ,
{ 279 * OVERSAMPLENR , 60 } ,
{ 287 * OVERSAMPLENR , 70 } ,
{ 295 * OVERSAMPLENR , 80 } ,
{ 304 * OVERSAMPLENR , 90 } ,
{ 312 * OVERSAMPLENR , 100 } ,
{ 320 * OVERSAMPLENR , 110 } ,
{ 329 * OVERSAMPLENR , 120 } ,
{ 337 * OVERSAMPLENR , 130 } ,
{ 345 * OVERSAMPLENR , 140 } ,
{ 353 * OVERSAMPLENR , 150 } ,
{ 361 * OVERSAMPLENR , 160 } ,
{ 369 * OVERSAMPLENR , 170 } ,
{ 377 * OVERSAMPLENR , 180 } ,
{ 385 * OVERSAMPLENR , 190 } ,
{ 393 * OVERSAMPLENR , 200 } ,
{ 401 * OVERSAMPLENR , 210 } ,
{ 409 * OVERSAMPLENR , 220 } ,
{ 417 * OVERSAMPLENR , 230 } ,
{ 424 * OVERSAMPLENR , 240 } ,
{ 432 * OVERSAMPLENR , 250 } ,
{ 440 * OVERSAMPLENR , 260 } ,
{ 447 * OVERSAMPLENR , 270 } ,
{ 455 * OVERSAMPLENR , 280 } ,
{ 463 * OVERSAMPLENR , 290 } ,
{ 470 * OVERSAMPLENR , 300 } ,
{ 478 * OVERSAMPLENR , 310 } ,
{ 485 * OVERSAMPLENR , 320 } ,
{ 493 * OVERSAMPLENR , 330 } ,
{ 500 * OVERSAMPLENR , 340 } ,
{ 507 * OVERSAMPLENR , 350 } ,
{ 515 * OVERSAMPLENR , 360 } ,
{ 522 * OVERSAMPLENR , 370 } ,
{ 529 * OVERSAMPLENR , 380 } ,
{ 537 * OVERSAMPLENR , 390 } ,
{ 544 * OVERSAMPLENR , 400 } ,
{ 614 * OVERSAMPLENR , 500 } ,
{ 681 * OVERSAMPLENR , 600 } ,
{ 744 * OVERSAMPLENR , 700 } ,
{ 805 * OVERSAMPLENR , 800 } ,
{ 862 * OVERSAMPLENR , 900 } ,
{ 917 * OVERSAMPLENR , 1000 } ,
{ 968 * OVERSAMPLENR , 1100 }
} ;
# if ANY_THERMISTOR_IS(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!)
# include "thermistortable_53.h"
# endif
# if ANY_THERMISTOR_IS(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 ANY_THERMISTOR_IS(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 ANY_THERMISTOR_IS(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_55 [ ] [ 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
# if ANY_THERMISTOR_IS(60) // Maker's Tool Works Kapton Bed Thermistor
// ./createTemperatureLookup.py --r0=100000 --t0=25 --r1=0 --r2=4700 --beta=3950
// r0: 100000
// t0: 25
// r1: 0 (parallel with rTherm)
// r2: 4700 (series with rTherm)
// beta: 3950
// min adc: 1 at 0.0048828125 V
// max adc: 1023 at 4.9951171875 V
const short temptable_60 [ ] [ 2 ] PROGMEM = {
{ 51 * OVERSAMPLENR , 272 } ,
{ 61 * OVERSAMPLENR , 258 } ,
{ 71 * OVERSAMPLENR , 247 } ,
{ 81 * OVERSAMPLENR , 237 } ,
{ 91 * OVERSAMPLENR , 229 } ,
{ 101 * OVERSAMPLENR , 221 } ,
{ 131 * OVERSAMPLENR , 204 } ,
{ 161 * OVERSAMPLENR , 190 } ,
{ 191 * OVERSAMPLENR , 179 } ,
{ 231 * OVERSAMPLENR , 167 } ,
{ 271 * OVERSAMPLENR , 157 } ,
{ 311 * OVERSAMPLENR , 148 } ,
{ 351 * OVERSAMPLENR , 140 } ,
{ 381 * OVERSAMPLENR , 135 } ,
{ 411 * OVERSAMPLENR , 130 } ,
{ 441 * OVERSAMPLENR , 125 } ,
{ 451 * OVERSAMPLENR , 123 } ,
{ 461 * OVERSAMPLENR , 122 } ,
{ 471 * OVERSAMPLENR , 120 } ,
{ 481 * OVERSAMPLENR , 119 } ,
{ 491 * OVERSAMPLENR , 117 } ,
{ 501 * OVERSAMPLENR , 116 } ,
{ 511 * OVERSAMPLENR , 114 } ,
{ 521 * OVERSAMPLENR , 113 } ,
{ 531 * OVERSAMPLENR , 111 } ,
{ 541 * OVERSAMPLENR , 110 } ,
{ 551 * OVERSAMPLENR , 108 } ,
{ 561 * OVERSAMPLENR , 107 } ,
{ 571 * OVERSAMPLENR , 105 } ,
{ 581 * OVERSAMPLENR , 104 } ,
{ 591 * OVERSAMPLENR , 102 } ,
{ 601 * OVERSAMPLENR , 101 } ,
{ 611 * OVERSAMPLENR , 100 } ,
{ 621 * OVERSAMPLENR , 98 } ,
{ 631 * OVERSAMPLENR , 97 } ,
{ 641 * OVERSAMPLENR , 95 } ,
{ 651 * OVERSAMPLENR , 94 } ,
{ 661 * OVERSAMPLENR , 92 } ,
{ 671 * OVERSAMPLENR , 91 } ,
{ 681 * OVERSAMPLENR , 90 } ,
{ 691 * OVERSAMPLENR , 88 } ,
{ 701 * OVERSAMPLENR , 87 } ,
{ 711 * OVERSAMPLENR , 85 } ,
{ 721 * OVERSAMPLENR , 84 } ,
{ 731 * OVERSAMPLENR , 82 } ,
{ 741 * OVERSAMPLENR , 81 } ,
{ 751 * OVERSAMPLENR , 79 } ,
{ 761 * OVERSAMPLENR , 77 } ,
{ 771 * OVERSAMPLENR , 76 } ,
{ 781 * OVERSAMPLENR , 74 } ,
{ 791 * OVERSAMPLENR , 72 } ,
{ 801 * OVERSAMPLENR , 71 } ,
{ 811 * OVERSAMPLENR , 69 } ,
{ 821 * OVERSAMPLENR , 67 } ,
{ 831 * OVERSAMPLENR , 65 } ,
{ 841 * OVERSAMPLENR , 63 } ,
{ 851 * OVERSAMPLENR , 62 } ,
{ 861 * OVERSAMPLENR , 60 } ,
{ 871 * OVERSAMPLENR , 57 } ,
{ 881 * OVERSAMPLENR , 55 } ,
{ 891 * OVERSAMPLENR , 53 } ,
{ 901 * OVERSAMPLENR , 51 } ,
{ 911 * OVERSAMPLENR , 48 } ,
{ 921 * OVERSAMPLENR , 45 } ,
{ 931 * OVERSAMPLENR , 42 } ,
{ 941 * OVERSAMPLENR , 39 } ,
{ 951 * OVERSAMPLENR , 36 } ,
{ 961 * OVERSAMPLENR , 32 } ,
{ 981 * OVERSAMPLENR , 23 } ,
{ 991 * OVERSAMPLENR , 17 } ,
{ 1001 * OVERSAMPLENR , 9 } ,
{ 1008 * OVERSAMPLENR , 0 }
} ;
# include "thermistortable_60.h"
# endif
# if ANY_THERMISTOR_IS(66)
// DyzeDesign 500°C Thermistor
const short temptable_66 [ ] [ 2 ] PROGMEM = {
{ 17.5 * OVERSAMPLENR , 850 } ,
{ 17.9 * OVERSAMPLENR , 500 } ,
{ 21.7 * OVERSAMPLENR , 480 } ,
{ 26.6 * OVERSAMPLENR , 460 } ,
{ 33.1 * OVERSAMPLENR , 440 } ,
{ 41.0 * OVERSAMPLENR , 420 } ,
{ 52.3 * OVERSAMPLENR , 400 } ,
{ 67.7 * OVERSAMPLENR , 380 } ,
{ 86.5 * OVERSAMPLENR , 360 } ,
{ 112.0 * OVERSAMPLENR , 340 } ,
{ 147.2 * OVERSAMPLENR , 320 } ,
{ 194.0 * OVERSAMPLENR , 300 } ,
{ 254.3 * OVERSAMPLENR , 280 } ,
{ 330.2 * OVERSAMPLENR , 260 } ,
{ 427.9 * OVERSAMPLENR , 240 } ,
{ 533.4 * OVERSAMPLENR , 220 } ,
{ 646.5 * OVERSAMPLENR , 200 } ,
{ 754.4 * OVERSAMPLENR , 180 } ,
{ 844.3 * OVERSAMPLENR , 160 } ,
{ 911.7 * OVERSAMPLENR , 140 } ,
{ 958.6 * OVERSAMPLENR , 120 } ,
{ 988.8 * OVERSAMPLENR , 100 } ,
{ 1006.6 * OVERSAMPLENR , 80 } ,
{ 1015.8 * OVERSAMPLENR , 60 } ,
{ 1021.3 * OVERSAMPLENR , 30 } ,
{ 1023 * OVERSAMPLENR - 1 , 25 } ,
{ 1023 * OVERSAMPLENR , 20 }
} ;
# if ANY_THERMISTOR_IS(66) // DyzeDesign 500°C Thermistor
# include "thermistortable_66.h"
# endif
# if ANY_THERMISTOR_IS(12)
// 100k 0603 SMD Vishay NTCS0603E3104FXT (4.7k pullup) (calibrated for Makibox hot bed)
const short temptable_12 [ ] [ 2 ] PROGMEM = {
{ 35 * OVERSAMPLENR , 180 } , // top rating 180C
{ 211 * OVERSAMPLENR , 140 } ,
{ 233 * OVERSAMPLENR , 135 } ,
{ 261 * OVERSAMPLENR , 130 } ,
{ 290 * OVERSAMPLENR , 125 } ,
{ 328 * OVERSAMPLENR , 120 } ,
{ 362 * OVERSAMPLENR , 115 } ,
{ 406 * OVERSAMPLENR , 110 } ,
{ 446 * OVERSAMPLENR , 105 } ,
{ 496 * OVERSAMPLENR , 100 } ,
{ 539 * OVERSAMPLENR , 95 } ,
{ 585 * OVERSAMPLENR , 90 } ,
{ 629 * OVERSAMPLENR , 85 } ,
{ 675 * OVERSAMPLENR , 80 } ,
{ 718 * OVERSAMPLENR , 75 } ,
{ 758 * OVERSAMPLENR , 70 } ,
{ 793 * OVERSAMPLENR , 65 } ,
{ 822 * OVERSAMPLENR , 60 } ,
{ 841 * OVERSAMPLENR , 55 } ,
{ 875 * OVERSAMPLENR , 50 } ,
{ 899 * OVERSAMPLENR , 45 } ,
{ 926 * OVERSAMPLENR , 40 } ,
{ 946 * OVERSAMPLENR , 35 } ,
{ 962 * OVERSAMPLENR , 30 } ,
{ 977 * OVERSAMPLENR , 25 } ,
{ 987 * OVERSAMPLENR , 20 } ,
{ 995 * OVERSAMPLENR , 15 } ,
{ 1001 * OVERSAMPLENR , 10 } ,
{ 1010 * OVERSAMPLENR , 0 } ,
{ 1023 * OVERSAMPLENR , - 40 }
} ;
# if ANY_THERMISTOR_IS(12) // 100k 0603 SMD Vishay NTCS0603E3104FXT (4.7k pullup) (calibrated for Makibox hot bed)
# include "thermistortable_12.h"
# endif
# if ANY_THERMISTOR_IS(70) // bqh2 stock thermistor
const short temptable_70 [ ] [ 2 ] PROGMEM = {
{ 22 * OVERSAMPLENR , 300 } ,
{ 24 * OVERSAMPLENR , 295 } ,
{ 25 * OVERSAMPLENR , 290 } ,
{ 27 * OVERSAMPLENR , 285 } ,
{ 29 * OVERSAMPLENR , 280 } ,
{ 32 * OVERSAMPLENR , 275 } ,
{ 34 * OVERSAMPLENR , 270 } ,
{ 37 * OVERSAMPLENR , 265 } ,
{ 40 * OVERSAMPLENR , 260 } ,
{ 43 * OVERSAMPLENR , 255 } ,
{ 46 * OVERSAMPLENR , 250 } ,
{ 50 * OVERSAMPLENR , 245 } ,
{ 54 * OVERSAMPLENR , 240 } ,
{ 59 * OVERSAMPLENR , 235 } ,
{ 64 * OVERSAMPLENR , 230 } ,
{ 70 * OVERSAMPLENR , 225 } ,
{ 76 * OVERSAMPLENR , 220 } ,
{ 83 * OVERSAMPLENR , 215 } ,
{ 90 * OVERSAMPLENR , 210 } ,
{ 99 * OVERSAMPLENR , 205 } ,
{ 108 * OVERSAMPLENR , 200 } ,
{ 118 * OVERSAMPLENR , 195 } ,
{ 129 * OVERSAMPLENR , 190 } ,
{ 141 * OVERSAMPLENR , 185 } ,
{ 154 * OVERSAMPLENR , 180 } ,
{ 169 * OVERSAMPLENR , 175 } ,
{ 185 * OVERSAMPLENR , 170 } ,
{ 203 * OVERSAMPLENR , 165 } ,
{ 222 * OVERSAMPLENR , 160 } ,
{ 243 * OVERSAMPLENR , 155 } ,
{ 266 * OVERSAMPLENR , 150 } ,
{ 290 * OVERSAMPLENR , 145 } ,
{ 317 * OVERSAMPLENR , 140 } ,
{ 346 * OVERSAMPLENR , 135 } ,
{ 376 * OVERSAMPLENR , 130 } ,
{ 408 * OVERSAMPLENR , 125 } ,
{ 442 * OVERSAMPLENR , 120 } ,
{ 477 * OVERSAMPLENR , 115 } ,
{ 513 * OVERSAMPLENR , 110 } ,
{ 551 * OVERSAMPLENR , 105 } ,
{ 588 * OVERSAMPLENR , 100 } ,
{ 626 * OVERSAMPLENR , 95 } ,
{ 663 * OVERSAMPLENR , 90 } ,
{ 699 * OVERSAMPLENR , 85 } ,
{ 735 * OVERSAMPLENR , 80 } ,
{ 768 * OVERSAMPLENR , 75 } ,
{ 800 * OVERSAMPLENR , 70 } ,
{ 829 * OVERSAMPLENR , 65 } ,
{ 856 * OVERSAMPLENR , 60 } ,
{ 881 * OVERSAMPLENR , 55 } ,
{ 903 * OVERSAMPLENR , 50 } ,
{ 922 * OVERSAMPLENR , 45 } ,
{ 939 * OVERSAMPLENR , 40 } ,
{ 954 * OVERSAMPLENR , 35 } ,
{ 966 * OVERSAMPLENR , 30 } ,
{ 977 * OVERSAMPLENR , 25 } ,
{ 986 * OVERSAMPLENR , 20 } ,
{ 994 * OVERSAMPLENR , 15 } ,
{ 1000 * OVERSAMPLENR , 10 } ,
{ 1005 * OVERSAMPLENR , 5 } ,
{ 1009 * OVERSAMPLENR , 0 } // safety
} ;
# include "thermistortable_70.h"
# endif
// Pt1000 and Pt100 handling
//
// Rt=R0*(1+a*T+b*T*T) [for T>0]
// a=3.9083E-3, b=-5.775E-7
# define PtA 3.9083E-3
# define PtB -5.775E-7
# define PtRt(T,R0) ((R0)*(1.0+(PtA)*(T)+(PtB)*(T)*(T)))
# define PtAdVal(T,R0,Rup) (short)(1024 / (Rup / PtRt(T,R0)+1))
# define PtLine(T,R0,Rup) { PtAdVal(T,R0,Rup)*OVERSAMPLENR, T },
# if ANY_THERMISTOR_IS(110) // Pt100 with 1k0 pullup
const short temptable_110 [ ] [ 2 ] PROGMEM = {
// only few values are needed as the curve is very flat
PtLine ( 0 , 100 , 1000 )
PtLine ( 50 , 100 , 1000 )
PtLine ( 100 , 100 , 1000 )
PtLine ( 150 , 100 , 1000 )
PtLine ( 200 , 100 , 1000 )
PtLine ( 250 , 100 , 1000 )
PtLine ( 300 , 100 , 1000 )
} ;
# include "thermistortable_110.h"
# endif
# if ANY_THERMISTOR_IS(147) // Pt100 with 4k7 pullup
const short temptable_147 [ ] [ 2 ] PROGMEM = {
// only few values are needed as the curve is very flat
PtLine ( 0 , 100 , 4700 )
PtLine ( 50 , 100 , 4700 )
PtLine ( 100 , 100 , 4700 )
PtLine ( 150 , 100 , 4700 )
PtLine ( 200 , 100 , 4700 )
PtLine ( 250 , 100 , 4700 )
PtLine ( 300 , 100 , 4700 )
} ;
# include "thermistortable_147.h"
# endif
# if ANY_THERMISTOR_IS(1010) // Pt1000 with 1k0 pullup
const short temptable_1010 [ ] [ 2 ] PROGMEM = {
PtLine ( 0 , 1000 , 1000 )
PtLine ( 25 , 1000 , 1000 )
PtLine ( 50 , 1000 , 1000 )
PtLine ( 75 , 1000 , 1000 )
PtLine ( 100 , 1000 , 1000 )
PtLine ( 125 , 1000 , 1000 )
PtLine ( 150 , 1000 , 1000 )
PtLine ( 175 , 1000 , 1000 )
PtLine ( 200 , 1000 , 1000 )
PtLine ( 225 , 1000 , 1000 )
PtLine ( 250 , 1000 , 1000 )
PtLine ( 275 , 1000 , 1000 )
PtLine ( 300 , 1000 , 1000 )
} ;
# include "thermistortable_1010.h"
# endif
# if ANY_THERMISTOR_IS(1047) // Pt1000 with 4k7 pullup
const short temptable_1047 [ ] [ 2 ] PROGMEM = {
// only few values are needed as the curve is very flat
PtLine ( 0 , 1000 , 4700 )
PtLine ( 50 , 1000 , 4700 )
PtLine ( 100 , 1000 , 4700 )
PtLine ( 150 , 1000 , 4700 )
PtLine ( 200 , 1000 , 4700 )
PtLine ( 250 , 1000 , 4700 )
PtLine ( 300 , 1000 , 4700 )
} ;
# include "thermistortable_1047.h"
# endif
# if ANY_THERMISTOR_IS(999) // User-defined table
// Dummy Thermistor table.. It will ALWAYS read a fixed value.
# ifndef DUMMY_THERMISTOR_999_VALUE
# define DUMMY_THERMISTOR_999_VALUE 25
# endif
const short temptable_999 [ ] [ 2 ] PROGMEM = {
{ 1 * OVERSAMPLENR , DUMMY_THERMISTOR_999_VALUE } ,
{ 1023 * OVERSAMPLENR , DUMMY_THERMISTOR_999_VALUE }
} ;
# if ANY_THERMISTOR_IS(998) // User-defined table 1
# include "thermistortable_998.h"
# endif
# if ANY_THERMISTOR_IS(998) // User-defined table
// Dummy Thermistor table.. It will ALWAYS read a fixed value.
# ifndef DUMMY_THERMISTOR_998_VALUE
# define DUMMY_THERMISTOR_998_VALUE 25
# endif
const short temptable_998 [ ] [ 2 ] PROGMEM = {
{ 1 * OVERSAMPLENR , DUMMY_THERMISTOR_998_VALUE } ,
{ 1023 * OVERSAMPLENR , DUMMY_THERMISTOR_998_VALUE }
} ;
# if ANY_THERMISTOR_IS(999) // User-defined table 2
# include "thermistortable_999.h"
# endif
# define _TT_NAME(_N) temptable_ ## _N
# define TT_NAME(_N) _TT_NAME(_N)
# ifdef THERMISTORHEATER_0
# define HEATER_0_TEMPTABLE TT_NAME(THERMISTORHEATER_0)
# define HEATER_0_TEMPTABLE_LEN COUNT(HEATER_0_TEMPTABLE)
# else
# ifdef HEATER_0_USES_THERMISTOR
# elif defined(HEATER_0_USES_THERMISTOR)
# error "No heater 0 thermistor table specified"
# else // HEATER_0_USES_THERMISTOR
# else
# define HEATER_0_TEMPTABLE NULL
# define HEATER_0_TEMPTABLE_LEN 0
# endif // HEATER_0_USES_THERMISTOR
# endif
// Set the high and low raw values for the heater, this indicates which raw value is a high or low temperature
# ifndef HEATER_0_RAW_HI_TEMP
# ifdef HEATER_0_USES_THERMISTOR // In case of a thermistor the highest temperature results in the lowest ADC value
# define HEATER_0_RAW_HI_TEMP 0
# define HEATER_0_RAW_LO_TEMP 16383
# else // In case of an thermocouple the highest temperature results in the highest ADC value
# define HEATER_0_RAW_HI_TEMP 16383
# define HEATER_0_RAW_LO_TEMP 0
# endif
# endif
# ifdef THERMISTORHEATER_1
# define HEATER_1_TEMPTABLE TT_NAME(THERMISTORHEATER_1)
# define HEATER_1_TEMPTABLE_LEN COUNT(HEATER_1_TEMPTABLE)
# else
# ifdef HEATER_1_USES_THERMISTOR
# elif defined(HEATER_1_USES_THERMISTOR)
# error "No heater 1 thermistor table specified"
# else // HEATER_1_USES_THERMISTOR
# else
# define HEATER_1_TEMPTABLE NULL
# define HEATER_1_TEMPTABLE_LEN 0
# endif // HEATER_1_USES_THERMISTOR
# endif
// Set the high and low raw values for the heater, this indicates which raw value is a high or low temperature
# ifndef HEATER_1_RAW_HI_TEMP
# ifdef HEATER_1_USES_THERMISTOR // In case of a thermistor the highest temperature results in the lowest ADC value
# define HEATER_1_RAW_HI_TEMP 0
# define HEATER_1_RAW_LO_TEMP 16383
# else // In case of an thermocouple the highest temperature results in the highest ADC value
# define HEATER_1_RAW_HI_TEMP 16383
# define HEATER_1_RAW_LO_TEMP 0
# endif
# endif
# ifdef THERMISTORHEATER_2
# define HEATER_2_TEMPTABLE TT_NAME(THERMISTORHEATER_2)
# define HEATER_2_TEMPTABLE_LEN COUNT(HEATER_2_TEMPTABLE)
# else
# ifdef HEATER_2_USES_THERMISTOR
# elif defined(HEATER_2_USES_THERMISTOR)
# error "No heater 2 thermistor table specified"
# else // HEATER_2_USES_THERMISTOR
# else
# define HEATER_2_TEMPTABLE NULL
# define HEATER_2_TEMPTABLE_LEN 0
# endif // HEATER_2_USES_THERMISTOR
# endif
// Set the high and low raw values for the heater, this indicates which raw value is a high or low temperature
# ifndef HEATER_2_RAW_HI_TEMP
# ifdef HEATER_2_USES_THERMISTOR // In case of a thermistor the highest temperature results in the lowest ADC value
# define HEATER_2_RAW_HI_TEMP 0
# define HEATER_2_RAW_LO_TEMP 16383
# else // In case of an thermocouple the highest temperature results in the highest ADC value
# define HEATER_2_RAW_HI_TEMP 16383
# define HEATER_2_RAW_LO_TEMP 0
# endif
# endif
# ifdef THERMISTORHEATER_3
# define HEATER_3_TEMPTABLE TT_NAME(THERMISTORHEATER_3)
# define HEATER_3_TEMPTABLE_LEN COUNT(HEATER_3_TEMPTABLE)
# else
# ifdef HEATER_3_USES_THERMISTOR
# elif defined(HEATER_3_USES_THERMISTOR)
# error "No heater 3 thermistor table specified"
# else // HEATER_3_USES_THERMISTOR
# else
# define HEATER_3_TEMPTABLE NULL
# define HEATER_3_TEMPTABLE_LEN 0
# endif // HEATER_3_USES_THERMISTOR
# endif
// Set the high and low raw values for the heater, this indicates which raw value is a high or low temperature
# ifndef HEATER_3_RAW_HI_TEMP
# ifdef HEATER_3_USES_THERMISTOR // In case of a thermistor the highest temperature results in the lowest ADC value
# define HEATER_3_RAW_HI_TEMP 0
# define HEATER_3_RAW_LO_TEMP 16383
# else // In case of an thermocouple the highest temperature results in the highest ADC value
# define HEATER_3_RAW_HI_TEMP 16383
# define HEATER_3_RAW_LO_TEMP 0
# endif
# endif
# ifdef THERMISTORBED
@ -1309,15 +171,53 @@ const short temptable_1047[][2] PROGMEM = {
# else
# ifdef BED_USES_THERMISTOR
# error "No bed thermistor table specified"
# endif // BED_USES_THERMISTOR
# endif
# endif
// Set the high and low raw values for the heater, this indicates which raw value is a high or low temperature
// Set the high and low raw values for the heaters
// For thermistors the highest temperature results in the lowest ADC value
// For thermocouples the highest temperature results in the highest ADC value
# ifndef HEATER_0_RAW_HI_TEMP
# ifdef HEATER_0_USES_THERMISTOR
# define HEATER_0_RAW_HI_TEMP 0
# define HEATER_0_RAW_LO_TEMP 16383
# else
# define HEATER_0_RAW_HI_TEMP 16383
# define HEATER_0_RAW_LO_TEMP 0
# endif
# endif
# ifndef HEATER_1_RAW_HI_TEMP
# ifdef HEATER_1_USES_THERMISTOR
# define HEATER_1_RAW_HI_TEMP 0
# define HEATER_1_RAW_LO_TEMP 16383
# else
# define HEATER_1_RAW_HI_TEMP 16383
# define HEATER_1_RAW_LO_TEMP 0
# endif
# endif
# ifndef HEATER_2_RAW_HI_TEMP
# ifdef HEATER_2_USES_THERMISTOR
# define HEATER_2_RAW_HI_TEMP 0
# define HEATER_2_RAW_LO_TEMP 16383
# else
# define HEATER_2_RAW_HI_TEMP 16383
# define HEATER_2_RAW_LO_TEMP 0
# endif
# endif
# ifndef HEATER_3_RAW_HI_TEMP
# ifdef HEATER_3_USES_THERMISTOR
# define HEATER_3_RAW_HI_TEMP 0
# define HEATER_3_RAW_LO_TEMP 16383
# else
# define HEATER_3_RAW_HI_TEMP 16383
# define HEATER_3_RAW_LO_TEMP 0
# endif
# endif
# ifndef HEATER_BED_RAW_HI_TEMP
# ifdef BED_USES_THERMISTOR // In case of a thermistor the highest temperature results in the lowest ADC value
# ifdef BED_USES_THERMISTOR
# define HEATER_BED_RAW_HI_TEMP 0
# define HEATER_BED_RAW_LO_TEMP 16383
# else // In case of an thermocouple the highest temperature results in the highest ADC value
# else
# define HEATER_BED_RAW_HI_TEMP 16383
# define HEATER_BED_RAW_LO_TEMP 0
# endif