Sparkfun MAX31855K and Pico Pin Connections

What pins on the Pico need to be connected to the MAX31855K thermocouple amplifier board?

1 Like

Hi John,

Your connections should be something like this, but with a Pico:

You’ll need to use the SPI pins on the pico, shown below:

Let us know if you need anything else :slight_smile:


You can find the schematic here: Raspberry Pi Pico Based Temperature Controller : 7 Steps (with Pictures) - Instructables
And in case, you need a broader idea about the Raspberry Pi Pinout and features, you can visit here: Getting Started with Raspberry Pi Pico - The Engineering Projects

Thanks. I had come across the links you sent me but there is inconsistency.

The schematic indicates that the CS connection on the MAX31855Y should go to GP7 whereas the code ( has CS set to 1.

tc = MAX31855(SPInum=0,CS=1,MISO=4,SCK=6)

I did need your advice to follow the tutorial. I wired according to the schematic (SCK to GP6, SO to GP4 and CS to GP7). I had to change the sample code to get readings:

tc = MAX31855(SPInum=0,CS=7,MISO=4,SCK=6)

I also had to connect the red wire of the thermocouple to the negative on the MAX3185 and the yellow to the positive - contrary to what guides indicated.

My test program that is successfully geting temperature readings is simply

import machine
import time
from max31855 import *

tc = MAX31855(SPInum=0,CS=7,MISO=4,SCK=6)

while True:

Hi John,

Glad to hear you got it working, I think the change in the code would be because there is a difference between the Picos physical pin numbers, and the pin role allocation.
So Pin 1 is allocated to GP0, whereas GP1 (which is physical pin 2) has the role of SPI0 CSn. SPI0 CSn is also found on physical pins 7 and 22. This might explain why the code initially suggested 1 but 7 worked.


Yes, the code was referring to GP1 (physical pin 2) for the CS connection. However the schematic shows that CS on the MAX31855 should be connected to GP7 on the Pico.

The library defaults to pin 1 (GP1) but for the sample project using GP7 needs to set CS to 7 (GP7).

I assume from what you are saying that the code would work unchanged with CS connected to GP1. To use GP22 I believe SPInum would need to be set to 1 rather than 0.

The author of the tutorial provided both the schematic and the code so I had assumed that these were in sync. Obviously not but it is still a great tutorial.