Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/Duet3D/RepRapFirmware.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Crocker <dcrocker@eschertech.com>2018-08-31 22:13:17 +0300
committerDavid Crocker <dcrocker@eschertech.com>2018-08-31 22:13:17 +0300
commita9ac37f4ab515e3fea12cecb7850eedf362b253e (patch)
tree4f8fb0d39319f6a0a81e8cc21a63486a6334338a
parent295e8a0cad9b1e8f0b1cdf3da005a0b241d98769 (diff)
Version 2.02RC12.02RC1
Reduced default stealthChop/spreadCycle crossover speed Increased length of stepper driver open load timer to avoid false open load reports#If heater failes due to bad curve fit, report gani/time constant/dead time as A, C and D as in M307 When pausing, inclucde the pause coordinates in the "Print paused" message
-rw-r--r--src/BugList.txt2
-rw-r--r--src/Configuration.h2
-rw-r--r--src/GCodes/GCodes.cpp61
-rw-r--r--src/Heating/Pid.cpp7
-rw-r--r--src/RepRapFirmware.cpp4
-rw-r--r--src/Version.h4
6 files changed, 67 insertions, 13 deletions
diff --git a/src/BugList.txt b/src/BugList.txt
index cb8ead50..4123907b 100644
--- a/src/BugList.txt
+++ b/src/BugList.txt
@@ -41,6 +41,8 @@ Remaining:
- [done, ok on DuetM, test on Duet2] No warning messages when TMC2224 drivers overheat, https://forum.duet3d.com/topic/6309/little-monster-s-hort-to-ground/13
- [done] Different numbers of endstop inputs and motor drivers
- [done, ok] Support mixed stealthchop/spread cycle mode on Maestro via TPWMTHRS register, https://forum.duet3d.com/topic/6512/duet-2-maestro-stealthchop-default/7
+- [done, test] Add paused coordinates to 'printing paused' message? https://reprap.org/forum/read.php?416,832303,832440#msg-832440
+- [done] If a bad curve fit occurs during tuning, display the values as A, C and D instead of G, tc and td to better relate to M307
- Add check digit to serial number
- check DAA working as intended, results are inconsistent
- chrishamm's watchdog issue, see his email oif 2018-08-01
diff --git a/src/Configuration.h b/src/Configuration.h
index ff09ac51..be15ebfd 100644
--- a/src/Configuration.h
+++ b/src/Configuration.h
@@ -32,7 +32,7 @@ constexpr float ROOM_TEMPERATURE = 21.0; // Celsius
// Timeouts
constexpr uint32_t FanCheckInterval = 500; // Milliseconds
-constexpr uint32_t OpenLoadTimeout = 500; // Milliseconds
+constexpr uint32_t OpenLoadTimeout = 5000; // Milliseconds. A value of 500 resulted in lots of spurious detections in the SCARA extruder. Even 2000 resulted in a couple.
constexpr uint32_t MinimumWarningInterval = 4000; // Milliseconds, must be at least as long as FanCheckInterval
constexpr uint32_t LogFlushInterval = 15000; // Milliseconds
constexpr uint32_t DriverCoolingTimeout = 4000; // Milliseconds
diff --git a/src/GCodes/GCodes.cpp b/src/GCodes/GCodes.cpp
index aca91dfe..f3ca91a2 100644
--- a/src/GCodes/GCodes.cpp
+++ b/src/GCodes/GCodes.cpp
@@ -679,8 +679,12 @@ void GCodes::RunStateMachine(GCodeBuffer& gb, const StringRef& reply)
case GCodeState::pausing2:
if (LockMovementAndWaitForStandstill(gb))
{
- reply.copy("Printing paused");
- platform.Message(LogMessage, "Printing paused\n");
+ reply.printf("Printing paused at");
+ for (size_t axis = 0; axis < numVisibleAxes; ++axis)
+ {
+ reply.catf(" %c%.1f", axisLetters[axis], (double)pauseRestorePoint.moveCoords[axis]);
+ }
+ platform.MessageF(LogMessage, "%s\n", reply.c_str());
gb.SetState(GCodeState::normal);
}
break;
@@ -1735,6 +1739,13 @@ void GCodes::DoPause(GCodeBuffer& gb, PauseReason reason, const char *msg)
}
}
+#if SUPPORT_LASER
+ if (machineType == MachineType::laser)
+ {
+ moveBuffer.laserPwmOrIoBits.laserPwm = 0; // turn off the laser when we start moving
+ }
+#endif
+
SaveFanSpeeds();
pauseRestorePoint.toolNumber = reprap.GetCurrentToolNumber();
@@ -2382,9 +2393,18 @@ const char* GCodes::DoStraightMove(GCodeBuffer& gb, bool isCoordinated)
#if SUPPORT_LASER
else if (machineType == MachineType::laser)
{
- moveBuffer.laserPwmOrIoBits.laserPwm = (moveBuffer.moveType == 0 && isCoordinated && gb.Seen('S'))
- ? ConvertLaserPwm(gb.GetFValue())
- : 0;
+ if (!isCoordinated || moveBuffer.moveType != 0)
+ {
+ moveBuffer.laserPwmOrIoBits.laserPwm = 0;
+ }
+ else if (gb.Seen('S'))
+ {
+ moveBuffer.laserPwmOrIoBits.laserPwm = ConvertLaserPwm(gb.GetFValue());
+ }
+ else
+ {
+ // leave the laser PWM alone because this is what LaserWeb expects
+ }
}
#endif
#if SUPPORT_IOBITS
@@ -2696,6 +2716,37 @@ const char* GCodes::DoArcMove(GCodeBuffer& gb, bool clockwise)
LoadExtrusionAndFeedrateFromGCode(gb);
+#if SUPPORT_LASER
+ if (machineType == MachineType::laser)
+ {
+ if (gb.Seen('S'))
+ {
+ moveBuffer.laserPwmOrIoBits.laserPwm = ConvertLaserPwm(gb.GetFValue());
+ }
+ else
+ {
+ // leave the laser PWM alone because this is what LaserWeb expects
+ }
+ }
+# if SUPPORT_IOBITS
+ else
+# endif
+#endif
+#if SUPPORT_IOBITS
+ {
+ // Update the iobits parameter
+ if (gb.Seen('P'))
+ {
+ moveBuffer.laserPwmOrIoBits.ioBits = (IoBits_t)gb.GetIValue();
+ }
+ else
+ {
+ // Leave moveBuffer.ioBits alone so that we keep the previous value
+ }
+ }
+#endif
+
+
moveBuffer.usePressureAdvance = moveBuffer.hasExtrusion;
arcRadius = sqrtf(iParam * iParam + jParam * jParam);
diff --git a/src/Heating/Pid.cpp b/src/Heating/Pid.cpp
index 152bdd40..10eacbd4 100644
--- a/src/Heating/Pid.cpp
+++ b/src/Heating/Pid.cpp
@@ -749,7 +749,7 @@ void PID::DoTuningStep()
const int peakIndex = GetPeakTempIndex();
if (peakIndex < 0)
{
- if (millis() - tuningPhaseStartTime < 60 * 1000) // allow 1 minute for the bed temperature reach peal temperature
+ if (millis() - tuningPhaseStartTime < 60 * 1000) // allow 1 minute for the bed temperature reach peak temperature
{
return; // still waiting for peak temperature
}
@@ -898,7 +898,8 @@ void PID::CalculateModel()
{
DisplayBuffer("At completion");
}
- const float tc = (float)((tuningReadingsTaken - 1) * tuningReadingInterval)/(1000.0 * logf((tuningTempReadings[0] - tuningStartTemp)/(tuningTempReadings[tuningReadingsTaken - 1] - tuningStartTemp)));
+ const float tc = (float)((tuningReadingsTaken - 1) * tuningReadingInterval)
+ /(1000.0 * logf((tuningTempReadings[0] - tuningStartTemp)/(tuningTempReadings[tuningReadingsTaken - 1] - tuningStartTemp)));
const float heatingTime = (tuningHeatingTime - tuningPeakDelay) * 0.001;
const float gain = (tuningHeaterOffTemp - tuningStartTemp)/(1.0 - expf(-heatingTime/tc));
@@ -925,7 +926,7 @@ void PID::CalculateModel()
}
else
{
- platform.MessageF(WarningMessage, "Auto tune of heater %u failed due to bad curve fit (G=%.1f, tc=%.1f, td=%.1f)\n", heater, (double)gain, (double)tc, (double)td);
+ platform.MessageF(WarningMessage, "Auto tune of heater %u failed due to bad curve fit (A=%.1f, C=%.1f, D=%.1f)\n", heater, (double)gain, (double)tc, (double)td);
}
}
diff --git a/src/RepRapFirmware.cpp b/src/RepRapFirmware.cpp
index 87a70d3e..929001a1 100644
--- a/src/RepRapFirmware.cpp
+++ b/src/RepRapFirmware.cpp
@@ -209,10 +209,10 @@ bool MillisTimer::Check(uint32_t timeoutMillis) const
return running && millis() - whenStarted >= timeoutMillis;
}
-// Check whether a timeout has expired and don't stop the timer if it has, else leave it running if it was
+// Check whether a timeout has expired and stop the timer if it has, else leave it running if it was running
bool MillisTimer::CheckAndStop(uint32_t timeoutMillis)
{
- const bool ret = running && millis() - whenStarted >= timeoutMillis;
+ const bool ret = Check(timeoutMillis);
if (ret)
{
running = false;
diff --git a/src/Version.h b/src/Version.h
index 9762aaa2..938e6eec 100644
--- a/src/Version.h
+++ b/src/Version.h
@@ -12,7 +12,7 @@
#ifndef VERSION
#ifdef RTOS
# define RTOSVER "(RTOS)"
-# define MAIN_VERSION "2.02beta2"
+# define MAIN_VERSION "2.02RC1"
#else
# define MAIN_VERSION "1.22"
# define RTOSVER
@@ -22,7 +22,7 @@
#endif
#ifndef DATE
-# define DATE "2018-08-30b3"
+# define DATE "2018-08-31b4"
#endif
#define AUTHORS "reprappro, dc42, chrishamm, t3p3, dnewman, printm3d"