Welcome! Log In Create A New Profile

Advanced

Problem with heating. Help please.

Posted by jmtolliver 
Problem with heating. Help please.
February 03, 2016 11:22AM
Our printer is unable to get up to target temp for PLA (set for 200C), and it peaks at approx. 185C (but only shorty). Also, the thermocouple is reading 30C when at room temp which is about 10C off. We're using Marlin firmware and have checked almost every thermocouple setting. We have it set for -1 despite the vendor (makergeeks) stating that it needs to be set for 5 (readout temp is 0 C). Basically, the temp reading is incorrect, and the hot end does not reach target temp.

We have verified that the heater is receiving 12V. The extruder assembly is an "all in one" received from makergeeks. The board we're using is a megatronics 2.0 received from sainsmart (http://www.sainsmart.com/3d-printing/megatronics-a4988-lcd12864-controller-heatbed-endstop-kit-for-reprap-3d-print.html). Our power supply is an ATX power supply from Maker Geeks (approx 350 W).

We are really at a loss for what to change. MakerGeeks is sending us a new thermocouple, so that may resolve the incorrect temp reading. Do we have a bad heater? Do we need to make changes to the board, such as a thermocouple amplifier? Below is the thermal section of the firmware.

//===========================================================================
//=============================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)
// 11 is 100k beta 3950 1% thermistor (4.7k pullup)
// 12 is 100k 0603 SMD Vishay NTCS0603E3104FXT (4.7k pullup) (calibrated for Makibox hot bed)
// 13 is 100k Hisens 3950 1% up to 300°C for hotend "Simple ONE " & "Hotend "All In ONE"
// 20 is the PT100 circuit found in the Ultimainboard V2.x
// 60 is 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
//
// 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)
//
// 1047 is Pt1000 with 4k7 pullup
// 1010 is Pt1000 with 1k pullup (non standard)
// 147 is Pt100 with 4k7 pullup
// 110 is Pt100 with 1k pullup (non standard)

#define TEMP_SENSOR_0 -1
#define TEMP_SENSOR_1 0
#define TEMP_SENSOR_2 0
#define TEMP_SENSOR_BED 1

// This makes temp sensor 1 a redundant sensor for sensor 0. If the temperatures difference between these sensors is to high the print will be aborted.
//#define TEMP_SENSOR_1_AS_REDUNDANT
#define MAX_REDUNDANT_TEMP_SENSOR_DIFF 10

// Actual temperature must be close to target for this long before M109 returns success
#define TEMP_RESIDENCY_TIME 10 // (seconds)
#define TEMP_HYSTERESIS 3 // (degC) range of +/- temperatures considered "close" to the target one
#define TEMP_WINDOW 1 // (degC) Window around target to start the residency timer x degC early.

// The minimal temperature defines the temperature below which the heater will not be enabled It is used
// to check that the wiring to the thermistor is not broken.
// Otherwise this would lead to the heater being powered on all the time.
#define HEATER_0_MINTEMP 5
#define HEATER_1_MINTEMP 5
#define HEATER_2_MINTEMP 5
#define BED_MINTEMP 5

// 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 240
#define HEATER_1_MAXTEMP 240
#define HEATER_2_MAXTEMP 240
#define BED_MAXTEMP 150

// If your bed has low resistance e.g. .6 ohm and throws the fuse you can duty cycle it to reduce the
// average current. The value should be an integer and the heat bed will be turned on for 1 interval of
// HEATER_BED_DUTY_CYCLE_DIVIDER intervals.
//#define HEATER_BED_DUTY_CYCLE_DIVIDER 4

// If you want the M105 heater power reported in watts, define the BED_WATTS, and (shared for all extruders) EXTRUDER_WATTS
//#define EXTRUDER_WATTS (12.0*12.0/6.7) // P=I^2/R
//#define BED_WATTS (12.0*12.0/1.1) // P=I^2/R

// PID settings:
// Comment the following line to disable PID and enable bang-bang.
#define PIDTEMP
#define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
#define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
#ifdef PIDTEMP
//#define PID_DEBUG // Sends debug data to the serial port.
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
//#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
#define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature
// is more then PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max.
#define PID_INTEGRAL_DRIVE_MAX PID_MAX //limit for the integral term
#define K1 0.95 //smoothing factor within the PID
#define PID_dT ((OVERSAMPLENR * 10.0)/(F_CPU / 64.0 / 256.0)) //sampling period of the temperature routine

// If you are using a pre-configured hotend then you can use one of the value sets by uncommenting it
// Ultimaker
// #define DEFAULT_Kp 22.2
// #define DEFAULT_Ki 1.08
// #define DEFAULT_Kd 114

// MakerGear
// #define DEFAULT_Kp 7.0
// #define DEFAULT_Ki 0.1
// #define DEFAULT_Kd 12

// Mendel Parts V9 on 12V
#define DEFAULT_Kp 63.0
#define DEFAULT_Ki 2.25
#define DEFAULT_Kd 440
#endif // PIDTEMP
Re: Problem with heating. Help please.
February 03, 2016 11:34AM
A thermocouple? that's pretty rare in 3D printers isn't it?

I went round and round with the seller of my printer (generic ebay prusa i3) and finally bought a thermistor from digikey with a known good profile in marlin (I'm using a beta 3950 and #11). Made all the difference in the world.

I believe this is the link to digikey, but I deleted my original invoice email:

[www.digikey.com]
Re: Problem with heating. Help please.
February 03, 2016 11:37AM
Thermocouples have a higher operating temp. The operating temp for that thermistor maxes out at 125C, which makes me a bit wary.
Re: Problem with heating. Help please.
February 03, 2016 12:09PM
That's probably not the exact one I bought. I just did a quick digikey search.
Re: Problem with heating. Help please.
February 04, 2016 07:22AM
Its not clear if the 185 you quote is from the printer/thermistor or from a separate measurement. The printer only has the thermistor as input so if its wrong then it doesn't know the real temperature. If it reports 185 when trying to get to 200 it will leave the hot end on and the real temperature will be way above target and possibly damage the hot end = don't use it until you are happy with the temperature reading.
At ambient you can compare the hot end temperature with the bed temperature (assuming you have a hot bed).
Which has just made me realise another check would be to position the hot end nozzle touching the hot bed and then turn the bed on. You can then check that the temperature rises as the bed rises. There will be a time delay while the heat conducts to the thermistor and there will be a loss to atmosphere but its a sanity check.
If you have a heated bed with the same thermistor then you can swap the wires to see if the temperature error is the same. If its not the same but you know what it is you can swap the connections and change the firmware settings to check.
Re: Problem with heating. Help please.
February 04, 2016 01:07PM
The thermistor on the bed is accurate. It reads 19C at room temp while the one on the extruder nozzle reads 30 C; they are not the same thermistor either. Are there any other options, such as using different pins on the board, that don't involve hardware replacement?
Sorry, only registered users may post in this forum.

Click here to login