Change KAMP Temperature for Mesh probing

Hello,
I have a Creality K1C, which is rooted everything including KAMP is working fine. When i start a print the nozzle heats up to 180°C, homes all axes, then it goes to the silicone brush heats up to 220°C cleans the nozzle, cools down to 180°C, starts measuring the bed then heats up to the printing temperature and starts the print. While doing that especially when printing with PETG little amounts of filament comes out of the nozzle and therefore the mesh is not good anymore and the print fails.
I want to drop the meshing temperature down from 180°C to like 100°C so no material can come out while meshing. I tried that with changing the “g28_ext_temp” in “Printer_Params” from 180°C to 100°C but that doesn´t change anything. I searched for other settings which could be related to the meshing temperature but couldn´t find anything.
I hope someone who knows more about klipper can help me.

klippy.log.zip (2.7 MB)

Hello @jonas1 !

The log does not look like genuine Klipper.

Do you run on Sonic Pad?

It should be genuine Klipper i think. I just rooted the printer and installed Klipper with this Helper-Script GitHub - Guilouz/Creality-K1-Series: Wiki for Creality Helper Script.
I don´t run any device in between the Printer is directly connected to Klipper.

You’re not answering the question.

What is your “host” system? This is the system you are connecting the printer’s main controller board to.

That’s definitely Creality modified firmware looking at the log, I’d recognize the spam anywhere.

I don‘t know what you mean with host system. I did not specifically connect anything to the main controller board. I just followed the instructions of the helper script and installed moonraker, fluidd and other things that where either necessary or extra features.
Maybe if you could describe what you mean with host system or tell me where i can look that up i could give you more details.

Klipper consists of a “host” system in which the gcode is interpreted and instructions are sent to a “main controller board” which is built into the printer. The connection between the host and the printer is usually USB but sometimes serial lines.

What are you plugging into your printer?

I dont plug anything into the printer, i slice the file i want to print in creality slicer and send the gcode to the printer and from the fluidd interface i start the printjob.

What do you run fluidd on? That’s your host system.

I assume the K1C is a all in one platform that includes the host.

Anyway, it is crippled Klipper it runs and no one knows to what genuine Klipper they refer.
Putting 3rd party extensions (like KAMP) on such a machine is quite a risky endeavour.

I don’t heat up the hotend until after the mesh calibration. Seems like that would solve your problem.

I don‘t know what i am running it on i had nothing to do with any kind of host while installing klipper.
I ssh the printer and opened the helper script where you can just click install on the necessary things like moonraker and fluid and the optional features like KAMP. After that everything just works fine.

I would do that also but i don‘t know where i can adjust the temperature or the heating in general for the meshing process

The issue is, that the printer uses a Klipper version that is modified by Creality.

We do not know what Creality did with Klipper and what changes have been made.

So we are not able to fix things due to the modifications.

It might seem frustrating but no one is trying to avoid answering your questions. You have to understand that Creality took the Klipper firmware, gutted it and made major modifications, and started packaging “their” version with their hardware.

Everyone here is used to the mainline “actual” Klipper and to the frustration of everyone (Creality owners mostly I’m sure) it’s extremely hard to debug issues because it’s hard to pin down exactly what they’re done.

What Myke was referring to is typically a Raspberry Pi or some derivative that runs Klipper and feeds commands to the microcontrollers that actually control the steppers. I’m sure yours is an all in one kit like Eddy was referring to.

If, at some point, you’re interested there are multiple guides on the internet on how to switch to the “Actual” Klipper on your Creality machine.

From my digging into the Creality version the first thing I noticed is they packed in a bunch of junk that looks like it reports back to them on usage. Or at the very least it spams a bunch of extra information. If it’s for debugging or other reasons, who knows.

KAMP is also a semi third party “add on” so that kind of adds to it with the complexity of the issue.

1 Like

While I agree with everything others have said, it seems like this situation may not be entirely hopeless as the system is apparently functioning as desired, with the exception of the heating sequence. Hopefully even with Creality’s bastardized version of Klipper the start sequence can be easily adjusted.

@jonas1, my suggestion is that you invest the time necessary to learn the basics of how Klipper works and what it is actually doing, rather than blindly relying on random scripts and macros found on the internet or hoping there’s a magic copy-paste that will make everything perfect.

In a nutshell, Klipper (like most other printer firmware) executes gcode commands in the order it receives them, and simply does what it’s told to do. Most of these gcode commands are generated by the slicer. Klipper also allows the use of macros, which are essentially user-defined gcode commands that execute other gcode when called.

In your case, the firmware is receiving gcode instructions to heat up the nozzle before the bed mesh calibration is called. These instructions in this sequence could be placed in the gcode file by the slicer as part of the starting custom gcode that most slicers allow you to specify. Alternatively, the slicer’s custom start gcode could be calling a Klipper macro (such as PRINT_START for example) that is in turn executing the start sequence when called.

So first check your slicer’s custom start gcode and see what gcode commands it is inserting and in what order. You should be able to easily read or look up what they are doing. If one of these commands is a Klipper macro like PRINT_START, then you’ll need to go into your printer.cfg file (or one of the other .cfg files that the main printer.cfg includes), find the gcode macro that your slicer is calling, and read there what commands the macro is executing and what they do.

Somewhere in there you will find the bed mesh command. All you need to do is move that command to a line before the hotend heater is enabled. This will cause the mesh calibration to be performed earlier in the sequence.

1 Like

okay, i didn’t know that it is not a “actual” Klipper but it is enough for me everything works fine the results are great. i just want to be able to adjust the hotend temperature before meshing, so it would be to much for me to upgrade to the actual Klipper just for that reason or are there any more advantages?

I tried to find the meshing temperature in the .cfg files and wasn’t successful, but i think when i find the time i’ll try to dive in deeper. In the meantime if anyone has a idea or the same problem and a solution for it, it would be great to share it here.

Hello @jonas1

I had the exactly same issue with the K1C and I could solve it.
You have to ssh into your printer and modify the file custom_macro.py in /usr/share/klipper/klippy/extras with a text editor.

Look at the lines 101-103:

101         self.g28_ext_temp = self.extruder_temp - 70
102         if self.g28_ext_temp > 180.0:
103             self.g28_ext_temp = 180.0

The homing/bed mesh nozzle temperature is originally set to the printing extruder temperature minus 70 degree, the next 2 lines are limiting the temperature to 180 degree. Simply change 180 to you liking.

I found that there is no oozing at 150, so I used it. You shouldn’t go down too much because the expansion of the nozzle at higher temperatures is also affecting the Z offset and bed meshing. The 30 degrees shouldn’t matter very much.
After saving the file, restart the klipper service (or simply turn off/on your printer). The modified custom_macro.py will be compiled automatically when the service starts and the changes will be applied.

2 Likes

Thanks for sharing your solution @alex3d. Appreciated.

And a perfect example for the points raised above:

  • In original Klipper you would be able to fine tune such steps, e.g. in a PRINT_START macro, giving you the full flexibility over the process (even dynamically from print to print)
  • Creality (unfortunately not limited to them) is notorious for modifications that are:
    • Not transparent
    • Violates Klipper’s Open Source License
    • Might be of questionable use or quality
  • As shown by @alex3d: What would have been a trivial setting in original Klipper ends up being hardcoded by Creality and requiring a Klipper source code modification
  • Makes it very hard for the supporting people here to give any meaningful advice and pretty much impossible without owning such a device ourselves. Also, to be honest, the willingness of doing the legwork for Creality, who is violating the license and making money on the Klipper project’s back, might be somewhat limited.

As we cannot repeat this often enough, some thoughts on this subject also here: Importance of Open Source in 3D Printing and the Consequences of OSS License Infringement

2 Likes