E3D PT100 Amplifier Documentation
Documentation for the more advanced PT100 Temperature Sensor
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 analog 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.
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.
NOTE: In Marlin 1.1.x, the file for a RAMPS 1.4 board is called "pins_RAMPS.h," modify this instead.
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!
Please note the A3 pin will not necessarily be the analogue pin that you are connecting to, for example on a RUMBA board you would connect to the A10 pin, so check the board schematic for the number of the Analog pin that you are using.
- Take a resistance reading from your PT100 cartridge (removed from the amplifier board) it should read roughly 100ohms at room temperature.
- Make sure the 5v pin is outputting a stable 5v.
- When the board is connected to GND and a 5v line at room temperature if you probe signal and GND it should read roughly 1.2v.
- Make sure you have fully defined the signal pin, Pin 3 won't always be the Pin that your board uses, double check your specific board's schematics what pin you need to define.
- The signal pin must be connected to a spare analog pin, you cannot use a digital pin.
Assuming a stable 5V supply - the output from the board will be as follows.