From e12c8e5cac9a5e7aaa42aa9069023d4b9bc4f32d Mon Sep 17 00:00:00 2001
From: Scott Lahteine <sourcetree@thinkyhead.com>
Date: Mon, 19 Dec 2016 14:27:39 -0800
Subject: [PATCH] Split up thermistor tables

---
 Marlin/thermistortable_1.h    |   89 +++
 Marlin/thermistortable_10.h   |   56 ++
 Marlin/thermistortable_1010.h |   38 +
 Marlin/thermistortable_1047.h |   33 +
 Marlin/thermistortable_11.h   |   75 ++
 Marlin/thermistortable_110.h  |   33 +
 Marlin/thermistortable_12.h   |   55 ++
 Marlin/thermistortable_13.h   |   48 ++
 Marlin/thermistortable_147.h  |   33 +
 Marlin/thermistortable_2.h    |   61 ++
 Marlin/thermistortable_20.h   |   96 +++
 Marlin/thermistortable_3.h    |   53 ++
 Marlin/thermistortable_4.h    |   45 ++
 Marlin/thermistortable_5.h    |   60 ++
 Marlin/thermistortable_51.h   |   81 ++
 Marlin/thermistortable_52.h   |   60 ++
 Marlin/thermistortable_55.h   |   60 ++
 Marlin/thermistortable_6.h    |   63 ++
 Marlin/thermistortable_60.h   |  105 +++
 Marlin/thermistortable_66.h   |   52 ++
 Marlin/thermistortable_7.h    |   83 +++
 Marlin/thermistortable_70.h   |   86 +++
 Marlin/thermistortable_71.h   |  171 +++++
 Marlin/thermistortable_8.h    |   45 ++
 Marlin/thermistortable_9.h    |   56 ++
 Marlin/thermistortable_998.h  |   32 +
 Marlin/thermistortable_999.h  |   32 +
 Marlin/thermistortables.h     | 1310 +++------------------------------
 28 files changed, 1806 insertions(+), 1205 deletions(-)
 create mode 100644 Marlin/thermistortable_1.h
 create mode 100644 Marlin/thermistortable_10.h
 create mode 100644 Marlin/thermistortable_1010.h
 create mode 100644 Marlin/thermistortable_1047.h
 create mode 100644 Marlin/thermistortable_11.h
 create mode 100644 Marlin/thermistortable_110.h
 create mode 100644 Marlin/thermistortable_12.h
 create mode 100644 Marlin/thermistortable_13.h
 create mode 100644 Marlin/thermistortable_147.h
 create mode 100644 Marlin/thermistortable_2.h
 create mode 100644 Marlin/thermistortable_20.h
 create mode 100644 Marlin/thermistortable_3.h
 create mode 100644 Marlin/thermistortable_4.h
 create mode 100644 Marlin/thermistortable_5.h
 create mode 100644 Marlin/thermistortable_51.h
 create mode 100644 Marlin/thermistortable_52.h
 create mode 100644 Marlin/thermistortable_55.h
 create mode 100644 Marlin/thermistortable_6.h
 create mode 100644 Marlin/thermistortable_60.h
 create mode 100644 Marlin/thermistortable_66.h
 create mode 100644 Marlin/thermistortable_7.h
 create mode 100644 Marlin/thermistortable_70.h
 create mode 100644 Marlin/thermistortable_71.h
 create mode 100644 Marlin/thermistortable_8.h
 create mode 100644 Marlin/thermistortable_9.h
 create mode 100644 Marlin/thermistortable_998.h
 create mode 100644 Marlin/thermistortable_999.h

diff --git a/Marlin/thermistortable_1.h b/Marlin/thermistortable_1.h
new file mode 100644
index 000000000..b1a91b5e5
--- /dev/null
+++ b/Marlin/thermistortable_1.h
@@ -0,0 +1,89 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+// 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 }
+};
diff --git a/Marlin/thermistortable_10.h b/Marlin/thermistortable_10.h
new file mode 100644
index 000000000..a031648a9
--- /dev/null
+++ b/Marlin/thermistortable_10.h
@@ -0,0 +1,56 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+// 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 }
+};
diff --git a/Marlin/thermistortable_1010.h b/Marlin/thermistortable_1010.h
new file mode 100644
index 000000000..79a557954
--- /dev/null
+++ b/Marlin/thermistortable_1010.h
@@ -0,0 +1,38 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+// 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)
+};
diff --git a/Marlin/thermistortable_1047.h b/Marlin/thermistortable_1047.h
new file mode 100644
index 000000000..01997abc3
--- /dev/null
+++ b/Marlin/thermistortable_1047.h
@@ -0,0 +1,33 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+// Pt1000 with 4k7 pullup
+const short temptable_1047[][2] PROGMEM = {
+  // only a 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)
+};
diff --git a/Marlin/thermistortable_11.h b/Marlin/thermistortable_11.h
new file mode 100644
index 000000000..f0f269735
--- /dev/null
+++ b/Marlin/thermistortable_11.h
@@ -0,0 +1,75 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+// 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 }
+};
diff --git a/Marlin/thermistortable_110.h b/Marlin/thermistortable_110.h
new file mode 100644
index 000000000..7a4c80df7
--- /dev/null
+++ b/Marlin/thermistortable_110.h
@@ -0,0 +1,33 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+// Pt100 with 1k0 pullup
+const short temptable_110[][2] PROGMEM = {
+  // only a 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)
+};
diff --git a/Marlin/thermistortable_12.h b/Marlin/thermistortable_12.h
new file mode 100644
index 000000000..802c1d37d
--- /dev/null
+++ b/Marlin/thermistortable_12.h
@@ -0,0 +1,55 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+// 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 }
+};
diff --git a/Marlin/thermistortable_13.h b/Marlin/thermistortable_13.h
new file mode 100644
index 000000000..1269c3566
--- /dev/null
+++ b/Marlin/thermistortable_13.h
@@ -0,0 +1,48 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+// 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 }
+};
diff --git a/Marlin/thermistortable_147.h b/Marlin/thermistortable_147.h
new file mode 100644
index 000000000..7e4a3b6fb
--- /dev/null
+++ b/Marlin/thermistortable_147.h
@@ -0,0 +1,33 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+// Pt100 with 4k7 pullup
+const short temptable_147[][2] PROGMEM = {
+  // only a 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)
+};
diff --git a/Marlin/thermistortable_2.h b/Marlin/thermistortable_2.h
new file mode 100644
index 000000000..1b56faed9
--- /dev/null
+++ b/Marlin/thermistortable_2.h
@@ -0,0 +1,61 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+//
+// 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 }
+};
diff --git a/Marlin/thermistortable_20.h b/Marlin/thermistortable_20.h
new file mode 100644
index 000000000..65f77cebd
--- /dev/null
+++ b/Marlin/thermistortable_20.h
@@ -0,0 +1,96 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+// 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
+#endif
+#if (THERMISTORHEATER_2 == 20)
+  #define HEATER_2_RAW_HI_TEMP 16383
+  #define HEATER_2_RAW_LO_TEMP 0
+#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
+#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 }
+};
diff --git a/Marlin/thermistortable_3.h b/Marlin/thermistortable_3.h
new file mode 100644
index 000000000..0fc16d4bf
--- /dev/null
+++ b/Marlin/thermistortable_3.h
@@ -0,0 +1,53 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+// 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 }
+};
diff --git a/Marlin/thermistortable_4.h b/Marlin/thermistortable_4.h
new file mode 100644
index 000000000..83e60cd6a
--- /dev/null
+++ b/Marlin/thermistortable_4.h
@@ -0,0 +1,45 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+// 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 }
+};
diff --git a/Marlin/thermistortable_5.h b/Marlin/thermistortable_5.h
new file mode 100644
index 000000000..8bad71308
--- /dev/null
+++ b/Marlin/thermistortable_5.h
@@ -0,0 +1,60 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+// 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 }
+};
diff --git a/Marlin/thermistortable_51.h b/Marlin/thermistortable_51.h
new file mode 100644
index 000000000..44f7142bb
--- /dev/null
+++ b/Marlin/thermistortable_51.h
@@ -0,0 +1,81 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+// 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 }
+};
diff --git a/Marlin/thermistortable_52.h b/Marlin/thermistortable_52.h
new file mode 100644
index 000000000..bf4e6a9e8
--- /dev/null
+++ b/Marlin/thermistortable_52.h
@@ -0,0 +1,60 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+// 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 }
+};
diff --git a/Marlin/thermistortable_55.h b/Marlin/thermistortable_55.h
new file mode 100644
index 000000000..76e43db6e
--- /dev/null
+++ b/Marlin/thermistortable_55.h
@@ -0,0 +1,60 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+// 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 }
+};
diff --git a/Marlin/thermistortable_6.h b/Marlin/thermistortable_6.h
new file mode 100644
index 000000000..d270b60d3
--- /dev/null
+++ b/Marlin/thermistortable_6.h
@@ -0,0 +1,63 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+// 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
+};
diff --git a/Marlin/thermistortable_60.h b/Marlin/thermistortable_60.h
new file mode 100644
index 000000000..a1c2645b9
--- /dev/null
+++ b/Marlin/thermistortable_60.h
@@ -0,0 +1,105 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+// 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 }
+};
diff --git a/Marlin/thermistortable_66.h b/Marlin/thermistortable_66.h
new file mode 100644
index 000000000..b23961d10
--- /dev/null
+++ b/Marlin/thermistortable_66.h
@@ -0,0 +1,52 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+// 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}
+};
diff --git a/Marlin/thermistortable_7.h b/Marlin/thermistortable_7.h
new file mode 100644
index 000000000..3b4f63b7a
--- /dev/null
+++ b/Marlin/thermistortable_7.h
@@ -0,0 +1,83 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+// 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
+};
diff --git a/Marlin/thermistortable_70.h b/Marlin/thermistortable_70.h
new file mode 100644
index 000000000..70440590d
--- /dev/null
+++ b/Marlin/thermistortable_70.h
@@ -0,0 +1,86 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+// 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
+};
diff --git a/Marlin/thermistortable_71.h b/Marlin/thermistortable_71.h
new file mode 100644
index 000000000..9d90e87bb
--- /dev/null
+++ b/Marlin/thermistortable_71.h
@@ -0,0 +1,171 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+// 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 }
+};
diff --git a/Marlin/thermistortable_8.h b/Marlin/thermistortable_8.h
new file mode 100644
index 000000000..f1892bf8d
--- /dev/null
+++ b/Marlin/thermistortable_8.h
@@ -0,0 +1,45 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+// 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 }
+};
diff --git a/Marlin/thermistortable_9.h b/Marlin/thermistortable_9.h
new file mode 100644
index 000000000..e3b0e7b46
--- /dev/null
+++ b/Marlin/thermistortable_9.h
@@ -0,0 +1,56 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+// 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 }
+};
diff --git a/Marlin/thermistortable_998.h b/Marlin/thermistortable_998.h
new file mode 100644
index 000000000..0e0be8c42
--- /dev/null
+++ b/Marlin/thermistortable_998.h
@@ -0,0 +1,32 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+// User-defined table 1
+// 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 }
+};
diff --git a/Marlin/thermistortable_999.h b/Marlin/thermistortable_999.h
new file mode 100644
index 000000000..d98018bc4
--- /dev/null
+++ b/Marlin/thermistortable_999.h
@@ -0,0 +1,32 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+// User-defined table 2
+// 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 }
+};
diff --git a/Marlin/thermistortables.h b/Marlin/thermistortables.h
index fee443a73..36e5fe93b 100644
--- a/Marlin/thermistortables.h
+++ b/Marlin/thermistortables.h
@@ -30,1294 +30,194 @@
 
 #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
-#endif
-#if (THERMISTORHEATER_2 == 20)
-  #define HEATER_2_RAW_HI_TEMP 16383
-  #define HEATER_2_RAW_LO_TEMP 0
-#endif
-#if (THERMISTORHEATER_3 == 20)
-  #define HEATER_3_RAW_HI_TEMP 16383
-  #define HEATER_3_RAW_LO_TEMP 0
+  #include "thermistortable_20.h"
 #endif
-#if (THERMISTORBED == 20)
-  #define HEATER_BED_RAW_HI_TEMP 16383
-  #define HEATER_BED_RAW_LO_TEMP 0
-#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 }
-};
-#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 }
-};
+#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 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 }
-};
+#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
-
-#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 }
-};
+#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(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)
+#elif defined(HEATER_0_USES_THERMISTOR)
+  #error "No heater 0 thermistor table specified"
 #else
-  #ifdef HEATER_0_USES_THERMISTOR
-    #error "No heater 0 thermistor table specified"
-  #else  // HEATER_0_USES_THERMISTOR
-    #define HEATER_0_TEMPTABLE NULL
-    #define HEATER_0_TEMPTABLE_LEN 0
-  #endif // HEATER_0_USES_THERMISTOR
+  #define HEATER_0_TEMPTABLE NULL
+  #define HEATER_0_TEMPTABLE_LEN 0
+#endif
+
+#ifdef THERMISTORHEATER_1
+  #define HEATER_1_TEMPTABLE TT_NAME(THERMISTORHEATER_1)
+  #define HEATER_1_TEMPTABLE_LEN COUNT(HEATER_1_TEMPTABLE)
+#elif defined(HEATER_1_USES_THERMISTOR)
+  #error "No heater 1 thermistor table specified"
+#else
+  #define HEATER_1_TEMPTABLE NULL
+  #define HEATER_1_TEMPTABLE_LEN 0
 #endif
 
-// Set the high and low raw values for the heater, this indicates which raw value is a high or low temperature
+#ifdef THERMISTORHEATER_2
+  #define HEATER_2_TEMPTABLE TT_NAME(THERMISTORHEATER_2)
+  #define HEATER_2_TEMPTABLE_LEN COUNT(HEATER_2_TEMPTABLE)
+#elif defined(HEATER_2_USES_THERMISTOR)
+  #error "No heater 2 thermistor table specified"
+#else
+  #define HEATER_2_TEMPTABLE NULL
+  #define HEATER_2_TEMPTABLE_LEN 0
+#endif
+
+#ifdef THERMISTORHEATER_3
+  #define HEATER_3_TEMPTABLE TT_NAME(THERMISTORHEATER_3)
+  #define HEATER_3_TEMPTABLE_LEN COUNT(HEATER_3_TEMPTABLE)
+#elif defined(HEATER_3_USES_THERMISTOR)
+  #error "No heater 3 thermistor table specified"
+#else
+  #define HEATER_3_TEMPTABLE NULL
+  #define HEATER_3_TEMPTABLE_LEN 0
+#endif
+
+#ifdef THERMISTORBED
+  #define BEDTEMPTABLE TT_NAME(THERMISTORBED)
+  #define BEDTEMPTABLE_LEN COUNT(BEDTEMPTABLE)
+#else
+  #ifdef BED_USES_THERMISTOR
+    #error "No bed thermistor table specified"
+  #endif
+#endif
+
+// 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 // In case of a thermistor the highest temperature results in the lowest ADC value
+  #ifdef HEATER_0_USES_THERMISTOR
     #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
+  #else
     #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
-    #error "No heater 1 thermistor table specified"
-  #else  // HEATER_1_USES_THERMISTOR
-    #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
+  #ifdef HEATER_1_USES_THERMISTOR
     #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
+  #else
     #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
-    #error "No heater 2 thermistor table specified"
-  #else  // HEATER_2_USES_THERMISTOR
-    #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
+  #ifdef HEATER_2_USES_THERMISTOR
     #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
+  #else
     #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
-    #error "No heater 3 thermistor table specified"
-  #else  // HEATER_3_USES_THERMISTOR
-    #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
+  #ifdef HEATER_3_USES_THERMISTOR
     #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
+  #else
     #define HEATER_3_RAW_HI_TEMP 16383
     #define HEATER_3_RAW_LO_TEMP 0
   #endif
 #endif
-
-#ifdef THERMISTORBED
-  #define BEDTEMPTABLE TT_NAME(THERMISTORBED)
-  #define BEDTEMPTABLE_LEN COUNT(BEDTEMPTABLE)
-#else
-  #ifdef BED_USES_THERMISTOR
-    #error "No bed thermistor table specified"
-  #endif // BED_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_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