Browse Source

Update kossel-pro example config (again?)

Scott Lahteine 9 years ago
parent
commit
a39fadf876
1 changed files with 119 additions and 177 deletions
  1. 119
    177
      Marlin/example_configurations/delta/kossel_pro/Configuration_adv.h

+ 119
- 177
Marlin/example_configurations/delta/kossel_pro/Configuration_adv.h View File

@@ -40,15 +40,6 @@
40 40
   #define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius
41 41
 #endif
42 42
 
43
-#if ENABLED(PIDTEMP)
44
-  // this adds an experimental additional term to the heating power, proportional to the extrusion speed.
45
-  // if Kc is chosen well, the additional required power due to increased melting should be compensated.
46
-  #define PID_ADD_EXTRUSION_RATE
47
-  #if ENABLED(PID_ADD_EXTRUSION_RATE)
48
-    #define  DEFAULT_Kc (1) //heating power=Kc*(e_speed)
49
-  #endif
50
-#endif
51
-
52 43
 /**
53 44
  * Automatic Temperature:
54 45
  * The hotend target temperature is calculated by all the buffered lines of gcode.
@@ -59,6 +50,23 @@
59 50
  * Also, if the temperature is set to a value below mintemp, it will not be changed by autotemp.
60 51
  * On an Ultimaker, some initial testing worked with M109 S215 B260 F1 in the start.gcode
61 52
  */
53
+#if ENABLED(PIDTEMP)
54
+  // this adds an experimental additional term to the heating power, proportional to the extrusion speed.
55
+  // if Kc is chosen well, the additional required power due to increased melting should be compensated.
56
+  #define PID_ADD_EXTRUSION_RATE
57
+  #if ENABLED(PID_ADD_EXTRUSION_RATE)
58
+    #define  DEFAULT_Kc (1) //heating power=Kc*(e_speed)
59
+  #endif
60
+#endif
61
+
62
+
63
+//automatic temperature: The hot end target temperature is calculated by all the buffered lines of gcode.
64
+//The maximum buffered steps/sec of the extruder motor are called "se".
65
+//You enter the autotemp mode by a M109 S<mintemp> B<maxtemp> F<factor>
66
+// the target temperature is set to mintemp+factor*se[steps/sec] and limited by mintemp and maxtemp
67
+// you exit the value by any M109 without F*
68
+// Also, if the temperature is set to a value <mintemp, it is not changed by autotemp.
69
+// on an Ultimaker, some initial testing worked with M109 S215 B260 F1 in the start.gcode
62 70
 #define AUTOTEMP
63 71
 #if ENABLED(AUTOTEMP)
64 72
   #define AUTOTEMP_OLDWEIGHT 0.98
@@ -128,53 +136,6 @@
128 136
 
129 137
 // @section extras
130 138
 
131
-//// AUTOSET LOCATIONS OF LIMIT SWITCHES
132
-//// Added by ZetaPhoenix 09-15-2012
133
-#if ENABLED(MANUAL_HOME_POSITIONS)  // Use manual limit switch locations
134
-  #define X_HOME_POS MANUAL_X_HOME_POS
135
-  #define Y_HOME_POS MANUAL_Y_HOME_POS
136
-  #define Z_HOME_POS MANUAL_Z_HOME_POS
137
-#else //Set min/max homing switch positions based upon homing direction and min/max travel limits
138
-  //X axis
139
-  #if X_HOME_DIR == -1
140
-    #if ENABLED(BED_CENTER_AT_0_0)
141
-      #define X_HOME_POS X_MAX_LENGTH * -0.5
142
-    #else
143
-      #define X_HOME_POS X_MIN_POS
144
-    #endif //BED_CENTER_AT_0_0
145
-  #else
146
-    #if ENABLED(BED_CENTER_AT_0_0)
147
-      #define X_HOME_POS X_MAX_LENGTH * 0.5
148
-    #else
149
-      #define X_HOME_POS X_MAX_POS
150
-    #endif //BED_CENTER_AT_0_0
151
-  #endif //X_HOME_DIR == -1
152
-
153
-  //Y axis
154
-  #if Y_HOME_DIR == -1
155
-    #if ENABLED(BED_CENTER_AT_0_0)
156
-      #define Y_HOME_POS Y_MAX_LENGTH * -0.5
157
-    #else
158
-      #define Y_HOME_POS Y_MIN_POS
159
-    #endif //BED_CENTER_AT_0_0
160
-  #else
161
-    #if ENABLED(BED_CENTER_AT_0_0)
162
-      #define Y_HOME_POS Y_MAX_LENGTH * 0.5
163
-    #else
164
-      #define Y_HOME_POS Y_MAX_POS
165
-    #endif //BED_CENTER_AT_0_0
166
-  #endif //Y_HOME_DIR == -1
167
-
168
-  // Z axis
169
-  #if Z_HOME_DIR == -1 //BED_CENTER_AT_0_0 not used
170
-    #define Z_HOME_POS Z_MIN_POS
171
-  #else
172
-    #define Z_HOME_POS Z_MAX_POS
173
-  #endif //Z_HOME_DIR == -1
174
-#endif //End auto min/max positions
175
-//END AUTOSET LOCATIONS OF LIMIT SWITCHES -ZP
176
-
177
-
178 139
 //#define Z_LATE_ENABLE // Enable Z the last moment. Needed if your Z driver overheats.
179 140
 
180 141
 // A single Z stepper driver is usually used to drive 2 stepper motors.
@@ -185,23 +146,32 @@
185 146
 //#define Z_DUAL_STEPPER_DRIVERS
186 147
 
187 148
 #if ENABLED(Z_DUAL_STEPPER_DRIVERS)
188
-  #undef EXTRUDERS
189
-  #define EXTRUDERS 1
190
-#endif
149
+
150
+  // Z_DUAL_ENDSTOPS is a feature to enable the use of 2 endstops for both Z steppers - Let's call them Z stepper and Z2 stepper.
151
+  // That way the machine is capable to align the bed during home, since both Z steppers are homed. 
152
+  // There is also an implementation of M666 (software endstops adjustment) to this feature.
153
+  // After Z homing, this adjustment is applied to just one of the steppers in order to align the bed.
154
+  // One just need to home the Z axis and measure the distance difference between both Z axis and apply the math: Z adjust = Z - Z2.
155
+  // If the Z stepper axis is closer to the bed, the measure Z > Z2 (yes, it is.. think about it) and the Z adjust would be positive.
156
+  // Play a little bit with small adjustments (0.5mm) and check the behaviour.
157
+  // The M119 (endstops report) will start reporting the Z2 Endstop as well.
158
+
159
+  // #define Z_DUAL_ENDSTOPS
160
+
161
+  #if ENABLED(Z_DUAL_ENDSTOPS)
162
+    #define Z2_MAX_PIN 36                     //Endstop used for Z2 axis. In this case I'm using XMAX in a Rumba Board (pin 36)
163
+    const bool Z2_MAX_ENDSTOP_INVERTING = false;
164
+    #define DISABLE_XMAX_ENDSTOP              //Better to disable the XMAX to avoid conflict. Just rename "XMAX_ENDSTOP" by the endstop you are using for Z2 axis.
165
+  #endif
166
+
167
+#endif // Z_DUAL_STEPPER_DRIVERS
191 168
 
192 169
 // Same again but for Y Axis.
193 170
 //#define Y_DUAL_STEPPER_DRIVERS
194 171
 
195
-// Define if the two Y drives need to rotate in opposite directions
196
-#define INVERT_Y2_VS_Y_DIR true
197
-
198 172
 #if ENABLED(Y_DUAL_STEPPER_DRIVERS)
199
-  #undef EXTRUDERS
200
-  #define EXTRUDERS 1
201
-#endif
202
-
203
-#if defined (Z_DUAL_STEPPER_DRIVERS) && defined (Y_DUAL_STEPPER_DRIVERS)
204
-  #error "You cannot have dual drivers for both Y and Z"
173
+  // Define if the two Y drives need to rotate in opposite directions
174
+  #define INVERT_Y2_VS_Y_DIR true
205 175
 #endif
206 176
 
207 177
 // Enable this for dual x-carriage printers.
@@ -266,11 +236,6 @@
266 236
 
267 237
 // @section machine
268 238
 
269
-#if ENABLED(CONFIG_STEPPERS_TOSHIBA)
270
-#define MAX_STEP_FREQUENCY 10000 // Max step frequency for Toshiba Stepper Controllers
271
-#else
272
-#define MAX_STEP_FREQUENCY 40000 // Max step frequency for Ultimaker (5000 pps / half step)
273
-#endif
274 239
 //By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
275 240
 #define INVERT_X_STEP_PIN false
276 241
 #define INVERT_Y_STEP_PIN false
@@ -296,7 +261,6 @@
296 261
 #define DEFAULT_MINSEGMENTTIME        20000
297 262
 
298 263
 // If defined the movements slow down when the look ahead buffer is only half full
299
-// (don't use SLOWDOWN with DELTA because DELTA generates hundreds of segments per second)
300 264
 //#define SLOWDOWN
301 265
 
302 266
 // Frequency limit
@@ -309,13 +273,6 @@
309 273
 // if unwanted behavior is observed on a user's machine when running at very slow speeds.
310 274
 #define MINIMUM_PLANNER_SPEED 0.05// (mm/sec)
311 275
 
312
-// MS1 MS2 Stepper Driver Microstepping mode table
313
-#define MICROSTEP1 LOW,LOW
314
-#define MICROSTEP2 HIGH,LOW
315
-#define MICROSTEP4 LOW,HIGH
316
-#define MICROSTEP8 HIGH,HIGH
317
-#define MICROSTEP16 HIGH,HIGH
318
-
319 276
 // Microstep setting (Only functional when stepper driver microstep pins are connected to MCU.
320 277
 #define MICROSTEP_MODES {16,16,16,16,16} // [1,2,4,8,16]
321 278
 
@@ -333,6 +290,10 @@
333 290
 //=============================Additional Features===========================
334 291
 //===========================================================================
335 292
 
293
+#define ENCODER_RATE_MULTIPLIER         // If defined, certain menu edit operations automatically multiply the steps when the encoder is moved quickly
294
+#define ENCODER_10X_STEPS_PER_SEC 75    // If the encoder steps per sec exceeds this value, multiply steps moved x10 to quickly advance the value
295
+#define ENCODER_100X_STEPS_PER_SEC 160  // If the encoder steps per sec exceeds this value, multiply steps moved x100 to really quickly advance the value
296
+
336 297
 //#define CHDK 4        //Pin for triggering CHDK to take a picture see how to use it here http://captain-slow.dk/2014/03/09/3d-printing-timelapses/
337 298
 #define CHDK_DELAY 50 //How long in ms the pin should stay HIGH before going LOW again
338 299
 
@@ -391,6 +352,7 @@
391 352
   //#define USE_SMALL_INFOFONT
392 353
 #endif // DOGLCD
393 354
 
355
+
394 356
 // @section more
395 357
 
396 358
 // The hardware watchdog should reset the microcontroller disabling all outputs, in case the firmware gets stuck and doesn't do temperature regulation.
@@ -413,18 +375,9 @@
413 375
   #define BABYSTEP_XY  //not only z, but also XY in the menu. more clutter, more functions
414 376
   #define BABYSTEP_INVERT_Z false  //true for inverse movements in Z
415 377
   #define BABYSTEP_Z_MULTIPLICATOR 2 //faster z movements
378
+#endif
416 379
 
417 380
 // @section extruder
418
-  #if ENABLED(COREXY)
419
-    #error BABYSTEPPING not implemented for COREXY yet.
420
-  #endif
421
-
422
-  #if ENABLED(DELTA)
423
-    #if ENABLED(BABYSTEP_XY)
424
-      #error BABYSTEPPING only implemented for Z axis on deltabots.
425
-    #endif
426
-  #endif
427
-#endif
428 381
 
429 382
 // extruder advance constant (s2/mm3)
430 383
 //
@@ -437,14 +390,11 @@
437 390
 
438 391
 #if ENABLED(ADVANCE)
439 392
   #define EXTRUDER_ADVANCE_K .0
440
-
441 393
   #define D_FILAMENT 2.85
442 394
   #define STEPS_MM_E 836
443
-  #define EXTRUSION_AREA (0.25 * D_FILAMENT * D_FILAMENT * 3.14159)
444
-  #define STEPS_PER_CUBIC_MM_E (axis_steps_per_unit[E_AXIS]/ EXTRUSION_AREA)
395
+#endif
445 396
 
446 397
 // @section extras
447
-#endif // ADVANCE
448 398
 
449 399
 // Arc interpretation settings:
450 400
 #define MM_PER_ARC_SEGMENT 1
@@ -452,25 +402,7 @@
452 402
 
453 403
 const unsigned int dropsegments=5; //everything with less than this number of steps will be ignored as move and joined with the next movement
454 404
 
455
-#if ENABLED(ULTIPANEL)
456
- #undef SD_DETECT_INVERTED
457
-#endif
458
-
459
-// Power Signal Control Definitions
460
-// By default use ATX definition
461
-#ifndef POWER_SUPPLY
462
-  #define POWER_SUPPLY 1
463
-#endif
464
-// 1 = ATX
465
-#if (POWER_SUPPLY == 1)
466
-  #define PS_ON_AWAKE  LOW
467
-  #define PS_ON_ASLEEP HIGH
468
-#endif
469
-// 2 = X-Box 360 203W
470
-#if (POWER_SUPPLY == 2)
471
-  #define PS_ON_AWAKE  HIGH
472
-  #define PS_ON_ASLEEP LOW
473
-#endif
405
+// @section temperature
474 406
 
475 407
 // Control heater 0 and heater 1 in parallel.
476 408
 //#define HEATERS_PARALLEL
@@ -483,10 +415,10 @@ const unsigned int dropsegments=5; //everything with less than this number of st
483 415
 
484 416
 // The number of linear motions that can be in the plan at any give time.
485 417
 // THE BLOCK_BUFFER_SIZE NEEDS TO BE A POWER OF 2, i.g. 8,16,32 because shifts and ors are used to do the ring-buffering.
486
-#if defined SDSUPPORT
418
+#if ENABLED(SDSUPPORT)
487 419
   #define BLOCK_BUFFER_SIZE 16   // SD,LCD,Buttons take more memory, block buffer needs to be smaller
488 420
 #else
489
-  #define BLOCK_BUFFER_SIZE 64 // maximize block buffer
421
+  #define BLOCK_BUFFER_SIZE 16 // maximize block buffer
490 422
 #endif
491 423
 
492 424
 // @section more
@@ -526,7 +458,7 @@ const unsigned int dropsegments=5; //everything with less than this number of st
526 458
 
527 459
 // Add support for experimental filament exchange support M600; requires display
528 460
 #if ENABLED(ULTIPANEL)
529
-  #define FILAMENTCHANGEENABLE
461
+  //#define FILAMENTCHANGEENABLE
530 462
   #if ENABLED(FILAMENTCHANGEENABLE)
531 463
     #define FILAMENTCHANGE_XPOS 3
532 464
     #define FILAMENTCHANGE_YPOS 3
@@ -598,69 +530,79 @@ const unsigned int dropsegments=5; //everything with less than this number of st
598 530
 
599 531
 #endif
600 532
 
601
-#if ENABLED(FILAMENTCHANGEENABLE)
602
-  #if ENABLED(EXTRUDER_RUNOUT_PREVENT)
603
-    #error EXTRUDER_RUNOUT_PREVENT currently incompatible with FILAMENTCHANGE
604
-  #endif
605
-#endif
533
+/******************************************************************************\
534
+ * enable this section if you have L6470  motor drivers. 
535
+ * you need to import the L6470 library into the arduino IDE for this
536
+ ******************************************************************************/
606 537
 
607
-//===========================================================================
608
-//=============================  Define Defines  ============================
609
-//===========================================================================
610
-#if EXTRUDERS > 1 && defined TEMP_SENSOR_1_AS_REDUNDANT
611
-  #error "You cannot use TEMP_SENSOR_1_AS_REDUNDANT if EXTRUDERS > 1"
612
-#endif
538
+// @section l6470
613 539
 
614
-#if EXTRUDERS > 1 && defined HEATERS_PARALLEL
615
-  #error "You cannot use HEATERS_PARALLEL if EXTRUDERS > 1"
616
-#endif
540
+//#define HAVE_L6470DRIVER
541
+#if ENABLED(HAVE_L6470DRIVER)
617 542
 
618
-#if TEMP_SENSOR_0 > 0
619
-  #define THERMISTORHEATER_0 TEMP_SENSOR_0
620
-  #define HEATER_0_USES_THERMISTOR
621
-#endif
622
-#if TEMP_SENSOR_1 > 0
623
-  #define THERMISTORHEATER_1 TEMP_SENSOR_1
624
-  #define HEATER_1_USES_THERMISTOR
625
-#endif
626
-#if TEMP_SENSOR_2 > 0
627
-  #define THERMISTORHEATER_2 TEMP_SENSOR_2
628
-  #define HEATER_2_USES_THERMISTOR
629
-#endif
630
-#if TEMP_SENSOR_BED > 0
631
-  #define THERMISTORBED TEMP_SENSOR_BED
632
-  #define BED_USES_THERMISTOR
633
-#endif
634
-#if TEMP_SENSOR_0 == -1
635
-  #define HEATER_0_USES_AD595
636
-#endif
637
-#if TEMP_SENSOR_1 == -1
638
-  #define HEATER_1_USES_AD595
639
-#endif
640
-#if TEMP_SENSOR_2 == -1
641
-  #define HEATER_2_USES_AD595
642
-#endif
643
-#if TEMP_SENSOR_BED == -1
644
-  #define BED_USES_AD595
645
-#endif
646
-#if TEMP_SENSOR_0 == -2
647
-  #define HEATER_0_USES_MAX6675
648
-#endif
649
-#if TEMP_SENSOR_0 == 0
650
-  #undef HEATER_0_MINTEMP
651
-  #undef HEATER_0_MAXTEMP
652
-#endif
653
-#if TEMP_SENSOR_1 == 0
654
-  #undef HEATER_1_MINTEMP
655
-  #undef HEATER_1_MAXTEMP
656
-#endif
657
-#if TEMP_SENSOR_2 == 0
658
-  #undef HEATER_2_MINTEMP
659
-  #undef HEATER_2_MAXTEMP
660
-#endif
661
-#if TEMP_SENSOR_BED == 0
662
-  #undef BED_MINTEMP
663
-  #undef BED_MAXTEMP
543
+//  #define X_IS_L6470
544
+  #define X_MICROSTEPS 16     //number of microsteps
545
+  #define X_K_VAL 50          // 0 - 255, Higher values, are higher power. Be carefull not to go too high    
546
+  #define X_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
547
+  #define X_STALLCURRENT 1500 //current in mA where the driver will detect a stall
548
+  
549
+//  #define X2_IS_L6470
550
+  #define X2_MICROSTEPS 16     //number of microsteps
551
+  #define X2_K_VAL 50          // 0 - 255, Higher values, are higher power. Be carefull not to go too high    
552
+  #define X2_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
553
+  #define X2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
554
+  
555
+//  #define Y_IS_L6470
556
+  #define Y_MICROSTEPS 16     //number of microsteps
557
+  #define Y_K_VAL 50          // 0 - 255, Higher values, are higher power. Be carefull not to go too high    
558
+  #define Y_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
559
+  #define Y_STALLCURRENT 1500 //current in mA where the driver will detect a stall
560
+  
561
+//  #define Y2_IS_L6470
562
+  #define Y2_MICROSTEPS 16     //number of microsteps 
563
+  #define Y2_K_VAL 50          // 0 - 255, Higher values, are higher power. Be carefull not to go too high    
564
+  #define Y2_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
565
+  #define Y2_STALLCURRENT 1500 //current in mA where the driver will detect a stall 
566
+  
567
+//  #define Z_IS_L6470
568
+  #define Z_MICROSTEPS 16     //number of microsteps
569
+  #define Z_K_VAL 50          // 0 - 255, Higher values, are higher power. Be carefull not to go too high    
570
+  #define Z_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
571
+  #define Z_STALLCURRENT 1500 //current in mA where the driver will detect a stall
572
+  
573
+//  #define Z2_IS_L6470
574
+  #define Z2_MICROSTEPS 16     //number of microsteps
575
+  #define Z2_K_VAL 50          // 0 - 255, Higher values, are higher power. Be carefull not to go too high    
576
+  #define Z2_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
577
+  #define Z2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
578
+  
579
+//  #define E0_IS_L6470
580
+  #define E0_MICROSTEPS 16     //number of microsteps
581
+  #define E0_K_VAL 50          // 0 - 255, Higher values, are higher power. Be carefull not to go too high    
582
+  #define E0_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
583
+  #define E0_STALLCURRENT 1500 //current in mA where the driver will detect a stall
584
+  
585
+//  #define E1_IS_L6470
586
+  #define E1_MICROSTEPS 16     //number of microsteps 
587
+  #define E1_MICROSTEPS 16     //number of microsteps
588
+  #define E1_K_VAL 50          // 0 - 255, Higher values, are higher power. Be carefull not to go too high    
589
+  #define E1_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
590
+  #define E1_STALLCURRENT 1500 //current in mA where the driver will detect a stall
591
+  
592
+//  #define E2_IS_L6470
593
+  #define E2_MICROSTEPS 16     //number of microsteps 
594
+  #define E2_MICROSTEPS 16     //number of microsteps
595
+  #define E2_K_VAL 50          // 0 - 255, Higher values, are higher power. Be carefull not to go too high    
596
+  #define E2_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
597
+  #define E2_STALLCURRENT 1500 //current in mA where the driver will detect a stall
598
+  
599
+//  #define E3_IS_L6470
600
+  #define E3_MICROSTEPS 16     //number of microsteps   
601
+  #define E3_MICROSTEPS 16     //number of microsteps
602
+  #define E3_K_VAL 50          // 0 - 255, Higher values, are higher power. Be carefull not to go too high    
603
+  #define E3_OVERCURRENT 2000  //maxc current in mA. If the current goes over this value, the driver will switch off
604
+  #define E3_STALLCURRENT 1500 //current in mA where the driver will detect a stall
605
+  
664 606
 #endif
665 607
 
666 608
 #include "Conditionals.h"

Loading…
Cancel
Save