Skip to content

Commit

Permalink
This table is made for thermistor 3950 (can be found on ebay for cheap)
Browse files Browse the repository at this point in the history
it's caracteristics are :

R25℃ ;100KΩ±1%

B Value(R25/50℃):3990K 1%
Dissipation Factor(mW/℃):1.1~1.6 In still Air
Thermal Time Constant(S):10~17 In Still Air
Operating temperature range:  (-50~+260°C)
Dimension:  1.8mm Dia X4.1mm
Lead Length  :30mm

This table was found on the following blogs:
http://cae2100.wordpress.com/2014/03/08/beta3950-thermistor-table-for-marlin/

and

http://microfabricator.com/articles/view/id/531ad7e59aad9d3131000000/beta-3950-thermistor-table-for-marlin
  • Loading branch information
Nutz95 committed Apr 13, 2014
1 parent 086ff16 commit 3161740
Show file tree
Hide file tree
Showing 2 changed files with 127 additions and 72 deletions.
1 change: 1 addition & 0 deletions Marlin/Configuration.h
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,7 @@
// 8 is 100k 0603 SMD Vishay NTCS0603E3104FXT (4.7k pullup)
// 9 is 100k GE Sensing AL03006-58.2K-97-G1 (4.7k pullup)
// 10 is 100k RS thermistor 198-961 (4.7k pullup)
// 11 is 100k beta 3950 1% thermistor (4.7k pullup)
// 20 is the PT100 circuit found in the Ultimainboard V2.x
// 60 is 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
//
Expand Down
198 changes: 126 additions & 72 deletions Marlin/thermistortables.h
Original file line number Diff line number Diff line change
Expand Up @@ -563,78 +563,132 @@ const short temptable_10[][2] PROGMEM = {
{1016*OVERSAMPLENR, 0}
};
#endif

#if (THERMISTORHEATER_0 == 20) || (THERMISTORHEATER_1 == 20) || (THERMISTORHEATER_2 == 20) || (THERMISTORBED == 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 (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 (THERMISTORHEATER_0 == 11) || (THERMISTORHEATER_1 == 11) || (THERMISTORHEATER_2 == 11) || (THERMISTORBED == 11) // QU-BD silicone bed QWG-104F-3950 thermistor
const short temptable_8[][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}
};
#endif

#if (THERMISTORHEATER_0 == 20) || (THERMISTORHEATER_1 == 20) || (THERMISTORHEATER_2 == 20) || (THERMISTORBED == 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 (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 (THERMISTORHEATER_0 == 51) || (THERMISTORHEATER_1 == 51) || (THERMISTORHEATER_2 == 51) || (THERMISTORBED == 51)
// 100k EPCOS (WITH 1kohm RESISTOR FOR PULLUP, R9 ON SANGUINOLOLU! NOT FOR 4.7kohm PULLUP! THIS IS NOT NORMAL!)
Expand Down

0 comments on commit 3161740

Please sign in to comment.