How to Use MAX6675 Thermocouple Amplifier With RAMPS 1.4 and Marlin

22K338

Intro: How to Use MAX6675 Thermocouple Amplifier With RAMPS 1.4 and Marlin

Surfing the internet to find out how to wire our new MAX6675 amplifier with RAMPS and Marlin when we decided to use thermocouples instead of thermistors for more precise temperature control during printing, we didn't found any complete documentation about how to do that. so we decided to write this instructable .

At first you can get this module form adafruit or you can get a chinese full kit of this module with K-type thermocouple included for less than 10$. They are all differ in shape but works in the same way.

STEP 1: Wiring MAX6675 to Your Electronics

MAX6675 works under SPI communication protocol so you need to connect it at AUX-3 on the RAMP (the same connector for the SD-Card)

Note: you still can connect your SD-Card module while using MAX6675 and the controller (MEGA) will choose which one to communicate with, but you have to figure out how to wire both modules together on the same connector.

Connections

- GND on MAX6675 goes to GND ( pin 7 ) on RAMPSAUX-3

- VCC on MAX6675 goes to VCC ( pin 1 ) on RAMPSAUX-3

- DO on MAX6675 goes to MISO ( pin 3 ) on RAMPSAUX-3

- CS on MAX6675 goes to D53 (pin 6 ) on RAMPSAUX-3

- CLK on MAX6675 goes to CK ( pin 5 ) on RAMPSAUX-3

Note:

-some times you can find pin DO named SO and pin CS named SS and pin CLK named SCK in different MAX6675 modules.

-If your connection doesn't work, connect CS pin on MAX6675 to D49 ( pin 2 ) instead of D53 ( pin 6 ) on RAMPS AUX-3

After connecting your electronics, now the next step is ? yes you are right :D :D :D

STEP 2: Configuring Marlin Firmware to Work With Thermocouple.

Marlin is a great firmware and it is designed to work with MAX6675. All you need is to open it with arduino IDE and go to configuration.h tab

In Thermal settings define TEMP_SENSOR_0 -2 and it can only works with Sensor 0 .

Now hit upload and let the magic begin.

NO WAIT...

while compiling the firmware you will find a bug declared before in the previous screenshot and it all goes around this line.

long max6675_previous_millis = -HEAT_INTERVAL; 

you need to change "-HEAT_INTERVAL" to "MAX6675_HEAT_INTERVAL" and the final soultion should be like

long max6675_previous_millis = MAX6675_HEAT_INTERVAL;

now hit upload and enjoy your MAX6675 thermocouple module.

**if you found the temperature reading goes down while heating, reverse the thermocouple terminals connected to the MAX6675 module.

**some modules need to solder the -ve terminal connector of the thermocouple with the ground and you have to do this step to make it works.

please if you found any information were missed kindly inform us.

if you want to ask about any thing you can leave a comment.

you can follow our facebook page for more posts or visit our website to download ATOM complete source file.

www.atom3dprinters.com

www.facebook.com/atom3d.egypt

7 Comments

Hi, how can I install 2 thermocouple k-type for two extruders, I am currently using Marlin with MKSGEN 1.4 board with thermistors.

Well, Idid it, and it didn`t work as the marlin Firmware changed. Now you have to use Pin66 for SS||SO if you want to use your display and sd-card

sorry, it#s not SO but CS on pin 66

I followed your instructable today to install a MAX6675 on my 3d printer. Thanks very much for posting it. After making the changes in the firmware (Marlin 1.0.2-1) I'm getting the error "SS_PIN was not declared in this scope". Resetting the TEMP_SENSOR_0 value to something other than -2 makes this error go away but of course then the sensor doesn't work. Do you have any idea what else might be missing/wrong in the firmware code?

Thanks for sharing your work :)
I have a question related to this instructable and would be greatly appreciating help as i could not find much about this topic: Can i use 2 MAX6675 modules with the RAMPS 1.4 shield without using a 3D printing related firmware like Marvin? ...i would like to use the shield for a different project in order to directly control:
4 steppers
1 LCD Screen
1 DC-Motor
4-6(if possible) endstop sensors
2 thermocouples type K

Is this possible?
The wiring for the MAX6675 module will be the same as in this instructable, but how do i code to get the readings without using Marvin or alike? Please excuse me for any stupid questions, i am relatively new to all this...


Thank your for every bit of help

Another great instructable from you. Keep up the good work and sharing your knowledge.