How to configure Marlin for PT100/PT1000 temperature sensors

In order to configure Marlin for PT1000 temperature sensors, you need to make a few changes to the configuration file, which you can find in Configuration.h.

In that file, search for the following section:

//===========================================================================
//============================= Thermal Settings ============================
//===========================================================================
// @section temperature

In that section, you’ll first find a table of which temperature sensor type ID belongs to which type of temperature sensor.

The important part of the table for PT100/PT1000 RTDs is the following:

/*  Analog RTDs (Pt100/Pt1000)
 *  -------
 *   110 : Pt100  with 1kΩ pullup (atypical)
 *   147 : Pt100  with 4.7kΩ pullup
 *  1010 : Pt1000 with 1kΩ pullup (atypical)
 *  1047 : Pt1000 with 4.7kΩ pullup (E3D)
 *    20 : Pt100  with circuit in the Ultimainboard V2.x with mainboard ADC reference voltage = INA826 amplifier-board supply voltage.
 *                NOTE: (1) Must use an ADC input with no pullup. (2) Some INA826 amplifiers are unreliable at 3.3V so consider using sensor 147, 110, or 21.
 *    21 : Pt100  with circuit in the Ultimainboard V2.x with 3.3v ADC reference voltage (STM32, LPC176x....) and 5V INA826 amplifier board supply.
 *                NOTE: ADC pins are not 5V tolerant. Not recommended because it's possible to damage the CPU by going over 500°C.
 *   201 : Pt100  with circuit in Overlord, similar to Ultimainboard V2.x
 */

The first step is to select the correct number for your board. For most boards, you would select 147 for PT100 and 1047 for PT1000.

Now you need to tell Marlin for which temperature sensors the PT100/PT1000 should be used. The relevant section is just beneath the table.

#define TEMP_SENSOR_0 1047
#define TEMP_SENSOR_1 1047
#define TEMP_SENSOR_2 0
#define TEMP_SENSOR_3 0
#define TEMP_SENSOR_4 0
#define TEMP_SENSOR_5 0
#define TEMP_SENSOR_6 0
#define TEMP_SENSOR_7 0
#define TEMP_SENSOR_BED 5
#define TEMP_SENSOR_PROBE 0
#define TEMP_SENSOR_CHAMBER 0
#define TEMP_SENSOR_COOLER 0
#define TEMP_SENSOR_REDUNDANT 0

In my example above, I’ve configured a PT1000 with 4.7kΩ pullup (ID 1047) for TEMP_SENSOR_0 and TEMP_SENSOR_1 (which are the temperature sensors of extruder 0 and extruder 1, respectively). The temperature sensor for the heated bed is left at ID 5, which is some standard Thermistor.

After changing these values, you need to build and flash Marlin to your Board. How to do this exactly depends on the board you’re using. Please refer to other articles specifically written for your 3D printer board for details.