It's working, but the amount of cooling seems to be proportional to how short the layer print time is relative to time limit. This is also complicated by the fact that at speeds under about 40-45%, my fan won't run at all because the internal fan drive/motor hardware doesn't respond linearly to the PWM fan signal. It will run OK at 45%, but it won't start at 40% without a push. The "blip" command should fix that, but "40%" is barely turning over. You certainly don't 40% of the amount of max cooling.
Here's what I've observed:
The layer time is definitely a bit longer than I thought, but it's under 10 seconds (~ 9.5 seconds). I have the "maximum speed" set to 100%.
With the limit threshold set to 10 seconds, there is no significant effect. I didn't watch this one, but from the print quality, if it tried to use the fan at all, it didn't set the speed above 45% and nothing happened.
With the limit threshold set to 15 seconds, the fan comes on. However, the amount of cooling is definitely less than 100%, and I still get significant defects in the print.
With the limit threshold set to 20 seconds, the fan comes on. The amount of cooling is much better than at 15 seconds, but it's still definitely less than 100%. The print defects are reduced a lot from no cooling, but still no where near as good as forcing 100% using the starting layer of the top section.
I'm not quite sure what S3D's algorithm is, but it's definitely NOT " go to maximum cooling value if the layer print time is below the threshold" It appears to be more proportional, like "set the fan speed to the maximum speed times the ratio of the layer time divided by the layer threshold time." So, if you set the layer time threshold to 20 seconds and it actually takes 10 seconds, you only get 50% of the maximum cooling level. That suggests that to get anywhere close to 100% cooling, you need to specify a VERY long threshold time, and the algorithm may spend a lot of it's time trying to apply 10, 20 or 30% cooling to longer layers. With my printer, that is as good as off. However, if you use PWM to try to run a 2-wire internal-controller fan below a certain speed, I think you can damage the fan.
This could be very useful, but I need to understand the algorithm better. Also, it would be nice to have a limit in S3D that you can set so it never tries to run a fan slower than its safe minimum.