But you're runnign at 1mS, which is proved to not be correct
With your suggested settings, I only get 100% power if the temp is under 60ºC below the setpoint. The it drops to 50% 30ºC below, and only 25% 15ºC away.
So where's your power? Are you fine with that?
Let me explain what's happening: It's like if you put a giant delay before your magical 1mS number. The PWM has been already stopped for a long time befor the delay has even started. And that's why it works.
Some you guys hype about the lowest delay, fastest pwm, while that's not the important. The only thing that matters is doing it right!
Sorry if that's not what you want to hear, but definitely 45-0-0 isn't a solution, just a cheap workaround. It's like if put a brick under the gas pedal in your car because it shakes when you push it too far.
There's something else that needs to be adjusted, probably timing.
I switched the filter calculation to floats to best accuracy.
Also, I took an old idea that was abandoned back then.
Resetting the Integrator acumulator when the difference is huge, so it doesn't overshoot like crazy.
But this time I used a different approach: Check for proportional output, if it's already saturating the pid output, clear the integrator.
When the temperature gets closer to the setpoint and the proportional starts going down, then the integral part starts working.
I've been tweaking the filter and pid settings for hours now. The new settings are amazingly accurate. For sure ksger will have trouble...
New builds available, hopefully they'll work ok.