From c6a7540b71de97f2f2447b7fbaef16534140831d Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Thu, 9 Aug 2012 18:17:56 +0100 Subject: [PATCH] pop (CONFLICT) --- meta | 4 +- patches/m206-always-use-homing-homeing | 118 +------------------------ 2 files changed, 5 insertions(+), 117 deletions(-) diff --git a/meta b/meta index 9f6d39a..02760aa 100644 --- a/meta +++ b/meta @@ -1,13 +1,13 @@ Version: 1 -Previous: c19476a69719c01d0f3e0d8a173a5cf3020e91c7 +Previous: c89da6ef84c808dbd9940849192447ffc7835661 Head: 05e455315f5429046a76632f17009c350e2ad732 Applied: marlin-pde-include-comment-for: 121f976406e6921f5b511f6dc4882985cf4b4133 add-to-marlin-gitignore: 83dcad520f19d2ea6f1164b9c04e1430b679b3e2 makefile-support-v-1: 3f7781d27a680fa4faeb5d7f38250e4877632ce3 motion-control-max-min: 858be0694a9217288dc360e4dd238295d2a748b7 + m206-always-use-homing-homeing: 05e455315f5429046a76632f17009c350e2ad732 Unapplied: - m206-always-use-homing-homeing: de0f25662682c874c516c412c8154840f50a236c eeprom-provide-smaller-code-fo: 908bebda77f754b762a36f96bc7d938aca4935ba m206-save-values-in-eeprom: bbde4ea454248ef02e59183cab6992c5d4331d8c homeaxis-function: 48f1b27f67cb5a1b59e72d4ab9c5bfe05c88870d diff --git a/patches/m206-always-use-homing-homeing b/patches/m206-always-use-homing-homeing index 2d7e97f..56c06c4 100644 --- a/patches/m206-always-use-homing-homeing +++ b/patches/m206-always-use-homing-homeing @@ -1,5 +1,5 @@ -Bottom: eb35f0d7db096a862ee737a5537019f96d6e6f16 -Top: 380e228cc8d44c90824ca19a55702fc1c536ad59 +Bottom: f59c4f0f543cd186ce17875c743486d2e74e4c3f +Top: f59c4f0f543cd186ce17875c743486d2e74e4c3f Author: Ian Jackson Date: 2012-08-01 21:12:14 +0100 @@ -51,116 +51,4 @@ Signed-off-by: Ian Jackson --- -diff --git a/Marlin/Marlin.h b/Marlin/Marlin.h -index 4123634..c8115af 100644 ---- a/Marlin/Marlin.h -+++ b/Marlin/Marlin.h -@@ -183,6 +183,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 f38920b..8248132 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 prepare_move() - { - 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]; - } - previous_millis_cmd = millis(); - plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], feedrate*feedmultiply/60/100.0, active_extruder); -diff --git a/Marlin/motion_control.cpp b/Marlin/motion_control.cpp -index f11d8c8..450924a 100644 ---- a/Marlin/motion_control.cpp -+++ b/Marlin/motion_control.cpp -@@ -126,9 +126,9 @@ void mc_arc(float *position, float *target, float *offset, uint8_t axis_0, uint8 - arc_target[E_AXIS] += extruder_per_segment; - - if (min_software_endstops) { -- if (arc_target[X_AXIS] < X_HOME_POS) arc_target[X_AXIS] = X_HOME_POS; -- if (arc_target[Y_AXIS] < Y_HOME_POS) arc_target[Y_AXIS] = Y_HOME_POS; -- if (arc_target[Z_AXIS] < Z_HOME_POS) arc_target[Z_AXIS] = Z_HOME_POS; -+ if (arc_target[X_AXIS] < min_pos[0]) arc_target[X_AXIS] = min_pos[0]; -+ if (arc_target[Y_AXIS] < min_pos[1]) arc_target[Y_AXIS] = min_pos[1]; -+ if (arc_target[Z_AXIS] < min_pos[2]) arc_target[Z_AXIS] = min_pos[2]; - } - - if (max_software_endstops) { -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. + -- 2.30.2