diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h
index 2cef365b098453b324e62daaf7a2e066488e3ad7..36b5f7b67b8f85e49900a1b0896f1081e5417797 100644
--- a/Marlin/Configuration.h
+++ b/Marlin/Configuration.h
@@ -14,14 +14,23 @@
 #define MOTHERBOARD 7
 //#define MOTHERBOARD 5
 
+
 //// Thermistor settings:
 // 1 is 100k thermistor
 // 2 is 200k thermistor
 // 3 is mendel-parts thermistor
-#define THERMISTORHEATER 3
-// Select one of these only to define how the nozzle temp is read.
-//#define HEATER_USES_THERMISTOR
-#define HEATER_USES_AD595
+// 4 is 10k thermistor
+// 5 is ParCan supplied 104GT-2 100K
+// 6 is EPCOS 100k
+// 7 is 100k Honeywell thermistor 135-104LAG-J01
+#define THERMISTORHEATER_1 3
+#define THERMISTORHEATER_2 3
+#define THERMISTORBED 3
+
+//#define HEATER_1_USES_THERMISTOR
+//#define HEATER_2_USES_THERMISTOR
+#define HEATER_1_USES_AD595
+//#define HEATER_2_USES_AD595
 
 // Select one of these only to define how the bed temp is read.
 //#define BED_USES_THERMISTOR
@@ -29,8 +38,6 @@
 
 #define HEATER_CHECK_INTERVAL 50
 #define BED_CHECK_INTERVAL 5000
-#define BNUMTEMPS NUMTEMPS
-#define bedtemptable temptable
 
 
 //// Endstop Settings
@@ -50,7 +57,7 @@ const bool ENDSTOPS_INVERTING = true; // set to true to invert the logic of the
 #define LCD_WIDTH 16
 #define LCD_HEIGHT 2
 
-#define ULTIPANEL
+//#define ULTIPANEL
 #ifdef ULTIPANEL
  //#define NEWPANEL  //enable this if you have a click-encoder panel
  #define SDSUPPORT
diff --git a/Marlin/temperature.cpp b/Marlin/temperature.cpp
index 248b807fd427f64efba464fac9a90574e183f4f3..7a9c56e10b7375377166429ba689bb26495109d9 100644
--- a/Marlin/temperature.cpp
+++ b/Marlin/temperature.cpp
@@ -174,28 +174,28 @@ CRITICAL_SECTION_END;
 // This is needed because PID in hydra firmware hovers around a given analog value, not a temp value.
 // This function is derived from inversing the logic from a portion of getTemperature() in FiveD RepRap firmware.
 float temp2analog(int celsius) {
-  #ifdef HEATER_USES_THERMISTOR
+  #ifdef HEATER_USES_THERMISTOR_1
     int raw = 0;
     byte i;
     
-    for (i=1; i<NUMTEMPS; i++)
+    for (i=1; i<NUMTEMPS_HEATER_1; i++)
     {
-      if (temptable[i][1] < celsius)
+      if (temptable_1[i][1] < celsius)
       {
-        raw = temptable[i-1][0] + 
-          (celsius - temptable[i-1][1]) * 
-          (temptable[i][0] - temptable[i-1][0]) /
-          (temptable[i][1] - temptable[i-1][1]);
+        raw = temptable_1[i-1][0] + 
+          (celsius - temptable_1[i-1][1]) * 
+          (temptable_1[i][0] - temptable_1[i-1][0]) /
+          (temptable_1[i][1] - temptable_1[i-1][1]);
       
         break;
       }
     }
 
     // Overflow: Set to last value in the table
-    if (i == NUMTEMPS) raw = temptable[i-1][0];
+    if (i == NUMTEMPS_1) raw = temptable_1[i-1][0];
 
     return (1023 * OVERSAMPLENR) - raw;
-  #elif defined HEATER_USES_AD595
+  #elif defined HEATER_1_USES_AD595
     return celsius * (1024.0 / (5.0 * 100.0) ) * OVERSAMPLENR;
   #endif
 }
@@ -235,28 +235,28 @@ float temp2analogBed(int celsius) {
 // Derived from RepRap FiveD extruder::getTemperature()
 // For hot end temperature measurement.
 float analog2temp(int raw) {
-  #ifdef HEATER_USES_THERMISTOR
+  #ifdef HEATER_1_USES_THERMISTOR
     int celsius = 0;
     byte i;  
     raw = (1023 * OVERSAMPLENR) - raw;
-    for (i=1; i<NUMTEMPS; i++)
+    for (i=1; i<NUMTEMPS_HEATER_1; i++)
     {
-      if (temptable[i][0] > raw)
+      if (temptable_1[i][0] > raw)
       {
-        celsius  = temptable[i-1][1] + 
-          (raw - temptable[i-1][0]) * 
-          (temptable[i][1] - temptable[i-1][1]) /
-          (temptable[i][0] - temptable[i-1][0]);
+        celsius  = temptable_1[i-1][1] + 
+          (raw - temptable_1[i-1][0]) * 
+          (temptable_1[i][1] - temptable_1[i-1][1]) /
+          (temptable_1[i][0] - temptable_1[i-1][0]);
 
         break;
       }
     }
 
     // Overflow: Set to last value in the table
-    if (i == NUMTEMPS) celsius = temptable[i-1][1];
+    if (i == NUMTEMPS_HEATER_1) celsius = temptable_1[i-1][1];
 
     return celsius;
-  #elif defined HEATER_USES_AD595
+  #elif defined HEATER_1_USES_AD595
     return raw * ((5.0 * 100.0) / 1024.0) / OVERSAMPLENR;
   #endif
 }
@@ -270,7 +270,7 @@ float analog2tempBed(int raw) {
 
     raw = (1023 * OVERSAMPLENR) - raw;
 
-    for (i=1; i<NUMTEMPS; i++)
+    for (i=1; i<BNUMTEMPS; i++)
     {
       if (bedtemptable[i][0] > raw)
       {
@@ -284,7 +284,7 @@ float analog2tempBed(int raw) {
     }
 
     // Overflow: Set to last value in the table
-    if (i == NUMTEMPS) celsius = bedtemptable[i-1][1];
+    if (i == BNUMTEMPS) celsius = bedtemptable[i-1][1];
 
     return celsius;
     
@@ -403,11 +403,15 @@ ISR(TIMER0_COMPB_vect)
     
   if(temp_count >= 16) // 6 ms * 16 = 96ms.
   {
-    #ifdef HEATER_USES_AD595
+    #ifdef HEATER_1_USES_AD595
       current_raw[0] = raw_temp_0_value;
-      current_raw[2] = raw_temp_2_value;
     #else
       current_raw[0] = 16383 - raw_temp_0_value;
+    #endif
+    
+    #ifdef HEATER_2_USES_AD595
+      current_raw[2] = raw_temp_2_value;
+    #else
       current_raw[2] = 16383 - raw_temp_2_value;
     #endif
     
diff --git a/Marlin/thermistortables.h b/Marlin/thermistortables.h
index 725e972fa11ecc38528988adca202b8b41f684ce..0ea1991dcee366876cdc6a748b3bed08dededd62 100644
--- a/Marlin/thermistortables.h
+++ b/Marlin/thermistortables.h
@@ -2,148 +2,409 @@
 #define THERMISTORTABLES_H_
 
 #define OVERSAMPLENR 16
-#if (THERMISTORHEATER == 1) || (THERMISTORBED == 1) //100k bed thermistor
 
+#if (THERMISTORHEATER_1 == 1) || (THERMISTORHEATER_2 == 1) || (THERMISTORBED == 1) //100k bed thermistor
 
 #define NUMTEMPS_1 61
 const short temptable_1[NUMTEMPS_1][2] = {
-{	(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	} //safety
+{	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	} //safety
 };
 #endif
-#if (THERMISTORHEATER == 2) || (THERMISTORBED == 2) //200k bed thermistor
+#if (THERMISTORHEATER_1 == 2) || (THERMISTORHEATER_2 == 2) || (THERMISTORBED == 2) //200k bed thermistor
 #define NUMTEMPS_2 21
 const short temptable_2[NUMTEMPS_2][2] = {
-   {(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
+   {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
 };
 
 #endif
-#if (THERMISTORHEATER == 3) || (THERMISTORBED == 3) //mendel-parts
+#if (THERMISTORHEATER_1 == 3) || (THERMISTORHEATER_2 == 3) || (THERMISTORBED == 3) //mendel-parts
 #define NUMTEMPS_3 28
 const short temptable_3[NUMTEMPS_3][2] = {
-		{(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}
+		{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}
 	};
 
 #endif
+#if (THERMISTORHEATER_1 == 4) || (THERMISTORHEATER_2 == 4) || (THERMISTORBED == 4) //10k thermistor
 
-#if THERMISTORHEATER == 1
-#define NUMTEMPS NUMTEMPS_1
-#define temptable temptable_1
-#elif THERMISTORHEATER == 2
-#define NUMTEMPS NUMTEMPS_2
-#define temptable temptable_2
-#elif THERMISTORHEATER == 3
-#define NUMTEMPS NUMTEMPS_3
-#define temptable temptable_3
-#else
-#error No heater thermistor table specified
+#define NUMTEMPS_4 20
+short temptable_4[NUMTEMPS_4][2] = {
+   {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}
+};
+#endif
+
+#if (THERMISTORHEATER_1 == 5) || (THERMISTORHEATER_2 == 5) || (THERMISTORBED == 5) //100k ParCan thermistor (104GT-2)
+
+#define NUMTEMPS_5 61
+const short temptable_5[NUMTEMPS_5][2] = {
+{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}
+};
+#endif
+
+#if (THERMISTORHEATER_1 == 6) || (THERMISTORHEATER_2 == 6) || (THERMISTORBED == 6) // 100k Epcos thermistor
+#define NUMTEMPS_6 36
+const short temptable_6[NUMTEMPS_6][2] = {
+   {28*OVERSAMPLENR, 250},
+   {31*OVERSAMPLENR, 245},
+   {35*OVERSAMPLENR, 240},
+   {39*OVERSAMPLENR, 235},
+   {42*OVERSAMPLENR, 230},
+   {44*OVERSAMPLENR, 225},
+   {49*OVERSAMPLENR, 220},
+   {53*OVERSAMPLENR, 215},
+   {62*OVERSAMPLENR, 210},
+   {73*OVERSAMPLENR, 205},
+   {72*OVERSAMPLENR, 200},
+   {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}
+};
+#endif
+
+#if (THERMISTORHEATER_1 == 7) || (THERMISTORHEATER_2 == 7) || (THERMISTORBED == 7) // 100k Honeywell 135-104LAG-J01
+#define NUMTEMPS_7 54
+const short temptable_7[NUMTEMPS_7][2] = {
+   {46*OVERSAMPLENR, 270},
+   {50*OVERSAMPLENR, 265},
+   {54*OVERSAMPLENR, 260},
+   {58*OVERSAMPLENR, 255},
+   {62*OVERSAMPLENR, 250},
+   {67*OVERSAMPLENR, 245},
+   {72*OVERSAMPLENR, 240},
+   {79*OVERSAMPLENR, 235},
+   {85*OVERSAMPLENR, 230},
+   {91*OVERSAMPLENR, 225},
+   {99*OVERSAMPLENR, 220},
+   {107*OVERSAMPLENR, 215},
+   {116*OVERSAMPLENR, 210},
+   {126*OVERSAMPLENR, 205},
+   {136*OVERSAMPLENR, 200},
+   {149*OVERSAMPLENR, 195},
+   {160*OVERSAMPLENR, 190},
+   {175*OVERSAMPLENR, 185},
+   {191*OVERSAMPLENR, 180},
+   {209*OVERSAMPLENR, 175},
+   {224*OVERSAMPLENR, 170},
+   {246*OVERSAMPLENR, 165},
+   {267*OVERSAMPLENR, 160},
+   {293*OVERSAMPLENR, 155},
+   {316*OVERSAMPLENR, 150},
+   {340*OVERSAMPLENR, 145},
+   {364*OVERSAMPLENR, 140},
+   {396*OVERSAMPLENR, 135},
+   {425*OVERSAMPLENR, 130},
+   {460*OVERSAMPLENR, 125},
+   {489*OVERSAMPLENR, 120},
+   {526*OVERSAMPLENR, 115},
+   {558*OVERSAMPLENR, 110},
+   {591*OVERSAMPLENR, 105},
+   {628*OVERSAMPLENR, 100},
+   {660*OVERSAMPLENR, 95},
+   {696*OVERSAMPLENR, 90},
+   {733*OVERSAMPLENR, 85},
+   {761*OVERSAMPLENR, 80},
+   {794*OVERSAMPLENR, 75},
+   {819*OVERSAMPLENR, 70},
+   {847*OVERSAMPLENR, 65},
+   {870*OVERSAMPLENR, 60},
+   {892*OVERSAMPLENR, 55},
+   {911*OVERSAMPLENR, 50},
+   {929*OVERSAMPLENR, 45},
+   {944*OVERSAMPLENR, 40},
+   {959*OVERSAMPLENR, 35},
+   {971*OVERSAMPLENR, 30},
+   {981*OVERSAMPLENR, 25},
+   {989*OVERSAMPLENR, 20},
+   {994*OVERSAMPLENR, 15},
+   {1001*OVERSAMPLENR, 10},
+   {1005*OVERSAMPLENR, 5}
+};
+#endif
+
+
+
+#if THERMISTORHEATER_1 == 1
+#define NUMTEMPS_HEATER_1 NUMTEMPS_1
+#define temptable_1 temptable_1
+#elif THERMISTORHEATER_1 == 2
+#define NUMTEMPS_HEATER_1 NUMTEMPS_2
+#define temptable_1 temptable_2
+#elif THERMISTORHEATER_1 == 3
+#define NUMTEMPS_HEATER_1 NUMTEMPS_3
+#define temptable_1 temptable_3
+#elif THERMISTORHEATER_1 == 4
+#define NUMTEMPS_HEATER_1 NUMTEMPS_4
+#define temptable_1 temptable_4
+#elif THERMISTORHEATER_1 == 5
+#define NUMTEMPS_HEATER_1 NUMTEMPS_5
+#define temptable_1 temptable_5
+#elif THERMISTORHEATER_1 == 6
+#define NUMTEMPS_HEATER_1 NUMTEMPS_6
+#define temptable_1 temptable_6
+#elif THERMISTORHEATER_1 == 7
+#define NUMTEMPS_HEATER_1 NUMTEMPS_7
+#define temptable_1 temptable_7
+#elif defined HEATER_1_USES_THERMISTOR
+#error No heater 1 thermistor table specified
+#endif
+
+#if THERMISTORHEATER_2 == 1
+#define NUMTEMPS_HEATER_2 NUMTEMPS_1
+#define temptable_2 temptable_1
+#elif THERMISTORHEATER_2 == 2
+#define NUMTEMPS_HEATER_2 NUMTEMPS_2
+#define temptable_2 temptable_2
+#elif THERMISTORHEATER_2 == 3
+#define NUMTEMPS_HEATER_2 NUMTEMPS_3
+#define temptable_2 temptable_3
+#elif THERMISTORHEATER_2 == 4
+#define NUMTEMPS_HEATER_2 NUMTEMPS_4
+#define temptable_2 temptable_4
+#elif THERMISTORHEATER_2 == 5
+#define NUMTEMPS_HEATER_2 NUMTEMPS_5
+#define temptable_2 temptable_5
+#elif THERMISTORHEATER_2 == 6
+#define NUMTEMPS_HEATER_2 NUMTEMPS_6
+#define temptable_2 temptable_6
+#elif THERMISTORHEATER_2 == 7
+#define NUMTEMPS_HEATER22 NUMTEMPS_7
+#define temptable_2 temptable_7
+#elif defined HEATER_2_USES_THERMISTOR
+#error No heater 2 thermistor table specified
 #endif
 
 
+#if THERMISTORBED == 1
+#define BNUMTEMPS NUMTEMPS_1
+#define bedtemptable temptable_1
+#elif THERMISTORBED == 2
+#define BNUMTEMPS NUMTEMPS_2
+#define bedtemptable temptable_2
+#elif THERMISTORBED == 3
+#define BNUMTEMPS NUMTEMPS_3
+#define bedtemptable temptable_3
+#elif THERMISTORBED == 4
+#define BNUMTEMPS NUMTEMPS_4
+#define bedtemptable temptable_4
+#elif THERMISTORBED == 5
+#define BNUMTEMPS NUMTEMPS_5
+#define bedtemptable temptable_5
+#elif THERMISTORBED == 6
+#define BNUMTEMPS NUMTEMPS_6
+#define bedtemptable temptable_6
+#elif THERMISTORBED == 7
+#define BNUMTEMPS NUMTEMPS_7
+#define bedtemptable temptable_7
+#elif defined BED_USES_THERMISTOR
+#error No bed thermistor table specified
+#endif
+
 #endif //THERMISTORTABLES_H_
+