Hello, my printing fan has been modified with a 5015 blower fan. When I print ABS, I need 15% fan speed, but there is a problem with the speed regulation. The minimum speed of this fan is M106 S197, 76%. How do I remap S197 - S255 to 1%-100%(0-255)?
[fan]
pin: rpi:gpio14
max_power: 1.0
kick_start_time: 1.00
hardware_pwm: False
off_below: 0.76
Hello @yyxp1989 !
Have you seen this:?
yyxp1989:
off_below: 0.76
You may use a smaller value, 0.10 for 10%.
1% would be off_below: 0.01
You may also check what minimum rpm (%) the fan is capable of.
1 Like
Sineos
February 21, 2022, 2:22pm
3
There is no such functionality in Klipper.
It has been discussed many times but decided not to be implemented. See
Klipper3d:master
← FHeilmann:pr_fan_min_speed
opened 10:36PM - 10 Nov 19 UTC
This is an addition to #1897 (FYI @seckar). The merged PR introduced the configu… ration parameter `off_below` which allows users to specify a PWM value below which a fan will not turn on. This avoids fan stalling and overheating, however it also causes M106 to essentially have no effect below values below `off_below`. In extreme cases, e.g. with an `off_below` value of 0.5, this will cause M106 to lose much of its functionality.
This PR changes the computation of the PWM value to a linear scale between `off_below` and `max_power`. While this will not cause a true 0-100% scale of fan RPM or fan CFM, it will at least cause M106 with a non-zero S value to always cause fan spinning.
e.g.
with a configuration like so:
```
max_power: 0.8
off_below: 0.2
```
`M106 S1` will result in a PWM value of `~0.204` causing the fan to spin as slow as possible (given the remaining configuration such as cycle_time), `M106 S127` will result in a PWM value of `0.5`, which will cause fan PWMs somewhere between its minimum fan speed and maximum fan speed at `max_power`, and `M106 S255` will result in a PWM value of `0.8`, which is the configured maximum speed of the fan (still slightly below its max RPM)
Signed-off-by: Florian Heilmann <Florian.Heilmann@gmx.net>
edit: One more addition could/should be to check at configuration time whether off_below is below max_power. If you agree I'll add this change in another commit.
Klipper3d:master
← HairingX:fan_min_power
opened 08:35PM - 24 Sep 21 UTC
An alternative to off_below, min_power raises the fan speeds of commands below m… in_power up to min_power.
This ensures the fan will always run when commanded to.
Example: My fan starts spinning slowly at 15%. Anything below it and it does not spin.
Using off_below I have to use different filament settings for each of my printers (one starts at 7%, another at 15% and a third around 25%).
With min_power i can adjust each printer fan to start spin at 1% and ramp up to max_power.
Thereby I can use the same filament profile for all printers, as 15% fan is approximately the same across the lineup.
I know there is scaling that differs between them - one fan at 40% blows like another at 60%. - But I can live without that feature for now ;-)
As long as the fan spins, when we tell it to without having to worry about minimum power needed when working in the slicer.
## Scaling:
This pull request is all about the min_power option that will help me and others I have spoken with about this option.
But I would like to touch upon the scaling option mentioned above, which I of course would love to see in the future - or merged into this branch before merging it into Klipper.
The power scaling should work as such:
### Example:
#### Machine 1: (5015 blower fan)
- min_power = 0.2
- max_power = 1.0
- **power_scaling = 1.0**
#### Machine 2: (4020 blower fan)
- min_power = 0.2
- max_power = 1.0
- **power_scaling = 1.5**
>Without power_scaling:
When machine 1 runs with 50% fan, it will move more air than my 4020 fan at 50%.
>With the power_scaling:
machine 1 - 50% will be translated to 50% * power_scaling = 50%
maching 2 - 50% will be translated to 50% * power_scaling = 75%
It will be easier to have machines match the same output with the scaling functionality.
Klipper3d:master
← pfemiani:feature/BetterFanControl
opened 02:38AM - 19 Aug 20 UTC
New relative_power fan setting will allow the scaling of fan speed requests
bet… ween off_below and max_power. For example, if off_below is .3 and
max_power is .9 and a fan speed of 20% is requested, then the fan power
will be set to 42%).
With this setting enabled, once you have off_below and
max_power properly calibrated, it is much easier to request fan speeds
between 0% and 100% (or 0-255) via slicer for example and have the fan
behave as intended without having to be mindful of what speed the fan
will be under (ie not started) or over powered.
Signed-off-by: Peter Femiani <peter@femiani.com>