Setting shutdown_speed to 1.0

Basic Information:

Printer Model: Voron 2.4
MCU / Printerboard: Octopus 1.1
Host / SBC Pi 3
klippy.log na

Setting shutdown_speed to anything other than 0.0 (off) will result in error, this includes setting it to 1.0 (on) but in the event of an error, fan speed defaults to max_speed…

If max_speed is set to 0.5 and an error occurs, how is it possible to set the fan to 0.5 (on soft pwm), it isn’t…

Therefore the only option available is 0.0 (turn it off) but for safety I need 1.0 (on)

How do you check? Will say: How do you produce the error state?

As an example I might disconnect one of the thermistors. Perhaps hitting the Emergency Stop Button might work…

My main point is, setting shutdown_speed: 1.0 in config results in error telling me I must use 0.0 or 1.0 but I am using 1.0, see code below…

# Controller fan - FAN3
[controller_fan Nevermore_(Filter)] 
pin: PD13
max_power: 0.5        # Normaly 1.0 but set to 0.5 for testing
shutdown_speed: 1.0   # if error occurs shutdown speed defaults to max_power
kick_start_time: 3.0  # full speed for x to make sure fan spins
heater: extruder      # associated heater/stepper
fan_speed: 1.0        # full speed for x to make sure fan spins
idle_timeout: 60      # keep fan active for x seconds after heater (extruder) is turned off (soak up the fumes)

It is not possible and this is by design.
If your board is in an error state it is impossible for it to do software based PWM. As of this only 1.0 or 0.0 are possible.

My point exactly… You can initially set the speed to 0.5 as there’s no error state and the fan will operate at 50%. If an errors occurs after that, the system cannot set the speed to max_speed as it’s at 50%…

However, if I try to set the shutdown_speed to 1.0 in config, it reports “shutdown value must be 0.0 or 1.0 on soft pwm” … Check the code above, I am trying to set it to 1.0 ?

Ah, I think I see nowI must have max_speed set to 1.0 in order to set shutdown_speed to 1.0

But that seems strange, it means I can’t operate a fan below max if I want it to keep spinning after error condition. If I operate any fan at say 50% and an error occurs, it will stop… fine but perhaps it would be better/safer if it continued at full speed…

Edit: Just confirmed it, you must set max_speed to 1.0 if you intend to set shutdown_speed to 1.0, in other words, if a fans max_speed is below 1.0, it will shutoff in the event of an error…

Of course. As stated above: Speed control cannot work in an error state and capping max speed but then again allowing max speed seems kind of a lacking transparency.

Agree, I guess the code is what it is to use a modern idiom…

Well, in fact it makes sense:

  • max_power limits the maximum output to the fan (kind of like the speed limiter in a car: You can still change your speed, but not go over say 60 mph). This limiter cannot work if the system in an error state and thus Klipper does not allow it in combination with a deviating shutdown_speed
  • You can still use fan_speed to regulate your fan’s speed. This setting will always scale between 0 and max_power

Understood, now it makes perfect sense, nevertheless the error report should probably have made some reference to the combination.

Much appreciated, many thanks Sineos.