The PID_PROFILE documentation states (incorrectly, as it turns out) that it supports switching between PID ... profiles. As the name says. But it's actually switching heater configurations entirely -- including changing control mechanisms. I've been struggling with a workable set of PID tunings for a device running Kalico that is sometimes at the limits of the balance between radiative losses and heater power, where running watermark at high temperatures is far more reliable.
It would be nice if the documentation properly reflected the fact that switching to/from PID, MPC and watermark all work. (Although the GET_VALUES command is assuming PID and crashes if you call it with one of the others...) It's clear (because there's explicit code to support it) that the ability to load profiles with different control mechanisms is deliberate, but the other code seems to either not support it (in the case of GET_VALUES) or only partially support it (in the case of SET_VALUES).
Really, it'd be better if the command was "HEATER_PROFILE". I may be in a very tiny minority in needing to switch control schemes live, but really the same is probably true of people needing to change PID tuning values, as well and the ability to switch control schemes is a pretty significant one, IMO.
The PID_PROFILE documentation states (incorrectly, as it turns out) that it supports switching between PID ... profiles. As the name says. But it's actually switching heater configurations entirely -- including changing control mechanisms. I've been struggling with a workable set of PID tunings for a device running Kalico that is sometimes at the limits of the balance between radiative losses and heater power, where running watermark at high temperatures is far more reliable.
It would be nice if the documentation properly reflected the fact that switching to/from PID, MPC and watermark all work. (Although the GET_VALUES command is assuming PID and crashes if you call it with one of the others...) It's clear (because there's explicit code to support it) that the ability to load profiles with different control mechanisms is deliberate, but the other code seems to either not support it (in the case of GET_VALUES) or only partially support it (in the case of SET_VALUES).
Really, it'd be better if the command was "HEATER_PROFILE". I may be in a very tiny minority in needing to switch control schemes live, but really the same is probably true of people needing to change PID tuning values, as well and the ability to switch control schemes is a pretty significant one, IMO.