From e12c8e5cac9a5e7aaa42aa9069023d4b9bc4f32d Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Mon, 19 Dec 2016 14:27:39 -0800 Subject: [PATCH 1/2] 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 . + * + */ + +// 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 . + * + */ + +// 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 . + * + */ + +// 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 . + * + */ + +// 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 . + * + */ + +// 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 . + * + */ + +// 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 . + * + */ + +// 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 . + * + */ + +// 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 . + * + */ + +// 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 . + * + */ + +// +// 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 . + * + */ + +// 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 . + * + */ + +// 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 . + * + */ + +// 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 . + * + */ + +// 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 . + * + */ + +// 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 . + * + */ + +// 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 . + * + */ + +// 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 . + * + */ + +// 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 . + * + */ + +// 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 . + * + */ + +// 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 . + * + */ + +// 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 . + * + */ + +// 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 . + * + */ + +// 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 . + * + */ + +// 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 . + * + */ + +// 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 . + * + */ + +// 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 . + * + */ + +// 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 From 89862257520cde1baa5a1e4c7e336d3f5edfa129 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Mon, 19 Dec 2016 14:52:45 -0800 Subject: [PATCH 2/2] Spacing, cleanup in speed_lookuptable.h --- Marlin/speed_lookuptable.h | 274 ++++++++++++++++++------------------- 1 file changed, 137 insertions(+), 137 deletions(-) diff --git a/Marlin/speed_lookuptable.h b/Marlin/speed_lookuptable.h index 08cc4839a..f29199b73 100644 --- a/Marlin/speed_lookuptable.h +++ b/Marlin/speed_lookuptable.h @@ -27,148 +27,148 @@ #if F_CPU == 16000000 -const uint16_t speed_lookuptable_fast[256][2] PROGMEM = {\ - { 62500, 55556}, { 6944, 3268}, { 3676, 1176}, { 2500, 607}, { 1893, 369}, { 1524, 249}, { 1275, 179}, { 1096, 135}, - { 961, 105}, { 856, 85}, { 771, 69}, { 702, 58}, { 644, 49}, { 595, 42}, { 553, 37}, { 516, 32}, - { 484, 28}, { 456, 25}, { 431, 23}, { 408, 20}, { 388, 19}, { 369, 16}, { 353, 16}, { 337, 14}, - { 323, 13}, { 310, 11}, { 299, 11}, { 288, 11}, { 277, 9}, { 268, 9}, { 259, 8}, { 251, 8}, - { 243, 8}, { 235, 7}, { 228, 6}, { 222, 6}, { 216, 6}, { 210, 6}, { 204, 5}, { 199, 5}, - { 194, 5}, { 189, 4}, { 185, 4}, { 181, 4}, { 177, 4}, { 173, 4}, { 169, 4}, { 165, 3}, - { 162, 3}, { 159, 4}, { 155, 3}, { 152, 3}, { 149, 2}, { 147, 3}, { 144, 3}, { 141, 2}, - { 139, 3}, { 136, 2}, { 134, 2}, { 132, 3}, { 129, 2}, { 127, 2}, { 125, 2}, { 123, 2}, - { 121, 2}, { 119, 1}, { 118, 2}, { 116, 2}, { 114, 1}, { 113, 2}, { 111, 2}, { 109, 1}, - { 108, 2}, { 106, 1}, { 105, 2}, { 103, 1}, { 102, 1}, { 101, 1}, { 100, 2}, { 98, 1}, - { 97, 1}, { 96, 1}, { 95, 2}, { 93, 1}, { 92, 1}, { 91, 1}, { 90, 1}, { 89, 1}, - { 88, 1}, { 87, 1}, { 86, 1}, { 85, 1}, { 84, 1}, { 83, 0}, { 83, 1}, { 82, 1}, - { 81, 1}, { 80, 1}, { 79, 1}, { 78, 0}, { 78, 1}, { 77, 1}, { 76, 1}, { 75, 0}, - { 75, 1}, { 74, 1}, { 73, 1}, { 72, 0}, { 72, 1}, { 71, 1}, { 70, 0}, { 70, 1}, - { 69, 0}, { 69, 1}, { 68, 1}, { 67, 0}, { 67, 1}, { 66, 0}, { 66, 1}, { 65, 0}, - { 65, 1}, { 64, 1}, { 63, 0}, { 63, 1}, { 62, 0}, { 62, 1}, { 61, 0}, { 61, 1}, - { 60, 0}, { 60, 0}, { 60, 1}, { 59, 0}, { 59, 1}, { 58, 0}, { 58, 1}, { 57, 0}, - { 57, 1}, { 56, 0}, { 56, 0}, { 56, 1}, { 55, 0}, { 55, 1}, { 54, 0}, { 54, 0}, - { 54, 1}, { 53, 0}, { 53, 0}, { 53, 1}, { 52, 0}, { 52, 0}, { 52, 1}, { 51, 0}, - { 51, 0}, { 51, 1}, { 50, 0}, { 50, 0}, { 50, 1}, { 49, 0}, { 49, 0}, { 49, 1}, - { 48, 0}, { 48, 0}, { 48, 1}, { 47, 0}, { 47, 0}, { 47, 0}, { 47, 1}, { 46, 0}, - { 46, 0}, { 46, 1}, { 45, 0}, { 45, 0}, { 45, 0}, { 45, 1}, { 44, 0}, { 44, 0}, - { 44, 0}, { 44, 1}, { 43, 0}, { 43, 0}, { 43, 0}, { 43, 1}, { 42, 0}, { 42, 0}, - { 42, 0}, { 42, 1}, { 41, 0}, { 41, 0}, { 41, 0}, { 41, 0}, { 41, 1}, { 40, 0}, - { 40, 0}, { 40, 0}, { 40, 0}, { 40, 1}, { 39, 0}, { 39, 0}, { 39, 0}, { 39, 0}, - { 39, 1}, { 38, 0}, { 38, 0}, { 38, 0}, { 38, 0}, { 38, 1}, { 37, 0}, { 37, 0}, - { 37, 0}, { 37, 0}, { 37, 0}, { 37, 1}, { 36, 0}, { 36, 0}, { 36, 0}, { 36, 0}, - { 36, 1}, { 35, 0}, { 35, 0}, { 35, 0}, { 35, 0}, { 35, 0}, { 35, 0}, { 35, 1}, - { 34, 0}, { 34, 0}, { 34, 0}, { 34, 0}, { 34, 0}, { 34, 1}, { 33, 0}, { 33, 0}, - { 33, 0}, { 33, 0}, { 33, 0}, { 33, 0}, { 33, 1}, { 32, 0}, { 32, 0}, { 32, 0}, - { 32, 0}, { 32, 0}, { 32, 0}, { 32, 0}, { 32, 1}, { 31, 0}, { 31, 0}, { 31, 0}, - { 31, 0}, { 31, 0}, { 31, 0}, { 31, 1}, { 30, 0}, { 30, 0}, { 30, 0}, { 30, 0} -}; + const uint16_t speed_lookuptable_fast[256][2] PROGMEM = { + { 62500, 55556}, { 6944, 3268}, { 3676, 1176}, { 2500, 607}, { 1893, 369}, { 1524, 249}, { 1275, 179}, { 1096, 135}, + { 961, 105}, { 856, 85}, { 771, 69}, { 702, 58}, { 644, 49}, { 595, 42}, { 553, 37}, { 516, 32}, + { 484, 28}, { 456, 25}, { 431, 23}, { 408, 20}, { 388, 19}, { 369, 16}, { 353, 16}, { 337, 14}, + { 323, 13}, { 310, 11}, { 299, 11}, { 288, 11}, { 277, 9}, { 268, 9}, { 259, 8}, { 251, 8}, + { 243, 8}, { 235, 7}, { 228, 6}, { 222, 6}, { 216, 6}, { 210, 6}, { 204, 5}, { 199, 5}, + { 194, 5}, { 189, 4}, { 185, 4}, { 181, 4}, { 177, 4}, { 173, 4}, { 169, 4}, { 165, 3}, + { 162, 3}, { 159, 4}, { 155, 3}, { 152, 3}, { 149, 2}, { 147, 3}, { 144, 3}, { 141, 2}, + { 139, 3}, { 136, 2}, { 134, 2}, { 132, 3}, { 129, 2}, { 127, 2}, { 125, 2}, { 123, 2}, + { 121, 2}, { 119, 1}, { 118, 2}, { 116, 2}, { 114, 1}, { 113, 2}, { 111, 2}, { 109, 1}, + { 108, 2}, { 106, 1}, { 105, 2}, { 103, 1}, { 102, 1}, { 101, 1}, { 100, 2}, { 98, 1}, + { 97, 1}, { 96, 1}, { 95, 2}, { 93, 1}, { 92, 1}, { 91, 1}, { 90, 1}, { 89, 1}, + { 88, 1}, { 87, 1}, { 86, 1}, { 85, 1}, { 84, 1}, { 83, 0}, { 83, 1}, { 82, 1}, + { 81, 1}, { 80, 1}, { 79, 1}, { 78, 0}, { 78, 1}, { 77, 1}, { 76, 1}, { 75, 0}, + { 75, 1}, { 74, 1}, { 73, 1}, { 72, 0}, { 72, 1}, { 71, 1}, { 70, 0}, { 70, 1}, + { 69, 0}, { 69, 1}, { 68, 1}, { 67, 0}, { 67, 1}, { 66, 0}, { 66, 1}, { 65, 0}, + { 65, 1}, { 64, 1}, { 63, 0}, { 63, 1}, { 62, 0}, { 62, 1}, { 61, 0}, { 61, 1}, + { 60, 0}, { 60, 0}, { 60, 1}, { 59, 0}, { 59, 1}, { 58, 0}, { 58, 1}, { 57, 0}, + { 57, 1}, { 56, 0}, { 56, 0}, { 56, 1}, { 55, 0}, { 55, 1}, { 54, 0}, { 54, 0}, + { 54, 1}, { 53, 0}, { 53, 0}, { 53, 1}, { 52, 0}, { 52, 0}, { 52, 1}, { 51, 0}, + { 51, 0}, { 51, 1}, { 50, 0}, { 50, 0}, { 50, 1}, { 49, 0}, { 49, 0}, { 49, 1}, + { 48, 0}, { 48, 0}, { 48, 1}, { 47, 0}, { 47, 0}, { 47, 0}, { 47, 1}, { 46, 0}, + { 46, 0}, { 46, 1}, { 45, 0}, { 45, 0}, { 45, 0}, { 45, 1}, { 44, 0}, { 44, 0}, + { 44, 0}, { 44, 1}, { 43, 0}, { 43, 0}, { 43, 0}, { 43, 1}, { 42, 0}, { 42, 0}, + { 42, 0}, { 42, 1}, { 41, 0}, { 41, 0}, { 41, 0}, { 41, 0}, { 41, 1}, { 40, 0}, + { 40, 0}, { 40, 0}, { 40, 0}, { 40, 1}, { 39, 0}, { 39, 0}, { 39, 0}, { 39, 0}, + { 39, 1}, { 38, 0}, { 38, 0}, { 38, 0}, { 38, 0}, { 38, 1}, { 37, 0}, { 37, 0}, + { 37, 0}, { 37, 0}, { 37, 0}, { 37, 1}, { 36, 0}, { 36, 0}, { 36, 0}, { 36, 0}, + { 36, 1}, { 35, 0}, { 35, 0}, { 35, 0}, { 35, 0}, { 35, 0}, { 35, 0}, { 35, 1}, + { 34, 0}, { 34, 0}, { 34, 0}, { 34, 0}, { 34, 0}, { 34, 1}, { 33, 0}, { 33, 0}, + { 33, 0}, { 33, 0}, { 33, 0}, { 33, 0}, { 33, 1}, { 32, 0}, { 32, 0}, { 32, 0}, + { 32, 0}, { 32, 0}, { 32, 0}, { 32, 0}, { 32, 1}, { 31, 0}, { 31, 0}, { 31, 0}, + { 31, 0}, { 31, 0}, { 31, 0}, { 31, 1}, { 30, 0}, { 30, 0}, { 30, 0}, { 30, 0} + }; -const uint16_t speed_lookuptable_slow[256][2] PROGMEM = {\ - { 62500, 12500}, { 50000, 8334}, { 41666, 5952}, { 35714, 4464}, { 31250, 3473}, { 27777, 2777}, { 25000, 2273}, { 22727, 1894}, - { 20833, 1603}, { 19230, 1373}, { 17857, 1191}, { 16666, 1041}, { 15625, 920}, { 14705, 817}, { 13888, 731}, { 13157, 657}, - { 12500, 596}, { 11904, 541}, { 11363, 494}, { 10869, 453}, { 10416, 416}, { 10000, 385}, { 9615, 356}, { 9259, 331}, - { 8928, 308}, { 8620, 287}, { 8333, 269}, { 8064, 252}, { 7812, 237}, { 7575, 223}, { 7352, 210}, { 7142, 198}, - { 6944, 188}, { 6756, 178}, { 6578, 168}, { 6410, 160}, { 6250, 153}, { 6097, 145}, { 5952, 139}, { 5813, 132}, - { 5681, 126}, { 5555, 121}, { 5434, 115}, { 5319, 111}, { 5208, 106}, { 5102, 102}, { 5000, 99}, { 4901, 94}, - { 4807, 91}, { 4716, 87}, { 4629, 84}, { 4545, 81}, { 4464, 79}, { 4385, 75}, { 4310, 73}, { 4237, 71}, - { 4166, 68}, { 4098, 66}, { 4032, 64}, { 3968, 62}, { 3906, 60}, { 3846, 59}, { 3787, 56}, { 3731, 55}, - { 3676, 53}, { 3623, 52}, { 3571, 50}, { 3521, 49}, { 3472, 48}, { 3424, 46}, { 3378, 45}, { 3333, 44}, - { 3289, 43}, { 3246, 41}, { 3205, 41}, { 3164, 39}, { 3125, 39}, { 3086, 38}, { 3048, 36}, { 3012, 36}, - { 2976, 35}, { 2941, 35}, { 2906, 33}, { 2873, 33}, { 2840, 32}, { 2808, 31}, { 2777, 30}, { 2747, 30}, - { 2717, 29}, { 2688, 29}, { 2659, 28}, { 2631, 27}, { 2604, 27}, { 2577, 26}, { 2551, 26}, { 2525, 25}, - { 2500, 25}, { 2475, 25}, { 2450, 23}, { 2427, 24}, { 2403, 23}, { 2380, 22}, { 2358, 22}, { 2336, 22}, - { 2314, 21}, { 2293, 21}, { 2272, 20}, { 2252, 20}, { 2232, 20}, { 2212, 20}, { 2192, 19}, { 2173, 18}, - { 2155, 19}, { 2136, 18}, { 2118, 18}, { 2100, 17}, { 2083, 17}, { 2066, 17}, { 2049, 17}, { 2032, 16}, - { 2016, 16}, { 2000, 16}, { 1984, 16}, { 1968, 15}, { 1953, 16}, { 1937, 14}, { 1923, 15}, { 1908, 15}, - { 1893, 14}, { 1879, 14}, { 1865, 14}, { 1851, 13}, { 1838, 14}, { 1824, 13}, { 1811, 13}, { 1798, 13}, - { 1785, 12}, { 1773, 13}, { 1760, 12}, { 1748, 12}, { 1736, 12}, { 1724, 12}, { 1712, 12}, { 1700, 11}, - { 1689, 12}, { 1677, 11}, { 1666, 11}, { 1655, 11}, { 1644, 11}, { 1633, 10}, { 1623, 11}, { 1612, 10}, - { 1602, 10}, { 1592, 10}, { 1582, 10}, { 1572, 10}, { 1562, 10}, { 1552, 9}, { 1543, 10}, { 1533, 9}, - { 1524, 9}, { 1515, 9}, { 1506, 9}, { 1497, 9}, { 1488, 9}, { 1479, 9}, { 1470, 9}, { 1461, 8}, - { 1453, 8}, { 1445, 9}, { 1436, 8}, { 1428, 8}, { 1420, 8}, { 1412, 8}, { 1404, 8}, { 1396, 8}, - { 1388, 7}, { 1381, 8}, { 1373, 7}, { 1366, 8}, { 1358, 7}, { 1351, 7}, { 1344, 8}, { 1336, 7}, - { 1329, 7}, { 1322, 7}, { 1315, 7}, { 1308, 6}, { 1302, 7}, { 1295, 7}, { 1288, 6}, { 1282, 7}, - { 1275, 6}, { 1269, 7}, { 1262, 6}, { 1256, 6}, { 1250, 7}, { 1243, 6}, { 1237, 6}, { 1231, 6}, - { 1225, 6}, { 1219, 6}, { 1213, 6}, { 1207, 6}, { 1201, 5}, { 1196, 6}, { 1190, 6}, { 1184, 5}, - { 1179, 6}, { 1173, 5}, { 1168, 6}, { 1162, 5}, { 1157, 5}, { 1152, 6}, { 1146, 5}, { 1141, 5}, - { 1136, 5}, { 1131, 5}, { 1126, 5}, { 1121, 5}, { 1116, 5}, { 1111, 5}, { 1106, 5}, { 1101, 5}, - { 1096, 5}, { 1091, 5}, { 1086, 4}, { 1082, 5}, { 1077, 5}, { 1072, 4}, { 1068, 5}, { 1063, 4}, - { 1059, 5}, { 1054, 4}, { 1050, 4}, { 1046, 5}, { 1041, 4}, { 1037, 4}, { 1033, 5}, { 1028, 4}, - { 1024, 4}, { 1020, 4}, { 1016, 4}, { 1012, 4}, { 1008, 4}, { 1004, 4}, { 1000, 4}, { 996, 4}, - { 992, 4}, { 988, 4}, { 984, 4}, { 980, 4}, { 976, 4}, { 972, 4}, { 968, 3}, { 965, 3} -}; + const uint16_t speed_lookuptable_slow[256][2] PROGMEM = { + { 62500, 12500}, { 50000, 8334}, { 41666, 5952}, { 35714, 4464}, { 31250, 3473}, { 27777, 2777}, { 25000, 2273}, { 22727, 1894}, + { 20833, 1603}, { 19230, 1373}, { 17857, 1191}, { 16666, 1041}, { 15625, 920}, { 14705, 817}, { 13888, 731}, { 13157, 657}, + { 12500, 596}, { 11904, 541}, { 11363, 494}, { 10869, 453}, { 10416, 416}, { 10000, 385}, { 9615, 356}, { 9259, 331}, + { 8928, 308}, { 8620, 287}, { 8333, 269}, { 8064, 252}, { 7812, 237}, { 7575, 223}, { 7352, 210}, { 7142, 198}, + { 6944, 188}, { 6756, 178}, { 6578, 168}, { 6410, 160}, { 6250, 153}, { 6097, 145}, { 5952, 139}, { 5813, 132}, + { 5681, 126}, { 5555, 121}, { 5434, 115}, { 5319, 111}, { 5208, 106}, { 5102, 102}, { 5000, 99}, { 4901, 94}, + { 4807, 91}, { 4716, 87}, { 4629, 84}, { 4545, 81}, { 4464, 79}, { 4385, 75}, { 4310, 73}, { 4237, 71}, + { 4166, 68}, { 4098, 66}, { 4032, 64}, { 3968, 62}, { 3906, 60}, { 3846, 59}, { 3787, 56}, { 3731, 55}, + { 3676, 53}, { 3623, 52}, { 3571, 50}, { 3521, 49}, { 3472, 48}, { 3424, 46}, { 3378, 45}, { 3333, 44}, + { 3289, 43}, { 3246, 41}, { 3205, 41}, { 3164, 39}, { 3125, 39}, { 3086, 38}, { 3048, 36}, { 3012, 36}, + { 2976, 35}, { 2941, 35}, { 2906, 33}, { 2873, 33}, { 2840, 32}, { 2808, 31}, { 2777, 30}, { 2747, 30}, + { 2717, 29}, { 2688, 29}, { 2659, 28}, { 2631, 27}, { 2604, 27}, { 2577, 26}, { 2551, 26}, { 2525, 25}, + { 2500, 25}, { 2475, 25}, { 2450, 23}, { 2427, 24}, { 2403, 23}, { 2380, 22}, { 2358, 22}, { 2336, 22}, + { 2314, 21}, { 2293, 21}, { 2272, 20}, { 2252, 20}, { 2232, 20}, { 2212, 20}, { 2192, 19}, { 2173, 18}, + { 2155, 19}, { 2136, 18}, { 2118, 18}, { 2100, 17}, { 2083, 17}, { 2066, 17}, { 2049, 17}, { 2032, 16}, + { 2016, 16}, { 2000, 16}, { 1984, 16}, { 1968, 15}, { 1953, 16}, { 1937, 14}, { 1923, 15}, { 1908, 15}, + { 1893, 14}, { 1879, 14}, { 1865, 14}, { 1851, 13}, { 1838, 14}, { 1824, 13}, { 1811, 13}, { 1798, 13}, + { 1785, 12}, { 1773, 13}, { 1760, 12}, { 1748, 12}, { 1736, 12}, { 1724, 12}, { 1712, 12}, { 1700, 11}, + { 1689, 12}, { 1677, 11}, { 1666, 11}, { 1655, 11}, { 1644, 11}, { 1633, 10}, { 1623, 11}, { 1612, 10}, + { 1602, 10}, { 1592, 10}, { 1582, 10}, { 1572, 10}, { 1562, 10}, { 1552, 9}, { 1543, 10}, { 1533, 9}, + { 1524, 9}, { 1515, 9}, { 1506, 9}, { 1497, 9}, { 1488, 9}, { 1479, 9}, { 1470, 9}, { 1461, 8}, + { 1453, 8}, { 1445, 9}, { 1436, 8}, { 1428, 8}, { 1420, 8}, { 1412, 8}, { 1404, 8}, { 1396, 8}, + { 1388, 7}, { 1381, 8}, { 1373, 7}, { 1366, 8}, { 1358, 7}, { 1351, 7}, { 1344, 8}, { 1336, 7}, + { 1329, 7}, { 1322, 7}, { 1315, 7}, { 1308, 6}, { 1302, 7}, { 1295, 7}, { 1288, 6}, { 1282, 7}, + { 1275, 6}, { 1269, 7}, { 1262, 6}, { 1256, 6}, { 1250, 7}, { 1243, 6}, { 1237, 6}, { 1231, 6}, + { 1225, 6}, { 1219, 6}, { 1213, 6}, { 1207, 6}, { 1201, 5}, { 1196, 6}, { 1190, 6}, { 1184, 5}, + { 1179, 6}, { 1173, 5}, { 1168, 6}, { 1162, 5}, { 1157, 5}, { 1152, 6}, { 1146, 5}, { 1141, 5}, + { 1136, 5}, { 1131, 5}, { 1126, 5}, { 1121, 5}, { 1116, 5}, { 1111, 5}, { 1106, 5}, { 1101, 5}, + { 1096, 5}, { 1091, 5}, { 1086, 4}, { 1082, 5}, { 1077, 5}, { 1072, 4}, { 1068, 5}, { 1063, 4}, + { 1059, 5}, { 1054, 4}, { 1050, 4}, { 1046, 5}, { 1041, 4}, { 1037, 4}, { 1033, 5}, { 1028, 4}, + { 1024, 4}, { 1020, 4}, { 1016, 4}, { 1012, 4}, { 1008, 4}, { 1004, 4}, { 1000, 4}, { 996, 4}, + { 992, 4}, { 988, 4}, { 984, 4}, { 980, 4}, { 976, 4}, { 972, 4}, { 968, 3}, { 965, 3} + }; #elif F_CPU == 20000000 -const uint16_t speed_lookuptable_fast[256][2] PROGMEM = { - {62500, 54055}, {8445, 3917}, {4528, 1434}, {3094, 745}, {2349, 456}, {1893, 307}, {1586, 222}, {1364, 167}, - {1197, 131}, {1066, 105}, {961, 86}, {875, 72}, {803, 61}, {742, 53}, {689, 45}, {644, 40}, - {604, 35}, {569, 32}, {537, 28}, {509, 25}, {484, 23}, {461, 21}, {440, 19}, {421, 17}, - {404, 16}, {388, 15}, {373, 14}, {359, 13}, {346, 12}, {334, 11}, {323, 10}, {313, 10}, - {303, 9}, {294, 9}, {285, 8}, {277, 7}, {270, 8}, {262, 7}, {255, 6}, {249, 6}, - {243, 6}, {237, 6}, {231, 5}, {226, 5}, {221, 5}, {216, 5}, {211, 4}, {207, 5}, - {202, 4}, {198, 4}, {194, 4}, {190, 3}, {187, 4}, {183, 3}, {180, 3}, {177, 4}, - {173, 3}, {170, 3}, {167, 2}, {165, 3}, {162, 3}, {159, 2}, {157, 3}, {154, 2}, - {152, 3}, {149, 2}, {147, 2}, {145, 2}, {143, 2}, {141, 2}, {139, 2}, {137, 2}, - {135, 2}, {133, 2}, {131, 2}, {129, 1}, {128, 2}, {126, 2}, {124, 1}, {123, 2}, - {121, 1}, {120, 2}, {118, 1}, {117, 1}, {116, 2}, {114, 1}, {113, 1}, {112, 2}, - {110, 1}, {109, 1}, {108, 1}, {107, 2}, {105, 1}, {104, 1}, {103, 1}, {102, 1}, - {101, 1}, {100, 1}, {99, 1}, {98, 1}, {97, 1}, {96, 1}, {95, 1}, {94, 1}, - {93, 1}, {92, 1}, {91, 0}, {91, 1}, {90, 1}, {89, 1}, {88, 1}, {87, 0}, - {87, 1}, {86, 1}, {85, 1}, {84, 0}, {84, 1}, {83, 1}, {82, 1}, {81, 0}, - {81, 1}, {80, 1}, {79, 0}, {79, 1}, {78, 0}, {78, 1}, {77, 1}, {76, 0}, - {76, 1}, {75, 0}, {75, 1}, {74, 1}, {73, 0}, {73, 1}, {72, 0}, {72, 1}, - {71, 0}, {71, 1}, {70, 0}, {70, 1}, {69, 0}, {69, 1}, {68, 0}, {68, 1}, - {67, 0}, {67, 1}, {66, 0}, {66, 1}, {65, 0}, {65, 0}, {65, 1}, {64, 0}, - {64, 1}, {63, 0}, {63, 1}, {62, 0}, {62, 0}, {62, 1}, {61, 0}, {61, 1}, - {60, 0}, {60, 0}, {60, 1}, {59, 0}, {59, 0}, {59, 1}, {58, 0}, {58, 0}, - {58, 1}, {57, 0}, {57, 0}, {57, 1}, {56, 0}, {56, 0}, {56, 1}, {55, 0}, - {55, 0}, {55, 1}, {54, 0}, {54, 0}, {54, 1}, {53, 0}, {53, 0}, {53, 0}, - {53, 1}, {52, 0}, {52, 0}, {52, 1}, {51, 0}, {51, 0}, {51, 0}, {51, 1}, - {50, 0}, {50, 0}, {50, 0}, {50, 1}, {49, 0}, {49, 0}, {49, 0}, {49, 1}, - {48, 0}, {48, 0}, {48, 0}, {48, 1}, {47, 0}, {47, 0}, {47, 0}, {47, 1}, - {46, 0}, {46, 0}, {46, 0}, {46, 0}, {46, 1}, {45, 0}, {45, 0}, {45, 0}, - {45, 1}, {44, 0}, {44, 0}, {44, 0}, {44, 0}, {44, 1}, {43, 0}, {43, 0}, - {43, 0}, {43, 0}, {43, 1}, {42, 0}, {42, 0}, {42, 0}, {42, 0}, {42, 0}, - {42, 1}, {41, 0}, {41, 0}, {41, 0}, {41, 0}, {41, 0}, {41, 1}, {40, 0}, - {40, 0}, {40, 0}, {40, 0}, {40, 1}, {39, 0}, {39, 0}, {39, 0}, {39, 0}, - {39, 0}, {39, 0}, {39, 1}, {38, 0}, {38, 0}, {38, 0}, {38, 0}, {38, 0}, -}; + const uint16_t speed_lookuptable_fast[256][2] PROGMEM = { + {62500, 54055}, {8445, 3917}, {4528, 1434}, {3094, 745}, {2349, 456}, {1893, 307}, {1586, 222}, {1364, 167}, + {1197, 131}, {1066, 105}, {961, 86}, {875, 72}, {803, 61}, {742, 53}, {689, 45}, {644, 40}, + {604, 35}, {569, 32}, {537, 28}, {509, 25}, {484, 23}, {461, 21}, {440, 19}, {421, 17}, + {404, 16}, {388, 15}, {373, 14}, {359, 13}, {346, 12}, {334, 11}, {323, 10}, {313, 10}, + {303, 9}, {294, 9}, {285, 8}, {277, 7}, {270, 8}, {262, 7}, {255, 6}, {249, 6}, + {243, 6}, {237, 6}, {231, 5}, {226, 5}, {221, 5}, {216, 5}, {211, 4}, {207, 5}, + {202, 4}, {198, 4}, {194, 4}, {190, 3}, {187, 4}, {183, 3}, {180, 3}, {177, 4}, + {173, 3}, {170, 3}, {167, 2}, {165, 3}, {162, 3}, {159, 2}, {157, 3}, {154, 2}, + {152, 3}, {149, 2}, {147, 2}, {145, 2}, {143, 2}, {141, 2}, {139, 2}, {137, 2}, + {135, 2}, {133, 2}, {131, 2}, {129, 1}, {128, 2}, {126, 2}, {124, 1}, {123, 2}, + {121, 1}, {120, 2}, {118, 1}, {117, 1}, {116, 2}, {114, 1}, {113, 1}, {112, 2}, + {110, 1}, {109, 1}, {108, 1}, {107, 2}, {105, 1}, {104, 1}, {103, 1}, {102, 1}, + {101, 1}, {100, 1}, {99, 1}, {98, 1}, {97, 1}, {96, 1}, {95, 1}, {94, 1}, + {93, 1}, {92, 1}, {91, 0}, {91, 1}, {90, 1}, {89, 1}, {88, 1}, {87, 0}, + {87, 1}, {86, 1}, {85, 1}, {84, 0}, {84, 1}, {83, 1}, {82, 1}, {81, 0}, + {81, 1}, {80, 1}, {79, 0}, {79, 1}, {78, 0}, {78, 1}, {77, 1}, {76, 0}, + {76, 1}, {75, 0}, {75, 1}, {74, 1}, {73, 0}, {73, 1}, {72, 0}, {72, 1}, + {71, 0}, {71, 1}, {70, 0}, {70, 1}, {69, 0}, {69, 1}, {68, 0}, {68, 1}, + {67, 0}, {67, 1}, {66, 0}, {66, 1}, {65, 0}, {65, 0}, {65, 1}, {64, 0}, + {64, 1}, {63, 0}, {63, 1}, {62, 0}, {62, 0}, {62, 1}, {61, 0}, {61, 1}, + {60, 0}, {60, 0}, {60, 1}, {59, 0}, {59, 0}, {59, 1}, {58, 0}, {58, 0}, + {58, 1}, {57, 0}, {57, 0}, {57, 1}, {56, 0}, {56, 0}, {56, 1}, {55, 0}, + {55, 0}, {55, 1}, {54, 0}, {54, 0}, {54, 1}, {53, 0}, {53, 0}, {53, 0}, + {53, 1}, {52, 0}, {52, 0}, {52, 1}, {51, 0}, {51, 0}, {51, 0}, {51, 1}, + {50, 0}, {50, 0}, {50, 0}, {50, 1}, {49, 0}, {49, 0}, {49, 0}, {49, 1}, + {48, 0}, {48, 0}, {48, 0}, {48, 1}, {47, 0}, {47, 0}, {47, 0}, {47, 1}, + {46, 0}, {46, 0}, {46, 0}, {46, 0}, {46, 1}, {45, 0}, {45, 0}, {45, 0}, + {45, 1}, {44, 0}, {44, 0}, {44, 0}, {44, 0}, {44, 1}, {43, 0}, {43, 0}, + {43, 0}, {43, 0}, {43, 1}, {42, 0}, {42, 0}, {42, 0}, {42, 0}, {42, 0}, + {42, 1}, {41, 0}, {41, 0}, {41, 0}, {41, 0}, {41, 0}, {41, 1}, {40, 0}, + {40, 0}, {40, 0}, {40, 0}, {40, 1}, {39, 0}, {39, 0}, {39, 0}, {39, 0}, + {39, 0}, {39, 0}, {39, 1}, {38, 0}, {38, 0}, {38, 0}, {38, 0}, {38, 0}, + }; -const uint16_t speed_lookuptable_slow[256][2] PROGMEM = { - {62500, 10417}, {52083, 7441}, {44642, 5580}, {39062, 4340}, {34722, 3472}, {31250, 2841}, {28409, 2368}, {26041, 2003}, - {24038, 1717}, {22321, 1488}, {20833, 1302}, {19531, 1149}, {18382, 1021}, {17361, 914}, {16447, 822}, {15625, 745}, - {14880, 676}, {14204, 618}, {13586, 566}, {13020, 520}, {12500, 481}, {12019, 445}, {11574, 414}, {11160, 385}, - {10775, 359}, {10416, 336}, {10080, 315}, {9765, 296}, {9469, 278}, {9191, 263}, {8928, 248}, {8680, 235}, - {8445, 222}, {8223, 211}, {8012, 200}, {7812, 191}, {7621, 181}, {7440, 173}, {7267, 165}, {7102, 158}, - {6944, 151}, {6793, 145}, {6648, 138}, {6510, 133}, {6377, 127}, {6250, 123}, {6127, 118}, {6009, 113}, - {5896, 109}, {5787, 106}, {5681, 101}, {5580, 98}, {5482, 95}, {5387, 91}, {5296, 88}, {5208, 86}, - {5122, 82}, {5040, 80}, {4960, 78}, {4882, 75}, {4807, 73}, {4734, 70}, {4664, 69}, {4595, 67}, - {4528, 64}, {4464, 63}, {4401, 61}, {4340, 60}, {4280, 58}, {4222, 56}, {4166, 55}, {4111, 53}, - {4058, 52}, {4006, 51}, {3955, 49}, {3906, 48}, {3858, 48}, {3810, 45}, {3765, 45}, {3720, 44}, - {3676, 43}, {3633, 42}, {3591, 40}, {3551, 40}, {3511, 39}, {3472, 38}, {3434, 38}, {3396, 36}, - {3360, 36}, {3324, 35}, {3289, 34}, {3255, 34}, {3221, 33}, {3188, 32}, {3156, 31}, {3125, 31}, - {3094, 31}, {3063, 30}, {3033, 29}, {3004, 28}, {2976, 28}, {2948, 28}, {2920, 27}, {2893, 27}, - {2866, 26}, {2840, 25}, {2815, 25}, {2790, 25}, {2765, 24}, {2741, 24}, {2717, 24}, {2693, 23}, - {2670, 22}, {2648, 22}, {2626, 22}, {2604, 22}, {2582, 21}, {2561, 21}, {2540, 20}, {2520, 20}, - {2500, 20}, {2480, 20}, {2460, 19}, {2441, 19}, {2422, 19}, {2403, 18}, {2385, 18}, {2367, 18}, - {2349, 17}, {2332, 18}, {2314, 17}, {2297, 16}, {2281, 17}, {2264, 16}, {2248, 16}, {2232, 16}, - {2216, 16}, {2200, 15}, {2185, 15}, {2170, 15}, {2155, 15}, {2140, 15}, {2125, 14}, {2111, 14}, - {2097, 14}, {2083, 14}, {2069, 14}, {2055, 13}, {2042, 13}, {2029, 13}, {2016, 13}, {2003, 13}, - {1990, 13}, {1977, 12}, {1965, 12}, {1953, 13}, {1940, 11}, {1929, 12}, {1917, 12}, {1905, 12}, - {1893, 11}, {1882, 11}, {1871, 11}, {1860, 11}, {1849, 11}, {1838, 11}, {1827, 11}, {1816, 10}, - {1806, 11}, {1795, 10}, {1785, 10}, {1775, 10}, {1765, 10}, {1755, 10}, {1745, 9}, {1736, 10}, - {1726, 9}, {1717, 10}, {1707, 9}, {1698, 9}, {1689, 9}, {1680, 9}, {1671, 9}, {1662, 9}, - {1653, 9}, {1644, 8}, {1636, 9}, {1627, 8}, {1619, 9}, {1610, 8}, {1602, 8}, {1594, 8}, - {1586, 8}, {1578, 8}, {1570, 8}, {1562, 8}, {1554, 7}, {1547, 8}, {1539, 8}, {1531, 7}, - {1524, 8}, {1516, 7}, {1509, 7}, {1502, 7}, {1495, 7}, {1488, 7}, {1481, 7}, {1474, 7}, - {1467, 7}, {1460, 7}, {1453, 7}, {1446, 6}, {1440, 7}, {1433, 7}, {1426, 6}, {1420, 6}, - {1414, 7}, {1407, 6}, {1401, 6}, {1395, 7}, {1388, 6}, {1382, 6}, {1376, 6}, {1370, 6}, - {1364, 6}, {1358, 6}, {1352, 6}, {1346, 5}, {1341, 6}, {1335, 6}, {1329, 5}, {1324, 6}, - {1318, 5}, {1313, 6}, {1307, 5}, {1302, 6}, {1296, 5}, {1291, 5}, {1286, 6}, {1280, 5}, - {1275, 5}, {1270, 5}, {1265, 5}, {1260, 5}, {1255, 5}, {1250, 5}, {1245, 5}, {1240, 5}, - {1235, 5}, {1230, 5}, {1225, 5}, {1220, 5}, {1215, 4}, {1211, 5}, {1206, 5}, {1201, 5}, -}; + const uint16_t speed_lookuptable_slow[256][2] PROGMEM = { + {62500, 10417}, {52083, 7441}, {44642, 5580}, {39062, 4340}, {34722, 3472}, {31250, 2841}, {28409, 2368}, {26041, 2003}, + {24038, 1717}, {22321, 1488}, {20833, 1302}, {19531, 1149}, {18382, 1021}, {17361, 914}, {16447, 822}, {15625, 745}, + {14880, 676}, {14204, 618}, {13586, 566}, {13020, 520}, {12500, 481}, {12019, 445}, {11574, 414}, {11160, 385}, + {10775, 359}, {10416, 336}, {10080, 315}, {9765, 296}, {9469, 278}, {9191, 263}, {8928, 248}, {8680, 235}, + {8445, 222}, {8223, 211}, {8012, 200}, {7812, 191}, {7621, 181}, {7440, 173}, {7267, 165}, {7102, 158}, + {6944, 151}, {6793, 145}, {6648, 138}, {6510, 133}, {6377, 127}, {6250, 123}, {6127, 118}, {6009, 113}, + {5896, 109}, {5787, 106}, {5681, 101}, {5580, 98}, {5482, 95}, {5387, 91}, {5296, 88}, {5208, 86}, + {5122, 82}, {5040, 80}, {4960, 78}, {4882, 75}, {4807, 73}, {4734, 70}, {4664, 69}, {4595, 67}, + {4528, 64}, {4464, 63}, {4401, 61}, {4340, 60}, {4280, 58}, {4222, 56}, {4166, 55}, {4111, 53}, + {4058, 52}, {4006, 51}, {3955, 49}, {3906, 48}, {3858, 48}, {3810, 45}, {3765, 45}, {3720, 44}, + {3676, 43}, {3633, 42}, {3591, 40}, {3551, 40}, {3511, 39}, {3472, 38}, {3434, 38}, {3396, 36}, + {3360, 36}, {3324, 35}, {3289, 34}, {3255, 34}, {3221, 33}, {3188, 32}, {3156, 31}, {3125, 31}, + {3094, 31}, {3063, 30}, {3033, 29}, {3004, 28}, {2976, 28}, {2948, 28}, {2920, 27}, {2893, 27}, + {2866, 26}, {2840, 25}, {2815, 25}, {2790, 25}, {2765, 24}, {2741, 24}, {2717, 24}, {2693, 23}, + {2670, 22}, {2648, 22}, {2626, 22}, {2604, 22}, {2582, 21}, {2561, 21}, {2540, 20}, {2520, 20}, + {2500, 20}, {2480, 20}, {2460, 19}, {2441, 19}, {2422, 19}, {2403, 18}, {2385, 18}, {2367, 18}, + {2349, 17}, {2332, 18}, {2314, 17}, {2297, 16}, {2281, 17}, {2264, 16}, {2248, 16}, {2232, 16}, + {2216, 16}, {2200, 15}, {2185, 15}, {2170, 15}, {2155, 15}, {2140, 15}, {2125, 14}, {2111, 14}, + {2097, 14}, {2083, 14}, {2069, 14}, {2055, 13}, {2042, 13}, {2029, 13}, {2016, 13}, {2003, 13}, + {1990, 13}, {1977, 12}, {1965, 12}, {1953, 13}, {1940, 11}, {1929, 12}, {1917, 12}, {1905, 12}, + {1893, 11}, {1882, 11}, {1871, 11}, {1860, 11}, {1849, 11}, {1838, 11}, {1827, 11}, {1816, 10}, + {1806, 11}, {1795, 10}, {1785, 10}, {1775, 10}, {1765, 10}, {1755, 10}, {1745, 9}, {1736, 10}, + {1726, 9}, {1717, 10}, {1707, 9}, {1698, 9}, {1689, 9}, {1680, 9}, {1671, 9}, {1662, 9}, + {1653, 9}, {1644, 8}, {1636, 9}, {1627, 8}, {1619, 9}, {1610, 8}, {1602, 8}, {1594, 8}, + {1586, 8}, {1578, 8}, {1570, 8}, {1562, 8}, {1554, 7}, {1547, 8}, {1539, 8}, {1531, 7}, + {1524, 8}, {1516, 7}, {1509, 7}, {1502, 7}, {1495, 7}, {1488, 7}, {1481, 7}, {1474, 7}, + {1467, 7}, {1460, 7}, {1453, 7}, {1446, 6}, {1440, 7}, {1433, 7}, {1426, 6}, {1420, 6}, + {1414, 7}, {1407, 6}, {1401, 6}, {1395, 7}, {1388, 6}, {1382, 6}, {1376, 6}, {1370, 6}, + {1364, 6}, {1358, 6}, {1352, 6}, {1346, 5}, {1341, 6}, {1335, 6}, {1329, 5}, {1324, 6}, + {1318, 5}, {1313, 6}, {1307, 5}, {1302, 6}, {1296, 5}, {1291, 5}, {1286, 6}, {1280, 5}, + {1275, 5}, {1270, 5}, {1265, 5}, {1260, 5}, {1255, 5}, {1250, 5}, {1245, 5}, {1240, 5}, + {1235, 5}, {1230, 5}, {1225, 5}, {1220, 5}, {1215, 4}, {1211, 5}, {1206, 5}, {1201, 5}, + }; #endif -#endif +#endif // SPEED_LOOKUPTABLE_H