Skip to the content
PCBKitNew board
2 layers93.3 × 64.1 mmJean Thermocouple, the printed circuit board in 3D

Jean Thermocouple

djean032/MAX31855

The Arduino sketch is designed to print both to a serial monitor on a PC and a LCD screen that is mounted on the device.

Size
93.3 × 64.1 mm
Copper layers
2
Thickness
1.6 mm
Parts
17
Nets
52
Pads
107
Tracks, vias
198, 49
Routed
Yes
KiCad
KiCad 7 (file 20221018)
Created
7 May 2023
Updated
13 May 2023

Overview

Jean Thermocouple is an open-source printed circuit board by djean032, from the djean032/MAX31855 repository on GitHub, published under the Unlicense licence. It is a 2-layer board of 93.3 × 64.1 mm with 17 parts on 52 nets, routed with 198 tracks and 49 vias.

Its parts include 5 ICs and 2 connectors.

README

README.md

MAX31855

Project Description

A solution to control and monitor four thermocouples using the MAX31855 Thermocouple Amplifier.

Contents

  • Arduino Sketch
  • Custom MAX31855 Library
  • KICAD Generated Schematic and PCB
  • Test Data

Arduino Sketch

The Arduino sketch is designed to print both to a serial monitor on a PC and a LCD screen that is mounted on the device.

MAX31855 Library

Custom library that creates a class instance of each thermocouple amplifier and provides functions to read data, check errors, and do a rational polynomial caluclation to accurately determine the temperature. Additionally a weighted average is used to filter the signal, resulting in a significantly smoothed reading.

The initial form of this library uses a switch statement to select the proper conversion function based on thermocouple type, of which only type 'T' and 'K' are currently supported. Additional types will be added in the future, so this library can be universally used across all thermocouple and MAX31855 types.

Schematic

image

Circuit Features

Overview

The circuit consists of four MAX31855 thermocouple amplifiers that are connected to an Arduino Micro. The Arduino Micro is connected to the the thermocouple amplifiers via SPI, utilizing the SCK, MISO, and CS lines. The Arduino also communicates the data to a PC via serial while also displaying it on an onboard LCD.

MAX31855 Idiosyncrasies

The MAX31855 transmits a cold-junction compensated thermocouple temperature, a cold-junction temperature (from a thermistor), and several fault checks over 32 bits. The first 14 bits are the cold-junction compensated thermocouple temperature, the next 12 bits are the cold-junction temperature, and the rest of the bits are either reserved bits or denote various fault checks.

The MAX31855 uses a linear conversion to convert the thermocouple voltage to a temperature. Specifically the type 'T' version uses a factor of $52.18 \frac{\mu V}{\textdegree C}$, which shows significant deviations at room temperature from tabulated values. For this application, this is not a suitable conversion method, so a rational polynomial function was employed in software to more accurately model the thermocouple response. The basic steps are to convert the measured thermocouple temperature to a voltage using the linear relationship stated in the datasheet. Then a switch statement is used to slect the type of chip to determine the appropriate coefficients for the rational polynomial function. Finally, the thermocouple voltage and coefficients are used in the rational polynomial function to compute a corrected temperature. This was tested at several temperatures and provides an acceptable level of accuracy.

Data Transfer

The data is simultaneously displayed on an LCD screen and transmitted to a PC via USB, where it is read into our lab's LabView program used to control our spectrometer. The data is "filtered" using a weighted average that takes a weighted average of the previous value with the current value. This weight can be adjusted via software. 30% of the previous value seems to be a sweet spot between data smoothing and quick response time.

Power Supply

The device is powered via a 9V external AC to DC power supply. In our current application, we have an approximately 15m USB cable, which is triple the specification for USB 2.0.

Miscellaneous

The MAX31855 requires 3.3V to operate, while the Arduino Micro operates at 5V, so two bi-directional level shifters were used for the data and power lines for the thermocouple amplifiers.

PCB

image

Evaluation

Summary

Overall, once the rational polynomial function and filtering was added, the performance was adequate for our lab's needs. It successfully reads temperatures from boiling water down to cryogenic temperatures used in our lab's spectrometer.

Data
Cooling BathMeasured Temperature ($\degree C$)Theoretical Value ($\degree C$)
Ice Water-2.00
Dry Ice + Acetone-79.4-78
Acetone + liquid N$^2$-95.0-94
n-pentane + liquid N$^2$-133.5-131
liquid N$^2$-200-196
Boiling Water98.0100

Overall, the data matches very well with the theoretical values, within 2% error for all the cooling baths. The ice water and boiling water were done with tap water, so that is the likely source for the deviation there.

Future

Further improvements will be implemented in v2. These include capacitors to clean up the power supply and capacitors added on to the VCC and GND lines of the thermocouple amplifiers to prevent coupling of the data and power supply lines.

v2 To-Do List

  • Proper power supply design
    • Add appropriate capacitors to the input to reduce noise
  • Add small capacitors to the VCC and GND lines of the thermocouple amplifiers to prevent coupling of the signal and the power lines.
  • Transmit data over something other than USB

Parts

17
QtyValueFootprintReferences
2SPARKFUN_LOGIC_LEVEL_CONVERTERBoards:SPARKFUN_LOGIC_LEVEL_CONVERTERB1, B2
1Arduino_MicroArduino:Arduino_MicroU1
1Conn_01x02Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ3
1Conn_01x03Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ2
1M_MaxPackage_SO:SOIC-8_3.9x4.9mm_P1.27mmU3
1M_SensorConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalTC2
1N_MaxPackage_SO:SOIC-8_3.9x4.9mm_P1.27mmU2
1N_SensorConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalTC1
1R_MaxPackage_SO:SOIC-8_3.9x4.9mm_P1.27mmU5
1R_SensorConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalTC4
1S_MaxPackage_SO:SOIC-8_3.9x4.9mm_P1.27mmU4
1S_SensorConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalTC3

The 13 most common of 17 parts.

Questions

How big is the Jean Thermocouple PCB?

It measures 93.3 × 64.1 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Jean Thermocouple use?

17 parts. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Jean Thermocouple KiCad files?

From the djean032/MAX31855 repository on GitHub, at the commit this page was made from: the board is Jean_Thermocouple.kicad_pcb and its schematic Jean_Thermocouple-backups/Jean_Thermocouple-2023-04-16_201718 2/Jean_Thermocouple.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Jean Thermocouple design in my own project?

Its repository publishes it under the Unlicense licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

Similar boards

  • 2 layers50 × 35 mmServo power, the printed circuit board in 3D

    Servo power

    earthtojake/text-to-cad

    Design physical products with AI

    17 parts26kMIT
  • 2 layers139.7 × 62.2 mmBreakout 60pin EEC IV, the printed circuit board in 3D

    Breakout 60pin EEC IV

    rusefi/rusefi

    rusefi - GPL internal combustion engine control unit

    17 parts1.2k
  • 2 layers29.2 × 55.9 mmDeniseadapter, the printed circuit board in 3D

    Deniseadapter

    hoglet67/RGBtoHDMI

    Bare-metal Raspberry Pi project that provides pixel-perfect sampling of Retro Computer RGB/YUV video and conversion to HDMI

    17 parts1kGPL-3.0
  • 2 layers24.5 × 36.5 mmCluster, the printed circuit board in 3D

    Cluster

    JesusFreke/lalboard

    A 3D-printed keyboard inspired by the DataHand

    17 parts993
  • 2 layers56.3 × 55.7 mmStarNecklace, the printed circuit board in 3D

    StarNecklace

    hackclub/OnBoard

    💡 Join 1,000 teenagers and make your first PCB with a $100 grant!

    17 parts915
  • 2 layers25 × 25 mmSmallEncoder, the printed circuit board in 3D

    SmallEncoder

    DDeGonge/OS-ARM

    This arm is not industrial and it will not be fast, but that is not my goal. But it will hopefully be a very nice looking arm fully capable of 6dof motion, cheap enough to keep it accessable but capable enough to…

    17 parts498MIT
  • 2 layers38.9 × 16.1 mmAmoeba spc, the printed circuit board in 3D

    Amoeba spc

    mtl/keyboard-pcbs

    Keyboard PCBs

    17 parts485
  • 2 layers36 × 51 mmABSIS ALE, the printed circuit board in 3D

    ABSIS ALE

    jrsteensen/OpenHornet

    OpenHornet 1:1 F/A-18C Simulator Repository

    17 parts431