1 #ifndef THERMISTORTABLES_H_
2 #define THERMISTORTABLES_H_
6 #define OVERSAMPLENR 16
8 #if (THERMISTORHEATER_0 == 1) || (THERMISTORHEATER_1 == 1) || (THERMISTORHEATER_2 == 1) || (THERMISTORBED == 1) //100k bed thermistor
10 const short temptable_1[][2] PROGMEM = {
11 { 23*OVERSAMPLENR , 300 },
12 { 25*OVERSAMPLENR , 295 },
13 { 27*OVERSAMPLENR , 290 },
14 { 28*OVERSAMPLENR , 285 },
15 { 31*OVERSAMPLENR , 280 },
16 { 33*OVERSAMPLENR , 275 },
17 { 35*OVERSAMPLENR , 270 },
18 { 38*OVERSAMPLENR , 265 },
19 { 41*OVERSAMPLENR , 260 },
20 { 44*OVERSAMPLENR , 255 },
21 { 48*OVERSAMPLENR , 250 },
22 { 52*OVERSAMPLENR , 245 },
23 { 56*OVERSAMPLENR , 240 },
24 { 61*OVERSAMPLENR , 235 },
25 { 66*OVERSAMPLENR , 230 },
26 { 71*OVERSAMPLENR , 225 },
27 { 78*OVERSAMPLENR , 220 },
28 { 84*OVERSAMPLENR , 215 },
29 { 92*OVERSAMPLENR , 210 },
30 { 100*OVERSAMPLENR , 205 },
31 { 109*OVERSAMPLENR , 200 },
32 { 120*OVERSAMPLENR , 195 },
33 { 131*OVERSAMPLENR , 190 },
34 { 143*OVERSAMPLENR , 185 },
35 { 156*OVERSAMPLENR , 180 },
36 { 171*OVERSAMPLENR , 175 },
37 { 187*OVERSAMPLENR , 170 },
38 { 205*OVERSAMPLENR , 165 },
39 { 224*OVERSAMPLENR , 160 },
40 { 245*OVERSAMPLENR , 155 },
41 { 268*OVERSAMPLENR , 150 },
42 { 293*OVERSAMPLENR , 145 },
43 { 320*OVERSAMPLENR , 140 },
44 { 348*OVERSAMPLENR , 135 },
45 { 379*OVERSAMPLENR , 130 },
46 { 411*OVERSAMPLENR , 125 },
47 { 445*OVERSAMPLENR , 120 },
48 { 480*OVERSAMPLENR , 115 },
49 { 516*OVERSAMPLENR , 110 },
50 { 553*OVERSAMPLENR , 105 },
51 { 591*OVERSAMPLENR , 100 },
52 { 628*OVERSAMPLENR , 95 },
53 { 665*OVERSAMPLENR , 90 },
54 { 702*OVERSAMPLENR , 85 },
55 { 737*OVERSAMPLENR , 80 },
56 { 770*OVERSAMPLENR , 75 },
57 { 801*OVERSAMPLENR , 70 },
58 { 830*OVERSAMPLENR , 65 },
59 { 857*OVERSAMPLENR , 60 },
60 { 881*OVERSAMPLENR , 55 },
61 { 903*OVERSAMPLENR , 50 },
62 { 922*OVERSAMPLENR , 45 },
63 { 939*OVERSAMPLENR , 40 },
64 { 954*OVERSAMPLENR , 35 },
65 { 966*OVERSAMPLENR , 30 },
66 { 977*OVERSAMPLENR , 25 },
67 { 985*OVERSAMPLENR , 20 },
68 { 993*OVERSAMPLENR , 15 },
69 { 999*OVERSAMPLENR , 10 },
70 { 1004*OVERSAMPLENR , 5 },
71 { 1008*OVERSAMPLENR , 0 } //safety
74 #if (THERMISTORHEATER_0 == 2) || (THERMISTORHEATER_1 == 2) || (THERMISTORHEATER_2 == 2) || (THERMISTORBED == 2) //200k bed thermistor
75 const short temptable_2[][2] PROGMEM = {
76 {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
100 #if (THERMISTORHEATER_0 == 3) || (THERMISTORHEATER_1 == 3) || (THERMISTORHEATER_2 == 3) || (THERMISTORBED == 3) //mendel-parts
101 const short temptable_3[][2] PROGMEM = {
102 {1*OVERSAMPLENR,864},
103 {21*OVERSAMPLENR,300},
104 {25*OVERSAMPLENR,290},
105 {29*OVERSAMPLENR,280},
106 {33*OVERSAMPLENR,270},
107 {39*OVERSAMPLENR,260},
108 {46*OVERSAMPLENR,250},
109 {54*OVERSAMPLENR,240},
110 {64*OVERSAMPLENR,230},
111 {75*OVERSAMPLENR,220},
112 {90*OVERSAMPLENR,210},
113 {107*OVERSAMPLENR,200},
114 {128*OVERSAMPLENR,190},
115 {154*OVERSAMPLENR,180},
116 {184*OVERSAMPLENR,170},
117 {221*OVERSAMPLENR,160},
118 {265*OVERSAMPLENR,150},
119 {316*OVERSAMPLENR,140},
120 {375*OVERSAMPLENR,130},
121 {441*OVERSAMPLENR,120},
122 {513*OVERSAMPLENR,110},
123 {588*OVERSAMPLENR,100},
124 {734*OVERSAMPLENR,80},
125 {856*OVERSAMPLENR,60},
126 {938*OVERSAMPLENR,40},
127 {986*OVERSAMPLENR,20},
128 {1008*OVERSAMPLENR,0},
129 {1018*OVERSAMPLENR,-20}
133 #if (THERMISTORHEATER_0 == 4) || (THERMISTORHEATER_1 == 4) || (THERMISTORHEATER_2 == 4) || (THERMISTORBED == 4) //10k thermistor
134 const short temptable_4[][2] PROGMEM = {
135 {1*OVERSAMPLENR, 430},
136 {54*OVERSAMPLENR, 137},
137 {107*OVERSAMPLENR, 107},
138 {160*OVERSAMPLENR, 91},
139 {213*OVERSAMPLENR, 80},
140 {266*OVERSAMPLENR, 71},
141 {319*OVERSAMPLENR, 64},
142 {372*OVERSAMPLENR, 57},
143 {425*OVERSAMPLENR, 51},
144 {478*OVERSAMPLENR, 46},
145 {531*OVERSAMPLENR, 41},
146 {584*OVERSAMPLENR, 35},
147 {637*OVERSAMPLENR, 30},
148 {690*OVERSAMPLENR, 25},
149 {743*OVERSAMPLENR, 20},
150 {796*OVERSAMPLENR, 14},
151 {849*OVERSAMPLENR, 7},
152 {902*OVERSAMPLENR, 0},
153 {955*OVERSAMPLENR, -11},
154 {1008*OVERSAMPLENR, -35}
158 #if (THERMISTORHEATER_0 == 5) || (THERMISTORHEATER_1 == 5) || (THERMISTORHEATER_2 == 5) || (THERMISTORBED == 5) //100k ParCan thermistor (104GT-2)
159 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}
224 #if (THERMISTORHEATER_0 == 6) || (THERMISTORHEATER_1 == 6) || (THERMISTORHEATER_2 == 6) || (THERMISTORBED == 6) // 100k Epcos thermistor
225 const short temptable_6[][2] PROGMEM = {
226 {28*OVERSAMPLENR, 250},
227 {31*OVERSAMPLENR, 245},
228 {35*OVERSAMPLENR, 240},
229 {39*OVERSAMPLENR, 235},
230 {42*OVERSAMPLENR, 230},
231 {44*OVERSAMPLENR, 225},
232 {49*OVERSAMPLENR, 220},
233 {53*OVERSAMPLENR, 215},
234 {62*OVERSAMPLENR, 210},
235 {73*OVERSAMPLENR, 205},
236 {72*OVERSAMPLENR, 200},
237 {94*OVERSAMPLENR, 190},
238 {102*OVERSAMPLENR, 185},
239 {116*OVERSAMPLENR, 170},
240 {143*OVERSAMPLENR, 160},
241 {183*OVERSAMPLENR, 150},
242 {223*OVERSAMPLENR, 140},
243 {270*OVERSAMPLENR, 130},
244 {318*OVERSAMPLENR, 120},
245 {383*OVERSAMPLENR, 110},
246 {413*OVERSAMPLENR, 105},
247 {439*OVERSAMPLENR, 100},
248 {484*OVERSAMPLENR, 95},
249 {513*OVERSAMPLENR, 90},
250 {607*OVERSAMPLENR, 80},
251 {664*OVERSAMPLENR, 70},
252 {781*OVERSAMPLENR, 60},
253 {810*OVERSAMPLENR, 55},
254 {849*OVERSAMPLENR, 50},
255 {914*OVERSAMPLENR, 45},
256 {914*OVERSAMPLENR, 40},
257 {935*OVERSAMPLENR, 35},
258 {954*OVERSAMPLENR, 30},
259 {970*OVERSAMPLENR, 25},
260 {978*OVERSAMPLENR, 22},
261 {1008*OVERSAMPLENR, 3}
265 #if (THERMISTORHEATER_0 == 7) || (THERMISTORHEATER_1 == 7) || (THERMISTORHEATER_2 == 7) || (THERMISTORBED == 7) // 100k Honeywell 135-104LAG-J01
266 const short temptable_7[][2] PROGMEM = {
267 {46*OVERSAMPLENR, 270},
268 {50*OVERSAMPLENR, 265},
269 {54*OVERSAMPLENR, 260},
270 {58*OVERSAMPLENR, 255},
271 {62*OVERSAMPLENR, 250},
272 {67*OVERSAMPLENR, 245},
273 {72*OVERSAMPLENR, 240},
274 {79*OVERSAMPLENR, 235},
275 {85*OVERSAMPLENR, 230},
276 {91*OVERSAMPLENR, 225},
277 {99*OVERSAMPLENR, 220},
278 {107*OVERSAMPLENR, 215},
279 {116*OVERSAMPLENR, 210},
280 {126*OVERSAMPLENR, 205},
281 {136*OVERSAMPLENR, 200},
282 {149*OVERSAMPLENR, 195},
283 {160*OVERSAMPLENR, 190},
284 {175*OVERSAMPLENR, 185},
285 {191*OVERSAMPLENR, 180},
286 {209*OVERSAMPLENR, 175},
287 {224*OVERSAMPLENR, 170},
288 {246*OVERSAMPLENR, 165},
289 {267*OVERSAMPLENR, 160},
290 {293*OVERSAMPLENR, 155},
291 {316*OVERSAMPLENR, 150},
292 {340*OVERSAMPLENR, 145},
293 {364*OVERSAMPLENR, 140},
294 {396*OVERSAMPLENR, 135},
295 {425*OVERSAMPLENR, 130},
296 {460*OVERSAMPLENR, 125},
297 {489*OVERSAMPLENR, 120},
298 {526*OVERSAMPLENR, 115},
299 {558*OVERSAMPLENR, 110},
300 {591*OVERSAMPLENR, 105},
301 {628*OVERSAMPLENR, 100},
302 {660*OVERSAMPLENR, 95},
303 {696*OVERSAMPLENR, 90},
304 {733*OVERSAMPLENR, 85},
305 {761*OVERSAMPLENR, 80},
306 {794*OVERSAMPLENR, 75},
307 {819*OVERSAMPLENR, 70},
308 {847*OVERSAMPLENR, 65},
309 {870*OVERSAMPLENR, 60},
310 {892*OVERSAMPLENR, 55},
311 {911*OVERSAMPLENR, 50},
312 {929*OVERSAMPLENR, 45},
313 {944*OVERSAMPLENR, 40},
314 {959*OVERSAMPLENR, 35},
315 {971*OVERSAMPLENR, 30},
316 {981*OVERSAMPLENR, 25},
317 {989*OVERSAMPLENR, 20},
318 {994*OVERSAMPLENR, 15},
319 {1001*OVERSAMPLENR, 10},
320 {1005*OVERSAMPLENR, 5}
324 #define _TT_NAME(_N) temptable_ ## _N
325 #define TT_NAME(_N) _TT_NAME(_N)
327 #ifdef THERMISTORHEATER_0
328 #define heater_0_temptable TT_NAME(THERMISTORHEATER_0)
329 #define heater_0_temptable_len (sizeof(heater_0_temptable)/sizeof(*heater_0_temptable))
331 #ifdef HEATER_0_USES_THERMISTOR
332 #error No heater 0 thermistor table specified
333 #else // HEATER_0_USES_THERMISTOR
334 #define heater_0_temptable 0
335 #define heater_0_temptable_len 0
336 #endif // HEATER_0_USES_THERMISTOR
339 #ifdef THERMISTORHEATER_1
340 #define heater_1_temptable TT_NAME(THERMISTORHEATER_1)
341 #define heater_1_temptable_len (sizeof(heater_1_temptable)/sizeof(*heater_1_temptable))
343 #ifdef HEATER_1_USES_THERMISTOR
344 #error No heater 1 thermistor table specified
345 #else // HEATER_1_USES_THERMISTOR
346 #define heater_1_temptable 0
347 #define heater_1_temptable_len 0
348 #endif // HEATER_1_USES_THERMISTOR
351 #ifdef THERMISTORHEATER_2
352 #define heater_2_temptable TT_NAME(THERMISTORHEATER_2)
353 #define heater_2_temptable_len (sizeof(heater_2_temptable)/sizeof(*heater_2_temptable))
355 #ifdef HEATER_2_USES_THERMISTOR
356 #error No heater 2 thermistor table specified
357 #else // HEATER_2_USES_THERMISTOR
358 #define heater_2_temptable 0
359 #define heater_2_temptable_len 0
360 #endif // HEATER_2_USES_THERMISTOR
364 #define bedtemptable TT_NAME(THERMISTORBED)
365 #define bedtemptable_len (sizeof(bedtemptable)/sizeof(*bedtemptable))
367 #ifdef BED_USES_THERMISTOR
368 #error No bed thermistor table specified
369 #endif // BED_USES_THERMISTOR
372 #endif //THERMISTORTABLES_H_