chiark / gitweb /
Changed default MINIMUM_PLANNER_SPEED -> 0.05
authorErik van der Zalm <erik@vdzalm.eu>
Sun, 1 Apr 2012 14:23:40 +0000 (16:23 +0200)
committerErik van der Zalm <erik@vdzalm.eu>
Sun, 1 Apr 2012 14:23:40 +0000 (16:23 +0200)
Fixed small bug in arcs
M105 prints now actual_temp/target_temp

Marlin/Configuration_adv.h
Marlin/Marlin.pde
Marlin/motion_control.cpp
Marlin/planner.cpp

index e2a98248e376db79b530a151d29ab38b93ba7e23..9a7acdf943bbb81167d2d5937bd1d80c0cc36820 100644 (file)
 // Minimum planner junction speed. Sets the default minimum speed the planner plans for at the end
 // of the buffer and all stops. This should not be much greater than zero and should only be changed
 // if unwanted behavior is observed on a user's machine when running at very slow speeds.
-#define MINIMUM_PLANNER_SPEED 2.0 // (mm/sec)
+#define MINIMUM_PLANNER_SPEED 0.05// (mm/sec)
 
 //===========================================================================
 //=============================Additional Features===========================
index 5b1a13bab9148ec4e033fcaccedf6ccde4db8fc1..1dc652c2bd2e43e8c367e1ff4e0b577180ba16cc 100644 (file)
@@ -850,9 +850,13 @@ void process_commands()
       #if (TEMP_0_PIN > -1)
         SERIAL_PROTOCOLPGM("ok T:");
         SERIAL_PROTOCOL(degHotend(tmp_extruder)); 
+        SERIAL_PROTOCOLPGM("/");
+        SERIAL_PROTOCOL(degTargetHotend(tmp_extruder)); 
         #if TEMP_BED_PIN > -1
           SERIAL_PROTOCOLPGM(" B:");  
           SERIAL_PROTOCOL(degBed());
+          SERIAL_PROTOCOLPGM("/");
+          SERIAL_PROTOCOL(degTargetBed());
         #endif //TEMP_BED_PIN
       #else
         SERIAL_ERROR_START;
index 67619b86f32b9c00c416f37a9e704e5be8d02071..5e793a279b9dfc630f4169c3b172ce49b7c3c86b 100644 (file)
@@ -47,6 +47,8 @@ void mc_arc(float *position, float *target, float *offset, uint8_t axis_0, uint8
   float millimeters_of_travel = hypot(angular_travel*radius, fabs(linear_travel));
   if (millimeters_of_travel < 0.001) { return; }
   uint16_t segments = floor(millimeters_of_travel/MM_PER_ARC_SEGMENT);
+  if(segments = 0) segments = 1;
+  
   /*  
     // Multiply inverse feed_rate to compensate for the fact that this movement is approximated
     // by a number of discrete segments. The inverse feed_rate should be correct for the sum of 
index c06c07395cff76086ba65780bc9bee993bc3b0ef..46adece87b7f81d5c0a283af920e52f6f468a6f8 100644 (file)
@@ -438,7 +438,9 @@ void check_axes_activity() {
   }
   else {
     #if FAN_PIN > -1
-      if (FanSpeed != 0) analogWrite(FAN_PIN,FanSpeed); // If buffer is empty use current fan speed
+      if (FanSpeed != 0){
+        analogWrite(FAN_PIN,FanSpeed); // If buffer is empty use current fan speed
+      }
     #endif
   }
   if((DISABLE_X) && (x_active == 0)) disable_x();
@@ -446,11 +448,14 @@ void check_axes_activity() {
   if((DISABLE_Z) && (z_active == 0)) disable_z();
   if((DISABLE_E) && (e_active == 0)) { disable_e0();disable_e1();disable_e2(); }
   #if FAN_PIN > -1
-    if((FanSpeed == 0) && (fan_speed ==0)) analogWrite(FAN_PIN, 0);
-  #endif
+  if((FanSpeed == 0) && (fan_speed ==0)) {
+    analogWrite(FAN_PIN, 0);
+  }
+
   if (FanSpeed != 0 && tail_fan_speed !=0) { 
     analogWrite(FAN_PIN,tail_fan_speed);
   }
+  #endif
 }
 
 
@@ -714,9 +719,9 @@ void plan_buffer_line(const float &x, const float &y, const float &z, const floa
   if(abs(current_speed[E_AXIS]) > max_e_jerk/2) 
     vmax_junction = min(vmax_junction, max_e_jerk/2);
     
-  if ((moves_queued > 1) && (previous_nominal_speed > 0.0)) {
+  if ((moves_queued > 1) && (previous_nominal_speed > 0.0001)) {
     float jerk = sqrt(pow((current_speed[X_AXIS]-previous_speed[X_AXIS]), 2)+pow((current_speed[Y_AXIS]-previous_speed[Y_AXIS]), 2));
-    if((previous_speed[X_AXIS] != 0.0) || (previous_speed[Y_AXIS] != 0.0)) {
+    if((abs(previous_speed[X_AXIS]) > 0.0001) || (abs(previous_speed[Y_AXIS]) > 0.0001)) {
       vmax_junction = block->nominal_speed;
     }
     if (jerk > max_xy_jerk) {
@@ -750,6 +755,7 @@ void plan_buffer_line(const float &x, const float &y, const float &z, const floa
   // Update previous path unit_vector and nominal speed
   memcpy(previous_speed, current_speed, sizeof(previous_speed)); // previous_speed[] = current_speed[]
   previous_nominal_speed = block->nominal_speed;
+
   
   #ifdef ADVANCE
     // Calculate advance rate