diff options
author | David Crocker <dcrocker@eschertech.com> | 2020-09-30 13:22:35 +0300 |
---|---|---|
committer | David Crocker <dcrocker@eschertech.com> | 2020-09-30 13:22:35 +0300 |
commit | 2e6f7d25cdcd0cfbcfd5e30d9d632ce56157d1e2 (patch) | |
tree | 2fae7beda86c5de7f02e0dc749ec99964c38c0e7 /src/Heating | |
parent | cb8ff1a35e39cb546aab98e821d56f9fd1afb457 (diff) |
Improved the instructions displayed when heater tuning completes
Diffstat (limited to 'src/Heating')
-rw-r--r-- | src/Heating/LocalHeater.cpp | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/src/Heating/LocalHeater.cpp b/src/Heating/LocalHeater.cpp index 9994e108..aeefb930 100644 --- a/src/Heating/LocalHeater.cpp +++ b/src/Heating/LocalHeater.cpp @@ -539,7 +539,7 @@ void LocalHeater::GetAutoTuneStatus(const StringRef& reply) const noexcept /* Notes on the auto tune algorithm * - * Most 3D printer firmwares use the Åström-Hägglund relay tuning method (sometimes called Ziegler-Nichols + relay). + * Most 3D printer firmwares use the �str�m-H�gglund relay tuning method (sometimes called Ziegler-Nichols + relay). * This gives results of variable quality, but they seem to be generally satisfactory. * * We use Cohen-Coon tuning instead. This models the heating process as a first-order process (i.e. one that with constant heating @@ -861,9 +861,19 @@ void LocalHeater::CalculateModel() noexcept if (rslt == GCodeResult::ok || rslt == GCodeResult::warning) { reprap.GetPlatform().MessageF(LoggedGenericMessage, - "Auto tune heater %u completed in %" PRIu32 " sec\n" - "Use M307 H%u to see the result, or M500 to save the result in config-override.g\n", - GetHeaterNumber(), (millis() - tuningBeginTime)/(uint32_t)SecondsToMillis, GetHeaterNumber()); + "Auto tuning heater %u completed in %" PRIu32 " seconds. This heater needs the following M307 command:\n" + " M307 H%u A%.1f C%.1f D%.1f S%.2f V%.1f\n", + GetHeaterNumber(), (millis() - tuningBeginTime)/(uint32_t)SecondsToMillis, + GetHeaterNumber(), (double)GetModel().GetGain(), (double)GetModel().GetTimeConstant(), (double)GetModel().GetDeadTime(), + (double)GetModel().GetMaxPwm(), (double)GetModel().GetVoltage()); + if (reprap.GetGCodes().SawM501InConfigFile()) + { + reprap.GetPlatform().Message(GenericMessage, "Send M500 to save this command in config-override.g\n"); + } + else + { + reprap.GetPlatform().MessageF(GenericMessage, "Edit the M307 %u command in config.g to match this.\n", GetHeaterNumber()); + } } else { |