Extruder temperatures

After playing around getting used to the Max for the past few weeks I’m finding that it can print beautifully but the extruder temps specified in the filament profiles usually need to be above the range temps recommended by the filament manufacturer. For any given filament I will run through the Orca configuration routines starting at the top (temp tower) and working my way down the list. I’m finding I need to print a tower from 10 or 15°C above the max recommended down to maybe 5°C below the max recommended.

Is anyone else finding this? I’m wondering if this is something strange with the MAX extruder design in general or if I have a wonky temp sensor in mine and the printer just thinks that’s the temperature.

The temperature reading Klipper uses/displays are a result of how the sense element is defined in printer.cfg. Sovol refers to the sensor as a PT1000 in their sales literature, yet define it as a custom thermistor rather than use Klipper’s built in values for a PT1000.

[adc_temperature extruder_thermistor]
temperature1:25
resistance1:1268.60
temperature2:180
resistance2:1920.98
temperature3:300
resistance3:2398.52

[extruder]
step_pin: extra_mcu:PA8
dir_pin: extra_mcu:PA9
enable_pin:!extra_mcu:PA11
rotation_distance: 6.5
microsteps: 16
full_steps_per_rotation: 200
nozzle_diameter: 0.400
filament_diameter: 1.75
max_extrude_only_distance: 150
max_extrude_cross_section: 60
heater_pin:extra_mcu:PB7
sensor_type:extruder_thermistor

pullup_resistor: 11500
sensor_pin: extra_mcu:PA5

I don’t know why Sovol feels this is necessary.

I’d be tempted to reconfigure as a generic PT1000 and see how that works.

Hmmm. You may be on to something, but I think it’s more than just the values. If I understand how the “adc_temperature extruder_thermistor” defintion works it would seem to indicate a resistance of 1268.60 ohms = 25°, 1920.98 ohms = 180° and 2398.52 = 300°?

If it was as simple as setting values to match the PT1000 datasheet then it would be the exact opposite effect – the printer would “think” the extruder was colder than it really is (eg: datasheet says 2398.52 ohms = 379.1°)

But the Klipper config file I just pulled up on-line seems to be calibrated to a pull-up resistor of 1500 ohms. The file you quote shows a pull-up resistor value of 11500 – I assume ohms? I wonder if that’s the value they really used or if that’s a typo?

Something is out of whack all right. This morning I decided to compare actual temps against indicated temps.

I used two methods of measuring the nozzle temperature. Direct measurement via a K-type thermocouple tucked between the hot end and the silicone boot. And indirect measurement via a thermal imaging camera. A TIC is dependent upon the thermal emissivity of the material, so to calibrate it somewhat I compared the readings at room temperature and set the emissivity compensation to get the closest match to the K-type thermocouple.

At room temp:

Klipper: 23.1°C, TIC: 25.9°C, K-TC: 24.0°C

Then I set the extruder temp higher in stages to 150°C, 200°C, 250°C and 300°C respectively. The results (note, the thermocouple temps varied regularly between two values, presumably as the heater ramped up and down to maintain the setting):

Klipper: 150°C, TIC: 140.9°C, K-TC: 138° - 140°C

Klipper: 200°C, TIC 187°C, K-TC: 185° - 189°C

Klipper: 250°C, TIC 226°C, K-TC: 228° - 231°C

Klipper: 300°C, TIC 274°C, K-TC: 272° - 274°C

A considerable discrepancy that gets worse as the set temperature rises!

My setup:

Changing the pull-up resistor value to 1500 is not the answer. That results in an out-of-range error of -270° which crashes Klipper.

I’d open a support ticket with Sovol.

While you are waiting you could:

  1. Comment out the custom 3 point curve deffinition
  2. Comment out the line <sensor_type:extruder_thermistor>
  3. Add a line <sensor_type: PT1000> below the above line
  4. Try HIGHER pullup values until you get a good match at 275 °C
  5. Test other values and see if you get acceptable results

The ADC measures VOLTS across the sensor. Klipper calculates the resistance based on Vref and the pullup value. My guess is your toolhead board has an issue with Vref, the ADC, the pullup or a partially shorted filter capacitor.

I’ve been experimenting. I changed the thermistor curve resistance values using an online PT1000 calculator, like so:

[adc_temperature extruder_thermistor]
;temperature1:25
;resistance1:1268.60
;temperature2:180
;resistance2:1920.98
;temperature3:300
;resistance3:2398.52
temperature1:25
resistance1:1097.35
temperature2:180
resistance2:1684.78
temperature3:300
resistance3:2120.52

Then I started playing around with the pull-up resistor value in the extruder section, resulting in this:

sensor_type:extruder_thermistor
;pullup_resistor: 11500
pullup_resistor: 9700
sensor_pin: extra_mcu:PA5

Much closer now, except at room temp:

Klipper: 17°C, TIC: 27°C, K-TC: 25°C

Klipper: 150°C, TIC 154°C, K-TC: 153° - 154°C

Klipper: 200°C, TIC 205°C, K-TC: 198° - 200°C

Klipper: 220°C, TIC 222°C, K-TC: 218° - 222°C

Klipper: 250°C, TIC 250°C, K-TC: 248° - 250°C

Klipper: 300°C, TIC 297°C, K-TC: 299° - 300°C

This may be a longshot, but your TC looks like it’s placed toward the top of the hotend. Maybe it’s hotter toward the bottom, closer to the nozzle?

The photo may be a bit deceptive – the K-type sensor bulb is actually between the silicon insulating boot around the hot-end, adjacent to the printer’s sensor much further down. What you see is the sensor lead sticking up out of the top of the boot.

I didn’t take a photo, but when I looked at the hot end without the boot using the thermal imaging camera, the heat was pretty even (I was particularly curious to see if there was a significant difference between the heater and steel nozzle).

Good evening, your thermistor is probably positioned incorrectly and is giving a different temperature return than that shown at the nozzle. I advise you to check the thermistor, whether it is properly installed and/or its quality.

The thermistor seems to be installed where Sovol intended. Which is not the same as saying it’s in the right place, but if there’s a better place, I’m not seeing it. I believe the thermistor is at the end of the smaller diameter wires, clamped securely to the side of the heat block with the chrome steel clip?

The heat block itself seems to heat up pretty evenly, as viewed with a TIC with the insulating boot removed. And the nozzle is clearly at a similar temp. I think it likely the temps are more even with the boot installed. (note: the dark area in the middle is where the clip and thermal past residue have a different emissivity than the brass heat block. They are not actually cooler, just a different material. I confirmed that with the K-type probe).

Both vgergo and klipperprintdemon confirm they had the same issue with their beta machines – they needed to set the print temp much higher than normal. Klipperprintdemon says he thought Sovol fixed the issue in the latest update though. Maybe that is the reason for the custom sensor definition? If so, then mine would have been extraordinarily bad with the previous software! Such a variance would also suggest Sovol got a batch of badly calibrated thermistors. Or pull-up resistors.

I assumed the problem was the hardened steel nozzle as it doesn’t heat up as well as a brass nozzle does. I replaced the steel nozzle with a tungsten carbide one, and the problem went away.

Just chiming in here that I am also seeing a really similar issue here. I haven’t had time to dive into the detailed testing that torch has done, but I’m seeing that to get successful prints on a project using PETG, I’m having to print around 25 degrees above the stated max.