enum AxisEnum {X_AXIS=0, Y_AXIS=1, Z_AXIS=2, E_AXIS=3};
+#define X_HOME_POS_A (X_HOME_POS + add_homeing[X_AXIS])
+#define Y_HOME_POS_A (Y_HOME_POS + add_homeing[Y_AXIS])
+#define Z_HOME_POS_A (Z_HOME_POS + add_homeing[Z_AXIS])
+
void FlushSerialRequestResend();
void ClearToSend();
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;\
+ current_position[LETTER##_AXIS] = LETTER##_HOME_POS_A;\
destination[LETTER##_AXIS] = current_position[LETTER##_AXIS];\
feedrate = 0.0;\
endstops_hit_on_purpose();\
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;
+ current_position[X_AXIS] = X_HOME_POS_A;
+ current_position[Y_AXIS] = Y_HOME_POS_A;
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];
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] < X_HOME_POS_A) arc_target[X_AXIS] = X_HOME_POS_A;
+ if (arc_target[Y_AXIS] < Y_HOME_POS_A) arc_target[Y_AXIS] = Y_HOME_POS_A;
+ if (arc_target[Z_AXIS] < Z_HOME_POS_A) arc_target[Z_AXIS] = Z_HOME_POS_A;
}
if (max_software_endstops) {
* M202 - Set max acceleration in units/s^2 for travel moves (M202 X1000 Y1000) Unused in Marlin!!\r
* M203 - Set maximum feedrate that your machine can sustain (M203 X200 Y200 Z300 E10000) in mm/sec\r
* 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\r
+* 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)\r
* 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.\r
* M221 - set the extrude multiplying S:factor in percent\r
* M400 - Finish all buffered moves.\r