TAZ6 Thermocouple with MAX6675 installation

Have questions? Want advice?
lmen31
Posts: 9
Joined: Thu Dec 14, 2017 2:31 pm

TAZ6 Thermocouple with MAX6675 installation

Post by lmen31 » Fri Dec 15, 2017 1:49 pm

Hello,

I'm trying to use materials that have a higher melting temperature to print my parts.
I notice that TAZ6 uses a thermistor that can measure a max temp of 300C, so I'm trying to change it to a thermocouple type K using a MAX6675.
I'm not sure if this is possible but I read these lines in the Marlin code that made me think that it may be possible:

//===========================================================================
//=============================Thermal Settings ============================
//===========================================================================
//
//--NORMAL IS 4.7kohm PULLUP!-- 1kohm pullup can be used on hotend sensor, using correct resistor and table
//
//// Temperature sensor settings:
// -2 is thermocouple with MAX6675 (only for sensor 0)
// -1 is thermocouple with AD595
// 0 is not used
// 1 is 100k thermistor - best choice for EPCOS 100k (4.7k pullup)
// 2 is 200k thermistor - ATC Semitec 204GT-2 (4.7k pullup)
// 3 is mendel-parts thermistor (4.7k pullup)
// 4 is 10k thermistor !! do not use it for a hotend. It gives bad resolution at high temp. !!
// 5 is 100K thermistor - ATC Semitec 104GT-2 (Used in ParCan) (4.7k pullup)
// 6 is 100k EPCOS - Not as accurate as table 1 (created using a fluke thermocouple) (4.7k pullup)
// 7 is 100k Honeywell thermistor 135-104LAG-J01 (4.7k pullup)
//
// 1k ohm pullup tables - This is not normal, you would have to have changed out your 4.7k for 1k
// (but gives greater accuracy and more stable PID)
// 51 is 100k thermistor - EPCOS (1k pullup)
// 52 is 200k thermistor - ATC Semitec 204GT-2 (1k pullup)
// 55 is 100k thermistor - ATC Semitec 104GT-2 (Used in ParCan) (1k pullup)

#define TEMP_SENSOR_0 7
#define TEMP_SENSOR_1 0
#define TEMP_SENSOR_2 0
#define TEMP_SENSOR_BED 7



does anyone has tried to make this change?
How can I physically attached the MAX6675 if the RAMBo board only has a special entry for thermistors?

This is a link to check the RAMBo:
https://ohai.lulzbot.com/project/taz6-c ... bly/taz-6/

I will really appreciate any ideas or suggestions

Thanks

mikronano
Posts: 63
Joined: Wed May 13, 2015 2:42 pm
Location: Chicago, IL

Re: TAZ6 Thermocouple with MAX6675 installation

Post by mikronano » Sun Dec 17, 2017 1:45 pm

My approach in this is a bit different. I'm using the E3D PT100 sensor with its amplifier board. The whole thing had me messing with both software and hardware but it was totally worth it for its accuracy, stability and range.
The PT100 amplifier board, following E3D's guideline, needs to connect to an analog input pin. So, first I had to locate an analog pin on the RAMBo and then tell Merlin which pin and table to use.
On my TAZ5's RAMBo, the analog input pins (X40) are surrounded by the Atmega2560 chip, the Thermistor sockets and the EXT-2 pins. Pins 1 and 2 are powering the amplifier board and Pin 8 is analog input A5.
PT100 pins Rambo#.jpg
For my last hardware intervention all I had to do was to unplug the thermistor jack from the RAMBo slot and run it to the amplifier board's input.

As for the software alternations, I had to modify Configuration.h, pins.h and made sure the thermistortables.h included the table I needed.

My "Configuration.h" looks as:
//===========================================================================
//=============================Thermal Settings ============================
//===========================================================================
//
//--NORMAL IS 4.7kohm PULLUP!-- 1kohm pullup can be used on hotend sensor, using correct resistor and table
//
//// Temperature sensor settings:
// -2 is thermocouple with MAX6675 (only for sensor 0)
// -1 is thermocouple with AD595
// 0 is not used
// 1 is 100k thermistor - best choice for EPCOS 100k (4.7k pullup)
// 2 is 200k thermistor - ATC Semitec 204GT-2 (4.7k pullup)
// 3 is mendel-parts thermistor (4.7k pullup)
// 4 is 10k thermistor !! do not use it for a hotend. It gives bad resolution at high temp. !!
// 5 is 100K thermistor - ATC Semitec 104GT-2 (Used in ParCan & J-Head) (4.7k pullup)
// 6 is 100k EPCOS - Not as accurate as table 1 (created using a fluke thermocouple) (4.7k pullup)
// 7 is 100k Honeywell thermistor 135-104LAG-J01 (4.7k pullup)
// 71 is 100k Honeywell thermistor 135-104LAF-J01 (4.7k pullup)
// 8 is 100k 0603 SMD Vishay NTCS0603E3104FXT (4.7k pullup)
// 9 is 100k GE Sensing AL03006-58.2K-97-G1 (4.7k pullup)
// 10 is 100k RS thermistor 198-961 (4.7k pullup)
// 20 is PT100 with INA826 amp on Ultimaker v2.0 electronics
// 60 is 100k Maker's Tool Works Kapton Bed Thermister
//
// 1k ohm pullup tables - This is not normal, you would have to have changed out your 4.7k for 1k
// (but gives greater accuracy and more stable PID)
// 51 is 100k thermistor - EPCOS (1k pullup)
// 52 is 200k thermistor - ATC Semitec 204GT-2 (1k pullup)
// 55 is 100k thermistor - ATC Semitec 104GT-2 (Used in ParCan & J-Head) (1k pullup)

#define TEMP_SENSOR_0 20 //#define TEMP_SENSOR_0 5 //stock value
//~ #define TEMP_SENSOR_1 5
//~ #define TEMP_SENSOR_2 0
#define TEMP_SENSOR_BED 7
If higher temps are needed, you'll probably want to change the following as well:
// When temperature exceeds max temp, your heater will be switched off.
// This feature exists to protect your hotend from overheating accidentally, but *NOT* from thermistor short/failure!
// You should use MINTEMP for thermistor short/failure protection.
#define HEATER_0_MAXTEMP 305
#define HEATER_1_MAXTEMP 305
#define HEATER_2_MAXTEMP 305
#define BED_MAXTEMP 150
In my "pins.h" file, where my RAMBo pins are defined, I had to make the following changes:
#if MOTHERBOARD == 301
#define KNOWN_BOARD
/*****************************************************************
* Rambo Pin Assignments
******************************************************************/
.....
....
#define HEATER_0_PIN 9
#define TEMP_0_PIN 5
//#define TEMP_0_PIN 0 //stock value
....
....
For my "thermistortables.h" file, I had to made sure that a table for SENSOR 20 was present. If, in your case, doesn't exist, then you could add the following:
#if (THERMISTORHEATER_0 == 20) || (THERMISTORHEATER_1 == 20) || (THERMISTORHEATER_2 == 20) || (THERMISTORBED == 20) // PT100 with INA826 amp on Ultimaker v2.0 electronics
/* The PT100 in the Ultimaker v2.0 electronics has a high sample value for a high temperature.
This does not match the normal thermistor behaviour so we need to set the following defines */
#if (THERMISTORHEATER_0 == 20)
# define HEATER_0_RAW_HI_TEMP 16383
# define HEATER_0_RAW_LO_TEMP 0
#endif
#if (THERMISTORHEATER_1 == 20)
# define HEATER_1_RAW_HI_TEMP 16383
# define HEATER_1_RAW_LO_TEMP 0
#endif
#if (THERMISTORHEATER_2 == 20)
# define HEATER_2_RAW_HI_TEMP 16383
# define HEATER_2_RAW_LO_TEMP 0
#endif
#if (THERMISTORBED == 20)
# define HEATER_BED_RAW_HI_TEMP 16383
# define HEATER_BED_RAW_LO_TEMP 0
#endif
const short temptable_20[][2] PROGMEM = {
{ 0*OVERSAMPLENR , 0 },
{ 227*OVERSAMPLENR , 1 },
{ 236*OVERSAMPLENR , 10 },
{ 245*OVERSAMPLENR , 20 },
{ 253*OVERSAMPLENR , 30 },
{ 262*OVERSAMPLENR , 40 },
{ 270*OVERSAMPLENR , 50 },
{ 279*OVERSAMPLENR , 60 },
{ 287*OVERSAMPLENR , 70 },
{ 295*OVERSAMPLENR , 80 },
{ 304*OVERSAMPLENR , 90 },
{ 312*OVERSAMPLENR , 100 },
{ 320*OVERSAMPLENR , 110 },
{ 329*OVERSAMPLENR , 120 },
{ 337*OVERSAMPLENR , 130 },
{ 345*OVERSAMPLENR , 140 },
{ 353*OVERSAMPLENR , 150 },
{ 361*OVERSAMPLENR , 160 },
{ 369*OVERSAMPLENR , 170 },
{ 377*OVERSAMPLENR , 180 },
{ 385*OVERSAMPLENR , 190 },
{ 393*OVERSAMPLENR , 200 },
{ 401*OVERSAMPLENR , 210 },
{ 409*OVERSAMPLENR , 220 },
{ 417*OVERSAMPLENR , 230 },
{ 424*OVERSAMPLENR , 240 },
{ 432*OVERSAMPLENR , 250 },
{ 440*OVERSAMPLENR , 260 },
{ 447*OVERSAMPLENR , 270 },
{ 455*OVERSAMPLENR , 280 },
{ 463*OVERSAMPLENR , 290 },
{ 470*OVERSAMPLENR , 300 },
{ 478*OVERSAMPLENR , 310 },
{ 485*OVERSAMPLENR , 320 },
{ 493*OVERSAMPLENR , 330 },
{ 500*OVERSAMPLENR , 340 },
{ 507*OVERSAMPLENR , 350 },
{ 515*OVERSAMPLENR , 360 },
{ 522*OVERSAMPLENR , 370 },
{ 529*OVERSAMPLENR , 380 },
{ 537*OVERSAMPLENR , 390 },
{ 544*OVERSAMPLENR , 400 },
{ 614*OVERSAMPLENR , 500 },
{ 681*OVERSAMPLENR , 600 },
{ 744*OVERSAMPLENR , 700 },
{ 805*OVERSAMPLENR , 800 },
{ 862*OVERSAMPLENR , 900 },
{ 917*OVERSAMPLENR , 1000 },
{ 968*OVERSAMPLENR , 1100 }
};
#endif
Hope that helps and good luck should you go for it!
Press a key to continue or any other key to quit

User avatar
piercet
Posts: 4016
Joined: Sun Aug 25, 2013 1:37 am
Location: Battleground, WA
Contact:

Re: TAZ6 Thermocouple with MAX6675 installation

Post by piercet » Mon Dec 18, 2017 2:11 am

Cool! I was considering installing that very board, that will save me quite a bit of time. thank you very much for posting that!

mikronano
Posts: 63
Joined: Wed May 13, 2015 2:42 pm
Location: Chicago, IL

Re: TAZ6 Thermocouple with MAX6675 installation

Post by mikronano » Mon Dec 18, 2017 3:47 am

You're welcome :) Glad you found it useful!
And I just noticed that in my first post I called Marlin as Merlin ... :oops:
Anyways, please do remember that after installing the PT100, the temperatures reading will be more accurate and thus you should probably double and cross check the readings with a 3rd party temperature probe on the nozzle and the block. In my case, when thermistor was reading 215 it was actually closer to 210. That wasn't the case with PT100: 215 was indeed 215!!! So, with the PT100 I had to recalibrate all my print settings.
Press a key to continue or any other key to quit

lmen31
Posts: 9
Joined: Thu Dec 14, 2017 2:31 pm

Re: TAZ6 Thermocouple with MAX6675 installation

Post by lmen31 » Mon Dec 18, 2017 3:34 pm

Thanks for answering me!

In my code I don't see any recommendation to use PT100

// 20 is PT100 with INA826 amp on Ultimaker v2.0 electronics

Where did you get your Marlin? I got mine from the webpage: https://www.lulzbot.com/content/downloads
It is the AO-101.
Do you think is the same? I mean can I change it to "20" assuming that the recommendation should be there?

Thanks for taking the time to help me

mikronano
Posts: 63
Joined: Wed May 13, 2015 2:42 pm
Location: Chicago, IL

Re: TAZ6 Thermocouple with MAX6675 installation

Post by mikronano » Tue Dec 19, 2017 4:33 am

I have the TAZ5 not the 6, thus my firmware is the latest official I could find from lulzbot, the "Marlin_TAZ45_Uaru_1.0.0.1".
Regardless, the modifications I suggested are universal. And don't forget that text following the double slashes "//" is considered "comment".
In your case, as long as you make sure that the "thermistortables.h" and "pins.h" files are modified the way I described, then, with the "configuration.h" file you can rest assure that defining your SENSOR_0 as 20 will work just fine.
And in fact, you can use any number, other than 20, you want in the thermistortables.h and configuration.h descriptions. Just as long as it doesn't conflict with another one, already described in the files! I used 20 because that's what I found already in place.
Press a key to continue or any other key to quit

lmen31
Posts: 9
Joined: Thu Dec 14, 2017 2:31 pm

Re: TAZ6 Thermocouple with MAX6675 installation

Post by lmen31 » Tue Dec 19, 2017 10:22 am

I'll order the sensor this week and I will give an update with my results.

Thanks for taking the time to answer me. :)

lmen31
Posts: 9
Joined: Thu Dec 14, 2017 2:31 pm

Re: TAZ6 Thermocouple with MAX6675 installation

Post by lmen31 » Tue Dec 19, 2017 12:03 pm

I just checked the PT100 temperature ranges, and it can only go up to 400 C.
I need to measure up to 600 C, so this is not going to work for me.

mikronano
Posts: 63
Joined: Wed May 13, 2015 2:42 pm
Location: Chicago, IL

Re: TAZ6 Thermocouple with MAX6675 installation

Post by mikronano » Tue Dec 19, 2017 1:50 pm

lmen31 wrote:
Tue Dec 19, 2017 12:03 pm
I just checked the PT100 temperature ranges, and it can only go up to 400 C.
I need to measure up to 600 C, so this is not going to work for me.
I'm really curious in to what kind of plastic filament you're interested in extruding :shock: !!
In any case, for such high temps the aluminum heat block won't work either. Even the new Plated Copper heat block from E3D only talks about going above 500C but not how far above https://e3d-online.com/v6-plated-copper-heater-block
Press a key to continue or any other key to quit

lmen31
Posts: 9
Joined: Thu Dec 14, 2017 2:31 pm

Re: TAZ6 Thermocouple with MAX6675 installation

Post by lmen31 » Tue May 01, 2018 9:51 am

mikronano,

I wanted to ask you if you followed any tutorial to upload Marlin via Arduino. I'm trying to upload it and I'm getting a blank LCD. Any idea why this is happening?

Post Reply