Expandable Thermocouple Multiplexor Board

A Raspberry Pi add on card/s which provide 32 multiplexed thermocouple inputs. Boards can be piggybacked for more inputs.

Similar projects worth following
A project to provide multiplexed thermocouple inputs to a Raspberry Pi. The initial board has 32 channels of inputs and can operate with thermocouples of a mix of types:
Type B
Type E
Type J
Type K
Type N
Type R
Type S
Type T

Boards can be stacked in piggyback to offer expansion in blocks of 32 thermocouples. Software allows display to screen and logging to file.

The thermocouple voltage is measured, and cold junction compensation is performed by the MAX 31856 (U2) which communicates with the host via SPI. The individual thermocouples are multiplexed via dual 8 way switches ADG1607 (U3,U4,U5 & U6) giving a total capacity of 32 channels. The analog switches are addressed and controlled via the output of I2C PIO PCF8574 (U7). D0, 1 & 2 set the multiplexer channel. D3,4,5 & 6 select the individual multiplexers. D7 drives a status LE

The default address for the I2C (PCF8574) device is 0. This can be changed by cutting the PCB links marked board address and soldering a paste link high to set an address other than 0. Using the I2C and TC expansion ports, more boards can be stacked on top of each other, up to 8 in total. You could build another 8 boards using PCF8574A devices which have a different I2C address, giving a potential capacity of 512 channels!

Setting up the Raspberry Pi

Hardware Setup

  1. Plug in your Raspberry Pi with an attached keyboard, mouse and monitor.
  2. Boot your Pi and log in.
  3. Update your Pi to the latest configuration with the following two commands:
    1. sudo apt-get update
    2. sudo apt-get upgrade
  4. Reboot the Raspberry Pi
  5. Switch on the required hardware used to run the Expandable Thermocouple Board. Generally this is to enable the communications paths I2C and SPI. Both are used to run the board. Also enable SSH, so you can remotely connect to the Raspberry Pi across your network. You do this by running the utility sudo raspi-config
  6. In the Interface section enable, I2C, SPI and SSH.
  7. You can now reboot and should be able to remotely connect to the Pi using SSH.

Software Setup

  1. The Python language should be installed in a standard installation.
  2. Download the software package from the link below.
  3. Decompress the file with the command shown.
    1. tar -xf XXXXXX
  4. In Progress

Gerber Files for PCB Production

Zip Archive - 444.15 kB - 10/29/2023 at 03:34



KiCad PCB file

x-kicad-pcb - 2.89 MB - 10/28/2023 at 06:47



A PDF of the schematic

Adobe Portable Document Format - 609.04 kB - 10/22/2023 at 06:00



The KiCad Schematic

x-kicad-schematic - 19.18 kB - 10/22/2023 at 05:57


View project log

Enjoy this project?



Tom Eilers wrote 10/28/2023 at 10:00 point

There is no cold juntion compensation near or under the scew terminals.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates