Temp platoes before target temp


I had a problem with the heating curve of the extruder.
I set it to 200 degrees, it would heat until 180 then drop and result in a fatal error.
Increased wait time a little and some other parameters and the error doesn't show anymore. However, I still can't reach the desired temperature.

If I set it to 200 the temperature platoes at 180. If I set it to 220 it platoes at 200.

I think the sensor works, otherwise it wouldn't be showing the current temperature until the failure point.
I also think the pins are correct, otherwise I wouldn't get any readings.
I tried checking EEPROM, Printer Config and Configuration.h for any offset parameters but couldn't find anything.

Any idea of what could be wrong?


  • Make sure maxPid is 255 to allow full power at all. Also make sure driveMax is high enough and not limiting output again. I think one of these is just set to low which reduces the output power. In host/server you can see output power graphically and if it is not at 100% you have a reserve and are just limiting through config.
  • Both "PID max value" and "PID drive max" are set to 255.

    I checked the Graph for output graph but I'm not sure it is really going at 100%.
    The weird thing is that when I set the nozzle to heat it gets close to the target temp and then fails.
    But if I use M303 for PID autotune it reaches the desired temperature and performs the tuning correctly.

    Below is a screenshot from a test that I did today. The first peak was just telling the nozzle to heat to 200 degrees.
    The second is M303 S200 C10 command.

    Also, I've updated Repetier Host to the most recent version and the readings at low temp started floating severely.
    Any suggestions on what to do?

    I can send my Config.h and EEPROM settings if that is of assistance.

  • You M303 syntax uses a C10 - what should that be. Here syntax for newest firmware:

    - M303 P<extruder/bed> S<printTemerature> X0 R<Repetitions> C<method>- Auto detect pid values. Use P<NUM_EXTRUDER> for heated bed. X0 saves result in EEPROM. R is number of cycles.

    method 0 = classic, 1 = some overshoot, 2 = no overshoot, 3 = pessen, 4 = Tyreus-Lyben

    I think it took the classic computation of PID

    What I miss here is a more or less constant output level. Normally it converges against this after a while. The right curve has it a bit.

    What I can clearly see is that temperature reading is buggy. You have spikes everywhere and faster then temperature can change. So something influences temperature reading and you get wrong temperatures and hence totally unadequate corrections from PID. Especially damping will trigger here but also P term. When not heating at room temperature the temperature must be very flat. Maybe jumps of 0.5°C but not what you have. So first step is finding why you have all these jumps. Reasons are electronic noise, defect thermistor frequent shorts of thermistor.
  • Thank you very much for your suggestions.

    In the end I replaced the electronic board and some of the PID parameters and the extruder 1 is working fine.

    However, I still can't use extruder 2.
    I have two extruders defined both in config.h and hosts printer config. There is a temperature sensor read and the heater is connected to the correct port. Even so, whenever I turn extruder 2 on, it doesn't heat and no LED light up on the board. I know the board should be good because I took it from another printer that was working fine with 2 extruders.

    There is also no temp read for the second extruder in the temperature curve graph.
    Any ideas of what could it be?
  • The graph only shows active extruder not all extruders! So make extruder 2 active and you see the graph from second extruder.

    If it does not measure temperatures it will go into fail state normally and no heating is possible. Check the log. Typical reason is wrong temperature sensor pin or heater pin set. In repetier-firmware T1/heater 1 are for bed output and id 2 is then for second extruder. 
Sign In or Register to comment.