THERMO click

Description of product

THERMO click features the MAX31855K thermocouple-to-digital converter as well as PCC-SMP connector for K-type thermocouple probes. The click is designed to run on a 3.3V power supply. It communicates with the target MCU over an SPI interface (Read-only).

THERMO click is a compact solution for adding thermocouple to your device.

Note: K-type thermocouple probe is not included in the package.

MAX31855K thermocouple-to-digital converter

The MAX31855 is a sophisticated thermocouple-to-digital converter with a built-in 14-bit analog-to-digital converter (ADC).

The MAX31855K has a temperature range between -270 and 1372°C with sensitivity of about 41μV/°C.

The device also contains cold-junction compensation sensing and correction, a digital controller, an SPI compatible interface, and associated control logic.

The combination of the MAX31855K and PCC-SMP connector results in support for high-accuracy temperature measurement.

Thermocouple probe

In order to use THERMO click you need to connect the appropriate K-type thermocouple probe (not included in the package) into the PCC-SMP connector.

Cold-Junction Compensation

The function of the thermocouple is to sense a difference in temperature between two ends of the thermocouple wires. The thermocouple’s “hot” junction can be read across the operating temperature range.

The reference junction, or “cold” end (which should be at the same temperature as the board on which the device is mounted) can range from -55°C to +125°C. While the temperature at the cold end fluctuates, the device continues to accurately sense the temperature difference at the opposite end.


THERMO click is ideal for thermostatic, process-control, monitoring applications and more.

Key features

  • MAX31855K
    • 14-Bit, 0.25°C Resolution Converter
    • Temperature range between -270 and 1372°C
    • Detects Thermocouple Shorts to GND or VCC
  • PCC-SMP connector
  • Interface: SPI
  • 3.3V power supply
Type Temperature
Applications THERMO Click with K-Type Thermocouple probe is ideal for thermostatic, process-control, monitoring applications and more
On-board modules MAX31855K thermocouple-to-digital converter and PCC-SMP connector for K-type thermocouple probes
Key Features Cold-Junction Compensation. 14-Bit, 0.25°C Resolution. Detects Thermocouple Shorts to GND or VCC. On-board PCC-SMP connector for K-type thermocouple probes
Key Benefits Supports K-type thermocouple probes, measuring temperatures from -200°C to +700°C
Interface SPI
Input Voltage 3.3V
Compatibility mikroBUS
Click board size S (28.6 x 25.4 mm)


Pinout diagram

This table shows how the pinout on THERMO click corresponds to the pinout on the mikroBUS™ socket (the latter shown in the two middle columns).

Notes Pin Mikrobus logo.png
Pin Notes
Not connected NC 1 AN PWM 16  NC          Not connected  
Not connected NC 2 RST INT 15 NC Not connected
Active-Low Chip Select       CS#          3 CS TX 14 NC Not connected
Serial-Clock Input SCK 4 SCK RX 13 NC Not connected
Serial-Data Output SDO 5 MISO SCL 12 NC Not connected
Not connected NC 6 MOSI SDA 11 NC Not connected
Power supply +3.3V 7 3.3V 5V 10 NC Not connected
Ground GND 8 GND GND 9 GND Ground


Code examples for THERMO click, written for MikroElektronika hardware and compilers are available on Libstock.

This code snippet configures the MCU, initializes the LCD and SPI module and in an infinite loop reads the temperature value and displays it on the LCD.

01 void main() {
02   PLLEN_bit = 1;                     // Enable PLL
03   Delay_ms(150);
05   CM1CON = 0;                        // Turn off comparators
06   CM2CON = 0;
07   ANSELB = 0;                        // Configure PORTB pins as digital
08   ANSELC = 0;                        // Configure PORTC pins as digital
10   THERMO_CS_Dir = 0;
11   THERMO_CS = 1;
13   Lcd_Init();                        // Initialize Lcd
15   Lcd_Cmd(_LCD_CLEAR);               // Clear display
16   Lcd_Cmd(_LCD_CURSOR_OFF);          // Cursor off
17   Lcd_Out(1,1,"Thermo test");        // Write text in first row
18   Lcd_Out(2,1,"starting...");        // Write text in second row
19   Delay_ms(2000);
21   SPI1_Init_Advanced(_SPI_MASTER_OSC_DIV16, _SPI_DATA_SAMPLE_MIDDLE, _SPI_CLK_IDLE_LOW, _SPI_LOW_2_HIGH);  // Initialize SPI communication
22   SPI_Set_Active(&SPI1_Read, &SPI1_Write);      // Sets the SPI1 module active
24   Lcd_Cmd(_LCD_CLEAR);
25   Lcd_Out(1,1,"Reading");                       // Write text in first row
26   Lcd_Out(2,1,"temperature ...");               // Write text in second row
27   Delay_ms(2000);
29   Lcd_Cmd(_LCD_CLEAR);
31   while(1) {
32     MAX31855_Read();
33     //
34     if((temp_byte[1] & 0x01) == 0x01){          // Fault detection
35       Lcd_Cmd(_LCD_CLEAR);
36       Lcd_Out(2,1,"Error!");
37       if((temp_byte[3] & 0x01) == 0x01){        // Open circuit fault?
38          Lcd_Out(1,1,"Open circuit");           // Write text in first row
39          Delay_ms(1000);
40       }
41       //
42       if((temp_byte[3] & 0x02) == 0x02){        // Short to GND fault?
43          Lcd_Out(1,1,"Short to GND");           // Write text in first row
44          Delay_ms(1000);
45       }
46       //
47       if((temp_byte[3] & 0x04) == 0x04){        // Short to Vcc fault?
48          Lcd_Out(1,1,"Short to Vcc");           // Write text in first row
49          Delay_ms(1000);
50       }
51     }
52     else{
53        Display_Temp_Value();
54     }
55     Delay_ms(500);
56   }
57 }