Config help - 1 fan for both hotend and part cooling

#Annex K3 Derivative
#Octopus Pro

I have an interesting hardware setup and could use some help with the config.

Background:
I designed a custom toolhead where the part cooling fan is ducted across the coldend and then piped down to the nozzle. Why? Because I’m bored and I wanted to reduce the weight of the toolhead as much as possible.

Problem:

  • Check that whenever hotend Temp is above 50C the fan needs to be running at a minimum of 30% speed
  • The fan should be controllable via M106 so that the slicer can still control the part cooling speed during a print

So far I have this simple macro which kicks on M106 when ever M104 is called but it’s not a very robust solution. For instance, whenever a print ends the hotend will still be hot but the fan won’t be running anymore.

[gcode_macro M104]
rename_existing: M104.1
gcode:
  M104.1 {rawparams}
  M106 S77

A complete klippy.log would be quite helpful.

For a better understanding, you may exactly name the fan you are referring to.
Just fan is quite vague.

You set this with

https://www.klipper3d.org/Config_Reference.html#heater_fan

so 100% includes the minimum of 30%

You can’t control the heater fan by M106. It is supposed to run always when a certain temperature is reached (usually 50°C) to prevent clogging.

M106 works on the part cooling fan.


Edit: Sorry, misread the title.

Could you fill out the information that was indicated as required when you started this post? Without a klippy.log you won’t get any kind of helpful response (just more like this one asking for your klippy.log.

1 Like

Would you share a picture of that? I’m curious.

This could be accomplished with a delayed gcode that runs constantly to check the hotend temp, but I don’t think this is a good idea. You’re going to be fighting a never ending battle between using enough fan to prevent jamming, but not so much that bed adhesion is a problem.

1 Like

I’m still in the process of setting up the printer so there isn’t a klippy log yet. What value it would provide in this case?

The toolhead has three purposes.

  1. hold the hotend
  2. direct air flow
  3. hold the z probe (the one quality of life feature I added to the toolhead)

The printer is already build so there’s no turning back now. My barebones macro functions and I’ll use it if I have to but I’d love some help writing something more robust.

I built this printer solely for speed benchies and I’ve clogged enough dragons that I can unclog a heatbreak in a matter of minutes. If I need to print something I’ll just use one of my other printers.


If you’ve connected the main controller and running macros then you should have a klippy.log.

The klippy.log provides a running narrative, or “log” if you will, of what’s happening in the printer.

It’s very valuable for the people who are offering to help you. As a good, general rule of life, if people are offering to help you, give them what they feel they need to help you.

I tested the macro on another printer.

But I did get the k3 flashed and fired up tonight. The rest of the config appears to be working,so I’ve attached a klippy.log

I did not intended to come across as ungrateful I just didn’t understand why it would be useful. My understanding was that klippy.log was only needed for diagnostic purposes.

klippy.zip (522.9 KB)

1 Like

I was asking because there would probably be clues as to what is happening when the macros executed.

Glad to hear you’ve got things working!

Which fan are you talking about? Thanks for the pictures, but I can’t recognize the fan on your pictures.

It is a CPAP blower, you can see it in the back of the picture.

As Sineos said, it’s a CPAP blower. Remote mounted, I’ve sketched the ducting to make it more clear how this works

My simple macro to modify M104 works well enough when paired with the appriopriate GCODE start and end code.

The only issues is when I set the hotend temp through the mainsail interface instead of issuing M104 it issues

SET_HEATER_TEMPERATURE HEATER=extruder TARGET=235

Any ideas on how to modify this command to send M106 at the same time? or send my modified M104 macro instead?

Bump. Still looking for ideas

Honestly, I would abandon this idea.

For the heat break you need cooling as much as possible, else cloggings are pre-programmed due to heat creep.

2 Likes

No worries. Heat break clogging isn’t an issue for me.

If you could help me solve the actual problem in this thread then I would very appreciative.

The only solution that exists you already mentioned in your first post

As for the mentioned issue, just define a PRINT_END macro that does the needful and call it from your slicer as ending gcode.

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.