From c12ebed79c36c4ccf273f69a97738aee165b5b06 Mon Sep 17 00:00:00 2001 From: Adrian Bowyer Date: Mon, 23 Dec 2013 18:07:16 +0000 Subject: [PATCH] All axis homing now done with canned cycle files. --- Configuration.h | 8 +- GCodes.cpp | 184 ++++-------------- GCodes.h | 1 + Platform.h | 1 - ....bin => RepRapFirmware-045-23-12-2013.bin} | Bin 168356 -> 168268 bytes Release/RepRapFirmware.bin | Bin 168356 -> 168268 bytes SD-image/sys/homex.g | 3 + SD-image/sys/homez.g | 9 + 8 files changed, 58 insertions(+), 148 deletions(-) rename Release/{RepRapFirmware-044-21-12-2013.bin => RepRapFirmware-045-23-12-2013.bin} (77%) create mode 100644 SD-image/sys/homez.g diff --git a/Configuration.h b/Configuration.h index ac101c5..55421e2 100644 --- a/Configuration.h +++ b/Configuration.h @@ -24,8 +24,8 @@ Licence: GPL #define CONFIGURATION_H #define NAME "RepRapFirmware" -#define VERSION "0.44" -#define DATE "2013-12-21" +#define VERSION "0.45" +#define DATE "2013-12-23" #define LAST_AUTHOR "reprappro.com" // Other firmware that we might switch to be compatible with. @@ -74,6 +74,10 @@ enum Compatibility #define INDEX_PAGE "reprap.htm" #define MESSAGE_FILE "messages.txt" #define FOUR04_FILE "html404.htm" +#define CONFIG_FILE "config.g" // The file that sets the machine's parameters +#define HOME_X_G "homex.g" +#define HOME_Y_G "homey.g" +#define HOME_Z_G "homez.g" #define LONG_TIME 300.0 // Seconds diff --git a/GCodes.cpp b/GCodes.cpp index 48d26f9..ea7ff26 100644 --- a/GCodes.cpp +++ b/GCodes.cpp @@ -551,167 +551,37 @@ bool GCodes::DoHome() if(homeX) { - if(DoFileCannedCycles("homex.g")) + if(DoFileCannedCycles(HOME_X_G)) { homeAxisMoveCount = 0; homeX = false; return NoHome(); } return false; - // FIXME Need to reinstate this to deal with high endstop on X. - -// activeDrive[X_AXIS] = true; -// moveToDo[DRIVES] = platform->HomeFeedRate(X_AXIS); -// if(platform->HighStopButNotLow(X_AXIS)) -// { -// if(homeAxisFinalMove) -// { -// moveToDo[X_AXIS] = 0.0; -// if(DoCannedCycleMove(false)) -// { -// homeAxisFinalMove = false; -// homeX = false; -// return NoHome(); -// } -// }else -// { -// moveToDo[X_AXIS] = 2.0*platform->AxisLength(X_AXIS); -// if(DoCannedCycleMove(true)) -// homeAxisFinalMove = true; -// } -// } else -// { -// moveToDo[X_AXIS] = -2.0*platform->AxisLength(X_AXIS); -// if(DoCannedCycleMove(true)) -// { -// homeX = false; -// homeAxisFinalMove = false; -// return NoHome(); -// } -// } -// return false; - -// switch(homeAxisMoveCount) -// { -// case 0: -// if(!AllMovesAreFinishedAndMoveBufferIsLoaded()) -// return false; -// activeDrive[Z_AXIS] = true; -// moveToDo[DRIVES] = platform->HomeFeedRate(Z_AXIS); -// moveToDo[Z_AXIS] = 5.0 + moveBuffer[Z_AXIS]; -// if(DoCannedCycleMove(false)) -// homeAxisMoveCount = 1; -// return false; -// -// case 1: -// activeDrive[X_AXIS] = true; -// moveToDo[DRIVES] = platform->HomeFeedRate(X_AXIS); -// moveToDo[X_AXIS] = -2.0*platform->AxisLength(X_AXIS); -// if(DoCannedCycleMove(true)) -// { -// homeAxisMoveCount = 0; -// homeX = false; -// return NoHome(); -// } -// return false; -// -// default: -// platform->Message(HOST_MESSAGE, "DoHome(): illegal move count.\n"); -// return true; -// } } if(homeY) { - if(DoFileCannedCycles("homey.g")) + if(DoFileCannedCycles(HOME_Y_G)) { homeAxisMoveCount = 0; homeY = false; return NoHome(); } return false; - -// activeDrive[Y_AXIS] = true; -// moveToDo[DRIVES] = platform->HomeFeedRate(Y_AXIS); -// if(platform->HighStopButNotLow(Y_AXIS)) -// { -// switch(homeAxisMoveCount) -// { -// case 0: -// moveToDo[Y_AXIS] = 2.0*platform->AxisLength(Y_AXIS); -// if(DoCannedCycleMove(true)) -// homeAxisMoveCount = 1; -// return false; -// -// case 1: -// moveToDo[Y_AXIS] = 0.0; -// if(DoCannedCycleMove(false)) -// { -// homeAxisMoveCount = 0; -// homeY = false; -// return NoHome(); -// } -// return false; -// -// default: -// platform->Message(HOST_MESSAGE, "DoHome(): illegal move count.\n"); -// return true; -// } -// } else -// { -// moveToDo[Y_AXIS] = -2.0*platform->AxisLength(Y_AXIS); -// if(DoCannedCycleMove(true)) -// { -// homeY = false; -// homeAxisMoveCount = 0; -// return NoHome(); -// } -// } -// return false; } if(homeZ) { - switch(homeAxisMoveCount) + if(DoFileCannedCycles(HOME_Z_G)) { - case 0: - if(!AllMovesAreFinishedAndMoveBufferIsLoaded()) - return false; - activeDrive[X_AXIS] = true; - activeDrive[Y_AXIS] = true; - moveToDo[DRIVES] = platform->HomeFeedRate(X_AXIS); - moveToDo[X_AXIS] = reprap.GetMove()->xBedProbePoint(0); - moveToDo[Y_AXIS] = reprap.GetMove()->yBedProbePoint(0); - if(DoCannedCycleMove(false)) - homeAxisMoveCount = 1; - return false; - - case 1: - activeDrive[Z_AXIS] = true; - moveToDo[DRIVES] = platform->HomeFeedRate(Z_AXIS); - moveToDo[Z_AXIS] = -2.0*platform->AxisLength(Z_AXIS); - if(DoCannedCycleMove(true)) - homeAxisMoveCount = 2; - return false; - - case 2: - activeDrive[Z_AXIS] = true; - moveToDo[DRIVES] = platform->HomeFeedRate(Z_AXIS); - moveToDo[Z_AXIS] = 0.0; - if(DoCannedCycleMove(false)) - { - homeAxisMoveCount = 0; - homeZ = false; - return NoHome(); - } - return false; - - default: - platform->Message(HOST_MESSAGE, "DoHome(): illegal move count.\n"); - return true; + homeAxisMoveCount = 0; + homeZ = false; + return NoHome(); } + return false; } // Should never get here @@ -727,7 +597,7 @@ bool GCodes::DoHome() // probes the bed height, and records the Z coordinate probed. If you want to program any general // internal canned cycle, this shows how to do it. -bool GCodes::DoSingleZProbe() +bool GCodes::DoSingleZProbeAtPoint() { float x, y, z; @@ -787,6 +657,30 @@ bool GCodes::DoSingleZProbe() } } + +// This simply moves down till the Z probe/switch is triggered. + +bool GCodes::DoSingleZProbe() +{ + if(!AllMovesAreFinishedAndMoveBufferIsLoaded()) + return false; + + for(int8_t drive = 0; drive <= DRIVES; drive++) + activeDrive[drive] = false; + + moveToDo[Z_AXIS] = -1.1*platform->AxisLength(Z_AXIS); + activeDrive[Z_AXIS] = true; + moveToDo[DRIVES] = platform->HomeFeedRate(Z_AXIS); + activeDrive[DRIVES] = true; + if(DoCannedCycleMove(true)) + { + cannedCycleMoveCount = 0; + probeCount = 0; + return true; + } + return false; +} + // This sets wherever we are as the probe point P (probePointIndex) // then probes the bed, or gets all its parameters from the arguments. // If X or Y are specified, use those; otherwise use the machine's @@ -797,14 +691,14 @@ bool GCodes::DoSingleZProbe() bool GCodes::SetSingleZProbeAtAPosition(GCodeBuffer *gb) { - if(!gb->Seen('P')) - return true; - - int probePointIndex = gb->GetIValue(); - if(!AllMovesAreFinishedAndMoveBufferIsLoaded()) return false; + if(!gb->Seen('P')) + return DoSingleZProbe(); + + int probePointIndex = gb->GetIValue(); + float x, y, z; if(gb->Seen(gCodeLetters[X_AXIS])) x = gb->GetFValue(); @@ -836,7 +730,7 @@ bool GCodes::SetSingleZProbeAtAPosition(GCodeBuffer *gb) return true; } else { - if(DoSingleZProbe()) + if(DoSingleZProbeAtPoint()) { probeCount = 0; reprap.GetMove()->SetZProbing(false); @@ -864,7 +758,7 @@ bool GCodes::DoMultipleZProbe() return true; } - if(DoSingleZProbe()) + if(DoSingleZProbeAtPoint()) probeCount++; if(probeCount >= reprap.GetMove()->NumberOfXYProbePoints()) { diff --git a/GCodes.h b/GCodes.h index a308728..f7b69b6 100644 --- a/GCodes.h +++ b/GCodes.h @@ -88,6 +88,7 @@ class GCodes bool SetUpMove(GCodeBuffer* gb); bool DoDwell(GCodeBuffer *gb); bool DoHome(); + bool DoSingleZProbeAtPoint(); bool DoSingleZProbe(); bool SetSingleZProbeAtAPosition(GCodeBuffer *gb); bool DoMultipleZProbe(); diff --git a/Platform.h b/Platform.h index 455c63b..153a22a 100644 --- a/Platform.h +++ b/Platform.h @@ -146,7 +146,6 @@ Licence: GPL #define GCODE_DIR "0:/gcodes/" // Ditto - g-codes #define SYS_DIR "0:/sys/" // Ditto - system files #define TEMP_DIR "0:/tmp/" // Ditto - temporary files -#define CONFIG_FILE "config.g" // The file that sets the machine's parameters #define FILE_LIST_SEPARATOR ',' #define FILE_LIST_BRACKET '"' #define FILE_LIST_LENGTH 1000 // Maximum length of file list diff --git a/Release/RepRapFirmware-044-21-12-2013.bin b/Release/RepRapFirmware-045-23-12-2013.bin similarity index 77% rename from Release/RepRapFirmware-044-21-12-2013.bin rename to Release/RepRapFirmware-045-23-12-2013.bin index ff5b771e91fc204248d7d40f5a31a120a9a9f135..d874a4d05f8cd234d1b878362794ce9bcb7cbce0 100755 GIT binary patch delta 17170 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

-6FU!8*pAN?atS^^=wa^*`{NiHJW>o?q$*j1 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 diff --git a/Release/RepRapFirmware.bin b/Release/RepRapFirmware.bin index ff5b771e91fc204248d7d40f5a31a120a9a9f135..d874a4d05f8cd234d1b878362794ce9bcb7cbce0 100755 GIT binary patch delta 17170 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

-6FU!8*pAN?atS^^=wa^*`{NiHJW>o?q$*j1 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 diff --git a/SD-image/sys/homex.g b/SD-image/sys/homex.g index 4081d48..4f17fe0 100644 --- a/SD-image/sys/homex.g +++ b/SD-image/sys/homex.g @@ -7,5 +7,8 @@ G92 X0 G1 X3 F200 G1 X-30 S1 G92 X0 +G91 +G1 Z-5 F200 +G90 M121 diff --git a/SD-image/sys/homez.g b/SD-image/sys/homez.g new file mode 100644 index 0000000..33874a4 --- /dev/null +++ b/SD-image/sys/homez.g @@ -0,0 +1,9 @@ +M120 ; Push +G91 +G1 Z5 F200 +G90 +G1 X55 Y0 +G30 +G1 Z0 F200 +M121 +