Use temperature sensor data attached to SBC in Klipper


I’m running a printer with SKR 2 motherboard and an ODROID M1 as SBC to run Klipper. The SBC has Ubuntu installed. I brought a BIQU H2 500 extruder that came with a PT100 sensor. It also came with a MAX31865 board for reading accurate values from temperature sensor. However I do not have any spare driver slot to just slot it into. It needs to go into one of 5 slots on SKR 2 board which are all occupied by TMC2209 drivers.

What I need to know is that is there any way I can connect the MAX31865 board to ODROID M1 GPIO pins and then let the klipper read the hotend temperature from there and control the hotend?


I’m a bit curious now. How can a sensor board fit into a driver board socket? The required connections/signals are quite different.

Do you have a link to the MAX31865 board you use?

1 Like

The MAX board only needs a free SPI connection.
Typically the EXP ports also expose SPI pins, so if you are not using a display you can use them

1 Like

The MAX31865 uses SPI to communicate. The driver sockets have an SPI and UART connections.

1 Like

I don’t have a free driver socket.

Can you give me a pin out diagram of EXP socket?

This may help:

And this:

BTW: Easy to find in the Internet.

1 Like

I found different versions with different nomenclature of exp1 and exp2.

You will need the schematic as well to identify the SPI capable pins.
See SKR-2/Hardware at master · bigtreetech/SKR-2 · GitHub for the official resources.


Use above mentioned link from Sineos. I also use an SKR 2. Schematics and other infos are correct.
Attached schematics and pin diagram are from that link. I just added further information and changes on my SKR 2 (please don’t blame me, if I made a mistake :smiling_face_with_tear:).
BIGTREETECH SKR 2-SCH_hcet14_220619.pdf (173.9 KB)
BIGTREETECH SKR 2-Pin_hcet14_220524.pdf (958.8 KB)

1 Like

what shall i use in spi_bus parameter in spi settings in klipper?

Hi shekharsuman, I don’t understand, how you want to connect everything. Could you make a simple block diagram?
Good luck with your MAX31865 board.

at first i wanted to connect max31865 to my odroid m1 board as there was no slot for max on my skr2 but now people have suggested to use exp2 slot on skr2 to connect max.

Sorry, I don’t know your odroid m1 board. If you don’t use anything on EXP2 on your SKR 2, I agree with above statements.

I’m an absolute beginner with Klipper. I don’t know how to instantiate this, maybe someone here can give a hint.

If you check the schematic, you will see that:

  • SD-CS = PA4
  • SD-SCK = PA5
  • SD-MISO = PA6
  • SD-MOSI = PA7

Using this information a basic setting for the PT100 in the extruder would look like:

sensor_type: MAX31865
sensor_pin: PA4
spi_speed: 4000000
spi_software_sclk_pin: PA5
spi_software_mosi_pin: PA7
spi_software_miso_pin: PA6
rtd_nominal_r: 100
rtd_reference_r: 430
rtd_num_of_wires: 2
rtd_use_50Hz_filter: True

The rtd_* needs to be tuned according to your setup. Check the Klipper Docs for an explanation.

This might help.

1 Like

I made the changes and connected the MAX31865 board but I’m getting -218C temperature. :confused:

try swapping the leads, and ensure the dip switches are set correctly.

1 Like

Thanks. Changed the dip switches to correct position and now can read the correct temperature. :slight_smile: