From db2f157a222c0fbffb274a2f9c27f89858f51234 Mon Sep 17 00:00:00 2001 From: midopple <mdoppler@gmx.at> Date: Sun, 5 May 2013 19:19:55 +0200 Subject: [PATCH 1/2] Replace the <= to < in the Command M907, M350 and M351. The for loop for Axis count over the Array. Add a break after M907 --- Marlin/Marlin_main.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 233e2fa427..9f2ba7be17 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -1708,11 +1708,12 @@ void process_commands() case 907: // M907 Set digital trimpot motor current using axis codes. { #if DIGIPOTSS_PIN > -1 - for(int i=0;i<=NUM_AXIS;i++) if(code_seen(axis_codes[i])) digipot_current(i,code_value()); + for(int i=0;i<NUM_AXIS;i++) if(code_seen(axis_codes[i])) digipot_current(i,code_value()); if(code_seen('B')) digipot_current(4,code_value()); if(code_seen('S')) for(int i=0;i<=4;i++) digipot_current(i,code_value()); #endif } + break; case 908: // M908 Control digital trimpot directly. { #if DIGIPOTSS_PIN > -1 @@ -1727,7 +1728,7 @@ void process_commands() { #if X_MS1_PIN > -1 if(code_seen('S')) for(int i=0;i<=4;i++) microstep_mode(i,code_value()); - for(int i=0;i<=NUM_AXIS;i++) if(code_seen(axis_codes[i])) microstep_mode(i,(uint8_t)code_value()); + for(int i=0;i<NUM_AXIS;i++) if(code_seen(axis_codes[i])) microstep_mode(i,(uint8_t)code_value()); if(code_seen('B')) microstep_mode(4,code_value()); microstep_readings(); #endif @@ -1739,11 +1740,11 @@ void process_commands() if(code_seen('S')) switch((int)code_value()) { case 1: - for(int i=0;i<=NUM_AXIS;i++) if(code_seen(axis_codes[i])) microstep_ms(i,code_value(),-1); + for(int i=0;i<NUM_AXIS;i++) if(code_seen(axis_codes[i])) microstep_ms(i,code_value(),-1); if(code_seen('B')) microstep_ms(4,code_value(),-1); break; case 2: - for(int i=0;i<=NUM_AXIS;i++) if(code_seen(axis_codes[i])) microstep_ms(i,-1,code_value()); + for(int i=0;i<NUM_AXIS;i++) if(code_seen(axis_codes[i])) microstep_ms(i,-1,code_value()); if(code_seen('B')) microstep_ms(4,-1,code_value()); break; } From a65a26d6b45ba871100fef096ca9a2ee598e6804 Mon Sep 17 00:00:00 2001 From: midopple <mdoppler@gmx.at> Date: Sun, 5 May 2013 19:23:59 +0200 Subject: [PATCH 2/2] If CORE_XY is in use X and Y Axis had to be activated at the same time --- Marlin/planner.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Marlin/planner.cpp b/Marlin/planner.cpp index e45c9d7ff9..854fd19eec 100644 --- a/Marlin/planner.cpp +++ b/Marlin/planner.cpp @@ -582,8 +582,16 @@ void plan_buffer_line(const float &x, const float &y, const float &z, const floa block->active_extruder = extruder; //enable active axes + #ifdef COREXY + if((block->steps_x != 0) || (block->steps_y != 0)) + { + enable_x(); + enable_y(); + } + #else if(block->steps_x != 0) enable_x(); if(block->steps_y != 0) enable_y(); + #endif #ifndef Z_LATE_ENABLE if(block->steps_z != 0) enable_z(); #endif