# TAZ6 Thermocouple with MAX6675 installation

**URL:** <https://forum.lulzbot.com/t/taz6-thermocouple-with-max6675-installation/5425>\
**Category:** Hardware\
**Created:** [December 15, 2017, 7:49pm UTC](https://forum.lulzbot.com/t/taz6-thermocouple-with-max6675-installation/5425 "2017-12-15T19:49:11Z")\
**Posts on this page:** 12\
**Page:** 1

<div class="post-metadata">

**Author:** ![lmen31](https://avatars.discourse-cdn.com/v4/letter/l/c2a13f/32.png) [@lmen31](https://forum.lulzbot.com/u/lmen31)\
**Post date:** [December 15, 2017, 7:49pm UTC](https://forum.lulzbot.com/t/taz6-thermocouple-with-max6675-installation/5425/1 "2017-12-15T19:49:11Z")

</div>

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-control-box-assembly/taz-6/](https://ohai.lulzbot.com/project/taz6-control-box-assembly/taz-6/)

I will really appreciate any ideas or suggestions

Thanks

---

<div class="post-metadata">

**Author:** ![mikronano](https://avatars.discourse-cdn.com/v4/letter/m/f07891/32.png) [@mikronano](https://forum.lulzbot.com/u/mikronano)\
**Post date:** [December 17, 2017, 7:45pm UTC](https://forum.lulzbot.com/t/taz6-thermocouple-with-max6675-installation/5425/2 "2017-12-17T19:45:48Z")

</div>

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](https://us1.discourse-cdn.com/flex020/uploads/lulzbot/original/2X/1/18b094e7d6a76e43150b99291071cde954c6898a.jpeg)  
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!

---

<div class="post-metadata">

**Author:** ![piercet](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.lulzbot.com/piercet/32/12_2.png) [@piercet](https://forum.lulzbot.com/u/piercet)\
**Post date:** [December 18, 2017, 8:11am UTC](https://forum.lulzbot.com/t/taz6-thermocouple-with-max6675-installation/5425/3 "2017-12-18T08:11:48Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![mikronano](https://avatars.discourse-cdn.com/v4/letter/m/f07891/32.png) [@mikronano](https://forum.lulzbot.com/u/mikronano)\
**Post date:** [December 18, 2017, 9:47am UTC](https://forum.lulzbot.com/t/taz6-thermocouple-with-max6675-installation/5425/4 "2017-12-18T09:47:16Z")

</div>

You’re welcome 🙂 Glad you found it useful!  
And I just noticed that in my first post I called Marlin as Merlin … 😊  
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.

---

<div class="post-metadata">

**Author:** ![lmen31](https://avatars.discourse-cdn.com/v4/letter/l/c2a13f/32.png) [@lmen31](https://forum.lulzbot.com/u/lmen31)\
**Post date:** [December 18, 2017, 9:34pm UTC](https://forum.lulzbot.com/t/taz6-thermocouple-with-max6675-installation/5425/5 "2017-12-18T21:34:40Z")

</div>

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](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

---

<div class="post-metadata">

**Author:** ![mikronano](https://avatars.discourse-cdn.com/v4/letter/m/f07891/32.png) [@mikronano](https://forum.lulzbot.com/u/mikronano)\
**Post date:** [December 19, 2017, 10:33am UTC](https://forum.lulzbot.com/t/taz6-thermocouple-with-max6675-installation/5425/6 "2017-12-19T10:33:55Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![lmen31](https://avatars.discourse-cdn.com/v4/letter/l/c2a13f/32.png) [@lmen31](https://forum.lulzbot.com/u/lmen31)\
**Post date:** [December 19, 2017, 4:22pm UTC](https://forum.lulzbot.com/t/taz6-thermocouple-with-max6675-installation/5425/7 "2017-12-19T16:22:37Z")

</div>

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

Thanks for taking the time to answer me. 🙂

---

<div class="post-metadata">

**Author:** ![lmen31](https://avatars.discourse-cdn.com/v4/letter/l/c2a13f/32.png) [@lmen31](https://forum.lulzbot.com/u/lmen31)\
**Post date:** [December 19, 2017, 6:03pm UTC](https://forum.lulzbot.com/t/taz6-thermocouple-with-max6675-installation/5425/8 "2017-12-19T18:03:20Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![mikronano](https://avatars.discourse-cdn.com/v4/letter/m/f07891/32.png) [@mikronano](https://forum.lulzbot.com/u/mikronano)\
**Post date:** [December 19, 2017, 7:50pm UTC](https://forum.lulzbot.com/t/taz6-thermocouple-with-max6675-installation/5425/9 "2017-12-19T19:50:34Z")

</div>

> [@](#):
>
> 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 😮 !!  
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 [V6 Plated Copper HeaterBlock – E3D](https://e3d-online.com/v6-plated-copper-heater-block)

---

<div class="post-metadata">

**Author:** ![lmen31](https://avatars.discourse-cdn.com/v4/letter/l/c2a13f/32.png) [@lmen31](https://forum.lulzbot.com/u/lmen31)\
**Post date:** [May 1, 2018, 3:51pm UTC](https://forum.lulzbot.com/t/taz6-thermocouple-with-max6675-installation/5425/10 "2018-05-01T15:51:42Z")

</div>

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?

---

<div class="post-metadata">

**Author:** ![mikronano](https://avatars.discourse-cdn.com/v4/letter/m/f07891/32.png) [@mikronano](https://forum.lulzbot.com/u/mikronano)\
**Post date:** [May 1, 2018, 6:44pm UTC](https://forum.lulzbot.com/t/taz6-thermocouple-with-max6675-installation/5425/11 "2018-05-01T18:44:27Z")

</div>

That’s strange…  
You could take a look in this: [https://ohai.lulzbot.com/project/firmware-flashing/firmware-flashing](https://ohai.lulzbot.com/project/firmware-flashing/firmware-flashing).  
Although, from what you’re saying, if it was a miscommunication or miscompile issue, then you should get an error message from Arduino and nothing would have been uploaded. It seems to me that something in your code passes the Arduino tests and checks but it doesn’t work with TAZ. Like some pins are conflicting on board.

---

<div class="post-metadata">

**Author:** ![lmen31](https://avatars.discourse-cdn.com/v4/letter/l/c2a13f/32.png) [@lmen31](https://forum.lulzbot.com/u/lmen31)\
**Post date:** [May 9, 2018, 7:08pm UTC](https://forum.lulzbot.com/t/taz6-thermocouple-with-max6675-installation/5425/12 "2018-05-09T19:08:23Z")

</div>

Thanks for replying

I fixed the upload problem. I watch this video and got the idea: [https://www.youtube.com/watch?v=0pt\_b2ZizQM](https://www.youtube.com/watch?v=0pt_b2ZizQM)

I uncommented this line to get the sounds from the button in the Configuration.h tab:

**#define SPEAKER**

and also this line:

**#define REPRAP\_DISCOUNT\_FULL\_GRAPHIC\_SMART\_CONTROLLER**

But know that I’m trying to make changes to the temp sensor 0 (-2, because it is a max6675) I get this error. I’m using a Taz 6.

**MAX6675\_SS (required for TEMP\_SENSOR\_0) not defined for this board.**

I hope that someone that had the same problem could help me.

Thanks
