Commit c687a56e authored by MagoKimbra's avatar MagoKimbra

Fix Probe

parent a8688f61
...@@ -76,7 +76,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the log ...@@ -76,7 +76,7 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the log
// This only affects a Z Probe Endstop if you have separate Z min endstop as well and have // This only affects a Z Probe Endstop if you have separate Z min endstop as well and have
// activated Z_PROBE_ENDSTOP below. If you are using the Z Min endstop on your Z Probe, // activated Z_PROBE_ENDSTOP below. If you are using the Z Min endstop on your Z Probe,
// this has no effect. // this has no effect.
//#define DISABLE_Z_PROBE_ENDSTOP //#define Z_PROBE_ENDSTOP
// ENDSTOP SETTINGS: // ENDSTOP SETTINGS:
// Sets direction of endstop when homing; 1=MAX, -1=MIN // Sets direction of endstop when homing; 1=MAX, -1=MIN
......
...@@ -6385,7 +6385,7 @@ void prepare_move() { ...@@ -6385,7 +6385,7 @@ void prepare_move() {
for (int s = 1; s <= steps; s++) { for (int s = 1; s <= steps; s++) {
float fraction = float(s) / float(steps); float fraction = float(s) / float(steps);
for(int8_t i = 0; i < NUM_AXIS; i++) destination[i] = current_position[i] + difference[i] * fraction; for (int8_t i = 0; i < NUM_AXIS; i++) destination[i] = current_position[i] + difference[i] * fraction;
calculate_delta(destination); calculate_delta(destination);
//SERIAL_ECHOPGM("destination[X_AXIS]="); SERIAL_ECHOLN(destination[X_AXIS]); //SERIAL_ECHOPGM("destination[X_AXIS]="); SERIAL_ECHOLN(destination[X_AXIS]);
......
...@@ -867,6 +867,7 @@ ...@@ -867,6 +867,7 @@
#define Z_ENABLE_PIN 62 #define Z_ENABLE_PIN 62
#define Z_MIN_PIN 18 #define Z_MIN_PIN 18
#define Z_MAX_PIN 19 #define Z_MAX_PIN 19
#define Z_PROBE_PIN 18
#define Z2_STEP_PIN 36 #define Z2_STEP_PIN 36
#define Z2_DIR_PIN 34 #define Z2_DIR_PIN 34
...@@ -1072,6 +1073,7 @@ ...@@ -1072,6 +1073,7 @@
#define Z_ENABLE_PIN 62 #define Z_ENABLE_PIN 62
#define Z_MIN_PIN 18 #define Z_MIN_PIN 18
#define Z_MAX_PIN 19 #define Z_MAX_PIN 19
#define Z_PROBE_PIN 18
#define Z2_STEP_PIN 36 #define Z2_STEP_PIN 36
#define Z2_DIR_PIN 34 #define Z2_DIR_PIN 34
...@@ -1271,6 +1273,7 @@ ...@@ -1271,6 +1273,7 @@
#define Z_ENABLE_PIN 62 #define Z_ENABLE_PIN 62
#define Z_MIN_PIN 18 #define Z_MIN_PIN 18
#define Z_MAX_PIN 19 #define Z_MAX_PIN 19
#define Z_PROBE_PIN 18
#define Z2_STEP_PIN 36 #define Z2_STEP_PIN 36
#define Z2_DIR_PIN 34 #define Z2_DIR_PIN 34
...@@ -1470,6 +1473,7 @@ ...@@ -1470,6 +1473,7 @@
#define Z_ENABLE_PIN 62 #define Z_ENABLE_PIN 62
#define Z_MIN_PIN 18 #define Z_MIN_PIN 18
#define Z_MAX_PIN 19 #define Z_MAX_PIN 19
#define Z_PROBE_PIN 18
#define Z2_STEP_PIN 36 #define Z2_STEP_PIN 36
#define Z2_DIR_PIN 34 #define Z2_DIR_PIN 34
...@@ -4435,13 +4439,11 @@ DaveX plan for Teensylu/printrboard-type pinouts (ref teensylu & sprinter) for a ...@@ -4435,13 +4439,11 @@ DaveX plan for Teensylu/printrboard-type pinouts (ref teensylu & sprinter) for a
#define Y_MAX_PIN -1 #define Y_MAX_PIN -1
#endif //Y_HOME_DIR > 0 #endif //Y_HOME_DIR > 0
#ifndef DELTA #if Z_HOME_DIR > 0 //Home Z to MAX
#if Z_HOME_DIR > 0 //Home Z to MAX
#define Z_MIN_PIN -1 #define Z_MIN_PIN -1
#elif Z_HOME_DIR < 0 //Home Z to MIN #elif Z_HOME_DIR < 0 //Home Z to MIN
#define Z_MAX_PIN -1 #define Z_MAX_PIN -1
#endif //Z_HOME_DIR > 0 #endif //Z_HOME_DIR > 0
#endif //!DELTA
#if defined(DISABLE_Z_PROBE_ENDSTOP) || !defined(Z_PROBE_ENDSTOP) // Allow code to compile regardless of Z_PROBE_ENDSTOP setting. #if defined(DISABLE_Z_PROBE_ENDSTOP) || !defined(Z_PROBE_ENDSTOP) // Allow code to compile regardless of Z_PROBE_ENDSTOP setting.
#define Z_PROBE_PIN -1 #define Z_PROBE_PIN -1
......
...@@ -63,7 +63,7 @@ ...@@ -63,7 +63,7 @@
//=========================================================================== //===========================================================================
unsigned long minsegmenttime; unsigned long minsegmenttime;
float max_feedrate[3 + EXTRUDERS]; // set the max speeds float max_feedrate[3 + EXTRUDERS]; // Max speeds in mm per minute
float max_retraction_feedrate[EXTRUDERS]; // set the max speeds for retraction float max_retraction_feedrate[EXTRUDERS]; // set the max speeds for retraction
float axis_steps_per_unit[3 + EXTRUDERS]; float axis_steps_per_unit[3 + EXTRUDERS];
unsigned long max_acceleration_units_per_sq_second[3 + EXTRUDERS]; // Use M201 to override by software unsigned long max_acceleration_units_per_sq_second[3 + EXTRUDERS]; // Use M201 to override by software
...@@ -500,7 +500,7 @@ float junction_deviation = 0.1; ...@@ -500,7 +500,7 @@ float junction_deviation = 0.1;
target[X_AXIS] = lround(x * axis_steps_per_unit[X_AXIS]); target[X_AXIS] = lround(x * axis_steps_per_unit[X_AXIS]);
target[Y_AXIS] = lround(y * axis_steps_per_unit[Y_AXIS]); target[Y_AXIS] = lround(y * axis_steps_per_unit[Y_AXIS]);
target[Z_AXIS] = lround(z * axis_steps_per_unit[Z_AXIS]); target[Z_AXIS] = lround(z * axis_steps_per_unit[Z_AXIS]);
target[E_AXIS] = lround(e * axis_steps_per_unit[E_AXIS + active_extruder]); target[E_AXIS] = lround(e * axis_steps_per_unit[E_AXIS + extruder]);
float dx = target[X_AXIS] - position[X_AXIS], float dx = target[X_AXIS] - position[X_AXIS],
dy = target[Y_AXIS] - position[Y_AXIS], dy = target[Y_AXIS] - position[Y_AXIS],
...@@ -510,10 +510,10 @@ float junction_deviation = 0.1; ...@@ -510,10 +510,10 @@ float junction_deviation = 0.1;
#ifdef PREVENT_DANGEROUS_EXTRUDE #ifdef PREVENT_DANGEROUS_EXTRUDE
if (de) { if (de) {
#ifdef NPR2 #ifdef NPR2
if (active_extruder != 1) if (extruder != 1)
#endif // NPR2 #endif // NPR2
{ {
if (degHotend(active_extruder) < extrude_min_temp && !debugDryrun()) { if (degHotend(extruder) < extrude_min_temp && !debugDryrun()) {
position[E_AXIS] = target[E_AXIS]; //behave as if the move really took place, but ignore E part position[E_AXIS] = target[E_AXIS]; //behave as if the move really took place, but ignore E part
de = 0; // no difference de = 0; // no difference
SERIAL_ECHO_START; SERIAL_ECHO_START;
...@@ -522,7 +522,7 @@ float junction_deviation = 0.1; ...@@ -522,7 +522,7 @@ float junction_deviation = 0.1;
} }
#ifdef PREVENT_LENGTHY_EXTRUDE #ifdef PREVENT_LENGTHY_EXTRUDE
if (labs(de) > axis_steps_per_unit[E_AXIS + active_extruder] * EXTRUDE_MAXLENGTH) { if (labs(de) > axis_steps_per_unit[E_AXIS + extruder] * EXTRUDE_MAXLENGTH) {
#ifdef EASY_LOAD #ifdef EASY_LOAD
if (!allow_lengthy_extrude_once) { if (!allow_lengthy_extrude_once) {
#endif #endif
...@@ -559,8 +559,8 @@ float junction_deviation = 0.1; ...@@ -559,8 +559,8 @@ float junction_deviation = 0.1;
block->steps[Z_AXIS] = labs(dz); block->steps[Z_AXIS] = labs(dz);
block->steps[E_AXIS] = labs(de); block->steps[E_AXIS] = labs(de);
block->steps[E_AXIS] *= volumetric_multiplier[active_extruder]; block->steps[E_AXIS] *= volumetric_multiplier[extruder];
block->steps[E_AXIS] *= extruder_multiply[active_extruder]; block->steps[E_AXIS] *= extruder_multiply[extruder];
block->steps[E_AXIS] /= 100; block->steps[E_AXIS] /= 100;
block->step_event_count = max(block->steps[X_AXIS], max(block->steps[Y_AXIS], max(block->steps[Z_AXIS], block->steps[E_AXIS]))); block->step_event_count = max(block->steps[X_AXIS], max(block->steps[Y_AXIS], max(block->steps[Z_AXIS], block->steps[E_AXIS])));
...@@ -715,7 +715,7 @@ float junction_deviation = 0.1; ...@@ -715,7 +715,7 @@ float junction_deviation = 0.1;
delta_mm[Y_AXIS] = dy / axis_steps_per_unit[Y_AXIS]; delta_mm[Y_AXIS] = dy / axis_steps_per_unit[Y_AXIS];
#endif #endif
delta_mm[Z_AXIS] = dz / axis_steps_per_unit[Z_AXIS]; delta_mm[Z_AXIS] = dz / axis_steps_per_unit[Z_AXIS];
delta_mm[E_AXIS] = (de / axis_steps_per_unit[E_AXIS + active_extruder]) * volumetric_multiplier[active_extruder] * extruder_multiply[active_extruder] / 100.0; delta_mm[E_AXIS] = (de / axis_steps_per_unit[E_AXIS + extruder]) * volumetric_multiplier[extruder] * extruder_multiply[extruder] / 100.0;
if (block->steps[X_AXIS] <= dropsegments && block->steps[Y_AXIS] <= dropsegments && block->steps[Z_AXIS] <= dropsegments) { if (block->steps[X_AXIS] <= dropsegments && block->steps[Y_AXIS] <= dropsegments && block->steps[Z_AXIS] <= dropsegments) {
block->millimeters = fabs(delta_mm[E_AXIS]); block->millimeters = fabs(delta_mm[E_AXIS]);
...@@ -799,13 +799,13 @@ float junction_deviation = 0.1; ...@@ -799,13 +799,13 @@ float junction_deviation = 0.1;
current_speed[E_AXIS] = delta_mm[E_AXIS] * inverse_second; current_speed[E_AXIS] = delta_mm[E_AXIS] * inverse_second;
if (target[E_AXIS] < position[E_AXIS]) if (target[E_AXIS] < position[E_AXIS])
{ {
if(fabs(current_speed[E_AXIS]) > max_retraction_feedrate[active_extruder]) if(fabs(current_speed[E_AXIS]) > max_retraction_feedrate[extruder])
speed_factor = min(speed_factor, max_retraction_feedrate[active_extruder]/ fabs(current_speed[E_AXIS])); speed_factor = min(speed_factor, max_retraction_feedrate[extruder]/ fabs(current_speed[E_AXIS]));
} }
else else
{ {
if(fabs(current_speed[E_AXIS]) > max_feedrate[E_AXIS + active_extruder]) if(fabs(current_speed[E_AXIS]) > max_feedrate[E_AXIS + extruder])
speed_factor = min(speed_factor, max_feedrate[E_AXIS + active_extruder] / fabs(current_speed[E_AXIS])); speed_factor = min(speed_factor, max_feedrate[E_AXIS + extruder] / fabs(current_speed[E_AXIS]));
} }
// Max segement time in us. // Max segement time in us.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment