pi@octopi:~/klipper $ git rev-parse HEAD
62fc5dc2884c41eb45880b0e9c988cabb025d1c1
Running on a Pi3 with a genuine E3D V6 heater and thermister. I run PID_CALIBRATE HEATER=extruder TARGET=220, then the temperature graph will look like 
I've attached my log.
I think this is the relevant error message:
Internal error on command:"PID_CALIBRATE"
Traceback (most recent call last):
File "/home/pi/klipper/klippy/gcode.py", line 188, in process_commands
handler(params)
File "/home/pi/klipper/klippy/gcode.py", line 69, in <lambda>
func = lambda params: origfunc(self.get_extended_params(params))
File "/home/pi/klipper/klippy/extras/pid_calibrate.py", line 39, in cmd_PID_CALIBRATE
Kp, Ki, Kd = calibrate.calc_final_pid()
File "/home/pi/klipper/klippy/extras/pid_calibrate.py", line 132, in calc_final_pid
midpoint_pos = sorted(cycle_times)[len(cycle_times)/2][1]
IndexError: list index out of range
Hi, i had such an issue with my volcano and a new thermistor. The error occurs as far as i understand because the heater verifier code throws an error if heating up takes too long.
First: check if your thermistor settings are correct ( i used a thermocouple and calibrated it ref. #1022 )
Second: The problem for me was/is:
The heater is maybe only 30 Watts and you probably have strong part cooling fans running which cause a cooling of the nozzle (especially if you are close to the print bed) and your heater just cannot handle fast enough. I increased the tolerances for heater errors and did the PID for lower target temperature (with blowers and heat bed close). When i print i ramp the cooling over 5 layers from 0 to 100% which helps the PID to tolerate the temperature drops.
hope it makes any sense and helps :-)
I'm away from the printer for a few days, so I cannot test anything now, but to clarify it can heat up and maintain temps pretty well with Marlin. It would also heat quckly and run calibration at a lower temp without issue. Only when running a high temp PID test it has a curve to heating and never gets to the proper temp, only 200C usually when throwing the error. Did not seem to matter if I had it at 200 and run command or it was at ambient and running the command.
Hi,
[...] Only when running a high temp PID test it has a curve to heating and never gets to the proper temp, only 200C usually when throwing the error. Did not seem to matter if I had it at 200 and run command or it was at ambient and running the command.
that was the same for me and its also running properly at 250掳( when it has reached that point) but the rate of change kills the PID tolerance that is set up in this code:
# Heater and temperature sensor verification. Heater verification is
# automatically enabled for each heater that is configured on the
# printer. Use verify_heater sections to change the default settings.
#[verify_heater heater_config_name]
#heating_gain: 2
# The minimum temperature (in Celsius) that the heater must increase
# by when approaching a new target temperature. The default is 2.
#check_gain_time:
# The amount of time (in seconds) that the heating_gain must be met
# in before an error is raised. The default is 20 seconds for
# extruders and 60 seconds for heater_bed.
#hysteresis: 5
# The difference between the target temperature and the current
# temperature for the heater to be considered within range of the
# target temperature. The default is 5.
#max_error: 120
# The maximum temperature difference a heater that falls outside the
# target temperature range may accumulate before an error is
# raised. For example, if the target temperature is 200, the
# hysteresis is 5, the max_error is 120, and the temperature is
# reported at 185 degrees for 12 seconds then an error would be
# raised (or 24 seconds at 190, or 120 seconds at 194, etc.). The
# default is 120.
The tolerance time and temperature error is defined in that sections and their defaults are listed. You could circumvent the error completely by setting check_gain_time (i think) to a very high value i.e.: check_gain_time: 999999.
I think its just a low power heater issue and marlin has a larger acceptance for that.
As mentioned above, the root cause of the above error is a "veryify_heater" check. It looks like you will need to tune the default verify_heater settings for your extruder.
-Kevin
I'm going to close this as I think the original question was answered.
-Kevin
Most helpful comment
Hi, i had such an issue with my volcano and a new thermistor. The error occurs as far as i understand because the heater verifier code throws an error if heating up takes too long.
First: check if your thermistor settings are correct ( i used a thermocouple and calibrated it ref. #1022 )
Second: The problem for me was/is:
The heater is maybe only 30 Watts and you probably have strong part cooling fans running which cause a cooling of the nozzle (especially if you are close to the print bed) and your heater just cannot handle fast enough. I increased the tolerances for heater errors and did the PID for lower target temperature (with blowers and heat bed close). When i print i ramp the cooling over 5 layers from 0 to 100% which helps the PID to tolerate the temperature drops.
hope it makes any sense and helps :-)