Type K thermocouple module deniyng

Hello all together,
right now I am unable to use a type K thermocouple module with an Arduino Mega. I'm really suffering from trying this for days!
My sensor module is the following: MAX6675/MAX31855 Thermoelement Typ K Temperatur Sensor Modul SPI Schnittstelle | eBay
I tried different example sketchs from MAX6675 libraries as well as examples from MAX31855 libraries - both should work as the module is labeled with both, is this assumption correct?!

What I've tried already: using different Arduinos (Nano, Uno, Mega), using another thermocouple module (I have two of them), connecting another thermocouple (I have two of them) and switching wires of the thermocouple (red should be minus afaik). Nothing helps me out.

Using an Adafruit thermocouple type K module works as a charm, but this particular module drives me crazy. :face_with_spiral_eyes:

The following adafruit MAX31855 example code gives only:

Unable to start MAX31855. Waiting 3 seconds.


#include <SPI.h>
#include "Adafruit_MAX31855.h"

// Default connection is using software SPI, but comment and uncomment one of
// the two examples below to switch between software SPI and hardware SPI:

// Example creating a thermocouple instance with software SPI on any three
// digital IO pins.
#define MAXDO   3
#define MAXCS   4
#define MAXCLK  5

// initialize the Thermocouple
Adafruit_MAX31855 thermocouple(MAXCLK, MAXCS, MAXDO);

// Example creating a thermocouple instance with hardware SPI
// on a given CS pin.
//#define MAXCS   10
//Adafruit_MAX31855 thermocouple(MAXCS);

// Example creating a thermocouple instance with hardware SPI
// on SPI1 using specified CS pin.
//#define MAXCS   10
//Adafruit_MAX31855 thermocouple(MAXCS, SPI1);

void setup() {
  Serial.begin(9600);

  while (!Serial) delay(1); // wait for Serial on Leonardo/Zero, etc

  Serial.println("MAX31855 test");
  // wait for MAX chip to stabilize
  delay(500);
  Serial.print("Initializing sensor...");
  if (!thermocouple.begin()) {
    Serial.println("ERROR.");
    while (1) delay(10);
  }
  Serial.println("DONE.");
}

void loop() {
  // basic readout test, just print the current temp
   Serial.print("Internal Temp = ");
   Serial.println(thermocouple.readInternal());

   double c = thermocouple.readCelsius();
   if (isnan(c)) {
     Serial.println("Something wrong with thermocouple!");
   } else {
     Serial.print("C = ");
     Serial.println(c);
   }
   //Serial.print("F = ");
   //Serial.println(thermocouple.readFahrenheit());

   delay(1000);
}

The following example code for an MAX6675 module only gives wrong temperatures, 5-10° but seems to respond on heating, but into wrong direction and only a few degrees. It also spits often an

ERROR!

//    FILE: Demo_getRawData.ino
//  AUTHOR: RobTillaart, (based upon FabioBrondo
// PURPOSE: thermocouple lib demo application
//     URL: https://github.com/RobTillaart/MAX6675


#include "SPI.h"
#include "MAX6675.h"


#define MAXDO     7 // Defining the MISO pin
#define MAXCS     6 // Defining the CS pin
#define MAXCLK    5 // Defining the SCK pin


MAX6675 thermocouple;


void setup ()
{
  Serial.begin(115200);
  Serial.println(__FILE__);
  Serial.println();
  delay(250);

  thermocouple.begin(MAXCLK, MAXCS, MAXDO);
}


void loop ()
{
  int status = thermocouple.read();
  if (status != STATUS_OK)
  {
    Serial.println("ERROR!");
  }

  uint32_t value = thermocouple.getRawData();  // Read the raw Data value from the module
  Serial.print("RAW:\t");

  // Display the raw data value in BIN format
  uint32_t mask = 0x80000000; 
  for (int i = 0; i < 32; i++) 
  {
    if ((i > 0)  && (i % 4 == 0)) Serial.print("-");
    Serial.print((value & mask) ? 1 : 0);
    mask >>= 1;
  }
  Serial.println();

  Serial.print("TMP:\t");
  Serial.println(thermocouple.getTemperature(), 3);

  delay(100);
}

I am desperate - any help would be appreciated! :smiling_face:

That advertisement gives you a choice of which chip you want on your board. Which one did you order and which one did you get? You should be able to read the chip number off the chip.

I didn't have any choice when I ordered it (another ebay auction). The PCB is labelled with both. But now as you told me I managed to read the letters on the chip: M31855K

How are you wiring the five pins to the Arduino Mega? Did you solder the 5-pin header to the board? Did you solder the screw terminals to the board? Have you got your thermocouple connected right-way around?

Sorry but uploading pictures failes permanently :frowning:
I wired it like this:

Module --- Arduino

GND    ----   GND
VCC    ----   VCC
DO     ----    7
CS     ----    6
CLK    ----    5

Yes I've soldered the screw terminals as well as the 5-pin header onto the module PCB. I've also tried to switch the connection of the thermocouple multiple times, but nothing helps!

Read the forum guides. That is covered. I have always had good luck just pasting the images into a post.

erasure of EXIF data nor converting to png wouldn't change anything

How big are the image dimensions?

I've tried from 178x100 up to 2048x1152 :thinking:

Hi, @mokebeer
Try jpg, and use about 800 to 1200 on the longest side of your image for most things.

I use Win10 Paint to do my image resizing and converting, it is very easy to do.

Tom.. :smiley: :+1: :coffee: :australia:

unfortunately not even these sizes/formats helped - upload always fails :expressionless:

Do you have a link to the thermocouple? One problem I faced was that the max31855/31856 did not work with grounded thermocouple's, which have a stainless steel probe welded to hot Junction.

1 Like

Hi,
Are you unloading the image file using the "upload" icon, or dragging it from the folder to the post?

@GigaNerdTheReckoning good point...

Thanks.. Tom.. :smiley: :+1: :coffee: :australia:

1 Like

@GigaNerdTheReckoning No, I could'nt find any link and I didn't get the point - why should thermocouples be grounded? :thinking:
So another probe would do the job?

@TomGeorge I tried it using the upload icon, drag 'n drop doesn't work here

Often, the cheap ones that loon like this are grounded from my experience. As far as I know, there's no way to use them with max31855, but they will work with max6675. You can confirm if it's grounded with a multimeter; if there is continuity between the stainless steel and the terminals, then you have a grounded type.

These types however are ungrounded, as there is no metal probe or metal cable sheathing. They should work with both amplifiers.

It is also worth mentioning that I've purchased a MAX31855 that looks like this, which did not work for me, as it doesn't have all of the components soldered on. This video might be a fix.

A different one I purchased, which has more components on the board, worked perfectly.

@GigaNerdTheReckoning thank you for your information! I'll try to get the 10 uF capacitors asap (next year^^) and try the fix...
My thermocouple looks exactly like the 'ungrounded' example of yours - so no issue here...

the whole thing still remains quite nebulous to me! :thinking:

What about ctrl-C, ctrl-V?

What about ctrl-C, ctrl-V?

same behaviour as drag 'n drop, this just pastes the path (btw: I'm not on Windows, rather Ubuntu [recomm.!])
The picture upload through the button seems to work, but after the upload is finished it moans something like: "there was an error sorry please try again"

Hello! Ditch the library. Use this: MAX6675 Thermocouple Reader Example Arduino Code · GitHub

but which browser?