Browse Source

Merge pull request #2 from MarlinFirmware/Development

update
Mehmet Sutas 10 years ago
parent
commit
b373826428

+ 1
- 0
Documentation/changelog.md View File

1
+

+ 44
- 51
Marlin/Configuration.h View File

59
 // The following define selects which electronics board you have.
59
 // The following define selects which electronics board you have.
60
 // Please choose the name from boards.h that matches your setup
60
 // Please choose the name from boards.h that matches your setup
61
 #ifndef MOTHERBOARD
61
 #ifndef MOTHERBOARD
62
-  #define MOTHERBOARD BOARD_ULTIMAKER
62
+  #define MOTHERBOARD BOARD_RAMPS_13_EFB
63
 #endif
63
 #endif
64
 
64
 
65
 // Define this to set a custom name for your generic Mendel,
65
 // Define this to set a custom name for your generic Mendel,
123
 //     #define DUMMY_THERMISTOR_998_VALUE 25
123
 //     #define DUMMY_THERMISTOR_998_VALUE 25
124
 //     #define DUMMY_THERMISTOR_999_VALUE 100
124
 //     #define DUMMY_THERMISTOR_999_VALUE 100
125
 
125
 
126
-#define TEMP_SENSOR_0 -1
127
-#define TEMP_SENSOR_1 -1
126
+#define TEMP_SENSOR_0 1
127
+#define TEMP_SENSOR_1 0
128
 #define TEMP_SENSOR_2 0
128
 #define TEMP_SENSOR_2 0
129
 #define TEMP_SENSOR_3 0
129
 #define TEMP_SENSOR_3 0
130
 #define TEMP_SENSOR_BED 0
130
 #define TEMP_SENSOR_BED 0
301
 // Enable this option for Toshiba steppers
301
 // Enable this option for Toshiba steppers
302
 // #define CONFIG_STEPPERS_TOSHIBA
302
 // #define CONFIG_STEPPERS_TOSHIBA
303
 
303
 
304
-// coarse Endstop Settings
305
-#define ENDSTOPPULLUPS // Comment this out (using // at the start of the line) to disable the endstop pullup resistors
306
-
307
-#ifndef ENDSTOPPULLUPS
308
-  // fine endstop settings: Individual pullups. will be ignored if ENDSTOPPULLUPS is defined
309
-  // #define ENDSTOPPULLUP_XMAX
310
-  // #define ENDSTOPPULLUP_YMAX
311
-  // #define ENDSTOPPULLUP_ZMAX
312
-  // #define ENDSTOPPULLUP_XMIN
313
-  // #define ENDSTOPPULLUP_YMIN
314
-  // #define ENDSTOPPULLUP_ZMIN
315
-#endif
316
-
317
-#ifdef ENDSTOPPULLUPS
318
-  #define ENDSTOPPULLUP_XMAX
319
-  #define ENDSTOPPULLUP_YMAX
320
-  #define ENDSTOPPULLUP_ZMAX
321
-  #define ENDSTOPPULLUP_XMIN
322
-  #define ENDSTOPPULLUP_YMIN
323
-  #define ENDSTOPPULLUP_ZMIN
324
-#endif
325
-
326
-// The pullups are needed if you directly connect a mechanical endswitch between the signal and ground pins.
327
-const bool X_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
328
-const bool Y_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
329
-const bool Z_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
330
-const bool X_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
331
-const bool Y_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
332
-const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
304
+// The pullups are needed if you directly connect a mechanical endstop between the signal and ground pins.
305
+#define ENDSTOPPULLUP_XMAX
306
+#define ENDSTOPPULLUP_YMAX
307
+#define ENDSTOPPULLUP_ZMAX
308
+#define ENDSTOPPULLUP_XMIN
309
+#define ENDSTOPPULLUP_YMIN
310
+#define ENDSTOPPULLUP_ZMIN
311
+
312
+// Mechanical endstop with COM to ground and NC to Signal uses "false" here (most common setup).
313
+const bool X_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
314
+const bool Y_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
315
+const bool Z_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
316
+const bool X_MAX_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
317
+const bool Y_MAX_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
318
+const bool Z_MAX_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
333
 //#define DISABLE_MAX_ENDSTOPS
319
 //#define DISABLE_MAX_ENDSTOPS
334
 //#define DISABLE_MIN_ENDSTOPS
320
 //#define DISABLE_MIN_ENDSTOPS
335
 
321
 
346
 #define DISABLE_E false // For all extruders
332
 #define DISABLE_E false // For all extruders
347
 #define DISABLE_INACTIVE_EXTRUDER true //disable only inactive extruders and keep active extruder enabled
333
 #define DISABLE_INACTIVE_EXTRUDER true //disable only inactive extruders and keep active extruder enabled
348
 
334
 
349
-#define INVERT_X_DIR true     // for Mendel set to false, for Orca set to true
350
-#define INVERT_Y_DIR false    // for Mendel set to true, for Orca set to false
351
-#define INVERT_Z_DIR true     // for Mendel set to false, for Orca set to true
352
-#define INVERT_E0_DIR false   // for direct drive extruder v9 set to true, for geared extruder set to false
353
-#define INVERT_E1_DIR false   // for direct drive extruder v9 set to true, for geared extruder set to false
354
-#define INVERT_E2_DIR false   // for direct drive extruder v9 set to true, for geared extruder set to false
355
-#define INVERT_E3_DIR false   // for direct drive extruder v9 set to true, for geared extruder set to false
335
+// If you motor turns to wrong direction, you can invert it here:
336
+#define INVERT_X_DIR false
337
+#define INVERT_Y_DIR false
338
+#define INVERT_Z_DIR false
339
+#define INVERT_E0_DIR false
340
+#define INVERT_E1_DIR false
341
+#define INVERT_E2_DIR false
342
+#define INVERT_E3_DIR false
356
 
343
 
357
 // ENDSTOP SETTINGS:
344
 // ENDSTOP SETTINGS:
358
 // Sets direction of endstops when homing; 1=MAX, -1=MIN
345
 // Sets direction of endstops when homing; 1=MAX, -1=MIN
364
 #define max_software_endstops true  // If true, axis won't move to coordinates greater than the defined lengths below.
351
 #define max_software_endstops true  // If true, axis won't move to coordinates greater than the defined lengths below.
365
 
352
 
366
 // Travel limits after homing (units are in mm)
353
 // Travel limits after homing (units are in mm)
367
-#define X_MAX_POS 205
354
+#define X_MAX_POS 200
368
 #define X_MIN_POS 0
355
 #define X_MIN_POS 0
369
-#define Y_MAX_POS 205
356
+#define Y_MAX_POS 200
370
 #define Y_MIN_POS 0
357
 #define Y_MIN_POS 0
371
 #define Z_MAX_POS 200
358
 #define Z_MAX_POS 200
372
 #define Z_MIN_POS 0
359
 #define Z_MIN_POS 0
416
     #define RIGHT_PROBE_BED_POSITION 170
403
     #define RIGHT_PROBE_BED_POSITION 170
417
     #define FRONT_PROBE_BED_POSITION 20
404
     #define FRONT_PROBE_BED_POSITION 20
418
     #define BACK_PROBE_BED_POSITION 170
405
     #define BACK_PROBE_BED_POSITION 170
406
+    
407
+    #define MIN_PROBE_EDGE 10 // The probe square sides can be no smaller than this
419
 
408
 
420
     // Set the number of grid points per dimension
409
     // Set the number of grid points per dimension
421
     // You probably don't need more than 3 (squared=9)
410
     // You probably don't need more than 3 (squared=9)
438
 
427
 
439
   // Offsets to the probe relative to the extruder tip (Hotend - Probe)
428
   // Offsets to the probe relative to the extruder tip (Hotend - Probe)
440
   // X and Y offsets must be integers
429
   // X and Y offsets must be integers
441
-  #define X_PROBE_OFFSET_FROM_EXTRUDER -25     // -left  +right
442
-  #define Y_PROBE_OFFSET_FROM_EXTRUDER -29     // -front +behind
430
+  #define X_PROBE_OFFSET_FROM_EXTRUDER -25     // Probe on: -left  +right
431
+  #define Y_PROBE_OFFSET_FROM_EXTRUDER -29     // Probe on: -front +behind
443
   #define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35  // -below (always!)
432
   #define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35  // -below (always!)
444
 
433
 
445
   #define Z_RAISE_BEFORE_HOMING 4       // (in mm) Raise Z before homing (G28) for Probe Clearance.
434
   #define Z_RAISE_BEFORE_HOMING 4       // (in mm) Raise Z before homing (G28) for Probe Clearance.
450
   #define Z_RAISE_BEFORE_PROBING 15    //How much the extruder will be raised before traveling to the first probing point.
439
   #define Z_RAISE_BEFORE_PROBING 15    //How much the extruder will be raised before traveling to the first probing point.
451
   #define Z_RAISE_BETWEEN_PROBINGS 5  //How much the extruder will be raised when traveling from between next probing points
440
   #define Z_RAISE_BETWEEN_PROBINGS 5  //How much the extruder will be raised when traveling from between next probing points
452
 
441
 
442
+//   #define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10" //These commands will be executed in the end of G29 routine.
443
+                                                                            //Useful to retract a deployable probe.
444
+                                                                           
453
   //#define Z_PROBE_SLED // turn on if you have a z-probe mounted on a sled like those designed by Charles Bell
445
   //#define Z_PROBE_SLED // turn on if you have a z-probe mounted on a sled like those designed by Charles Bell
454
   //#define SLED_DOCKING_OFFSET 5 // the extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like.
446
   //#define SLED_DOCKING_OFFSET 5 // the extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like.
455
 
447
 
497
 
489
 
498
 // default settings
490
 // default settings
499
 
491
 
500
-#define DEFAULT_AXIS_STEPS_PER_UNIT   {78.7402,78.7402,200.0*8/3,760*1.1}  // default steps per unit for Ultimaker
501
-#define DEFAULT_MAX_FEEDRATE          {500, 500, 5, 25}    // (mm/sec)
502
-#define DEFAULT_MAX_ACCELERATION      {9000,9000,100,10000}    // X, Y, Z, E maximum start speed for accelerated moves. E default values are good for Skeinforge 40+, for older versions raise them a lot.
492
+#define DEFAULT_AXIS_STEPS_PER_UNIT   {80,80,4000,500}  // default steps per unit for Ultimaker
493
+#define DEFAULT_MAX_FEEDRATE          {300, 300, 5, 25}    // (mm/sec)
494
+#define DEFAULT_MAX_ACCELERATION      {3000,3000,100,10000}    // X, Y, Z, E maximum start speed for accelerated moves. E default values are good for Skeinforge 40+, for older versions raise them a lot.
503
 
495
 
504
-#define DEFAULT_ACCELERATION          3000    // X, Y, Z and E max acceleration in mm/s^2 for printing moves
505
-#define DEFAULT_RETRACT_ACCELERATION  3000   // X, Y, Z and E max acceleration in mm/s^2 for retracts
496
+#define DEFAULT_ACCELERATION          3000    // X, Y, Z and E acceleration in mm/s^2 for printing moves
497
+#define DEFAULT_RETRACT_ACCELERATION  3000   // E acceleration in mm/s^2 for retracts
498
+#define DEFAULT_TRAVEL_ACCELERATION   3000    // X, Y, Z acceleration in mm/s^2 for travel (non printing) moves
506
 
499
 
507
 // Offset of the extruders (uncomment if using more than one and relying on firmware to position when changing).
500
 // Offset of the extruders (uncomment if using more than one and relying on firmware to position when changing).
508
 // The offset has to be X=0, Y=0 for the extruder 0 hotend (default extruder).
501
 // The offset has to be X=0, Y=0 for the extruder 0 hotend (default extruder).
543
 // Preheat Constants
536
 // Preheat Constants
544
 #define PLA_PREHEAT_HOTEND_TEMP 180
537
 #define PLA_PREHEAT_HOTEND_TEMP 180
545
 #define PLA_PREHEAT_HPB_TEMP 70
538
 #define PLA_PREHEAT_HPB_TEMP 70
546
-#define PLA_PREHEAT_FAN_SPEED 255   // Insert Value between 0 and 255
539
+#define PLA_PREHEAT_FAN_SPEED 0   // Insert Value between 0 and 255
547
 
540
 
548
 #define ABS_PREHEAT_HOTEND_TEMP 240
541
 #define ABS_PREHEAT_HOTEND_TEMP 240
549
-#define ABS_PREHEAT_HPB_TEMP 100
550
-#define ABS_PREHEAT_FAN_SPEED 255   // Insert Value between 0 and 255
542
+#define ABS_PREHEAT_HPB_TEMP 110
543
+#define ABS_PREHEAT_FAN_SPEED 0   // Insert Value between 0 and 255
551
 
544
 
552
 //==============================LCD and SD support=============================
545
 //==============================LCD and SD support=============================
553
 
546
 

+ 10
- 5
Marlin/ConfigurationStore.cpp View File

3
  *
3
  *
4
  * Configuration and EEPROM storage
4
  * Configuration and EEPROM storage
5
  *
5
  *
6
- * V15 EEPROM Layout:
6
+ * V16 EEPROM Layout:
7
  *
7
  *
8
  *  ver
8
  *  ver
9
  *  axis_steps_per_unit (x4)
9
  *  axis_steps_per_unit (x4)
11
  *  max_acceleration_units_per_sq_second (x4)
11
  *  max_acceleration_units_per_sq_second (x4)
12
  *  acceleration
12
  *  acceleration
13
  *  retract_acceleration
13
  *  retract_acceleration
14
+ *  travel_aceeleration
14
  *  minimumfeedrate
15
  *  minimumfeedrate
15
  *  mintravelfeedrate
16
  *  mintravelfeedrate
16
  *  minsegmenttime
17
  *  minsegmenttime
104
 // wrong data being written to the variables.
105
 // wrong data being written to the variables.
105
 // ALSO:  always make sure the variables in the Store and retrieve sections are in the same order.
106
 // ALSO:  always make sure the variables in the Store and retrieve sections are in the same order.
106
 
107
 
107
-#define EEPROM_VERSION "V15"
108
+#define EEPROM_VERSION "V16"
108
 
109
 
109
 #ifdef EEPROM_SETTINGS
110
 #ifdef EEPROM_SETTINGS
110
 
111
 
118
   EEPROM_WRITE_VAR(i, max_acceleration_units_per_sq_second);
119
   EEPROM_WRITE_VAR(i, max_acceleration_units_per_sq_second);
119
   EEPROM_WRITE_VAR(i, acceleration);
120
   EEPROM_WRITE_VAR(i, acceleration);
120
   EEPROM_WRITE_VAR(i, retract_acceleration);
121
   EEPROM_WRITE_VAR(i, retract_acceleration);
122
+  EEPROM_WRITE_VAR(i, travel_acceleration);
121
   EEPROM_WRITE_VAR(i, minimumfeedrate);
123
   EEPROM_WRITE_VAR(i, minimumfeedrate);
122
   EEPROM_WRITE_VAR(i, mintravelfeedrate);
124
   EEPROM_WRITE_VAR(i, mintravelfeedrate);
123
   EEPROM_WRITE_VAR(i, minsegmenttime);
125
   EEPROM_WRITE_VAR(i, minsegmenttime);
253
 
255
 
254
     EEPROM_READ_VAR(i, acceleration);
256
     EEPROM_READ_VAR(i, acceleration);
255
     EEPROM_READ_VAR(i, retract_acceleration);
257
     EEPROM_READ_VAR(i, retract_acceleration);
258
+    EEPROM_READ_VAR(i, travel_acceleration);
256
     EEPROM_READ_VAR(i, minimumfeedrate);
259
     EEPROM_READ_VAR(i, minimumfeedrate);
257
     EEPROM_READ_VAR(i, mintravelfeedrate);
260
     EEPROM_READ_VAR(i, mintravelfeedrate);
258
     EEPROM_READ_VAR(i, minsegmenttime);
261
     EEPROM_READ_VAR(i, minsegmenttime);
380
 
383
 
381
   acceleration = DEFAULT_ACCELERATION;
384
   acceleration = DEFAULT_ACCELERATION;
382
   retract_acceleration = DEFAULT_RETRACT_ACCELERATION;
385
   retract_acceleration = DEFAULT_RETRACT_ACCELERATION;
386
+  travel_acceleration = DEFAULT_TRAVEL_ACCELERATION;
383
   minimumfeedrate = DEFAULT_MINIMUMFEEDRATE;
387
   minimumfeedrate = DEFAULT_MINIMUMFEEDRATE;
384
   minsegmenttime = DEFAULT_MINSEGMENTTIME;
388
   minsegmenttime = DEFAULT_MINSEGMENTTIME;
385
   mintravelfeedrate = DEFAULT_MINTRAVELFEEDRATE;
389
   mintravelfeedrate = DEFAULT_MINTRAVELFEEDRATE;
516
   SERIAL_EOL;
520
   SERIAL_EOL;
517
   SERIAL_ECHO_START;
521
   SERIAL_ECHO_START;
518
   if (!forReplay) {
522
   if (!forReplay) {
519
-    SERIAL_ECHOLNPGM("Acceleration: S=acceleration, T=retract acceleration");
523
+    SERIAL_ECHOLNPGM("Accelerations: P=printing, R=retract and T=travel");
520
     SERIAL_ECHO_START;
524
     SERIAL_ECHO_START;
521
   }
525
   }
522
-  SERIAL_ECHOPAIR("  M204 S", acceleration );
523
-  SERIAL_ECHOPAIR(" T", retract_acceleration);
526
+  SERIAL_ECHOPAIR("  M204 P", acceleration );
527
+  SERIAL_ECHOPAIR(" R", retract_acceleration);
528
+  SERIAL_ECHOPAIR(" T", travel_acceleration);
524
   SERIAL_EOL;
529
   SERIAL_EOL;
525
 
530
 
526
   SERIAL_ECHO_START;
531
   SERIAL_ECHO_START;

+ 1
- 0
Marlin/Configuration_adv.h View File

214
 #define X_HOME_RETRACT_MM 5
214
 #define X_HOME_RETRACT_MM 5
215
 #define Y_HOME_RETRACT_MM 5
215
 #define Y_HOME_RETRACT_MM 5
216
 #define Z_HOME_RETRACT_MM 2
216
 #define Z_HOME_RETRACT_MM 2
217
+#define HOMING_BUMP_DIVISOR {10, 10, 20}  // Re-Bump Speed Divisor (Divides the Homing Feedrate)
217
 //#define QUICK_HOME  //if this is defined, if both x and y are to be homed, a diagonal move will be performed initially.
218
 //#define QUICK_HOME  //if this is defined, if both x and y are to be homed, a diagonal move will be performed initially.
218
 
219
 
219
 #define AXIS_RELATIVE_MODES {false, false, false, false}
220
 #define AXIS_RELATIVE_MODES {false, false, false, false}

+ 75
- 36
Marlin/Marlin_main.cpp View File

201
 #endif
201
 #endif
202
 
202
 
203
 float homing_feedrate[] = HOMING_FEEDRATE;
203
 float homing_feedrate[] = HOMING_FEEDRATE;
204
+#ifdef ENABLE_AUTO_BED_LEVELING
205
+int xy_travel_speed = XY_TRAVEL_SPEED;
206
+#endif
207
+int homing_bump_divisor[] = HOMING_BUMP_DIVISOR;
204
 bool axis_relative_modes[] = AXIS_RELATIVE_MODES;
208
 bool axis_relative_modes[] = AXIS_RELATIVE_MODES;
205
 int feedmultiply = 100; //100->1 200->2
209
 int feedmultiply = 100; //100->1 200->2
206
 int saved_feedmultiply;
210
 int saved_feedmultiply;
780
           while(cmdbuffer[bufindw][count] != '*') checksum = checksum^cmdbuffer[bufindw][count++];
784
           while(cmdbuffer[bufindw][count] != '*') checksum = checksum^cmdbuffer[bufindw][count++];
781
           strchr_pointer = strchr(cmdbuffer[bufindw], '*');
785
           strchr_pointer = strchr(cmdbuffer[bufindw], '*');
782
 
786
 
783
-          if( (int)(strtod(strchr_pointer + 1, NULL)) != checksum) {
787
+          if(strtol(strchr_pointer + 1, NULL, 10) != checksum) {
784
             SERIAL_ERROR_START;
788
             SERIAL_ERROR_START;
785
             SERIAL_ERRORPGM(MSG_ERR_CHECKSUM_MISMATCH);
789
             SERIAL_ERRORPGM(MSG_ERR_CHECKSUM_MISMATCH);
786
             SERIAL_ERRORLN(gcode_LastN);
790
             SERIAL_ERRORLN(gcode_LastN);
816
       }
820
       }
817
       if((strchr(cmdbuffer[bufindw], 'G') != NULL)){
821
       if((strchr(cmdbuffer[bufindw], 'G') != NULL)){
818
         strchr_pointer = strchr(cmdbuffer[bufindw], 'G');
822
         strchr_pointer = strchr(cmdbuffer[bufindw], 'G');
819
-        switch((int)((strtod(strchr_pointer + 1, NULL)))){
823
+        switch(strtol(strchr_pointer + 1, NULL, 10)){
820
         case 0:
824
         case 0:
821
         case 1:
825
         case 1:
822
         case 2:
826
         case 2:
1146
     st_synchronize();
1150
     st_synchronize();
1147
 
1151
 
1148
     // move back down slowly to find bed
1152
     // move back down slowly to find bed
1149
-    feedrate = homing_feedrate[Z_AXIS]/4;
1153
+    
1154
+    if (homing_bump_divisor[Z_AXIS] >= 1)
1155
+    {
1156
+        feedrate = homing_feedrate[Z_AXIS]/homing_bump_divisor[Z_AXIS];
1157
+    } 
1158
+    else
1159
+    {
1160
+        feedrate = homing_feedrate[Z_AXIS]/10;
1161
+        SERIAL_ECHOLN("Warning: The Homing Bump Feedrate Divisor cannot be less then 1");
1162
+    }
1163
+
1164
+    
1150
     zPosition -= home_retract_mm(Z_AXIS) * 2;
1165
     zPosition -= home_retract_mm(Z_AXIS) * 2;
1151
     plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], zPosition, current_position[E_AXIS], feedrate/60, active_extruder);
1166
     plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], zPosition, current_position[E_AXIS], feedrate/60, active_extruder);
1152
     st_synchronize();
1167
     st_synchronize();
1165
     plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], feedrate/60, active_extruder);
1180
     plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], feedrate/60, active_extruder);
1166
     st_synchronize();
1181
     st_synchronize();
1167
 
1182
 
1168
-    feedrate = XY_TRAVEL_SPEED;
1183
+    feedrate = xy_travel_speed;
1169
 
1184
 
1170
     current_position[X_AXIS] = x;
1185
     current_position[X_AXIS] = x;
1171
     current_position[Y_AXIS] = y;
1186
     current_position[Y_AXIS] = y;
1308
     st_synchronize();
1323
     st_synchronize();
1309
 
1324
 
1310
     destination[axis] = 2*home_retract_mm(axis) * axis_home_dir;
1325
     destination[axis] = 2*home_retract_mm(axis) * axis_home_dir;
1311
-#ifdef DELTA
1312
-    feedrate = homing_feedrate[axis]/10;
1313
-#else
1314
-    feedrate = homing_feedrate[axis]/2 ;
1315
-#endif
1326
+
1327
+    if (homing_bump_divisor[axis] >= 1)
1328
+    {
1329
+        feedrate = homing_feedrate[axis]/homing_bump_divisor[axis];
1330
+    } 
1331
+    else
1332
+    {
1333
+        feedrate = homing_feedrate[axis]/10;
1334
+        SERIAL_ECHOLN("Warning: The Homing Bump Feedrate Divisor cannot be less then 1");
1335
+    }
1336
+
1316
     plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], feedrate/60, active_extruder);
1337
     plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], feedrate/60, active_extruder);
1317
     st_synchronize();
1338
     st_synchronize();
1318
 #ifdef DELTA
1339
 #ifdef DELTA
1771
 
1792
 
1772
   #ifdef AUTO_BED_LEVELING_GRID
1793
   #ifdef AUTO_BED_LEVELING_GRID
1773
 
1794
 
1774
-    #define MIN_PROBE_EDGE 20 // The probe square sides can be no smaller than this
1775
-
1776
     // Make sure probing points are reachable
1795
     // Make sure probing points are reachable
1777
 
1796
 
1778
     #if LEFT_PROBE_BED_POSITION < MIN_PROBE_X
1797
     #if LEFT_PROBE_BED_POSITION < MIN_PROBE_X
1779
-      #error The given LEFT_PROBE_BED_POSITION can't be reached by the probe.
1798
+      #error "The given LEFT_PROBE_BED_POSITION can't be reached by the probe."
1780
     #elif RIGHT_PROBE_BED_POSITION > MAX_PROBE_X
1799
     #elif RIGHT_PROBE_BED_POSITION > MAX_PROBE_X
1781
-      #error The given RIGHT_PROBE_BED_POSITION can't be reached by the probe.
1800
+      #error "The given RIGHT_PROBE_BED_POSITION can't be reached by the probe."
1782
     #elif FRONT_PROBE_BED_POSITION < MIN_PROBE_Y
1801
     #elif FRONT_PROBE_BED_POSITION < MIN_PROBE_Y
1783
-      #error The given FRONT_PROBE_BED_POSITION can't be reached by the probe.
1802
+      #error "The given FRONT_PROBE_BED_POSITION can't be reached by the probe."
1784
     #elif BACK_PROBE_BED_POSITION > MAX_PROBE_Y
1803
     #elif BACK_PROBE_BED_POSITION > MAX_PROBE_Y
1785
-      #error The given BACK_PROBE_BED_POSITION can't be reached by the probe.
1786
-
1787
-    // Check if Probe_Offset * Grid Points is greater than Probing Range
1788
-
1789
-    #elif abs(X_PROBE_OFFSET_FROM_EXTRUDER) * (AUTO_BED_LEVELING_GRID_POINTS-1) >= RIGHT_PROBE_BED_POSITION - LEFT_PROBE_BED_POSITION
1790
-      #error "The X axis probing range is not enough to fit all the points defined in AUTO_BED_LEVELING_GRID_POINTS"
1791
-    #elif abs(Y_PROBE_OFFSET_FROM_EXTRUDER) * (AUTO_BED_LEVELING_GRID_POINTS-1) >= BACK_PROBE_BED_POSITION - FRONT_PROBE_BED_POSITION
1792
-      #error "The Y axis probing range is not enough to fit all the points defined in AUTO_BED_LEVELING_GRID_POINTS"
1804
+      #error "The given BACK_PROBE_BED_POSITION can't be reached by the probe."
1793
     #endif
1805
     #endif
1794
 
1806
 
1795
   #else // !AUTO_BED_LEVELING_GRID
1807
   #else // !AUTO_BED_LEVELING_GRID
1796
 
1808
 
1797
     #if ABL_PROBE_PT_1_X < MIN_PROBE_X || ABL_PROBE_PT_1_X > MAX_PROBE_X
1809
     #if ABL_PROBE_PT_1_X < MIN_PROBE_X || ABL_PROBE_PT_1_X > MAX_PROBE_X
1798
-      #error The given ABL_PROBE_PT_1_X can't be reached by the probe.
1810
+      #error "The given ABL_PROBE_PT_1_X can't be reached by the probe."
1799
     #elif ABL_PROBE_PT_2_X < MIN_PROBE_X || ABL_PROBE_PT_2_X > MAX_PROBE_X
1811
     #elif ABL_PROBE_PT_2_X < MIN_PROBE_X || ABL_PROBE_PT_2_X > MAX_PROBE_X
1800
-      #error The given ABL_PROBE_PT_2_X can't be reached by the probe.
1812
+      #error "The given ABL_PROBE_PT_2_X can't be reached by the probe."
1801
     #elif ABL_PROBE_PT_3_X < MIN_PROBE_X || ABL_PROBE_PT_3_X > MAX_PROBE_X
1813
     #elif ABL_PROBE_PT_3_X < MIN_PROBE_X || ABL_PROBE_PT_3_X > MAX_PROBE_X
1802
-      #error The given ABL_PROBE_PT_3_X can't be reached by the probe.
1814
+      #error "The given ABL_PROBE_PT_3_X can't be reached by the probe."
1803
     #elif ABL_PROBE_PT_1_Y < MIN_PROBE_Y || ABL_PROBE_PT_1_Y > MAX_PROBE_Y
1815
     #elif ABL_PROBE_PT_1_Y < MIN_PROBE_Y || ABL_PROBE_PT_1_Y > MAX_PROBE_Y
1804
-      #error The given ABL_PROBE_PT_1_Y can't be reached by the probe.
1816
+      #error "The given ABL_PROBE_PT_1_Y can't be reached by the probe."
1805
     #elif ABL_PROBE_PT_2_Y < MIN_PROBE_Y || ABL_PROBE_PT_2_Y > MAX_PROBE_Y
1817
     #elif ABL_PROBE_PT_2_Y < MIN_PROBE_Y || ABL_PROBE_PT_2_Y > MAX_PROBE_Y
1806
-      #error The given ABL_PROBE_PT_2_Y can't be reached by the probe.
1818
+      #error "The given ABL_PROBE_PT_2_Y can't be reached by the probe."
1807
     #elif ABL_PROBE_PT_3_Y < MIN_PROBE_Y || ABL_PROBE_PT_3_Y > MAX_PROBE_Y
1819
     #elif ABL_PROBE_PT_3_Y < MIN_PROBE_Y || ABL_PROBE_PT_3_Y > MAX_PROBE_Y
1808
-      #error The given ABL_PROBE_PT_3_Y can't be reached by the probe.
1820
+      #error "The given ABL_PROBE_PT_3_Y can't be reached by the probe."
1809
     #endif
1821
     #endif
1810
 
1822
 
1811
   #endif // !AUTO_BED_LEVELING_GRID
1823
   #endif // !AUTO_BED_LEVELING_GRID
1821
    *  P  Set the size of the grid that will be probed (P x P points).
1833
    *  P  Set the size of the grid that will be probed (P x P points).
1822
    *     Example: "G29 P4"
1834
    *     Example: "G29 P4"
1823
    *
1835
    *
1836
+   *  S  Set the XY travel speed between probe points (in mm/min)
1837
+   *
1824
    *  V  Set the verbose level (0-4). Example: "G29 V3"
1838
    *  V  Set the verbose level (0-4). Example: "G29 V3"
1825
    *
1839
    *
1826
    *  T  Generate a Bed Topology Report. Example: "G29 P5 T" for a detailed report.
1840
    *  T  Generate a Bed Topology Report. Example: "G29 P5 T" for a detailed report.
1877
         SERIAL_PROTOCOLPGM("G29 Auto Bed Leveling\n");
1891
         SERIAL_PROTOCOLPGM("G29 Auto Bed Leveling\n");
1878
 
1892
 
1879
       int auto_bed_leveling_grid_points = code_seen('P') ? code_value_long() : AUTO_BED_LEVELING_GRID_POINTS;
1893
       int auto_bed_leveling_grid_points = code_seen('P') ? code_value_long() : AUTO_BED_LEVELING_GRID_POINTS;
1880
-      if (auto_bed_leveling_grid_points < 2 || auto_bed_leveling_grid_points > AUTO_BED_LEVELING_GRID_POINTS) {
1894
+      if (auto_bed_leveling_grid_points < 2) {
1881
         SERIAL_PROTOCOLPGM("?Number of probed (P)oints is implausible (2 minimum).\n");
1895
         SERIAL_PROTOCOLPGM("?Number of probed (P)oints is implausible (2 minimum).\n");
1882
         return;
1896
         return;
1883
       }
1897
       }
1884
 
1898
 
1899
+      xy_travel_speed = code_seen('S') ? code_value_long() : XY_TRAVEL_SPEED;
1900
+
1885
       int left_probe_bed_position = code_seen('L') ? code_value_long() : LEFT_PROBE_BED_POSITION,
1901
       int left_probe_bed_position = code_seen('L') ? code_value_long() : LEFT_PROBE_BED_POSITION,
1886
           right_probe_bed_position = code_seen('R') ? code_value_long() : RIGHT_PROBE_BED_POSITION,
1902
           right_probe_bed_position = code_seen('R') ? code_value_long() : RIGHT_PROBE_BED_POSITION,
1887
           front_probe_bed_position = code_seen('F') ? code_value_long() : FRONT_PROBE_BED_POSITION,
1903
           front_probe_bed_position = code_seen('F') ? code_value_long() : FRONT_PROBE_BED_POSITION,
2110
     #ifdef Z_PROBE_SLED
2126
     #ifdef Z_PROBE_SLED
2111
       dock_sled(true, -SLED_DOCKING_OFFSET); // dock the probe, correcting for over-travel
2127
       dock_sled(true, -SLED_DOCKING_OFFSET); // dock the probe, correcting for over-travel
2112
     #endif
2128
     #endif
2129
+    
2130
+    #ifdef Z_PROBE_END_SCRIPT
2131
+      enquecommands_P(PSTR(Z_PROBE_END_SCRIPT));
2132
+      st_synchronize();
2133
+    #endif
2113
   }
2134
   }
2114
 
2135
 
2115
   #ifndef Z_PROBE_SLED
2136
   #ifndef Z_PROBE_SLED
3257
 }
3278
 }
3258
 
3279
 
3259
 /**
3280
 /**
3260
- * M204: Set Default Acceleration and/or Default Filament Acceleration in mm/sec^2 (M204 S3000 T7000)
3281
+ * M204: Set Accelerations in mm/sec^2 (M204 P1200 R3000 T3000)
3261
  *
3282
  *
3262
- *    S = normal moves
3263
- *    T = filament only moves
3283
+ *    P = Printing moves
3284
+ *    R = Retract only (no X, Y, Z) moves
3285
+ *    T = Travel (non printing) moves
3264
  *
3286
  *
3265
  *  Also sets minimum segment time in ms (B20000) to prevent buffer under-runs and M20 minimum feedrate
3287
  *  Also sets minimum segment time in ms (B20000) to prevent buffer under-runs and M20 minimum feedrate
3266
  */
3288
  */
3267
 inline void gcode_M204() {
3289
 inline void gcode_M204() {
3268
-  if (code_seen('S')) acceleration = code_value();
3269
-  if (code_seen('T')) retract_acceleration = code_value();
3290
+  if (code_seen('P'))
3291
+  {
3292
+    acceleration = code_value();
3293
+    SERIAL_ECHOPAIR("Setting Printing Acceleration: ", acceleration );
3294
+    SERIAL_EOL;
3295
+  }
3296
+  if (code_seen('R'))
3297
+  {
3298
+    retract_acceleration = code_value();
3299
+    SERIAL_ECHOPAIR("Setting Retract Acceleration: ", retract_acceleration );
3300
+    SERIAL_EOL;
3301
+  }
3302
+  if (code_seen('T'))
3303
+  {
3304
+    travel_acceleration = code_value();
3305
+    SERIAL_ECHOPAIR("Setting Travel Acceleration: ", travel_acceleration );
3306
+    SERIAL_EOL;
3307
+  }
3308
+  
3270
 }
3309
 }
3271
 
3310
 
3272
 /**
3311
 /**
4218
  */
4257
  */
4219
 inline void gcode_M351() {
4258
 inline void gcode_M351() {
4220
   #if defined(X_MS1_PIN) && X_MS1_PIN > -1
4259
   #if defined(X_MS1_PIN) && X_MS1_PIN > -1
4221
-    if (code_seen('S')) switch((int)code_value()) {
4260
+    if (code_seen('S')) switch(code_value_long()) {
4222
       case 1:
4261
       case 1:
4223
         for(int i=0;i<NUM_AXIS;i++) if (code_seen(axis_codes[i])) microstep_ms(i, code_value(), -1);
4262
         for(int i=0;i<NUM_AXIS;i++) if (code_seen(axis_codes[i])) microstep_ms(i, code_value(), -1);
4224
         if (code_seen('B')) microstep_ms(4, code_value(), -1);
4263
         if (code_seen('B')) microstep_ms(4, code_value(), -1);
4417
   }
4456
   }
4418
 
4457
 
4419
   else if (code_seen('M')) {
4458
   else if (code_seen('M')) {
4420
-    switch( (int)code_value() ) {
4459
+    switch( code_value_long() ) {
4421
       #ifdef ULTIPANEL
4460
       #ifdef ULTIPANEL
4422
         case 0: // M0 - Unconditional stop - Wait for user button press on LCD
4461
         case 0: // M0 - Unconditional stop - Wait for user button press on LCD
4423
         case 1: // M1 - Conditional stop - Wait for user button press on LCD
4462
         case 1: // M1 - Conditional stop - Wait for user button press on LCD

+ 7
- 2
Marlin/example_configurations/Hephestos/Configuration.h View File

413
     #define RIGHT_PROBE_BED_POSITION 170
413
     #define RIGHT_PROBE_BED_POSITION 170
414
     #define FRONT_PROBE_BED_POSITION 20
414
     #define FRONT_PROBE_BED_POSITION 20
415
     #define BACK_PROBE_BED_POSITION 170
415
     #define BACK_PROBE_BED_POSITION 170
416
+    
417
+    #define MIN_PROBE_EDGE 10 // The probe square sides can be no smaller than this
416
 
418
 
417
     // Set the number of grid points per dimension
419
     // Set the number of grid points per dimension
418
     // You probably don't need more than 3 (squared=9)
420
     // You probably don't need more than 3 (squared=9)
498
 #define DEFAULT_MAX_FEEDRATE          {250, 250, 3.3, 25}    // (mm/sec)
500
 #define DEFAULT_MAX_FEEDRATE          {250, 250, 3.3, 25}    // (mm/sec)
499
 #define DEFAULT_MAX_ACCELERATION      {3000,3000,100,10000}    // X, Y, Z, E maximum start speed for accelerated moves. E default values are good for Skeinforge 40+, for older versions raise them a lot.
501
 #define DEFAULT_MAX_ACCELERATION      {3000,3000,100,10000}    // X, Y, Z, E maximum start speed for accelerated moves. E default values are good for Skeinforge 40+, for older versions raise them a lot.
500
 
502
 
501
-#define DEFAULT_ACCELERATION          1000    // X, Y, Z and E max acceleration in mm/s^2 for printing moves
502
-#define DEFAULT_RETRACT_ACCELERATION  1000   // X, Y, Z and E max acceleration in mm/s^2 for retracts
503
+#define DEFAULT_ACCELERATION          1000    // X, Y, Z and E acceleration in mm/s^2 for printing moves
504
+#define DEFAULT_RETRACT_ACCELERATION  1000   // E acceleration in mm/s^2 for retracts
505
+#define DEFAULT_TRAVEL_ACCELERATION   1000    // X, Y, Z acceleration in mm/s^2 for travel (non printing) moves
506
+
507
+
503
 
508
 
504
 // Offset of the extruders (uncomment if using more than one and relying on firmware to position when changing).
509
 // Offset of the extruders (uncomment if using more than one and relying on firmware to position when changing).
505
 // The offset has to be X=0, Y=0 for the extruder 0 hotend (default extruder).
510
 // The offset has to be X=0, Y=0 for the extruder 0 hotend (default extruder).

+ 1
- 0
Marlin/example_configurations/Hephestos/Configuration_adv.h View File

214
 #define X_HOME_RETRACT_MM 5
214
 #define X_HOME_RETRACT_MM 5
215
 #define Y_HOME_RETRACT_MM 5
215
 #define Y_HOME_RETRACT_MM 5
216
 #define Z_HOME_RETRACT_MM 2
216
 #define Z_HOME_RETRACT_MM 2
217
+#define HOMING_BUMP_DIVISOR {10, 10, 20}  // Re-Bump Speed Divisor (Divides the Homing Feedrate)
217
 //#define QUICK_HOME  //if this is defined, if both x and y are to be homed, a diagonal move will be performed initially.
218
 //#define QUICK_HOME  //if this is defined, if both x and y are to be homed, a diagonal move will be performed initially.
218
 
219
 
219
 #define AXIS_RELATIVE_MODES {false, false, false, false}
220
 #define AXIS_RELATIVE_MODES {false, false, false, false}

+ 6
- 2
Marlin/example_configurations/K8200/Configuration.h View File

419
     #define FRONT_PROBE_BED_POSITION 20
419
     #define FRONT_PROBE_BED_POSITION 20
420
     #define BACK_PROBE_BED_POSITION 170
420
     #define BACK_PROBE_BED_POSITION 170
421
 
421
 
422
+    #define MIN_PROBE_EDGE 10 // The probe square sides can be no smaller than this    
423
+    
422
     // Set the number of grid points per dimension
424
     // Set the number of grid points per dimension
423
     // You probably don't need more than 3 (squared=9)
425
     // You probably don't need more than 3 (squared=9)
424
     #define AUTO_BED_LEVELING_GRID_POINTS 2
426
     #define AUTO_BED_LEVELING_GRID_POINTS 2
503
 #define DEFAULT_MAX_FEEDRATE          {500, 500, 5, 500}    // (mm/sec)
505
 #define DEFAULT_MAX_FEEDRATE          {500, 500, 5, 500}    // (mm/sec)
504
 #define DEFAULT_MAX_ACCELERATION      {9000,9000,100,10000}    // X, Y, Z, E maximum start speed for accelerated moves. E default values are good for Skeinforge 40+, for older versions raise them a lot.
506
 #define DEFAULT_MAX_ACCELERATION      {9000,9000,100,10000}    // X, Y, Z, E maximum start speed for accelerated moves. E default values are good for Skeinforge 40+, for older versions raise them a lot.
505
 
507
 
506
-#define DEFAULT_ACCELERATION          1000    // X, Y, Z and E max acceleration in mm/s^2 for printing moves
507
-#define DEFAULT_RETRACT_ACCELERATION  1000   // X, Y, Z and E max acceleration in mm/s^2 for retracts
508
+#define DEFAULT_ACCELERATION          1000    // X, Y, Z and E acceleration in mm/s^2 for printing moves
509
+#define DEFAULT_RETRACT_ACCELERATION  1000   // E acceleration in mm/s^2 for retracts
510
+#define DEFAULT_TRAVEL_ACCELERATION   1000    // X, Y, Z acceleration in mm/s^2 for travel (non printing) moves
511
+
508
 
512
 
509
 // Offset of the extruders (uncomment if using more than one and relying on firmware to position when changing).
513
 // Offset of the extruders (uncomment if using more than one and relying on firmware to position when changing).
510
 // The offset has to be X=0, Y=0 for the extruder 0 hotend (default extruder).
514
 // The offset has to be X=0, Y=0 for the extruder 0 hotend (default extruder).

+ 1
- 0
Marlin/example_configurations/K8200/Configuration_adv.h View File

214
 #define X_HOME_RETRACT_MM 5
214
 #define X_HOME_RETRACT_MM 5
215
 #define Y_HOME_RETRACT_MM 5
215
 #define Y_HOME_RETRACT_MM 5
216
 #define Z_HOME_RETRACT_MM 3
216
 #define Z_HOME_RETRACT_MM 3
217
+#define HOMING_BUMP_DIVISOR {10, 10, 20}  // Re-Bump Speed Divisor (Divides the Homing Feedrate)
217
 //#define QUICK_HOME  //if this is defined, if both x and y are to be homed, a diagonal move will be performed initially.
218
 //#define QUICK_HOME  //if this is defined, if both x and y are to be homed, a diagonal move will be performed initially.
218
 
219
 
219
 #define AXIS_RELATIVE_MODES {false, false, false, false}
220
 #define AXIS_RELATIVE_MODES {false, false, false, false}

+ 7
- 2
Marlin/example_configurations/SCARA/Configuration.h View File

443
     #define FRONT_PROBE_BED_POSITION 20
443
     #define FRONT_PROBE_BED_POSITION 20
444
     #define BACK_PROBE_BED_POSITION 170
444
     #define BACK_PROBE_BED_POSITION 170
445
 
445
 
446
+    #define MIN_PROBE_EDGE 10 // The probe square sides can be no smaller than this    
447
+    
446
     // Set the number of grid points per dimension
448
     // Set the number of grid points per dimension
447
     // You probably don't need more than 3 (squared=9)
449
     // You probably don't need more than 3 (squared=9)
448
     #define AUTO_BED_LEVELING_GRID_POINTS 2
450
     #define AUTO_BED_LEVELING_GRID_POINTS 2
528
 #define DEFAULT_MAX_FEEDRATE          {300, 300, 30, 25}    // (mm/sec)
530
 #define DEFAULT_MAX_FEEDRATE          {300, 300, 30, 25}    // (mm/sec)
529
 #define DEFAULT_MAX_ACCELERATION      {300,300,20,1000}    // X, Y, Z, E maximum start speed for accelerated moves. E default values are good for Skeinforge 40+, for older versions raise them a lot.
531
 #define DEFAULT_MAX_ACCELERATION      {300,300,20,1000}    // X, Y, Z, E maximum start speed for accelerated moves. E default values are good for Skeinforge 40+, for older versions raise them a lot.
530
 
532
 
531
-#define DEFAULT_ACCELERATION          400    // X, Y, Z and E max acceleration in mm/s^2 for printing moves
532
-#define DEFAULT_RETRACT_ACCELERATION  2000  // X, Y, Z and E max acceleration in mm/s^2 for retracts
533
+#define DEFAULT_ACCELERATION          400    // X, Y, Z and E acceleration in mm/s^2 for printing moves
534
+#define DEFAULT_RETRACT_ACCELERATION  2000   // E acceleration in mm/s^2 for retracts
535
+#define DEFAULT_TRAVEL_ACCELERATION   400    // X, Y, Z acceleration in mm/s^2 for travel (non printing) moves
536
+
537
+
533
 
538
 
534
 // Offset of the extruders (uncomment if using more than one and relying on firmware to position when changing).
539
 // Offset of the extruders (uncomment if using more than one and relying on firmware to position when changing).
535
 // The offset has to be X=0, Y=0 for the extruder 0 hotend (default extruder).
540
 // The offset has to be X=0, Y=0 for the extruder 0 hotend (default extruder).

+ 1
- 0
Marlin/example_configurations/SCARA/Configuration_adv.h View File

214
 #define X_HOME_RETRACT_MM 3
214
 #define X_HOME_RETRACT_MM 3
215
 #define Y_HOME_RETRACT_MM 3
215
 #define Y_HOME_RETRACT_MM 3
216
 #define Z_HOME_RETRACT_MM 3
216
 #define Z_HOME_RETRACT_MM 3
217
+#define HOMING_BUMP_DIVISOR {10, 10, 20}  // Re-Bump Speed Divisor (Divides the Homing Feedrate)
217
 //#define QUICK_HOME  //if this is defined, if both x and y are to be homed, a diagonal move will be performed initially.
218
 //#define QUICK_HOME  //if this is defined, if both x and y are to be homed, a diagonal move will be performed initially.
218
 #ifdef SCARA
219
 #ifdef SCARA
219
 	#define QUICK_HOME //SCARA needs Quickhome
220
 	#define QUICK_HOME //SCARA needs Quickhome

+ 5
- 2
Marlin/example_configurations/WITBOX/Configuration.h View File

413
     #define FRONT_PROBE_BED_POSITION 20
413
     #define FRONT_PROBE_BED_POSITION 20
414
     #define BACK_PROBE_BED_POSITION 170
414
     #define BACK_PROBE_BED_POSITION 170
415
 
415
 
416
+    #define MIN_PROBE_EDGE 10 // The probe square sides can be no smaller than this
417
+    
416
     // Set the number of grid points per dimension
418
     // Set the number of grid points per dimension
417
     // You probably don't need more than 3 (squared=9)
419
     // You probably don't need more than 3 (squared=9)
418
     #define AUTO_BED_LEVELING_GRID_POINTS 2
420
     #define AUTO_BED_LEVELING_GRID_POINTS 2
497
 #define DEFAULT_MAX_FEEDRATE          {350, 350, 7.2, 80}    // (mm/sec)
499
 #define DEFAULT_MAX_FEEDRATE          {350, 350, 7.2, 80}    // (mm/sec)
498
 #define DEFAULT_MAX_ACCELERATION      {1000,1000,10,1000}    // X, Y, Z, E maximum start speed for accelerated moves. E default values are good for Skeinforge 40+, for older versions raise them a lot.
500
 #define DEFAULT_MAX_ACCELERATION      {1000,1000,10,1000}    // X, Y, Z, E maximum start speed for accelerated moves. E default values are good for Skeinforge 40+, for older versions raise them a lot.
499
 
501
 
500
-#define DEFAULT_ACCELERATION          3000    // X, Y, Z and E max acceleration in mm/s^2 for printing moves
501
-#define DEFAULT_RETRACT_ACCELERATION  3000   // X, Y, Z and E max acceleration in mm/s^2 for retracts
502
+#define DEFAULT_ACCELERATION          3000    // X, Y, Z and E acceleration in mm/s^2 for printing moves
503
+#define DEFAULT_RETRACT_ACCELERATION  3000   // E acceleration in mm/s^2 for retracts
504
+#define DEFAULT_TRAVEL_ACCELERATION   3000    // X, Y, Z acceleration in mm/s^2 for travel (non printing) moves
502
 
505
 
503
 // Offset of the extruders (uncomment if using more than one and relying on firmware to position when changing).
506
 // Offset of the extruders (uncomment if using more than one and relying on firmware to position when changing).
504
 // The offset has to be X=0, Y=0 for the extruder 0 hotend (default extruder).
507
 // The offset has to be X=0, Y=0 for the extruder 0 hotend (default extruder).

+ 1
- 0
Marlin/example_configurations/WITBOX/Configuration_adv.h View File

214
 #define X_HOME_RETRACT_MM 5
214
 #define X_HOME_RETRACT_MM 5
215
 #define Y_HOME_RETRACT_MM 5
215
 #define Y_HOME_RETRACT_MM 5
216
 #define Z_HOME_RETRACT_MM 2
216
 #define Z_HOME_RETRACT_MM 2
217
+#define HOMING_BUMP_DIVISOR {10, 10, 20}  // Re-Bump Speed Divisor (Divides the Homing Feedrate)
217
 //#define QUICK_HOME  //if this is defined, if both x and y are to be homed, a diagonal move will be performed initially.
218
 //#define QUICK_HOME  //if this is defined, if both x and y are to be homed, a diagonal move will be performed initially.
218
 
219
 
219
 #define AXIS_RELATIVE_MODES {false, false, false, false}
220
 #define AXIS_RELATIVE_MODES {false, false, false, false}

+ 4
- 2
Marlin/example_configurations/delta/Configuration.h View File

440
 #define DEFAULT_MAX_FEEDRATE          {500, 500, 500, 25}    // (mm/sec)
440
 #define DEFAULT_MAX_FEEDRATE          {500, 500, 500, 25}    // (mm/sec)
441
 #define DEFAULT_MAX_ACCELERATION      {9000,9000,9000,10000}    // X, Y, Z, E maximum start speed for accelerated moves. E default values are good for skeinforge 40+, for older versions raise them a lot.
441
 #define DEFAULT_MAX_ACCELERATION      {9000,9000,9000,10000}    // X, Y, Z, E maximum start speed for accelerated moves. E default values are good for skeinforge 40+, for older versions raise them a lot.
442
 
442
 
443
-#define DEFAULT_ACCELERATION          3000    // X, Y, Z and E max acceleration in mm/s^2 for printing moves
444
-#define DEFAULT_RETRACT_ACCELERATION  3000   // X, Y, Z and E max acceleration in mm/s^2 for retracts
443
+#define DEFAULT_ACCELERATION          3000    // X, Y, Z and E acceleration in mm/s^2 for printing moves
444
+#define DEFAULT_RETRACT_ACCELERATION  3000   // E acceleration in mm/s^2 for retracts
445
+#define DEFAULT_TRAVEL_ACCELERATION   3000    // X, Y, Z acceleration in mm/s^2 for travel (non printing) moves
446
+
445
 
447
 
446
 // Offset of the extruders (uncomment if using more than one and relying on firmware to position when changing).
448
 // Offset of the extruders (uncomment if using more than one and relying on firmware to position when changing).
447
 // The offset has to be X=0, Y=0 for the extruder 0 hotend (default extruder).
449
 // The offset has to be X=0, Y=0 for the extruder 0 hotend (default extruder).

+ 1
- 0
Marlin/example_configurations/delta/Configuration_adv.h View File

214
 #define X_HOME_RETRACT_MM 5 
214
 #define X_HOME_RETRACT_MM 5 
215
 #define Y_HOME_RETRACT_MM 5 
215
 #define Y_HOME_RETRACT_MM 5 
216
 #define Z_HOME_RETRACT_MM 5 // deltas need the same for all three axis
216
 #define Z_HOME_RETRACT_MM 5 // deltas need the same for all three axis
217
+#define HOMING_BUMP_DIVISOR {10, 10, 20}  // Re-Bump Speed Divisor (Divides the Homing Feedrate)
217
 
218
 
218
 //#define QUICK_HOME  //if this is defined, if both x and y are to be homed, a diagonal move will be performed initially.
219
 //#define QUICK_HOME  //if this is defined, if both x and y are to be homed, a diagonal move will be performed initially.
219
 
220
 

+ 5
- 2
Marlin/example_configurations/makibox/Configuration.h View File

411
     #define FRONT_PROBE_BED_POSITION 20
411
     #define FRONT_PROBE_BED_POSITION 20
412
     #define BACK_PROBE_BED_POSITION 170
412
     #define BACK_PROBE_BED_POSITION 170
413
 
413
 
414
+    #define MIN_PROBE_EDGE 10 // The probe square sides can be no smaller than this    
415
+    
414
     // Set the number of grid points per dimension
416
     // Set the number of grid points per dimension
415
     // You probably don't need more than 3 (squared=9)
417
     // You probably don't need more than 3 (squared=9)
416
     #define AUTO_BED_LEVELING_GRID_POINTS 2
418
     #define AUTO_BED_LEVELING_GRID_POINTS 2
495
 #define DEFAULT_MAX_FEEDRATE          {60, 60, 20, 45}         // (mm/sec)    
497
 #define DEFAULT_MAX_FEEDRATE          {60, 60, 20, 45}         // (mm/sec)    
496
 #define DEFAULT_MAX_ACCELERATION      {2000,2000,30,10000}    // X, Y, Z, E maximum start speed for accelerated moves. E default values are good for skeinforge 40+, for older versions raise them a lot.
498
 #define DEFAULT_MAX_ACCELERATION      {2000,2000,30,10000}    // X, Y, Z, E maximum start speed for accelerated moves. E default values are good for skeinforge 40+, for older versions raise them a lot.
497
 
499
 
498
-#define DEFAULT_ACCELERATION          3000    // X, Y, Z and E max acceleration in mm/s^2 for printing moves
499
-#define DEFAULT_RETRACT_ACCELERATION  3000   // X, Y, Z and E max acceleration in mm/s^2 for retracts
500
+#define DEFAULT_ACCELERATION          3000    // X, Y, Z and E acceleration in mm/s^2 for printing moves
501
+#define DEFAULT_RETRACT_ACCELERATION  3000   // E acceleration in mm/s^2 for retracts
502
+#define DEFAULT_TRAVEL_ACCELERATION   3000    // X, Y, Z acceleration in mm/s^2 for travel (non printing) moves
500
 
503
 
501
 // Offset of the extruders (uncomment if using more than one and relying on firmware to position when changing).
504
 // Offset of the extruders (uncomment if using more than one and relying on firmware to position when changing).
502
 // The offset has to be X=0, Y=0 for the extruder 0 hotend (default extruder).
505
 // The offset has to be X=0, Y=0 for the extruder 0 hotend (default extruder).

+ 1
- 0
Marlin/example_configurations/makibox/Configuration_adv.h View File

214
 #define X_HOME_RETRACT_MM 5
214
 #define X_HOME_RETRACT_MM 5
215
 #define Y_HOME_RETRACT_MM 5
215
 #define Y_HOME_RETRACT_MM 5
216
 #define Z_HOME_RETRACT_MM 2
216
 #define Z_HOME_RETRACT_MM 2
217
+#define HOMING_BUMP_DIVISOR {10, 10, 20}  // Re-Bump Speed Divisor (Divides the Homing Feedrate)
217
 //#define QUICK_HOME  //if this is defined, if both x and y are to be homed, a diagonal move will be performed initially.
218
 //#define QUICK_HOME  //if this is defined, if both x and y are to be homed, a diagonal move will be performed initially.
218
 
219
 
219
 #define AXIS_RELATIVE_MODES {false, false, false, false}
220
 #define AXIS_RELATIVE_MODES {false, false, false, false}

+ 6
- 2
Marlin/example_configurations/tvrrug/Round2/Configuration.h View File

412
     #define RIGHT_PROBE_BED_POSITION 170
412
     #define RIGHT_PROBE_BED_POSITION 170
413
     #define FRONT_PROBE_BED_POSITION 20
413
     #define FRONT_PROBE_BED_POSITION 20
414
     #define BACK_PROBE_BED_POSITION 170
414
     #define BACK_PROBE_BED_POSITION 170
415
+    
416
+    #define MIN_PROBE_EDGE 10 // The probe square sides can be no smaller than this    
415
 
417
 
416
     // Set the number of grid points per dimension
418
     // Set the number of grid points per dimension
417
     // You probably don't need more than 3 (squared=9)
419
     // You probably don't need more than 3 (squared=9)
501
 #define DEFAULT_MAX_ACCELERATION      {9000,9000,100,10000}    // X, Y, Z, E maximum start speed for accelerated moves. E default values are good for Skeinforge 40+, for older versions raise them a lot.
503
 #define DEFAULT_MAX_ACCELERATION      {9000,9000,100,10000}    // X, Y, Z, E maximum start speed for accelerated moves. E default values are good for Skeinforge 40+, for older versions raise them a lot.
502
 
504
 
503
 /* MICHEL: This has an impact on the "ripples" in print walls */
505
 /* MICHEL: This has an impact on the "ripples" in print walls */
504
-#define DEFAULT_ACCELERATION          500    // X, Y, Z and E max acceleration in mm/s^2 for printing moves
505
-#define DEFAULT_RETRACT_ACCELERATION  3000   // X, Y, Z and E max acceleration in mm/s^2 for retracts
506
+#define DEFAULT_ACCELERATION          500    // X, Y, Z and E acceleration in mm/s^2 for printing moves
507
+#define DEFAULT_RETRACT_ACCELERATION  3000   // E acceleration in mm/s^2 for retracts
508
+#define DEFAULT_TRAVEL_ACCELERATION   500    // X, Y, Z acceleration in mm/s^2 for travel (non printing) moves
509
+
506
 
510
 
507
 // Offset of the extruders (uncomment if using more than one and relying on firmware to position when changing).
511
 // Offset of the extruders (uncomment if using more than one and relying on firmware to position when changing).
508
 // The offset has to be X=0, Y=0 for the extruder 0 hotend (default extruder).
512
 // The offset has to be X=0, Y=0 for the extruder 0 hotend (default extruder).

+ 1
- 0
Marlin/example_configurations/tvrrug/Round2/Configuration_adv.h View File

214
 #define X_HOME_RETRACT_MM 5
214
 #define X_HOME_RETRACT_MM 5
215
 #define Y_HOME_RETRACT_MM 5
215
 #define Y_HOME_RETRACT_MM 5
216
 #define Z_HOME_RETRACT_MM 1
216
 #define Z_HOME_RETRACT_MM 1
217
+#define HOMING_BUMP_DIVISOR {10, 10, 20}  // Re-Bump Speed Divisor (Divides the Homing Feedrate)
217
 //#define QUICK_HOME  //if this is defined, if both x and y are to be homed, a diagonal move will be performed initially.
218
 //#define QUICK_HOME  //if this is defined, if both x and y are to be homed, a diagonal move will be performed initially.
218
 
219
 
219
 #define AXIS_RELATIVE_MODES {false, false, false, false}
220
 #define AXIS_RELATIVE_MODES {false, false, false, false}

+ 3
- 0
Marlin/language_en.h View File

233
 #ifndef MSG_A_RETRACT
233
 #ifndef MSG_A_RETRACT
234
 #define MSG_A_RETRACT                       "A-retract"
234
 #define MSG_A_RETRACT                       "A-retract"
235
 #endif
235
 #endif
236
+#ifndef MSG_A_TRAVEL
237
+#define MSG_A_TRAVEL                        "A-travel"
238
+#endif
236
 #ifndef MSG_XSTEPS
239
 #ifndef MSG_XSTEPS
237
 #define MSG_XSTEPS                          "Xsteps/mm"
240
 #define MSG_XSTEPS                          "Xsteps/mm"
238
 #endif
241
 #endif

+ 16
- 10
Marlin/planner.cpp View File

67
 float axis_steps_per_unit[NUM_AXIS];
67
 float axis_steps_per_unit[NUM_AXIS];
68
 unsigned long max_acceleration_units_per_sq_second[NUM_AXIS]; // Use M201 to override by software
68
 unsigned long max_acceleration_units_per_sq_second[NUM_AXIS]; // Use M201 to override by software
69
 float minimumfeedrate;
69
 float minimumfeedrate;
70
-float acceleration;         // Normal acceleration mm/s^2  THIS IS THE DEFAULT ACCELERATION for all moves. M204 SXXXX
70
+float acceleration;         // Normal acceleration mm/s^2  THIS IS THE DEFAULT ACCELERATION for all printing moves. M204 SXXXX
71
 float retract_acceleration; //  mm/s^2   filament pull-pack and push-forward  while standing still in the other axis M204 TXXXX
71
 float retract_acceleration; //  mm/s^2   filament pull-pack and push-forward  while standing still in the other axis M204 TXXXX
72
+float travel_acceleration;  // Travel acceleration mm/s^2  THIS IS THE DEFAULT ACCELERATION for all NON printing moves. M204 MXXXX
72
 float max_xy_jerk; //speed than can be stopped at once, if i understand correctly.
73
 float max_xy_jerk; //speed than can be stopped at once, if i understand correctly.
73
 float max_z_jerk;
74
 float max_z_jerk;
74
 float max_e_jerk;
75
 float max_e_jerk;
907
   {
908
   {
908
     block->acceleration_st = ceil(retract_acceleration * steps_per_mm); // convert to: acceleration steps/sec^2
909
     block->acceleration_st = ceil(retract_acceleration * steps_per_mm); // convert to: acceleration steps/sec^2
909
   }
910
   }
911
+  else if(block->steps_e == 0)
912
+  {
913
+    block->acceleration_st = ceil(travel_acceleration * steps_per_mm); // convert to: acceleration steps/sec^2
914
+  }
910
   else
915
   else
911
   {
916
   {
912
     block->acceleration_st = ceil(acceleration * steps_per_mm); // convert to: acceleration steps/sec^2
917
     block->acceleration_st = ceil(acceleration * steps_per_mm); // convert to: acceleration steps/sec^2
913
-    // Limit acceleration per axis
914
-    if(((float)block->acceleration_st * (float)block->steps_x / (float)block->step_event_count) > axis_steps_per_sqr_second[X_AXIS])
915
-      block->acceleration_st = axis_steps_per_sqr_second[X_AXIS];
916
-    if(((float)block->acceleration_st * (float)block->steps_y / (float)block->step_event_count) > axis_steps_per_sqr_second[Y_AXIS])
917
-      block->acceleration_st = axis_steps_per_sqr_second[Y_AXIS];
918
-    if(((float)block->acceleration_st * (float)block->steps_e / (float)block->step_event_count) > axis_steps_per_sqr_second[E_AXIS])
919
-      block->acceleration_st = axis_steps_per_sqr_second[E_AXIS];
920
-    if(((float)block->acceleration_st * (float)block->steps_z / (float)block->step_event_count ) > axis_steps_per_sqr_second[Z_AXIS])
921
-      block->acceleration_st = axis_steps_per_sqr_second[Z_AXIS];
922
   }
918
   }
919
+  // Limit acceleration per axis
920
+  if(((float)block->acceleration_st * (float)block->steps_x / (float)block->step_event_count) > axis_steps_per_sqr_second[X_AXIS])
921
+    block->acceleration_st = axis_steps_per_sqr_second[X_AXIS];
922
+  if(((float)block->acceleration_st * (float)block->steps_y / (float)block->step_event_count) > axis_steps_per_sqr_second[Y_AXIS])
923
+    block->acceleration_st = axis_steps_per_sqr_second[Y_AXIS];
924
+  if(((float)block->acceleration_st * (float)block->steps_e / (float)block->step_event_count) > axis_steps_per_sqr_second[E_AXIS])
925
+    block->acceleration_st = axis_steps_per_sqr_second[E_AXIS];
926
+  if(((float)block->acceleration_st * (float)block->steps_z / (float)block->step_event_count ) > axis_steps_per_sqr_second[Z_AXIS])
927
+    block->acceleration_st = axis_steps_per_sqr_second[Z_AXIS];
928
+ 
923
   block->acceleration = block->acceleration_st / steps_per_mm;
929
   block->acceleration = block->acceleration_st / steps_per_mm;
924
   block->acceleration_rate = (long)((float)block->acceleration_st * (16777216.0 / (F_CPU / 8.0)));
930
   block->acceleration_rate = (long)((float)block->acceleration_st * (16777216.0 / (F_CPU / 8.0)));
925
 
931
 

+ 1
- 0
Marlin/planner.h View File

112
 extern float minimumfeedrate;
112
 extern float minimumfeedrate;
113
 extern float acceleration;         // Normal acceleration mm/s^2  THIS IS THE DEFAULT ACCELERATION for all moves. M204 SXXXX
113
 extern float acceleration;         // Normal acceleration mm/s^2  THIS IS THE DEFAULT ACCELERATION for all moves. M204 SXXXX
114
 extern float retract_acceleration; //  mm/s^2   filament pull-pack and push-forward  while standing still in the other axis M204 TXXXX
114
 extern float retract_acceleration; //  mm/s^2   filament pull-pack and push-forward  while standing still in the other axis M204 TXXXX
115
+extern float travel_acceleration;  // Travel acceleration mm/s^2  THIS IS THE DEFAULT ACCELERATION for all NON printing moves. M204 MXXXX
115
 extern float max_xy_jerk; //speed than can be stopped at once, if i understand correctly.
116
 extern float max_xy_jerk; //speed than can be stopped at once, if i understand correctly.
116
 extern float max_z_jerk;
117
 extern float max_z_jerk;
117
 extern float max_e_jerk;
118
 extern float max_e_jerk;

+ 1
- 0
Marlin/ultralcd.cpp View File

903
   MENU_ITEM_EDIT_CALLBACK(long5, MSG_AMAX MSG_Z, &max_acceleration_units_per_sq_second[Z_AXIS], 100, 99000, reset_acceleration_rates);
903
   MENU_ITEM_EDIT_CALLBACK(long5, MSG_AMAX MSG_Z, &max_acceleration_units_per_sq_second[Z_AXIS], 100, 99000, reset_acceleration_rates);
904
   MENU_ITEM_EDIT_CALLBACK(long5, MSG_AMAX MSG_E, &max_acceleration_units_per_sq_second[E_AXIS], 100, 99000, reset_acceleration_rates);
904
   MENU_ITEM_EDIT_CALLBACK(long5, MSG_AMAX MSG_E, &max_acceleration_units_per_sq_second[E_AXIS], 100, 99000, reset_acceleration_rates);
905
   MENU_ITEM_EDIT(float5, MSG_A_RETRACT, &retract_acceleration, 100, 99000);
905
   MENU_ITEM_EDIT(float5, MSG_A_RETRACT, &retract_acceleration, 100, 99000);
906
+  MENU_ITEM_EDIT(float5, MSG_A_TRAVEL, &travel_acceleration, 100, 99000);
906
   MENU_ITEM_EDIT(float52, MSG_XSTEPS, &axis_steps_per_unit[X_AXIS], 5, 9999);
907
   MENU_ITEM_EDIT(float52, MSG_XSTEPS, &axis_steps_per_unit[X_AXIS], 5, 9999);
907
   MENU_ITEM_EDIT(float52, MSG_YSTEPS, &axis_steps_per_unit[Y_AXIS], 5, 9999);
908
   MENU_ITEM_EDIT(float52, MSG_YSTEPS, &axis_steps_per_unit[Y_AXIS], 5, 9999);
908
   MENU_ITEM_EDIT(float51, MSG_ZSTEPS, &axis_steps_per_unit[Z_AXIS], 5, 9999);
909
   MENU_ITEM_EDIT(float51, MSG_ZSTEPS, &axis_steps_per_unit[Z_AXIS], 5, 9999);

+ 2
- 2
README.md View File

27
 [![Coverity Scan Build Status](https://scan.coverity.com/projects/2224/badge.svg)](https://scan.coverity.com/projects/2224)
27
 [![Coverity Scan Build Status](https://scan.coverity.com/projects/2224/badge.svg)](https://scan.coverity.com/projects/2224)
28
 [![Travis Build Status](https://travis-ci.org/MarlinFirmware/Marlin.svg)](https://travis-ci.org/MarlinFirmware/Marlin)
28
 [![Travis Build Status](https://travis-ci.org/MarlinFirmware/Marlin.svg)](https://travis-ci.org/MarlinFirmware/Marlin)
29
 
29
 
30
-What bugs are we working on: [Bug Fixing Round 2](https://github.com/MarlinFirmware/Marlin/milestones/Bug%20Fixing%20Round%202)
30
+What bugs are we working on: [Bug Fixing Round 3](https://github.com/MarlinFirmware/Marlin/milestones/Bug%20Fixing%20Round%203)
31
 
31
 
32
 ## Contact
32
 ## Contact
33
 
33
 
34
-__IRC:__ #marlin-firmware @freenode ([WebChat Client](https://webchat.freenode.net/?channels=marlin-firmware), [Archive](http://energymonitor-dk.dns4e.net/marlin-firmware-log/))
34
+__IRC:__ #marlin-firmware @freenode ([WebChat Client](https://webchat.freenode.net/?channels=marlin-firmware)
35
 
35
 
36
 __Mailing List:__ marlin@lists.0l.de ([Subscribe](http://lists.0l.de/mailman/listinfo/marlin), [Archive](http://lists.0l.de/pipermail/marlin/))
36
 __Mailing List:__ marlin@lists.0l.de ([Subscribe](http://lists.0l.de/mailman/listinfo/marlin), [Archive](http://lists.0l.de/pipermail/marlin/))
37
 
37
 

Loading…
Cancel
Save