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, ie between pin 1 and 2 and between pin 3 and 4.
- 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.
Duet 0.6 or 0.8.5
Purchase a third-party MAX31865-based PT100 interface board. The Duet uses 3.3V signalling, so get a board without 5V level shifters. The reference resistor on the board should be 400 ohms. RepRapFirmware versions 1.20 and later also allow the use of other values of the reference resistor, such as 430 ohms.
These boards are readily available on eBay. You will need one MAX31865 for each RTD sensor you want to connect. You can also buy boards with two MAX31865 chips, providing two channels on a single board.
These boards generally work with both 2- and 4-wire RTDs so they have a 4-pin terminal block. When using a 2-wire RTD, connect it to the RTD+ and RTD- terminals, and also add a wire link between the Force+ terminal and the RTD+ terminal, and another between the Force- terminal and the RTD- terminal.
The MAX31865 boards are connected to a Duet 0.6 or 0.8.5 as follows. If the 50-way expansion connector on the Duet is already occupied by a ribbon cable to connect a DueX4 expansion board, you can connect the MAX31865 board to the 26-way expansion connector on the DueX4 instead.
|MAX31865 signal name||Duet signal name||Duet 50-way expansion connector pin||DueX4 26-way expansion connector pin|
|CS (see below)||NPCS0,NPCS1,TXD1,RXD1||27,26,11,12||20,11,6,7|
Connect the CS pin to one of the pins listed above, a different one for each MAX31865 board. The pins listed are for temperature sensor channels 200, 201, 202 and 203 respectively. If you have Roland mill support enabled in the firmware, only two channels (200 and 201) are available because the mill uses the other two pins.
You may connect both thermocouple and RTD boards to the SPI bus at the same time, but each device must have its own CS pin. For example, you can have a thermocouple board on channel 100 and a RTD board on channel 201.
Your RTD interface board may also have a DR (Data Ready) pin. Leave it unconnected.
The communication between the Duet and the RTD interface board uses 4MHz SPI signalling, so the wires should be kept short.
;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.
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).
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...