This version (21 Mar 2023 03:08) was approved by Trisha Cabildo.The Previously approved version (21 Mar 2023 01:53) is available.Diff

MAX31855PMB1 Thermocouple-to-Digital PMOD User Guide

The MAX31855PMB1 peripheral module provides the necessary hardware to interface the MAX31855 cold-junction compensated thermocouple-to-digital converter to any system that utilizes Pmod-compatible expansion ports. The MAX31855 performs cold-junction compensation and digitizes the signal from a thermocouple. Versions of it are available that operate with a K-, J-, N-, T-, R-, or E-type thermocouple.

This module is set up to operate with a K-type thermocouple. The data is output in a signed 14-bit, SPI-compatible, read-only format. This converter resolves temperatures to 0.25°C, allows readings as high as +1800°C and as low as -270°C, and exhibits thermocouple accuracy of ±2°C for temperatures ranging from -200°C to +700°C for K-type thermocouples.


Power Supply Requirements

When using the MAX31855 PMOD board, the 3.3 V power comes directly from the host board it is connected to. The power from the host is generally capable of providing up to 100 mA at 3.3 V; but for complete PMOD power specifications, please clickhere.

Digital Interface (PMOD)

The PMOD interface is a series of standardized digital interfaces for various digital communication protocols such as SPI, I2C, and UART. These interface types were standardized by Digilent, which is now a division of National Instruments. Complete details on the PMOD specification can be found here.

The MAX31855PMB1 peripheral module can plug directly into a Pmod-compatible port (configured for SPI) through connector J1. Connector J1 provides connection of the module to the host. The pin functions and pin assignments adhere to the Pmod standard recommended by Digilent.

Device Driver Support

There are two device driver solutions that are provided for controlling the MAX31855PMB1:

  1. MAX31855 no-OS Driver
    • The MAX32655FTHR or MAX32650FTHR example application uses the MAX31855 no-OS driver and emulates the Linux IIO framework through the tinyiiod daemon library. This driver is used in bare-metal applications, typically running on low-power, embedded microcontrollers. The application communicates with the host computer via the serial backend, over a USB-UART physical connection. This facilitates rapid application development on a host computer, independent from embedded code development.

System Setup Using MAX32655FTHR or MAX32650FTHR

The MAX31855PMB1 can be used with the MAX32655FTHR and MAX32650FTHR.

Demo Requirements

The following is the list of items needed in order to replicate this demo.


1. Connect MAX32655FTHR with the FTHR-PMOD-INTZ. Note that MAXIM feather board should have stacking headers for feather board where the interposer board will be connected.

2. Connect MAX31855PMB1 to the FTHR-PMOD-INTZ .

Pin 1 (Chip Enable) CS
Pin 2 (Not connected) MOSI
Pin 4 (SCK) SCK
Pin 5 (GND) GND
Pin 6 (VCC) VCC

The final setup should look similar shown in Figure 1. Figure 1. Hardware Setup

3. Power up the MAX32655FTHR by connecting it to your laptop using a micro-USB cable.

4. Open the file explorer. Drag-and-drop the pre-built hex file to the DAPLINK. If the transfer was not completed, update the firmware for the DAPLINK. Follow the steps here:

5. Open PuTTY or other similar software. Check the Device Manager to set correct COM for the MAX32655FTHR. Set baud rate to 57600.

The expected output viewed in the PuTTY is shown in Figure 2. Figure 2. Expected Output


1. Using a 10-pin ribbon cable, connect the MAX32625PICO to the MAX32650FTHR. Connect MAX32650FTHR to the FTHR-PMOD-INTZ.

2. Connect MAX31855PMB1 to the FTHR-PMOD-INTZ .

Pin 1 (Chip Enable) CS
Pin 2 (Not connected) MOSI
Pin 4 (SCK) SCK
Pin 5 (GND) GND
Pin 6 (VCC) VCC

The final setup should look similar shown in Figure 3. Figure 3. Hardware Setup

3. Power up the MAX32650FTHR by connecting it to your laptop using micro-USB. Connect MAX32625PICO to your laptop as well.

4. Place the pre-built elf file in your current CMD path folder.

5. Run the following in your command terminal:

C:\MaximSDK\Tools\OpenOCD\openocd.exe -s C:\MaximSDK\Tools\OpenOCD\scripts -f interface\cmsis-dap.cfg -f target\max32650.cfg -c "program max31855_max32650.elf verify exit"

6. Open PuTTY or other similar software. Set baud rate to 57600.

The expected output viewed in the PuTTY is shown in Figure 4. Figure 4. Expected Output

Application Software (All Platforms)

Hardware Connection

The Libiio is a library used for interfacing with IIO devices and is required to be installed on your computer.

Download and install the latest Libiio package on your machine.

To be able to connect your device, the software must be able to create a context. The context creation in the software depends on the backend used to connect to the device as well as the platform where the MAX31855PMB1 is attached. One platform is currently supported for the MAX31855PMB1: the MAX32655FTHR and MAX32650FTHR running the no-OS MAX31855 demo project. The user needs to supply a URI, which will be used in the context creation.

The iio_info command is a part of the libIIO package that reports all IIO attributes.

Upon installation, simply enter the command on the terminal command line to access it.

For Windows machine connected to MAX32655FTHR and MAX32650FTHR:

iio_info -u serial:<serial port>


  • In a Windows machine, you can check the port of your MAX32655FTHR and MAX32650FTHR via Device Manager in the Ports (COM & LPT) section. If your device is in COM4, you have to use iio_info -u serial:COM4 as your URI.
  • In a Unix-based machine, you will see it under the /dev/ directory in this format “ttyUSBn”, where n is a number depending on how many serial USB devices attached. If you see that your device is ttyUSB0, you have to use serial:/dev/ttyUSB0 as your URI.

IIO Commands

There are different commands that can be used to manage and control the device being used. The iio_attr command reads and writes IIO attributes.

analog@analog:~$ iio_attr [OPTION]...


  • To look at the context attributes, enter this code on the terminal:
analog@analog:~$ iio_attr -a -C

The iio_reg command reads or writes SPI or I2C registers in an IIO device. This is generally not needed for end applications, but can be useful in debugging drivers. Note that you need to specify a context using the -u qualifier when you are not directly accessing the device via RPI or when you are using the MAX32655FTHR or MAX32650FTHR platform.

analog@analog:~$ iio_reg -u <context> <device> <register> [<value>]


PyADI-IIO is a python abstraction module for ADI hardware with IIO drivers to make them easier to use. This module provides device-specific APIs built on top of the current libIIO python bindings. These interfaces try to match the driver naming as much as possible without the need to understand the complexities of libIIO and IIO.

Follow the step-by-step procedure on how to install, configure, and set up PYADI-IIO and install the necessary packages/modules needed by referring to this link.

Running the example

After installing and configuring PYADI-IIO in your machine, you are now ready to run python script examples. In our case, run the found in the examples folder.


Press enter and you will get these readings.

Github link for the python sample script: MAX31855 Python Example

Schematics, PCB Layout, Bill of Materials

MAX31855 Design Files

  • Schematic
  • PCB Layout
  • Assembly Drawing


Receive software update notifications, documentation updates, view the latest videos, and more when you register your hardware. Register to receive all these great benefits and more!

resources/eval/user-guides/circuits-from-the-lab/max31855pmb1.txt · Last modified: 21 Mar 2023 03:08 by Trisha Cabildo