From: Ian Jackson Date: Thu, 9 Aug 2012 17:44:43 +0000 (+0100) Subject: refresh (create temporary patch) X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=bf1e83951bd5cda78d8af5e11ac7ab0d7f5bd8fa;p=marlin.git refresh (create temporary patch) --- diff --git a/meta b/meta index 7db6dfc..fb13501 100644 --- a/meta +++ b/meta @@ -1,12 +1,13 @@ Version: 1 -Previous: 10fe60016afd597cd16a84326ed172fb581c0345 -Head: 9c81ed2e2fa5779c664045e0786ac53c89a3157a +Previous: c6c3c1f28782642964438a5fda07902b31de745b +Head: 515269553450711eac6bf3f2be4c47b9a8505834 Applied: marlin-pde-include-comment-for: 121f976406e6921f5b511f6dc4882985cf4b4133 add-to-marlin-gitignore: 83dcad520f19d2ea6f1164b9c04e1430b679b3e2 makefile-support-v-1: 3f7781d27a680fa4faeb5d7f38250e4877632ce3 motion-control-max-min: 44befa5f783994f92f7c6fd39b7f581cf174d9d4 m206-always-use-homing-homeing: 9c81ed2e2fa5779c664045e0786ac53c89a3157a + refresh-temp: 515269553450711eac6bf3f2be4c47b9a8505834 Unapplied: eeprom-provide-smaller-code-fo: 908bebda77f754b762a36f96bc7d938aca4935ba m206-save-values-in-eeprom: bbde4ea454248ef02e59183cab6992c5d4331d8c diff --git a/patches/refresh-temp b/patches/refresh-temp new file mode 100644 index 0000000..4d65e91 --- /dev/null +++ b/patches/refresh-temp @@ -0,0 +1,105 @@ +Bottom: 8e78a1676c97946f40c2ebb968bada04f6bac87a +Top: b4fe7d5f00950cb7cf3ab1852f1b9bf14f73bb3d +Author: Ian Jackson +Date: 2012-08-09 18:44:42 +0100 + +Refresh of m206-always-use-homing-homeing + +--- + +diff --git a/Marlin/Marlin.h b/Marlin/Marlin.h +index 75b57d0..11e1afa 100644 +--- a/Marlin/Marlin.h ++++ b/Marlin/Marlin.h +@@ -184,6 +184,7 @@ extern float homing_feedrate[]; + extern bool axis_relative_modes[]; + extern float current_position[NUM_AXIS] ; + extern float add_homeing[3]; ++extern float min_pos[3]; + extern unsigned char FanSpeed; + + // Handling multiple extruders pins +diff --git a/Marlin/Marlin.pde b/Marlin/Marlin.pde +index d471d49..f270440 100644 +--- a/Marlin/Marlin.pde ++++ b/Marlin/Marlin.pde +@@ -143,6 +143,7 @@ volatile bool feedmultiplychanged=false; + volatile int extrudemultiply=100; //100->1 200->2 + float current_position[NUM_AXIS] = { 0.0, 0.0, 0.0, 0.0 }; + float add_homeing[3]={0,0,0}; ++float min_pos[3] = { X_MIN_POS, Y_MIN_POS, Z_MIN_POS }; + uint8_t active_extruder = 0; + unsigned char FanSpeed=0; + +@@ -543,6 +544,15 @@ bool code_seen(char code) + return (strchr_pointer != NULL); //Return True if a character was found + } + ++static const float base_min_pos[3] = { X_MIN_POS, Y_MIN_POS, Z_MIN_POS }; ++static const float base_home_pos[3] = { X_HOME_POS, Y_HOME_POS, Z_HOME_POS }; ++ ++static void axis_is_at_home(int axis) { ++ current_position[axis] = base_home_pos[axis] + add_homeing[axis]; ++ min_pos[axis] = base_min_pos[axis]; ++ if (add_homeing[axis] < 0) min_pos[axis] += add_homeing[axis]; ++} ++ + #define HOMEAXIS(LETTER) \ + if ((LETTER##_MIN_PIN > -1 && LETTER##_HOME_DIR==-1) || (LETTER##_MAX_PIN > -1 && LETTER##_HOME_DIR==1))\ + { \ +@@ -564,8 +574,8 @@ bool code_seen(char code) + plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], feedrate/60, active_extruder); \ + st_synchronize();\ + \ +- current_position[LETTER##_AXIS] = LETTER##_HOME_POS;\ +- destination[LETTER##_AXIS] = current_position[LETTER##_AXIS];\ ++ axis_is_at_home(LETTER##_AXIS); \ ++ destination[LETTER##_AXIS] = current_position[LETTER##_AXIS]; \ + feedrate = 0.0;\ + endstops_hit_on_purpose();\ + } +@@ -678,8 +688,8 @@ void process_commands() + plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], feedrate/60, active_extruder); + st_synchronize(); + +- current_position[X_AXIS] = X_HOME_POS; +- current_position[Y_AXIS] = Y_HOME_POS; ++ axis_is_at_home(X_AXIS); ++ axis_is_at_home(Y_AXIS); + plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); + destination[X_AXIS] = current_position[X_AXIS]; + destination[Y_AXIS] = current_position[Y_AXIS]; +@@ -1544,15 +1554,15 @@ void get_arc_coordinates() + void clamp_to_software_endstops(float target[3]) + { + if (min_software_endstops) { +- if (destination[X_AXIS] < X_MIN_POS) destination[X_AXIS] = X_MIN_POS; +- if (destination[Y_AXIS] < Y_MIN_POS) destination[Y_AXIS] = Y_MIN_POS; +- if (destination[Z_AXIS] < Z_MIN_POS) destination[Z_AXIS] = Z_MIN_POS; ++ if (destination[X_AXIS] < min_pos[0]) destination[X_AXIS] = min_pos[0]; ++ if (destination[Y_AXIS] < min_pos[1]) destination[Y_AXIS] = min_pos[1]; ++ if (destination[Z_AXIS] < min_pos[2]) destination[Z_AXIS] = min_pos[2]; + } + + if (max_software_endstops) { +- if (destination[X_AXIS] > X_MAX_POS) destination[X_AXIS] = X_MAX_POS; +- if (destination[Y_AXIS] > Y_MAX_POS) destination[Y_AXIS] = Y_MAX_POS; +- if (destination[Z_AXIS] > Z_MAX_POS) destination[Z_AXIS] = Z_MAX_POS; ++ if (destination[X_AXIS] > max_pos[0]) destination[X_AXIS] = max_pos[0]; ++ if (destination[Y_AXIS] > max_pos[1]) destination[Y_AXIS] = max_pos[1]; ++ if (destination[Z_AXIS] > max_pos[2]) destination[Z_AXIS] = max_pos[2]; + } + } + +diff --git a/README.md b/README.md +index 86dd93d..fb2c189 100644 +--- a/README.md ++++ b/README.md +@@ -152,6 +152,7 @@ Movement variables: + * M202 - Set max acceleration in units/s^2 for travel moves (M202 X1000 Y1000) Unused in Marlin!! + * M203 - Set maximum feedrate that your machine can sustain (M203 X200 Y200 Z300 E10000) in mm/sec + * M204 - Set default acceleration: S normal moves T filament only moves (M204 S3000 T7000) im mm/sec^2 also sets minimum segment time in ms (B20000) to prevent buffer underruns and M20 minimum feedrate ++* M206 - set home offsets. This sets the X,Y,Z coordinates of the endstops (and is added to the {X,Y,Z}_HOME_POS configuration options (and is also added to the coordinates, if any, provided to G82, as with earlier firmware) + * M220 - set build speed mulitplying S:factor in percent ; aka "realtime tuneing in the gcode". So you can slow down if you have islands in one height-range, and speed up otherwise. + * M221 - set the extrude multiplying S:factor in percent + * M400 - Finish all buffered moves.