E3D PT100 Amplifier Documentation

From E3D-Online
Jump to: navigation, search
This Wiki is not looked after anymore :( Please navigate to
for up to date and improved documentation

The PT100 amplifier board reads a PT100 sensor and outputs a voltage from 0-5v on the signal pin. The board has been designed to have the same gain and signal output as the Ultimaker2 electronics. This means that it is compatible with the same temperature table that already exists in marlin firmware.


It is important to understand that the PT100 amplifier is not a thermistor, and cannot just be plugged into the normal thermistor inputs of your electronics.

The PT100 board needs the 0v and 5v pins to be connected to a power source, the current requirements are very small, so you can just connect this to any 5v and 0v pins on your controller board. This provides power to the board so it can do it's amplifying thing.

The Signal output pin then needs to be connected to a spare analogue input pin on your electronics board. Look at your specific controller boards circuit diagram, and find a pin that is currently unused that begins with a capital 'A'. These are usually available on expansion or auxiliary headers, labelled AUX or EXP. For example on a RAMPS board you might use the pin 'A3' which is located on header AUX-1.

Suggestions for PT100 connections on a RAMPS board.


You now need to tell Marlin which pin you have connected your PT100 signal to, and tell it that you are using a PT100 Amplifier.

First, so that Marlin knows which pin to look at, we need to edit the "pins.h" file of the firmware. This can be done in the standard Arduino editor. The pins.h file contains pin definitions for a whole range of boards, it is important that you edit the correct part of the file that deals with your specific controller board. For RAMPS 1.4 we scroll through the file until we find the part of the file that deals with RAMPS boards, this starts at around line 550.

Then we find the line that specifically deals with the first temperature sensor (0). This is on line 708 for this specific case, and looks like this:

#define TEMP_0_PIN         13   // ANALOG NUMBERING

We can see that currently marlin will look at analog pin 13 for the temperature sensor. We have connected our new sensor to analog pin 'A3' on the controller board, so we change the number 13 to 3:

#define TEMP_0_PIN         3   // ANALOG NUMBERING

That's it for pins.h, just remember to find and use the right board section. If you're using dual extruders both with PT100s then you'll obviously have to reconfigure the other pins too.

Now we need to tell marlin what type of sensor we have connected. This is done in the configuration.h file of the firmware. In the thermal settings area of the file where you would normally configure your thermistor type:

#define TEMP_SENSOR_0 5

Currently in my case it is set to sensor type 5, which is for the standard E3D Semitec thermistor. We need to change this to the PT100 setting which is sensor type 20:

#define TEMP_SENSOR_0 20

That's all for the firmware. You should now be able to compile and upload it, and with everything connected to the board you should now be seeing temperatures reading properly from your new PT100 sensor!

Output Characteristics

Assuming a stable 5V supply - the output from the board will be as follows.

Temp. VOut.
0 0.00
1 1.11
10 1.15
20 1.20
30 1.24
40 1.28
50 1.32
60 1.36
70 1.40
80 1.44
90 1.48
100 1.52
110 1.56
120 1.61
130 1.65
140 1.68
150 1.72
160 1.76
170 1.80
180 1.84
190 1.88
200 1.92
210 1.96
220 2.00
230 2.04
240 2.07
250 2.11
260 2.15
270 2.18
280 2.22
290 2.26
300 2.29
310 2.33
320 2.37
330 2.41
340 2.44
350 2.48
360 2.51
370 2.55
380 2.58
390 2.62
400 2.66
500 3.00
600 3.33
700 3.63
800 3.93
900 4.21
1000 4.48
1100 4.73


PT100 Drawing