To connect a PT100 sensor to a Duet, you need a RTD interface board based on the MAX31865 chip. The interface board you need depends on which Duet you have.

Duet 2 (WiFi, Ethernet and Maestro) and Duet 3

These Duets support up to two MAX31865-based daughter boards. Each daughter board supports two PT100 temperature sensors:

The upper image shows the older broad version (pre v1.1) with solder jumpers to select between 2 wire and 4 wire PT100 sensors. The lower image shows the version 1.1 which has normal jumpers.

We supply a plastic pillar with each daughter board, to secure the daughter board to the Duet or to the daughter board below it. If the prongs of the pillar won't go into the hole in the circuit board easily, gently squeeze the prongs together with a pair of pliers first.

On the lower board, the terminal blocks labelled RTD1 and RTD2 will be temperature measurement channels 200 and 201 respectively. If you stack two PT100 daughter boards, the terminal blocks on the upper board will be channels 202 and 203. The Duex 5 & Duex 2 have an additional 4 channels allowing two more boards to be stacked for channels 204-207.

This image shows a thermocouple daughter board stacked on top of a PT100 board. The right-hand connector of the PT100 board has a 2-wire PT100 sensor connected to it. The left hand connector has a test resistor connected to it (see later).

Each channel of the PT100 daughter board has a 4-position terminal block. We'll number the terminals 1, 2, 3 and 4 in order (it doesn't matter which end you start from, because PT100 sensors don't care about polarity). Terminals 1 and 4 supply current to the sensor, and the voltage developed across the sensor is measured between the terminals 2 and 3.

To connect a 2-wire PT100 sensor:

  • Connect the PT100 wires to terminals 2 and 3
  • Configure the channel for 2-wire operation:
    • Recent production PT100 daughter boards (v1.1 or later see the image above) have 2 sets of 2 jumper pins per channel. Install jumpers on those pins.
    • On an older production PT100 daughter board, either bridge each pair of solder pads next to the terminal block, or add a wire between terminals 1 and 2, and another between terminals 3 and 4.
    • On a pre-production PT100 board there is already a trace bridging each pair of solder pads.

To connect a 4-wire PT100 sensor:

  • Connect the two wires that go to one end of the PT100 resistance element to terminals 1 and 2 (it doesn't normally matter which wire in each pair goes to which terminal)
  • Connect the two wires that go to the other end of the PT100 resistance element to terminals 3 and 4
  • Configure the channel for 4-wire operation:
    • Recent production PT100 daughter boards have 2 sets of 2 jumper pins per channel. Remove the jumpers from those pins.
    • On an older production PT100 daughter board, ensure that the 2 pairs of solder pads next to each terminal block are not bridged.
    • On a pre-production daughter board, cut the fine traces that bridge each pair of solder pads next to the terminal block.

See https://miscsolutions.wordpress.com/2016... for additional information about using a 4-wire PT100 connection.

To test the functionality of one of the PT100 channels

  • Connect the 100 ohm test resistor (supplied with the daughter board) to terminals 2 and 3
  • Fit the 2 jumpers as for a 2-wire PT100 sensor
  • RepRapFirmware should report a temperature very close to 0 degC for that channel.

Firmware configuration

RepRapFirmware 3.x

In RepRapFirmware 3 you first create a sensor using M308 then assign it to a heater using M905

For example:

;Duet 2
M308 S1 P"spi.cs1" Y"rtd-max31865" ; create sensor number 1 as a PT100 sensor in the first position on the Duet 2 daughter board connector

;Duet 3
M308 S3 P"3.spi.cs1" Y" rtd-max31865" ; define temperature sensor number 3 as a PT100 on the first port of a temperature daughter board plugged into the expansion board with CAN bus address 3.

For more detail see RepRapFirmware 3 overview, M308 (Create or modify sensor or report sensor parameters)

RepRapFirmware 2.x and 1.x

To tell the firmware to use a RTD channel for one of the heaters, use the X parameter in the M305 command for that heater to specify the required channel (200 to 203 on the Duet 2, 204-207 on the Duex 5 or Duex 2).

For example:

M305 P1 X200

This tells the firmware that for heater 1 (which is normally the first hot end heater) it should sense the temperature using the PT100 board whose CS pin is connected to NPCS0. The S, T, B, H and L parameters of the M305 command are not used. In firmware 1.20 and later, you can optionally use the R parameter to specify the value of the reference resistor if it is not 400 ohms.


The daughter board comes with a 100Ω resistor that you can wire in place of a two wire sensor to check the board is working correctly. With the resistor in place, the reading should be 0°C.

If the reading at room temperature is higher than it should be, then you probably have a bad connection between the RTD interface board and the sensor, or the wires to the sensor are too long or too thin. Each additional ohm of wiring resistance will increase the temperature reading by 2.5C. Using a 4 wire solution PT100 sensor will improve this. If you only have a 2 wire P100 sensor you can still improve the accuracy by using 4 wires for the majority of the distance as https://miscsolutions.wordpress.com/2016...

  • No labels
Write a comment…