For those who don't frequent the mailing list, I'm looking for people to try a PID auto tuning routine that I'm working on.
The code is at:
https://github.com/j-c/Marlin
After uploading the firmware, you can start the routine by sending "M302 S190". 190 is the temperature that the firmware will attempt to use for tests. The code doesn't deal well with tests with low target temps (140-150).
The resulting PID values might not be perfect, but it gives a pretty good starting point (and takes a lot less effort on the user's part than the ZN tuning method).
What the routine does:
1) Firmware slowly increments the heater output and see what temps it hits. Repeat till specified temp.
2) Firmware waits for printer to cool down and stabilise. It assumes this is room temperature
3) Firmware then heats up printer with output determined in step 2
4) As the temps increase, the printer gathers the process dead time. As the temperature stabilises, the printer gathers process time and process gain.
5) Firmware calculates PID+A values and outputs them via serial.
Note1: All tests are run with fan on (firmware should turn it on).
Note2: If at any time, the temp hit 275 degrees, the firmware aborts the test, turns off the printer but leaves the fan running.... In theory this should work, but I've never been in a situation where this happened (nor did I particularly want to force it to happen).
The "A" number is the heater output filter. It's not in standard Marlin, I just left it in there for testing.
If anyone tries this, could you please report back with any problems that you encountered, and also:
[*:2id0yiuh]The final PID values [*:2id0yiuh]Process gain [*:2id0yiuh]Process dead time [*:2id0yiuh]Process time [*:2id0yiuh]Temperature used and actual final temperature [*:2id0yiuh]If you have an insulated hot end (and what kind) or if your hot end is non-standard
For me, the untouched numbers this give me temps that are stable when not printing, but a 6 degree drop when printing (this can be mitigated by setting the "C" extrusion speed multiplier or Kc in the firmware config).
Thanks!
Hopefully this works for others as well and I can continue on with this approach.