Browse Source

Merge pull request #6281 from thinkyhead/rc_cleanup_and_5_extruders

More patches for 5 extruders
Scott Lahteine 8 years ago
parent
commit
635f182478
75 changed files with 595 additions and 158 deletions
  1. 1
    1
      Marlin/Configuration.h
  2. 16
    6
      Marlin/Configuration_adv.h
  3. 9
    4
      Marlin/configuration_store.cpp
  4. 1
    1
      Marlin/example_configurations/Cartesio/Configuration.h
  5. 20
    3
      Marlin/example_configurations/Cartesio/Configuration_adv.h
  6. 1
    1
      Marlin/example_configurations/Felix/Configuration.h
  7. 20
    3
      Marlin/example_configurations/Felix/Configuration_adv.h
  8. 1
    1
      Marlin/example_configurations/Felix/DUAL/Configuration.h
  9. 1
    1
      Marlin/example_configurations/Hephestos/Configuration.h
  10. 20
    3
      Marlin/example_configurations/Hephestos/Configuration_adv.h
  11. 1
    1
      Marlin/example_configurations/Hephestos_2/Configuration.h
  12. 20
    3
      Marlin/example_configurations/Hephestos_2/Configuration_adv.h
  13. 1
    1
      Marlin/example_configurations/K8200/Configuration.h
  14. 20
    3
      Marlin/example_configurations/K8200/Configuration_adv.h
  15. 1
    1
      Marlin/example_configurations/K8400/Configuration.h
  16. 20
    3
      Marlin/example_configurations/K8400/Configuration_adv.h
  17. 1
    1
      Marlin/example_configurations/K8400/Dual-head/Configuration.h
  18. 1
    1
      Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h
  19. 1
    1
      Marlin/example_configurations/RigidBot/Configuration.h
  20. 20
    3
      Marlin/example_configurations/RigidBot/Configuration_adv.h
  21. 1
    1
      Marlin/example_configurations/SCARA/Configuration.h
  22. 20
    3
      Marlin/example_configurations/SCARA/Configuration_adv.h
  23. 1
    1
      Marlin/example_configurations/TAZ4/Configuration.h
  24. 20
    3
      Marlin/example_configurations/TAZ4/Configuration_adv.h
  25. 1
    8
      Marlin/example_configurations/TinyBoy2/Configuration.h
  26. 15
    5
      Marlin/example_configurations/TinyBoy2/Configuration_adv.h
  27. 1
    1
      Marlin/example_configurations/WITBOX/Configuration.h
  28. 20
    3
      Marlin/example_configurations/WITBOX/Configuration_adv.h
  29. 1
    1
      Marlin/example_configurations/adafruit/ST7565/Configuration.h
  30. 9
    11
      Marlin/example_configurations/delta/flsun_kossel_mini/Configuration.h
  31. 1
    1
      Marlin/example_configurations/delta/generic/Configuration.h
  32. 38
    3
      Marlin/example_configurations/delta/generic/Configuration_adv.h
  33. 1
    1
      Marlin/example_configurations/delta/kossel_mini/Configuration.h
  34. 38
    3
      Marlin/example_configurations/delta/kossel_mini/Configuration_adv.h
  35. 1
    1
      Marlin/example_configurations/delta/kossel_pro/Configuration.h
  36. 20
    3
      Marlin/example_configurations/delta/kossel_pro/Configuration_adv.h
  37. 1
    1
      Marlin/example_configurations/delta/kossel_xl/Configuration.h
  38. 20
    3
      Marlin/example_configurations/delta/kossel_xl/Configuration_adv.h
  39. 1
    1
      Marlin/example_configurations/makibox/Configuration.h
  40. 20
    3
      Marlin/example_configurations/makibox/Configuration_adv.h
  41. 1
    1
      Marlin/example_configurations/tvrrug/Round2/Configuration.h
  42. 20
    3
      Marlin/example_configurations/tvrrug/Round2/Configuration_adv.h
  43. 1
    0
      Marlin/language_an.h
  44. 1
    0
      Marlin/language_bg.h
  45. 1
    0
      Marlin/language_ca.h
  46. 1
    0
      Marlin/language_cn.h
  47. 1
    0
      Marlin/language_cz.h
  48. 1
    0
      Marlin/language_da.h
  49. 1
    0
      Marlin/language_de.h
  50. 1
    0
      Marlin/language_el-gr.h
  51. 1
    0
      Marlin/language_el.h
  52. 3
    0
      Marlin/language_en.h
  53. 1
    0
      Marlin/language_es.h
  54. 1
    0
      Marlin/language_eu.h
  55. 1
    0
      Marlin/language_fi.h
  56. 1
    0
      Marlin/language_fr.h
  57. 1
    0
      Marlin/language_gl.h
  58. 1
    0
      Marlin/language_hr.h
  59. 1
    0
      Marlin/language_it.h
  60. 2
    0
      Marlin/language_kana.h
  61. 1
    0
      Marlin/language_kana_utf8.h
  62. 1
    0
      Marlin/language_nl.h
  63. 1
    0
      Marlin/language_pl.h
  64. 1
    0
      Marlin/language_pt-br.h
  65. 1
    0
      Marlin/language_pt-br_utf8.h
  66. 1
    0
      Marlin/language_pt.h
  67. 1
    0
      Marlin/language_pt_utf8.h
  68. 1
    0
      Marlin/language_tr.h
  69. 1
    0
      Marlin/language_uk.h
  70. 6
    0
      Marlin/pinsDebug_list.h
  71. 6
    0
      Marlin/serial.h
  72. 7
    0
      Marlin/stepper.cpp
  73. 18
    0
      Marlin/stepper_indirection.cpp
  74. 31
    0
      Marlin/stepper_indirection.h
  75. 70
    55
      Marlin/ultralcd.cpp

+ 1
- 1
Marlin/Configuration.h View File

@@ -142,7 +142,7 @@
142 142
 //#define MACHINE_UUID "00000000-0000-0000-0000-000000000000"
143 143
 
144 144
 // This defines the number of extruders
145
-// :[1, 2, 3, 4]
145
+// :[1, 2, 3, 4, 5]
146 146
 #define EXTRUDERS 1
147 147
 
148 148
 // Enable if your E steppers or extruder gear ratios are not identical

+ 16
- 6
Marlin/Configuration_adv.h View File

@@ -419,10 +419,10 @@
419 419
 //#define DIGIPOT_MOTOR_CURRENT {135,135,135,135,135} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
420 420
 //#define DAC_MOTOR_CURRENT_DEFAULT { 70, 80, 90, 80 } // Default drive percent - X, Y, Z, E axis
421 421
 
422
-/*  5DPRINT & AZTEEG_X3_PRO */
423
-//#define DIGIPOT_I2C  // uncomment to enable
422
+// Uncomment to enable an I2C based DIGIPOT like on the Azteeg X3 Pro
423
+//#define DIGIPOT_I2C
424 424
 #define DIGIPOT_I2C_NUM_CHANNELS 8 // 5DPRINT: 4     AZTEEG_X3_PRO: 8
425
-/* actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS */
425
+// Actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS
426 426
 #define DIGIPOT_I2C_MOTOR_CURRENTS {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0}  //  AZTEEG_X3_PRO
427 427
 
428 428
 //===========================================================================
@@ -648,9 +648,7 @@
648 648
   #define MESH_MAX_X (X_MAX_POS - (MESH_INSET))
649 649
   #define MESH_MIN_Y (Y_MIN_POS + MESH_INSET)
650 650
   #define MESH_MAX_Y (Y_MAX_POS - (MESH_INSET))
651
-#endif
652
-
653
-#if ENABLED(AUTO_BED_LEVELING_UBL)
651
+#elif ENABLED(AUTO_BED_LEVELING_UBL)
654 652
   #define UBL_MESH_MIN_X (X_MIN_POS + UBL_MESH_INSET)
655 653
   #define UBL_MESH_MAX_X (X_MAX_POS - (UBL_MESH_INSET))
656 654
   #define UBL_MESH_MIN_Y (Y_MIN_POS + UBL_MESH_INSET)
@@ -810,6 +808,7 @@
810 808
   //#define E1_IS_TMC
811 809
   //#define E2_IS_TMC
812 810
   //#define E3_IS_TMC
811
+  //#define E4_IS_TMC
813 812
 
814 813
   #define X_MAX_CURRENT     1000 // in mA
815 814
   #define X_SENSE_RESISTOR    91 // in mOhms
@@ -851,6 +850,10 @@
851 850
   #define E3_SENSE_RESISTOR   91
852 851
   #define E3_MICROSTEPS       16
853 852
 
853
+  #define E4_MAX_CURRENT    1000
854
+  #define E4_SENSE_RESISTOR   91
855
+  #define E4_MICROSTEPS       16
856
+
854 857
 #endif
855 858
 
856 859
 // @section TMC2130
@@ -892,6 +895,7 @@
892 895
   //#define E1_IS_TMC2130
893 896
   //#define E2_IS_TMC2130
894 897
   //#define E3_IS_TMC2130
898
+  //#define E4_IS_TMC2130
895 899
 
896 900
   /**
897 901
    * Stepper driver settings
@@ -977,6 +981,7 @@
977 981
   //#define E1_IS_L6470
978 982
   //#define E2_IS_L6470
979 983
   //#define E3_IS_L6470
984
+  //#define E4_IS_L6470
980 985
 
981 986
   #define X_MICROSTEPS      16 // number of microsteps
982 987
   #define X_K_VAL           50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
@@ -1028,6 +1033,11 @@
1028 1033
   #define E3_OVERCURRENT  2000
1029 1034
   #define E3_STALLCURRENT 1500
1030 1035
 
1036
+  #define E4_MICROSTEPS     16
1037
+  #define E4_K_VAL          50
1038
+  #define E4_OVERCURRENT  2000
1039
+  #define E4_STALLCURRENT 1500
1040
+
1031 1041
 #endif
1032 1042
 
1033 1043
 /**

+ 9
- 4
Marlin/configuration_store.cpp View File

@@ -144,9 +144,10 @@
144 144
  *  568  M906 E1   stepperE1 current                (uint16_t)
145 145
  *  570  M906 E2   stepperE2 current                (uint16_t)
146 146
  *  572  M906 E3   stepperE3 current                (uint16_t)
147
+ *  572  M906 E4   stepperE4 current                (uint16_t)
147 148
  *
148
- *  574                                Minimum end-point
149
- * 1895 (574 + 36 + 9 + 288 + 988)     Maximum end-point
149
+ *  576                                Minimum end-point
150
+ * 1897 (576 + 36 + 9 + 288 + 988)     Maximum end-point
150 151
  */
151 152
 #include "Marlin.h"
152 153
 #include "language.h"
@@ -520,7 +521,7 @@ void Config_Postprocess() {
520 521
       EEPROM_WRITE(val);
521 522
     #else
522 523
       val = 0;
523
-      for (uint8_t q = 0; q < 10; ++q) EEPROM_WRITE(val);
524
+      for (uint8_t q = 0; q < 11; ++q) EEPROM_WRITE(val);
524 525
     #endif
525 526
 
526 527
     if (!eeprom_write_error) {
@@ -824,8 +825,12 @@ void Config_Postprocess() {
824 825
         #if ENABLED(E3_IS_TMC2130)
825 826
           stepperE3.setCurrent(val, R_SENSE, HOLD_MULTIPLIER);
826 827
         #endif
828
+        EEPROM_READ(val);
829
+        #if ENABLED(E4_IS_TMC2130)
830
+          stepperE4.setCurrent(val, R_SENSE, HOLD_MULTIPLIER);
831
+        #endif
827 832
       #else
828
-        for (uint8_t q = 0; q < 10; q++) EEPROM_READ(val);
833
+        for (uint8_t q = 0; q < 11; q++) EEPROM_READ(val);
829 834
       #endif
830 835
 
831 836
       if (eeprom_checksum == stored_checksum) {

+ 1
- 1
Marlin/example_configurations/Cartesio/Configuration.h View File

@@ -143,7 +143,7 @@
143 143
 //#define MACHINE_UUID "00000000-0000-0000-0000-000000000000"
144 144
 
145 145
 // This defines the number of extruders
146
-// :[1, 2, 3, 4]
146
+// :[1, 2, 3, 4, 5]
147 147
 #define EXTRUDERS 3
148 148
 
149 149
 // Enable if your E steppers or extruder gear ratios are not identical

+ 20
- 3
Marlin/example_configurations/Cartesio/Configuration_adv.h View File

@@ -419,10 +419,10 @@
419 419
 //#define DIGIPOT_MOTOR_CURRENT {135,135,135,135,135} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
420 420
 //#define DAC_MOTOR_CURRENT_DEFAULT { 70, 80, 90, 80 } // Default drive percent - X, Y, Z, E axis
421 421
 
422
-/*  5DPRINT & AZTEEG_X3_PRO */
423
-//#define DIGIPOT_I2C  // uncomment to enable
422
+// Uncomment to enable an I2C based DIGIPOT like on the Azteeg X3 Pro
423
+//#define DIGIPOT_I2C
424 424
 #define DIGIPOT_I2C_NUM_CHANNELS 8 // 5DPRINT: 4     AZTEEG_X3_PRO: 8
425
-/* actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS */
425
+// Actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS
426 426
 #define DIGIPOT_I2C_MOTOR_CURRENTS {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0}  //  AZTEEG_X3_PRO
427 427
 
428 428
 //===========================================================================
@@ -645,6 +645,11 @@
645 645
   #define MESH_MAX_X (X_MAX_POS - (MESH_INSET))
646 646
   #define MESH_MIN_Y (Y_MIN_POS + MESH_INSET)
647 647
   #define MESH_MAX_Y (Y_MAX_POS - (MESH_INSET))
648
+#elif ENABLED(AUTO_BED_LEVELING_UBL)
649
+  #define UBL_MESH_MIN_X (X_MIN_POS + UBL_MESH_INSET)
650
+  #define UBL_MESH_MAX_X (X_MAX_POS - (UBL_MESH_INSET))
651
+  #define UBL_MESH_MIN_Y (Y_MIN_POS + UBL_MESH_INSET)
652
+  #define UBL_MESH_MAX_Y (Y_MAX_POS - (UBL_MESH_INSET))
648 653
 #endif
649 654
 
650 655
 // @section extras
@@ -800,6 +805,7 @@
800 805
   //#define E1_IS_TMC
801 806
   //#define E2_IS_TMC
802 807
   //#define E3_IS_TMC
808
+  //#define E4_IS_TMC
803 809
 
804 810
   #define X_MAX_CURRENT     1000 // in mA
805 811
   #define X_SENSE_RESISTOR    91 // in mOhms
@@ -841,6 +847,10 @@
841 847
   #define E3_SENSE_RESISTOR   91
842 848
   #define E3_MICROSTEPS       16
843 849
 
850
+  #define E4_MAX_CURRENT    1000
851
+  #define E4_SENSE_RESISTOR   91
852
+  #define E4_MICROSTEPS       16
853
+
844 854
 #endif
845 855
 
846 856
 // @section TMC2130
@@ -882,6 +892,7 @@
882 892
   //#define E1_IS_TMC2130
883 893
   //#define E2_IS_TMC2130
884 894
   //#define E3_IS_TMC2130
895
+  //#define E4_IS_TMC2130
885 896
 
886 897
   /**
887 898
    * Stepper driver settings
@@ -967,6 +978,7 @@
967 978
   //#define E1_IS_L6470
968 979
   //#define E2_IS_L6470
969 980
   //#define E3_IS_L6470
981
+  //#define E4_IS_L6470
970 982
 
971 983
   #define X_MICROSTEPS      16 // number of microsteps
972 984
   #define X_K_VAL           50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
@@ -1018,6 +1030,11 @@
1018 1030
   #define E3_OVERCURRENT  2000
1019 1031
   #define E3_STALLCURRENT 1500
1020 1032
 
1033
+  #define E4_MICROSTEPS     16
1034
+  #define E4_K_VAL          50
1035
+  #define E4_OVERCURRENT  2000
1036
+  #define E4_STALLCURRENT 1500
1037
+
1021 1038
 #endif
1022 1039
 
1023 1040
 /**

+ 1
- 1
Marlin/example_configurations/Felix/Configuration.h View File

@@ -142,7 +142,7 @@
142 142
 //#define MACHINE_UUID "00000000-0000-0000-0000-000000000000"
143 143
 
144 144
 // This defines the number of extruders
145
-// :[1, 2, 3, 4]
145
+// :[1, 2, 3, 4, 5]
146 146
 #define EXTRUDERS 1
147 147
 
148 148
 // Enable if your E steppers or extruder gear ratios are not identical

+ 20
- 3
Marlin/example_configurations/Felix/Configuration_adv.h View File

@@ -419,10 +419,10 @@
419 419
 //#define DIGIPOT_MOTOR_CURRENT {135,135,135,135,135} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
420 420
 //#define DAC_MOTOR_CURRENT_DEFAULT { 70, 80, 90, 80 } // Default drive percent - X, Y, Z, E axis
421 421
 
422
-/*  5DPRINT & AZTEEG_X3_PRO */
423
-//#define DIGIPOT_I2C  // uncomment to enable
422
+// Uncomment to enable an I2C based DIGIPOT like on the Azteeg X3 Pro
423
+//#define DIGIPOT_I2C
424 424
 #define DIGIPOT_I2C_NUM_CHANNELS 8 // 5DPRINT: 4     AZTEEG_X3_PRO: 8
425
-/* actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS */
425
+// Actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS
426 426
 #define DIGIPOT_I2C_MOTOR_CURRENTS {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0}  //  AZTEEG_X3_PRO
427 427
 
428 428
 //===========================================================================
@@ -645,6 +645,11 @@
645 645
   #define MESH_MAX_X (X_MAX_POS - (MESH_INSET))
646 646
   #define MESH_MIN_Y (Y_MIN_POS + MESH_INSET)
647 647
   #define MESH_MAX_Y (Y_MAX_POS - (MESH_INSET))
648
+#elif ENABLED(AUTO_BED_LEVELING_UBL)
649
+  #define UBL_MESH_MIN_X (X_MIN_POS + UBL_MESH_INSET)
650
+  #define UBL_MESH_MAX_X (X_MAX_POS - (UBL_MESH_INSET))
651
+  #define UBL_MESH_MIN_Y (Y_MIN_POS + UBL_MESH_INSET)
652
+  #define UBL_MESH_MAX_Y (Y_MAX_POS - (UBL_MESH_INSET))
648 653
 #endif
649 654
 
650 655
 // @section extras
@@ -800,6 +805,7 @@
800 805
   //#define E1_IS_TMC
801 806
   //#define E2_IS_TMC
802 807
   //#define E3_IS_TMC
808
+  //#define E4_IS_TMC
803 809
 
804 810
   #define X_MAX_CURRENT     1000 // in mA
805 811
   #define X_SENSE_RESISTOR    91 // in mOhms
@@ -841,6 +847,10 @@
841 847
   #define E3_SENSE_RESISTOR   91
842 848
   #define E3_MICROSTEPS       16
843 849
 
850
+  #define E4_MAX_CURRENT    1000
851
+  #define E4_SENSE_RESISTOR   91
852
+  #define E4_MICROSTEPS       16
853
+
844 854
 #endif
845 855
 
846 856
 // @section TMC2130
@@ -882,6 +892,7 @@
882 892
   //#define E1_IS_TMC2130
883 893
   //#define E2_IS_TMC2130
884 894
   //#define E3_IS_TMC2130
895
+  //#define E4_IS_TMC2130
885 896
 
886 897
   /**
887 898
    * Stepper driver settings
@@ -967,6 +978,7 @@
967 978
   //#define E1_IS_L6470
968 979
   //#define E2_IS_L6470
969 980
   //#define E3_IS_L6470
981
+  //#define E4_IS_L6470
970 982
 
971 983
   #define X_MICROSTEPS      16 // number of microsteps
972 984
   #define X_K_VAL           50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
@@ -1018,6 +1030,11 @@
1018 1030
   #define E3_OVERCURRENT  2000
1019 1031
   #define E3_STALLCURRENT 1500
1020 1032
 
1033
+  #define E4_MICROSTEPS     16
1034
+  #define E4_K_VAL          50
1035
+  #define E4_OVERCURRENT  2000
1036
+  #define E4_STALLCURRENT 1500
1037
+
1021 1038
 #endif
1022 1039
 
1023 1040
 /**

+ 1
- 1
Marlin/example_configurations/Felix/DUAL/Configuration.h View File

@@ -142,7 +142,7 @@
142 142
 //#define MACHINE_UUID "00000000-0000-0000-0000-000000000000"
143 143
 
144 144
 // This defines the number of extruders
145
-// :[1, 2, 3, 4]
145
+// :[1, 2, 3, 4, 5]
146 146
 #define EXTRUDERS 2
147 147
 
148 148
 // Enable if your E steppers or extruder gear ratios are not identical

+ 1
- 1
Marlin/example_configurations/Hephestos/Configuration.h View File

@@ -145,7 +145,7 @@
145 145
 //#define MACHINE_UUID "00000000-0000-0000-0000-000000000000"
146 146
 
147 147
 // This defines the number of extruders
148
-// :[1, 2, 3, 4]
148
+// :[1, 2, 3, 4, 5]
149 149
 #define EXTRUDERS 1
150 150
 
151 151
 // Enable if your E steppers or extruder gear ratios are not identical

+ 20
- 3
Marlin/example_configurations/Hephestos/Configuration_adv.h View File

@@ -419,10 +419,10 @@
419 419
 //#define DIGIPOT_MOTOR_CURRENT {135,135,135,135,135} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
420 420
 //#define DAC_MOTOR_CURRENT_DEFAULT { 70, 80, 90, 80 } // Default drive percent - X, Y, Z, E axis
421 421
 
422
-/*  5DPRINT & AZTEEG_X3_PRO */
423
-//#define DIGIPOT_I2C  // uncomment to enable
422
+// Uncomment to enable an I2C based DIGIPOT like on the Azteeg X3 Pro
423
+//#define DIGIPOT_I2C
424 424
 #define DIGIPOT_I2C_NUM_CHANNELS 8 // 5DPRINT: 4     AZTEEG_X3_PRO: 8
425
-/* actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS */
425
+// Actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS
426 426
 #define DIGIPOT_I2C_MOTOR_CURRENTS {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0}  //  AZTEEG_X3_PRO
427 427
 
428 428
 //===========================================================================
@@ -645,6 +645,11 @@
645 645
   #define MESH_MAX_X (X_MAX_POS - (MESH_INSET))
646 646
   #define MESH_MIN_Y (Y_MIN_POS + MESH_INSET)
647 647
   #define MESH_MAX_Y (Y_MAX_POS - (MESH_INSET))
648
+#elif ENABLED(AUTO_BED_LEVELING_UBL)
649
+  #define UBL_MESH_MIN_X (X_MIN_POS + UBL_MESH_INSET)
650
+  #define UBL_MESH_MAX_X (X_MAX_POS - (UBL_MESH_INSET))
651
+  #define UBL_MESH_MIN_Y (Y_MIN_POS + UBL_MESH_INSET)
652
+  #define UBL_MESH_MAX_Y (Y_MAX_POS - (UBL_MESH_INSET))
648 653
 #endif
649 654
 
650 655
 // @section extras
@@ -800,6 +805,7 @@
800 805
   //#define E1_IS_TMC
801 806
   //#define E2_IS_TMC
802 807
   //#define E3_IS_TMC
808
+  //#define E4_IS_TMC
803 809
 
804 810
   #define X_MAX_CURRENT     1000 // in mA
805 811
   #define X_SENSE_RESISTOR    91 // in mOhms
@@ -841,6 +847,10 @@
841 847
   #define E3_SENSE_RESISTOR   91
842 848
   #define E3_MICROSTEPS       16
843 849
 
850
+  #define E4_MAX_CURRENT    1000
851
+  #define E4_SENSE_RESISTOR   91
852
+  #define E4_MICROSTEPS       16
853
+
844 854
 #endif
845 855
 
846 856
 // @section TMC2130
@@ -882,6 +892,7 @@
882 892
   //#define E1_IS_TMC2130
883 893
   //#define E2_IS_TMC2130
884 894
   //#define E3_IS_TMC2130
895
+  //#define E4_IS_TMC2130
885 896
 
886 897
   /**
887 898
    * Stepper driver settings
@@ -967,6 +978,7 @@
967 978
   //#define E1_IS_L6470
968 979
   //#define E2_IS_L6470
969 980
   //#define E3_IS_L6470
981
+  //#define E4_IS_L6470
970 982
 
971 983
   #define X_MICROSTEPS      16 // number of microsteps
972 984
   #define X_K_VAL           50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
@@ -1018,6 +1030,11 @@
1018 1030
   #define E3_OVERCURRENT  2000
1019 1031
   #define E3_STALLCURRENT 1500
1020 1032
 
1033
+  #define E4_MICROSTEPS     16
1034
+  #define E4_K_VAL          50
1035
+  #define E4_OVERCURRENT  2000
1036
+  #define E4_STALLCURRENT 1500
1037
+
1021 1038
 #endif
1022 1039
 
1023 1040
 /**

+ 1
- 1
Marlin/example_configurations/Hephestos_2/Configuration.h View File

@@ -142,7 +142,7 @@
142 142
 #define MACHINE_UUID "8d083632-40c5-4649-85b8-43d9ae6c5d55" // BQ Hephestos 2 standard config
143 143
 
144 144
 // This defines the number of extruders
145
-// :[1, 2, 3, 4]
145
+// :[1, 2, 3, 4, 5]
146 146
 #define EXTRUDERS 1
147 147
 
148 148
 // Enable if your E steppers or extruder gear ratios are not identical

+ 20
- 3
Marlin/example_configurations/Hephestos_2/Configuration_adv.h View File

@@ -420,10 +420,10 @@
420 420
 
421 421
 //#define DAC_MOTOR_CURRENT_DEFAULT { 70, 80, 90, 80 } // Default drive percent - X, Y, Z, E axis
422 422
 
423
-/*  5DPRINT & AZTEEG_X3_PRO */
424
-//#define DIGIPOT_I2C  // uncomment to enable
423
+// Uncomment to enable an I2C based DIGIPOT like on the Azteeg X3 Pro
424
+//#define DIGIPOT_I2C
425 425
 #define DIGIPOT_I2C_NUM_CHANNELS 8 // 5DPRINT: 4     AZTEEG_X3_PRO: 8
426
-/* actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS */
426
+// Actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS
427 427
 #define DIGIPOT_I2C_MOTOR_CURRENTS {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0}  //  AZTEEG_X3_PRO
428 428
 
429 429
 //===========================================================================
@@ -629,6 +629,11 @@
629 629
   #define MESH_MAX_X (X_MAX_POS - (MESH_INSET))
630 630
   #define MESH_MIN_Y (Y_MIN_POS + MESH_INSET)
631 631
   #define MESH_MAX_Y (Y_MAX_POS - (MESH_INSET))
632
+#elif ENABLED(AUTO_BED_LEVELING_UBL)
633
+  #define UBL_MESH_MIN_X (X_MIN_POS + UBL_MESH_INSET)
634
+  #define UBL_MESH_MAX_X (X_MAX_POS - (UBL_MESH_INSET))
635
+  #define UBL_MESH_MIN_Y (Y_MIN_POS + UBL_MESH_INSET)
636
+  #define UBL_MESH_MAX_Y (Y_MAX_POS - (UBL_MESH_INSET))
632 637
 #endif
633 638
 
634 639
 // @section extras
@@ -784,6 +789,7 @@
784 789
   //#define E1_IS_TMC
785 790
   //#define E2_IS_TMC
786 791
   //#define E3_IS_TMC
792
+  //#define E4_IS_TMC
787 793
 
788 794
   #define X_MAX_CURRENT     1000 // in mA
789 795
   #define X_SENSE_RESISTOR    91 // in mOhms
@@ -825,6 +831,10 @@
825 831
   #define E3_SENSE_RESISTOR   91
826 832
   #define E3_MICROSTEPS       16
827 833
 
834
+  #define E4_MAX_CURRENT    1000
835
+  #define E4_SENSE_RESISTOR   91
836
+  #define E4_MICROSTEPS       16
837
+
828 838
 #endif
829 839
 
830 840
 // @section TMC2130
@@ -866,6 +876,7 @@
866 876
   //#define E1_IS_TMC2130
867 877
   //#define E2_IS_TMC2130
868 878
   //#define E3_IS_TMC2130
879
+  //#define E4_IS_TMC2130
869 880
 
870 881
   /**
871 882
    * Stepper driver settings
@@ -951,6 +962,7 @@
951 962
   //#define E1_IS_L6470
952 963
   //#define E2_IS_L6470
953 964
   //#define E3_IS_L6470
965
+  //#define E4_IS_L6470
954 966
 
955 967
   #define X_MICROSTEPS      16 // number of microsteps
956 968
   #define X_K_VAL           50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
@@ -1002,6 +1014,11 @@
1002 1014
   #define E3_OVERCURRENT  2000
1003 1015
   #define E3_STALLCURRENT 1500
1004 1016
 
1017
+  #define E4_MICROSTEPS     16
1018
+  #define E4_K_VAL          50
1019
+  #define E4_OVERCURRENT  2000
1020
+  #define E4_STALLCURRENT 1500
1021
+
1005 1022
 #endif
1006 1023
 
1007 1024
 /**

+ 1
- 1
Marlin/example_configurations/K8200/Configuration.h View File

@@ -162,7 +162,7 @@
162 162
 #endif
163 163
 
164 164
 // This defines the number of extruders
165
-// :[1, 2, 3, 4]
165
+// :[1, 2, 3, 4, 5]
166 166
 #define EXTRUDERS 1
167 167
 
168 168
 // Enable if your E steppers or extruder gear ratios are not identical

+ 20
- 3
Marlin/example_configurations/K8200/Configuration_adv.h View File

@@ -432,10 +432,10 @@
432 432
 //#define DIGIPOT_MOTOR_CURRENT {135,135,135,135,135} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
433 433
 //#define DAC_MOTOR_CURRENT_DEFAULT { 70, 80, 90, 80 } // Default drive percent - X, Y, Z, E axis
434 434
 
435
-/*  5DPRINT & AZTEEG_X3_PRO */
436
-//#define DIGIPOT_I2C  // uncomment to enable
435
+// Uncomment to enable an I2C based DIGIPOT like on the Azteeg X3 Pro
436
+//#define DIGIPOT_I2C
437 437
 #define DIGIPOT_I2C_NUM_CHANNELS 8 // 5DPRINT: 4     AZTEEG_X3_PRO: 8
438
-/* actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS */
438
+// Actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS
439 439
 #define DIGIPOT_I2C_MOTOR_CURRENTS {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0}  //  AZTEEG_X3_PRO
440 440
 
441 441
 //===========================================================================
@@ -658,6 +658,11 @@
658 658
   #define MESH_MAX_X (X_MAX_POS - (MESH_INSET))
659 659
   #define MESH_MIN_Y (Y_MIN_POS + MESH_INSET)
660 660
   #define MESH_MAX_Y (Y_MAX_POS - (MESH_INSET))
661
+#elif ENABLED(AUTO_BED_LEVELING_UBL)
662
+  #define UBL_MESH_MIN_X (X_MIN_POS + UBL_MESH_INSET)
663
+  #define UBL_MESH_MAX_X (X_MAX_POS - (UBL_MESH_INSET))
664
+  #define UBL_MESH_MIN_Y (Y_MIN_POS + UBL_MESH_INSET)
665
+  #define UBL_MESH_MAX_Y (Y_MAX_POS - (UBL_MESH_INSET))
661 666
 #endif
662 667
 
663 668
 // @section extras
@@ -813,6 +818,7 @@
813 818
   //#define E1_IS_TMC
814 819
   //#define E2_IS_TMC
815 820
   //#define E3_IS_TMC
821
+  //#define E4_IS_TMC
816 822
 
817 823
   #define X_MAX_CURRENT     1000 // in mA
818 824
   #define X_SENSE_RESISTOR    91 // in mOhms
@@ -854,6 +860,10 @@
854 860
   #define E3_SENSE_RESISTOR   91
855 861
   #define E3_MICROSTEPS       16
856 862
 
863
+  #define E4_MAX_CURRENT    1000
864
+  #define E4_SENSE_RESISTOR   91
865
+  #define E4_MICROSTEPS       16
866
+
857 867
 #endif
858 868
 
859 869
 // @section TMC2130
@@ -895,6 +905,7 @@
895 905
   //#define E1_IS_TMC2130
896 906
   //#define E2_IS_TMC2130
897 907
   //#define E3_IS_TMC2130
908
+  //#define E4_IS_TMC2130
898 909
 
899 910
   /**
900 911
    * Stepper driver settings
@@ -980,6 +991,7 @@
980 991
   //#define E1_IS_L6470
981 992
   //#define E2_IS_L6470
982 993
   //#define E3_IS_L6470
994
+  //#define E4_IS_L6470
983 995
 
984 996
   #define X_MICROSTEPS      16 // number of microsteps
985 997
   #define X_K_VAL           50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
@@ -1031,6 +1043,11 @@
1031 1043
   #define E3_OVERCURRENT  2000
1032 1044
   #define E3_STALLCURRENT 1500
1033 1045
 
1046
+  #define E4_MICROSTEPS     16
1047
+  #define E4_K_VAL          50
1048
+  #define E4_OVERCURRENT  2000
1049
+  #define E4_STALLCURRENT 1500
1050
+
1034 1051
 #endif
1035 1052
 
1036 1053
 /**

+ 1
- 1
Marlin/example_configurations/K8400/Configuration.h View File

@@ -142,7 +142,7 @@
142 142
 //#define MACHINE_UUID "00000000-0000-0000-0000-000000000000"
143 143
 
144 144
 // This defines the number of extruders
145
-// :[1, 2, 3, 4]
145
+// :[1, 2, 3, 4, 5]
146 146
 #define EXTRUDERS 1
147 147
 
148 148
 // Enable if your E steppers or extruder gear ratios are not identical

+ 20
- 3
Marlin/example_configurations/K8400/Configuration_adv.h View File

@@ -419,10 +419,10 @@
419 419
 //#define DIGIPOT_MOTOR_CURRENT {135,135,135,135,135} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
420 420
 //#define DAC_MOTOR_CURRENT_DEFAULT { 70, 80, 90, 80 } // Default drive percent - X, Y, Z, E axis
421 421
 
422
-/*  5DPRINT & AZTEEG_X3_PRO */
423
-//#define DIGIPOT_I2C  // uncomment to enable
422
+// Uncomment to enable an I2C based DIGIPOT like on the Azteeg X3 Pro
423
+//#define DIGIPOT_I2C
424 424
 #define DIGIPOT_I2C_NUM_CHANNELS 8 // 5DPRINT: 4     AZTEEG_X3_PRO: 8
425
-/* actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS */
425
+// Actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS
426 426
 #define DIGIPOT_I2C_MOTOR_CURRENTS {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0}  //  AZTEEG_X3_PRO
427 427
 
428 428
 //===========================================================================
@@ -645,6 +645,11 @@
645 645
   #define MESH_MAX_X (X_MAX_POS - (MESH_INSET))
646 646
   #define MESH_MIN_Y (Y_MIN_POS + MESH_INSET)
647 647
   #define MESH_MAX_Y (Y_MAX_POS - (MESH_INSET))
648
+#elif ENABLED(AUTO_BED_LEVELING_UBL)
649
+  #define UBL_MESH_MIN_X (X_MIN_POS + UBL_MESH_INSET)
650
+  #define UBL_MESH_MAX_X (X_MAX_POS - (UBL_MESH_INSET))
651
+  #define UBL_MESH_MIN_Y (Y_MIN_POS + UBL_MESH_INSET)
652
+  #define UBL_MESH_MAX_Y (Y_MAX_POS - (UBL_MESH_INSET))
648 653
 #endif
649 654
 
650 655
 // @section extras
@@ -800,6 +805,7 @@
800 805
   //#define E1_IS_TMC
801 806
   //#define E2_IS_TMC
802 807
   //#define E3_IS_TMC
808
+  //#define E4_IS_TMC
803 809
 
804 810
   #define X_MAX_CURRENT     1000 // in mA
805 811
   #define X_SENSE_RESISTOR    91 // in mOhms
@@ -841,6 +847,10 @@
841 847
   #define E3_SENSE_RESISTOR   91
842 848
   #define E3_MICROSTEPS       16
843 849
 
850
+  #define E4_MAX_CURRENT    1000
851
+  #define E4_SENSE_RESISTOR   91
852
+  #define E4_MICROSTEPS       16
853
+
844 854
 #endif
845 855
 
846 856
 // @section TMC2130
@@ -882,6 +892,7 @@
882 892
   //#define E1_IS_TMC2130
883 893
   //#define E2_IS_TMC2130
884 894
   //#define E3_IS_TMC2130
895
+  //#define E4_IS_TMC2130
885 896
 
886 897
   /**
887 898
    * Stepper driver settings
@@ -967,6 +978,7 @@
967 978
   //#define E1_IS_L6470
968 979
   //#define E2_IS_L6470
969 980
   //#define E3_IS_L6470
981
+  //#define E4_IS_L6470
970 982
 
971 983
   #define X_MICROSTEPS      16 // number of microsteps
972 984
   #define X_K_VAL           50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
@@ -1018,6 +1030,11 @@
1018 1030
   #define E3_OVERCURRENT  2000
1019 1031
   #define E3_STALLCURRENT 1500
1020 1032
 
1033
+  #define E4_MICROSTEPS     16
1034
+  #define E4_K_VAL          50
1035
+  #define E4_OVERCURRENT  2000
1036
+  #define E4_STALLCURRENT 1500
1037
+
1021 1038
 #endif
1022 1039
 
1023 1040
 /**

+ 1
- 1
Marlin/example_configurations/K8400/Dual-head/Configuration.h View File

@@ -142,7 +142,7 @@
142 142
 //#define MACHINE_UUID "00000000-0000-0000-0000-000000000000"
143 143
 
144 144
 // This defines the number of extruders
145
-// :[1, 2, 3, 4]
145
+// :[1, 2, 3, 4, 5]
146 146
 #define EXTRUDERS 2
147 147
 
148 148
 // Enable if your E steppers or extruder gear ratios are not identical

+ 1
- 1
Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h View File

@@ -142,7 +142,7 @@
142 142
 //#define MACHINE_UUID "00000000-0000-0000-0000-000000000000"
143 143
 
144 144
 // This defines the number of extruders
145
-// :[1, 2, 3, 4]
145
+// :[1, 2, 3, 4, 5]
146 146
 #define EXTRUDERS 1
147 147
 
148 148
 // Enable if your E steppers or extruder gear ratios are not identical

+ 1
- 1
Marlin/example_configurations/RigidBot/Configuration.h View File

@@ -145,7 +145,7 @@
145 145
 //#define MACHINE_UUID "00000000-0000-0000-0000-000000000000"
146 146
 
147 147
 // This defines the number of extruders
148
-// :[1, 2, 3, 4]
148
+// :[1, 2, 3, 4, 5]
149 149
 #define EXTRUDERS 1  // Single extruder. Set to 2 for dual extruders
150 150
 
151 151
 // Enable if your E steppers or extruder gear ratios are not identical

+ 20
- 3
Marlin/example_configurations/RigidBot/Configuration_adv.h View File

@@ -419,10 +419,10 @@
419 419
 //#define DIGIPOT_MOTOR_CURRENT {135,135,135,135,135} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
420 420
 //#define DAC_MOTOR_CURRENT_DEFAULT { 70, 80, 90, 80 } // Default drive percent - X, Y, Z, E axis
421 421
 
422
-/*  5DPRINT & AZTEEG_X3_PRO */
423
-//#define DIGIPOT_I2C  // uncomment to enable
422
+// Uncomment to enable an I2C based DIGIPOT like on the Azteeg X3 Pro
423
+//#define DIGIPOT_I2C
424 424
 #define DIGIPOT_I2C_NUM_CHANNELS 8 // 5DPRINT: 4     AZTEEG_X3_PRO: 8
425
-/* actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS */
425
+// Actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS
426 426
 #define DIGIPOT_I2C_MOTOR_CURRENTS {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0}  //  AZTEEG_X3_PRO
427 427
 
428 428
 //===========================================================================
@@ -645,6 +645,11 @@
645 645
   #define MESH_MAX_X (X_MAX_POS - (MESH_INSET))
646 646
   #define MESH_MIN_Y (Y_MIN_POS + MESH_INSET)
647 647
   #define MESH_MAX_Y (Y_MAX_POS - (MESH_INSET))
648
+#elif ENABLED(AUTO_BED_LEVELING_UBL)
649
+  #define UBL_MESH_MIN_X (X_MIN_POS + UBL_MESH_INSET)
650
+  #define UBL_MESH_MAX_X (X_MAX_POS - (UBL_MESH_INSET))
651
+  #define UBL_MESH_MIN_Y (Y_MIN_POS + UBL_MESH_INSET)
652
+  #define UBL_MESH_MAX_Y (Y_MAX_POS - (UBL_MESH_INSET))
648 653
 #endif
649 654
 
650 655
 // @section extras
@@ -800,6 +805,7 @@
800 805
   //#define E1_IS_TMC
801 806
   //#define E2_IS_TMC
802 807
   //#define E3_IS_TMC
808
+  //#define E4_IS_TMC
803 809
 
804 810
   #define X_MAX_CURRENT     1000 // in mA
805 811
   #define X_SENSE_RESISTOR    91 // in mOhms
@@ -841,6 +847,10 @@
841 847
   #define E3_SENSE_RESISTOR   91
842 848
   #define E3_MICROSTEPS       16
843 849
 
850
+  #define E4_MAX_CURRENT    1000
851
+  #define E4_SENSE_RESISTOR   91
852
+  #define E4_MICROSTEPS       16
853
+
844 854
 #endif
845 855
 
846 856
 // @section TMC2130
@@ -882,6 +892,7 @@
882 892
   //#define E1_IS_TMC2130
883 893
   //#define E2_IS_TMC2130
884 894
   //#define E3_IS_TMC2130
895
+  //#define E4_IS_TMC2130
885 896
 
886 897
   /**
887 898
    * Stepper driver settings
@@ -967,6 +978,7 @@
967 978
   //#define E1_IS_L6470
968 979
   //#define E2_IS_L6470
969 980
   //#define E3_IS_L6470
981
+  //#define E4_IS_L6470
970 982
 
971 983
   #define X_MICROSTEPS      16 // number of microsteps
972 984
   #define X_K_VAL           50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
@@ -1018,6 +1030,11 @@
1018 1030
   #define E3_OVERCURRENT  2000
1019 1031
   #define E3_STALLCURRENT 1500
1020 1032
 
1033
+  #define E4_MICROSTEPS     16
1034
+  #define E4_K_VAL          50
1035
+  #define E4_OVERCURRENT  2000
1036
+  #define E4_STALLCURRENT 1500
1037
+
1021 1038
 #endif
1022 1039
 
1023 1040
 /**

+ 1
- 1
Marlin/example_configurations/SCARA/Configuration.h View File

@@ -174,7 +174,7 @@
174 174
 //#define MACHINE_UUID "00000000-0000-0000-0000-000000000000"
175 175
 
176 176
 // This defines the number of extruders
177
-// :[1, 2, 3, 4]
177
+// :[1, 2, 3, 4, 5]
178 178
 #define EXTRUDERS 1
179 179
 
180 180
 // Enable if your E steppers or extruder gear ratios are not identical

+ 20
- 3
Marlin/example_configurations/SCARA/Configuration_adv.h View File

@@ -419,10 +419,10 @@
419 419
 //#define DIGIPOT_MOTOR_CURRENT {135,135,135,135,135} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
420 420
 //#define DAC_MOTOR_CURRENT_DEFAULT { 70, 80, 90, 80 } // Default drive percent - X, Y, Z, E axis
421 421
 
422
-/*  5DPRINT & AZTEEG_X3_PRO */
423
-//#define DIGIPOT_I2C  // uncomment to enable
422
+// Uncomment to enable an I2C based DIGIPOT like on the Azteeg X3 Pro
423
+//#define DIGIPOT_I2C
424 424
 #define DIGIPOT_I2C_NUM_CHANNELS 8 // 5DPRINT: 4     AZTEEG_X3_PRO: 8
425
-/* actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS */
425
+// Actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS
426 426
 #define DIGIPOT_I2C_MOTOR_CURRENTS {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0}  //  AZTEEG_X3_PRO
427 427
 
428 428
 //===========================================================================
@@ -645,6 +645,11 @@
645 645
   #define MESH_MAX_X (X_MAX_POS - (MESH_INSET))
646 646
   #define MESH_MIN_Y (Y_MIN_POS + MESH_INSET)
647 647
   #define MESH_MAX_Y (Y_MAX_POS - (MESH_INSET))
648
+#elif ENABLED(AUTO_BED_LEVELING_UBL)
649
+  #define UBL_MESH_MIN_X (X_MIN_POS + UBL_MESH_INSET)
650
+  #define UBL_MESH_MAX_X (X_MAX_POS - (UBL_MESH_INSET))
651
+  #define UBL_MESH_MIN_Y (Y_MIN_POS + UBL_MESH_INSET)
652
+  #define UBL_MESH_MAX_Y (Y_MAX_POS - (UBL_MESH_INSET))
648 653
 #endif
649 654
 
650 655
 // @section extras
@@ -800,6 +805,7 @@
800 805
   //#define E1_IS_TMC
801 806
   //#define E2_IS_TMC
802 807
   //#define E3_IS_TMC
808
+  //#define E4_IS_TMC
803 809
 
804 810
   #define X_MAX_CURRENT     1000 // in mA
805 811
   #define X_SENSE_RESISTOR    91 // in mOhms
@@ -841,6 +847,10 @@
841 847
   #define E3_SENSE_RESISTOR   91
842 848
   #define E3_MICROSTEPS       16
843 849
 
850
+  #define E4_MAX_CURRENT    1000
851
+  #define E4_SENSE_RESISTOR   91
852
+  #define E4_MICROSTEPS       16
853
+
844 854
 #endif
845 855
 
846 856
 // @section TMC2130
@@ -882,6 +892,7 @@
882 892
   //#define E1_IS_TMC2130
883 893
   //#define E2_IS_TMC2130
884 894
   //#define E3_IS_TMC2130
895
+  //#define E4_IS_TMC2130
885 896
 
886 897
   /**
887 898
    * Stepper driver settings
@@ -967,6 +978,7 @@
967 978
   //#define E1_IS_L6470
968 979
   //#define E2_IS_L6470
969 980
   //#define E3_IS_L6470
981
+  //#define E4_IS_L6470
970 982
 
971 983
   #define X_MICROSTEPS      16 // number of microsteps
972 984
   #define X_K_VAL           50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
@@ -1018,6 +1030,11 @@
1018 1030
   #define E3_OVERCURRENT  2000
1019 1031
   #define E3_STALLCURRENT 1500
1020 1032
 
1033
+  #define E4_MICROSTEPS     16
1034
+  #define E4_K_VAL          50
1035
+  #define E4_OVERCURRENT  2000
1036
+  #define E4_STALLCURRENT 1500
1037
+
1021 1038
 #endif
1022 1039
 
1023 1040
 /**

+ 1
- 1
Marlin/example_configurations/TAZ4/Configuration.h View File

@@ -142,7 +142,7 @@
142 142
 //#define MACHINE_UUID "00000000-0000-0000-0000-000000000000"
143 143
 
144 144
 // This defines the number of extruders
145
-// :[1, 2, 3, 4]
145
+// :[1, 2, 3, 4, 5]
146 146
 #define EXTRUDERS 1
147 147
 
148 148
 // Enable if your E steppers or extruder gear ratios are not identical

+ 20
- 3
Marlin/example_configurations/TAZ4/Configuration_adv.h View File

@@ -427,10 +427,10 @@
427 427
 //#define DIGIPOT_MOTOR_CURRENT {135,135,135,135,135} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
428 428
 //#define DAC_MOTOR_CURRENT_DEFAULT { 70, 80, 90, 80 } // Default drive percent - X, Y, Z, E axis
429 429
 
430
-/*  5DPRINT & AZTEEG_X3_PRO */
431
-//#define DIGIPOT_I2C  // uncomment to enable
430
+// Uncomment to enable an I2C based DIGIPOT like on the Azteeg X3 Pro
431
+//#define DIGIPOT_I2C
432 432
 #define DIGIPOT_I2C_NUM_CHANNELS 8 // 5DPRINT: 4     AZTEEG_X3_PRO: 8
433
-/* actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS */
433
+// Actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS
434 434
 #define DIGIPOT_I2C_MOTOR_CURRENTS {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0}  //  AZTEEG_X3_PRO
435 435
 
436 436
 //===========================================================================
@@ -653,6 +653,11 @@
653 653
   #define MESH_MAX_X (X_MAX_POS - (MESH_INSET))
654 654
   #define MESH_MIN_Y (Y_MIN_POS + MESH_INSET)
655 655
   #define MESH_MAX_Y (Y_MAX_POS - (MESH_INSET))
656
+#elif ENABLED(AUTO_BED_LEVELING_UBL)
657
+  #define UBL_MESH_MIN_X (X_MIN_POS + UBL_MESH_INSET)
658
+  #define UBL_MESH_MAX_X (X_MAX_POS - (UBL_MESH_INSET))
659
+  #define UBL_MESH_MIN_Y (Y_MIN_POS + UBL_MESH_INSET)
660
+  #define UBL_MESH_MAX_Y (Y_MAX_POS - (UBL_MESH_INSET))
656 661
 #endif
657 662
 
658 663
 // @section extras
@@ -808,6 +813,7 @@
808 813
   //#define E1_IS_TMC
809 814
   //#define E2_IS_TMC
810 815
   //#define E3_IS_TMC
816
+  //#define E4_IS_TMC
811 817
 
812 818
   #define X_MAX_CURRENT     1000 // in mA
813 819
   #define X_SENSE_RESISTOR    91 // in mOhms
@@ -849,6 +855,10 @@
849 855
   #define E3_SENSE_RESISTOR   91
850 856
   #define E3_MICROSTEPS       16
851 857
 
858
+  #define E4_MAX_CURRENT    1000
859
+  #define E4_SENSE_RESISTOR   91
860
+  #define E4_MICROSTEPS       16
861
+
852 862
 #endif
853 863
 
854 864
 // @section TMC2130
@@ -890,6 +900,7 @@
890 900
   //#define E1_IS_TMC2130
891 901
   //#define E2_IS_TMC2130
892 902
   //#define E3_IS_TMC2130
903
+  //#define E4_IS_TMC2130
893 904
 
894 905
   /**
895 906
    * Stepper driver settings
@@ -975,6 +986,7 @@
975 986
   //#define E1_IS_L6470
976 987
   //#define E2_IS_L6470
977 988
   //#define E3_IS_L6470
989
+  //#define E4_IS_L6470
978 990
 
979 991
   #define X_MICROSTEPS      16 // number of microsteps
980 992
   #define X_K_VAL           50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
@@ -1026,6 +1038,11 @@
1026 1038
   #define E3_OVERCURRENT  2000
1027 1039
   #define E3_STALLCURRENT 1500
1028 1040
 
1041
+  #define E4_MICROSTEPS     16
1042
+  #define E4_K_VAL          50
1043
+  #define E4_OVERCURRENT  2000
1044
+  #define E4_STALLCURRENT 1500
1045
+
1029 1046
 #endif
1030 1047
 
1031 1048
 /**

+ 1
- 8
Marlin/example_configurations/TinyBoy2/Configuration.h View File

@@ -164,7 +164,7 @@
164 164
 //#define MACHINE_UUID "00000000-0000-0000-0000-000000000000"
165 165
 
166 166
 // This defines the number of extruders
167
-// :[1, 2, 3, 4]
167
+// :[1, 2, 3, 4, 5]
168 168
 #define EXTRUDERS 1
169 169
 
170 170
 // Enable if your E steppers or extruder gear ratios are not identical
@@ -988,13 +988,6 @@
988 988
 
989 989
   //#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest Z at Z_MIN_POS
990 990
 
991
-  //#define MANUAL_BED_LEVELING  // Add display menu option for bed leveling.
992
-  #define MANUAL_PROBE_Z_RANGE 4 // Z Range centered on Z_MIN_POS for LCD Z adjustment
993
-
994
-  #if ENABLED(MANUAL_BED_LEVELING)
995
-    #define MBL_Z_STEP 0.025     // Step size while manually probing Z axis.
996
-  #endif
997
-
998 991
 #endif // BED_LEVELING
999 992
 
1000 993
 /**

+ 15
- 5
Marlin/example_configurations/TinyBoy2/Configuration_adv.h View File

@@ -400,11 +400,11 @@
400 400
 // Motor Current controlled via PWM (Overridable on supported boards with PWM-driven motor driver current)
401 401
 //#define PWM_MOTOR_CURRENT {1300, 1300, 1250} // Values in milliamps
402 402
 
403
-// uncomment to enable an I2C based DIGIPOT like on the Azteeg X3 Pro
403
+// Uncomment to enable an I2C based DIGIPOT like on the Azteeg X3 Pro
404 404
 //#define DIGIPOT_I2C
405 405
 // Number of channels available for I2C digipot, For Azteeg X3 Pro we have 8
406 406
 #define DIGIPOT_I2C_NUM_CHANNELS 8
407
-// actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS
407
+// Actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS
408 408
 #define DIGIPOT_I2C_MOTOR_CURRENTS {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0}
409 409
 
410 410
 //===========================================================================
@@ -630,9 +630,7 @@
630 630
   #define MESH_MAX_X (X_MAX_POS - (MESH_INSET))
631 631
   #define MESH_MIN_Y (Y_MIN_POS + MESH_INSET)
632 632
   #define MESH_MAX_Y (Y_MAX_POS - (MESH_INSET))
633
-#endif
634
-
635
-#if ENABLED(AUTO_BED_LEVELING_UBL)
633
+#elif ENABLED(AUTO_BED_LEVELING_UBL)
636 634
   #define UBL_MESH_MIN_X (X_MIN_POS + UBL_MESH_INSET)
637 635
   #define UBL_MESH_MAX_X (X_MAX_POS - (UBL_MESH_INSET))
638 636
   #define UBL_MESH_MIN_Y (Y_MIN_POS + UBL_MESH_INSET)
@@ -791,6 +789,7 @@
791 789
   //#define E1_IS_TMC
792 790
   //#define E2_IS_TMC
793 791
   //#define E3_IS_TMC
792
+  //#define E4_IS_TMC
794 793
 
795 794
   #define X_MAX_CURRENT     1000 // in mA
796 795
   #define X_SENSE_RESISTOR    91 // in mOhms
@@ -832,6 +831,10 @@
832 831
   #define E3_SENSE_RESISTOR   91
833 832
   #define E3_MICROSTEPS       16
834 833
 
834
+  #define E4_MAX_CURRENT    1000
835
+  #define E4_SENSE_RESISTOR   91
836
+  #define E4_MICROSTEPS       16
837
+
835 838
 #endif
836 839
 
837 840
 // @section TMC2130
@@ -873,6 +876,7 @@
873 876
   //#define E1_IS_TMC2130
874 877
   //#define E2_IS_TMC2130
875 878
   //#define E3_IS_TMC2130
879
+  //#define E4_IS_TMC2130
876 880
 
877 881
   /**
878 882
    * Stepper driver settings
@@ -958,6 +962,7 @@
958 962
   //#define E1_IS_L6470
959 963
   //#define E2_IS_L6470
960 964
   //#define E3_IS_L6470
965
+  //#define E4_IS_L6470
961 966
 
962 967
   #define X_MICROSTEPS      16 // number of microsteps
963 968
   #define X_K_VAL           50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
@@ -1009,6 +1014,11 @@
1009 1014
   #define E3_OVERCURRENT  2000
1010 1015
   #define E3_STALLCURRENT 1500
1011 1016
 
1017
+  #define E4_MICROSTEPS     16
1018
+  #define E4_K_VAL          50
1019
+  #define E4_OVERCURRENT  2000
1020
+  #define E4_STALLCURRENT 1500
1021
+
1012 1022
 #endif
1013 1023
 
1014 1024
 /**

+ 1
- 1
Marlin/example_configurations/WITBOX/Configuration.h View File

@@ -145,7 +145,7 @@
145 145
 //#define MACHINE_UUID "00000000-0000-0000-0000-000000000000"
146 146
 
147 147
 // This defines the number of extruders
148
-// :[1, 2, 3, 4]
148
+// :[1, 2, 3, 4, 5]
149 149
 #define EXTRUDERS 1
150 150
 
151 151
 // Enable if your E steppers or extruder gear ratios are not identical

+ 20
- 3
Marlin/example_configurations/WITBOX/Configuration_adv.h View File

@@ -419,10 +419,10 @@
419 419
 //#define DIGIPOT_MOTOR_CURRENT {135,135,135,135,135} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
420 420
 //#define DAC_MOTOR_CURRENT_DEFAULT { 70, 80, 90, 80 } // Default drive percent - X, Y, Z, E axis
421 421
 
422
-/*  5DPRINT & AZTEEG_X3_PRO */
423
-//#define DIGIPOT_I2C  // uncomment to enable
422
+// Uncomment to enable an I2C based DIGIPOT like on the Azteeg X3 Pro
423
+//#define DIGIPOT_I2C
424 424
 #define DIGIPOT_I2C_NUM_CHANNELS 8 // 5DPRINT: 4     AZTEEG_X3_PRO: 8
425
-/* actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS */
425
+// Actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS
426 426
 #define DIGIPOT_I2C_MOTOR_CURRENTS {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0}  //  AZTEEG_X3_PRO
427 427
 
428 428
 //===========================================================================
@@ -645,6 +645,11 @@
645 645
   #define MESH_MAX_X (X_MAX_POS - (MESH_INSET))
646 646
   #define MESH_MIN_Y (Y_MIN_POS + MESH_INSET)
647 647
   #define MESH_MAX_Y (Y_MAX_POS - (MESH_INSET))
648
+#elif ENABLED(AUTO_BED_LEVELING_UBL)
649
+  #define UBL_MESH_MIN_X (X_MIN_POS + UBL_MESH_INSET)
650
+  #define UBL_MESH_MAX_X (X_MAX_POS - (UBL_MESH_INSET))
651
+  #define UBL_MESH_MIN_Y (Y_MIN_POS + UBL_MESH_INSET)
652
+  #define UBL_MESH_MAX_Y (Y_MAX_POS - (UBL_MESH_INSET))
648 653
 #endif
649 654
 
650 655
 // @section extras
@@ -800,6 +805,7 @@
800 805
   //#define E1_IS_TMC
801 806
   //#define E2_IS_TMC
802 807
   //#define E3_IS_TMC
808
+  //#define E4_IS_TMC
803 809
 
804 810
   #define X_MAX_CURRENT     1000 // in mA
805 811
   #define X_SENSE_RESISTOR    91 // in mOhms
@@ -841,6 +847,10 @@
841 847
   #define E3_SENSE_RESISTOR   91
842 848
   #define E3_MICROSTEPS       16
843 849
 
850
+  #define E4_MAX_CURRENT    1000
851
+  #define E4_SENSE_RESISTOR   91
852
+  #define E4_MICROSTEPS       16
853
+
844 854
 #endif
845 855
 
846 856
 // @section TMC2130
@@ -882,6 +892,7 @@
882 892
   //#define E1_IS_TMC2130
883 893
   //#define E2_IS_TMC2130
884 894
   //#define E3_IS_TMC2130
895
+  //#define E4_IS_TMC2130
885 896
 
886 897
   /**
887 898
    * Stepper driver settings
@@ -967,6 +978,7 @@
967 978
   //#define E1_IS_L6470
968 979
   //#define E2_IS_L6470
969 980
   //#define E3_IS_L6470
981
+  //#define E4_IS_L6470
970 982
 
971 983
   #define X_MICROSTEPS      16 // number of microsteps
972 984
   #define X_K_VAL           50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
@@ -1018,6 +1030,11 @@
1018 1030
   #define E3_OVERCURRENT  2000
1019 1031
   #define E3_STALLCURRENT 1500
1020 1032
 
1033
+  #define E4_MICROSTEPS     16
1034
+  #define E4_K_VAL          50
1035
+  #define E4_OVERCURRENT  2000
1036
+  #define E4_STALLCURRENT 1500
1037
+
1021 1038
 #endif
1022 1039
 
1023 1040
 /**

+ 1
- 1
Marlin/example_configurations/adafruit/ST7565/Configuration.h View File

@@ -142,7 +142,7 @@
142 142
 //#define MACHINE_UUID "00000000-0000-0000-0000-000000000000"
143 143
 
144 144
 // This defines the number of extruders
145
-// :[1, 2, 3, 4]
145
+// :[1, 2, 3, 4, 5]
146 146
 #define EXTRUDERS 1
147 147
 
148 148
 // Enable if your E steppers or extruder gear ratios are not identical

+ 9
- 11
Marlin/example_configurations/delta/flsun_kossel_mini/Configuration.h View File

@@ -142,7 +142,7 @@
142 142
 //#define MACHINE_UUID "00000000-0000-0000-0000-000000000000"
143 143
 
144 144
 // This defines the number of extruders
145
-// :[1, 2, 3, 4]
145
+// :[1, 2, 3, 4, 5]
146 146
 #define EXTRUDERS 1
147 147
 
148 148
 // Enable if your E steppers or extruder gear ratios are not identical
@@ -311,9 +311,9 @@
311 311
   //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
312 312
   //#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
313 313
   //#define PID_PARAMS_PER_HOTEND // Uses separate PID parameters for each extruder (useful for mismatched extruders)
314
-  // Set/get with gcode: M301 E[extruder number, 0-2]
314
+                                  // Set/get with gcode: M301 E[extruder number, 0-2]
315 315
   #define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature
316
-  // is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max.
316
+                                  // is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max.
317 317
   #define K1 0.95 //smoothing factor within the PID
318 318
 
319 319
   // If you are using a pre-configured hotend then you can use one of the value sets by uncommenting it
@@ -754,7 +754,6 @@
754 754
 
755 755
 #endif // Z_PROBE_ALLEN_KEY
756 756
 
757
-
758 757
 /**
759 758
  *
760 759
  *   *** PLEASE READ ALL INSTRUCTIONS BELOW FOR SAFETY! ***
@@ -810,11 +809,10 @@
810 809
  *          ignored by Marlin
811 810
  */
812 811
 
813
-//#define Z_MIN_PROBE_ENDSTOP // A3K leave disable!
812
+//#define Z_MIN_PROBE_ENDSTOP // A3K leave disabled!
814 813
 #define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN
815 814
 
816
-
817
-/* Enable Z Probe Repeatability test to see how accurate your probe is  */
815
+// Enable Z Probe Repeatability test to see how accurate your probe is
818 816
 #define Z_MIN_PROBE_REPEATABILITY_TEST
819 817
 
820 818
 /**
@@ -834,7 +832,7 @@
834 832
 #define Z_CLEARANCE_DEPLOY_PROBE   50 // Z Clearance for Deploy/Stow
835 833
 #define Z_CLEARANCE_BETWEEN_PROBES  5 // Z Clearance between probe points
836 834
 
837
-/* For M851 give a range for adjusting the Z probe offset */
835
+// For M851 give a range for adjusting the Z probe offset
838 836
 #define Z_PROBE_OFFSET_RANGE_MIN -20
839 837
 #define Z_PROBE_OFFSET_RANGE_MAX 20
840 838
 
@@ -959,9 +957,9 @@
959 957
  *   leveling in steps so you can manually adjust the Z height at each grid-point.
960 958
  *   With an LCD controller the process is guided step-by-step.
961 959
  */
962
-//#define AUTO_BED_LEVELING_3POINT // Only AUTO_BED_LEVELING_BILINEAR is supported for DELTA bed leveling.
963
-//#define AUTO_BED_LEVELING_LINEAR // Only AUTO_BED_LEVELING_BILINEAR is supported for DELTA bed leveling.
964
-#define AUTO_BED_LEVELING_BILINEAR // Only AUTO_BED_LEVELING_BILINEAR is supported for DELTA bed leveling.
960
+//#define AUTO_BED_LEVELING_3POINT
961
+//#define AUTO_BED_LEVELING_LINEAR
962
+#define AUTO_BED_LEVELING_BILINEAR
965 963
 //#define AUTO_BED_LEVELING_UBL
966 964
 //#define MESH_BED_LEVELING
967 965
 

+ 1
- 1
Marlin/example_configurations/delta/generic/Configuration.h View File

@@ -142,7 +142,7 @@
142 142
 //#define MACHINE_UUID "00000000-0000-0000-0000-000000000000"
143 143
 
144 144
 // This defines the number of extruders
145
-// :[1, 2, 3, 4]
145
+// :[1, 2, 3, 4, 5]
146 146
 #define EXTRUDERS 1
147 147
 
148 148
 // Enable if your E steppers or extruder gear ratios are not identical

+ 38
- 3
Marlin/example_configurations/delta/generic/Configuration_adv.h View File

@@ -421,13 +421,31 @@
421 421
 //#define DIGIPOT_MOTOR_CURRENT {135,135,135,135,135} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
422 422
 //#define DAC_MOTOR_CURRENT_DEFAULT { 70, 80, 90, 80 } // Default drive percent - X, Y, Z, E axis
423 423
 
424
-/*  5DPRINT & AZTEEG_X3_PRO */
425
-//#define DIGIPOT_I2C  // uncomment to enable
424
+// Uncomment to enable an I2C based DIGIPOT like on the Azteeg X3 Pro
425
+//#define DIGIPOT_I2C
426 426
 #define DIGIPOT_I2C_NUM_CHANNELS 8 // 5DPRINT: 4     AZTEEG_X3_PRO: 8
427
-/* actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS */
427
+// Actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS
428 428
 #define DIGIPOT_I2C_MOTOR_CURRENTS {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0}  //  AZTEEG_X3_PRO
429 429
 
430 430
 //===========================================================================
431
+//============================== Delta Settings =============================
432
+//===========================================================================
433
+
434
+#if ENABLED(DELTA_AUTO_CALIBRATION)
435
+  /**
436
+   * Set the height short (H-10) with M665 Hx.xx.
437
+   * Set the delta_radius offset (R-5, R-10, R+5, R+10) with M665 Rx.xx.
438
+   * Run G33 Cx V3 with different values (C2, C-2).
439
+   * Take the average for R_FACTOR and maximum for H_FACTOR.
440
+   * If R_FACTOR is too low accuracy is reduced. Too high reduces iteration speed.
441
+   * Run the tests with default values!!!
442
+   */
443
+  //#define DELTA_CALIBRATE_EXPERT_MODE
444
+  //#define H_FACTOR  1.02 //  1.0 < H_FACTOR <  1.11, default  1.00
445
+  //#define R_FACTOR -3.95 // -6.7 < R_FACTOR < -2.25, default -2.25
446
+#endif
447
+
448
+//===========================================================================
431 449
 //=============================Additional Features===========================
432 450
 //===========================================================================
433 451
 
@@ -647,6 +665,11 @@
647 665
   #define MESH_MAX_X (X_MAX_POS - (MESH_INSET))
648 666
   #define MESH_MIN_Y (Y_MIN_POS + MESH_INSET)
649 667
   #define MESH_MAX_Y (Y_MAX_POS - (MESH_INSET))
668
+#elif ENABLED(AUTO_BED_LEVELING_UBL)
669
+  #define UBL_MESH_MIN_X (X_MIN_POS + UBL_MESH_INSET)
670
+  #define UBL_MESH_MAX_X (X_MAX_POS - (UBL_MESH_INSET))
671
+  #define UBL_MESH_MIN_Y (Y_MIN_POS + UBL_MESH_INSET)
672
+  #define UBL_MESH_MAX_Y (Y_MAX_POS - (UBL_MESH_INSET))
650 673
 #endif
651 674
 
652 675
 // @section extras
@@ -802,6 +825,7 @@
802 825
   //#define E1_IS_TMC
803 826
   //#define E2_IS_TMC
804 827
   //#define E3_IS_TMC
828
+  //#define E4_IS_TMC
805 829
 
806 830
   #define X_MAX_CURRENT     1000 // in mA
807 831
   #define X_SENSE_RESISTOR    91 // in mOhms
@@ -843,6 +867,10 @@
843 867
   #define E3_SENSE_RESISTOR   91
844 868
   #define E3_MICROSTEPS       16
845 869
 
870
+  #define E4_MAX_CURRENT    1000
871
+  #define E4_SENSE_RESISTOR   91
872
+  #define E4_MICROSTEPS       16
873
+
846 874
 #endif
847 875
 
848 876
 // @section TMC2130
@@ -884,6 +912,7 @@
884 912
   //#define E1_IS_TMC2130
885 913
   //#define E2_IS_TMC2130
886 914
   //#define E3_IS_TMC2130
915
+  //#define E4_IS_TMC2130
887 916
 
888 917
   /**
889 918
    * Stepper driver settings
@@ -969,6 +998,7 @@
969 998
   //#define E1_IS_L6470
970 999
   //#define E2_IS_L6470
971 1000
   //#define E3_IS_L6470
1001
+  //#define E4_IS_L6470
972 1002
 
973 1003
   #define X_MICROSTEPS      16 // number of microsteps
974 1004
   #define X_K_VAL           50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
@@ -1020,6 +1050,11 @@
1020 1050
   #define E3_OVERCURRENT  2000
1021 1051
   #define E3_STALLCURRENT 1500
1022 1052
 
1053
+  #define E4_MICROSTEPS     16
1054
+  #define E4_K_VAL          50
1055
+  #define E4_OVERCURRENT  2000
1056
+  #define E4_STALLCURRENT 1500
1057
+
1023 1058
 #endif
1024 1059
 
1025 1060
 /**

+ 1
- 1
Marlin/example_configurations/delta/kossel_mini/Configuration.h View File

@@ -142,7 +142,7 @@
142 142
 //#define MACHINE_UUID "00000000-0000-0000-0000-000000000000"
143 143
 
144 144
 // This defines the number of extruders
145
-// :[1, 2, 3, 4]
145
+// :[1, 2, 3, 4, 5]
146 146
 #define EXTRUDERS 1
147 147
 
148 148
 // Enable if your E steppers or extruder gear ratios are not identical

+ 38
- 3
Marlin/example_configurations/delta/kossel_mini/Configuration_adv.h View File

@@ -421,13 +421,31 @@
421 421
 //#define DIGIPOT_MOTOR_CURRENT {135,135,135,135,135} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
422 422
 //#define DAC_MOTOR_CURRENT_DEFAULT { 70, 80, 90, 80 } // Default drive percent - X, Y, Z, E axis
423 423
 
424
-/*  5DPRINT & AZTEEG_X3_PRO */
425
-//#define DIGIPOT_I2C  // uncomment to enable
424
+// Uncomment to enable an I2C based DIGIPOT like on the Azteeg X3 Pro
425
+//#define DIGIPOT_I2C
426 426
 #define DIGIPOT_I2C_NUM_CHANNELS 8 // 5DPRINT: 4     AZTEEG_X3_PRO: 8
427
-/* actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS */
427
+// Actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS
428 428
 #define DIGIPOT_I2C_MOTOR_CURRENTS {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0}  //  AZTEEG_X3_PRO
429 429
 
430 430
 //===========================================================================
431
+//============================== Delta Settings =============================
432
+//===========================================================================
433
+
434
+#if ENABLED(DELTA_AUTO_CALIBRATION)
435
+  /**
436
+   * Set the height short (H-10) with M665 Hx.xx.
437
+   * Set the delta_radius offset (R-5, R-10, R+5, R+10) with M665 Rx.xx.
438
+   * Run G33 Cx V3 with different values (C2, C-2).
439
+   * Take the average for R_FACTOR and maximum for H_FACTOR.
440
+   * If R_FACTOR is too low accuracy is reduced. Too high reduces iteration speed.
441
+   * Run the tests with default values!!!
442
+   */
443
+  //#define DELTA_CALIBRATE_EXPERT_MODE
444
+  //#define H_FACTOR  1.02 //  1.0 < H_FACTOR <  1.11, default  1.00
445
+  //#define R_FACTOR -3.95 // -6.7 < R_FACTOR < -2.25, default -2.25
446
+#endif
447
+
448
+//===========================================================================
431 449
 //=============================Additional Features===========================
432 450
 //===========================================================================
433 451
 
@@ -647,6 +665,11 @@
647 665
   #define MESH_MAX_X (X_MAX_POS - (MESH_INSET))
648 666
   #define MESH_MIN_Y (Y_MIN_POS + MESH_INSET)
649 667
   #define MESH_MAX_Y (Y_MAX_POS - (MESH_INSET))
668
+#elif ENABLED(AUTO_BED_LEVELING_UBL)
669
+  #define UBL_MESH_MIN_X (X_MIN_POS + UBL_MESH_INSET)
670
+  #define UBL_MESH_MAX_X (X_MAX_POS - (UBL_MESH_INSET))
671
+  #define UBL_MESH_MIN_Y (Y_MIN_POS + UBL_MESH_INSET)
672
+  #define UBL_MESH_MAX_Y (Y_MAX_POS - (UBL_MESH_INSET))
650 673
 #endif
651 674
 
652 675
 // @section extras
@@ -802,6 +825,7 @@
802 825
   //#define E1_IS_TMC
803 826
   //#define E2_IS_TMC
804 827
   //#define E3_IS_TMC
828
+  //#define E4_IS_TMC
805 829
 
806 830
   #define X_MAX_CURRENT     1000 // in mA
807 831
   #define X_SENSE_RESISTOR    91 // in mOhms
@@ -843,6 +867,10 @@
843 867
   #define E3_SENSE_RESISTOR   91
844 868
   #define E3_MICROSTEPS       16
845 869
 
870
+  #define E4_MAX_CURRENT    1000
871
+  #define E4_SENSE_RESISTOR   91
872
+  #define E4_MICROSTEPS       16
873
+
846 874
 #endif
847 875
 
848 876
 // @section TMC2130
@@ -884,6 +912,7 @@
884 912
   //#define E1_IS_TMC2130
885 913
   //#define E2_IS_TMC2130
886 914
   //#define E3_IS_TMC2130
915
+  //#define E4_IS_TMC2130
887 916
 
888 917
   /**
889 918
    * Stepper driver settings
@@ -969,6 +998,7 @@
969 998
   //#define E1_IS_L6470
970 999
   //#define E2_IS_L6470
971 1000
   //#define E3_IS_L6470
1001
+  //#define E4_IS_L6470
972 1002
 
973 1003
   #define X_MICROSTEPS      16 // number of microsteps
974 1004
   #define X_K_VAL           50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
@@ -1020,6 +1050,11 @@
1020 1050
   #define E3_OVERCURRENT  2000
1021 1051
   #define E3_STALLCURRENT 1500
1022 1052
 
1053
+  #define E4_MICROSTEPS     16
1054
+  #define E4_K_VAL          50
1055
+  #define E4_OVERCURRENT  2000
1056
+  #define E4_STALLCURRENT 1500
1057
+
1023 1058
 #endif
1024 1059
 
1025 1060
 /**

+ 1
- 1
Marlin/example_configurations/delta/kossel_pro/Configuration.h View File

@@ -146,7 +146,7 @@
146 146
 //#define MACHINE_UUID "00000000-0000-0000-0000-000000000000"
147 147
 
148 148
 // This defines the number of extruders
149
-// :[1, 2, 3, 4]
149
+// :[1, 2, 3, 4, 5]
150 150
 #define EXTRUDERS 1
151 151
 
152 152
 // Enable if your E steppers or extruder gear ratios are not identical

+ 20
- 3
Marlin/example_configurations/delta/kossel_pro/Configuration_adv.h View File

@@ -426,10 +426,10 @@
426 426
 //#define DIGIPOT_MOTOR_CURRENT {135,135,135,135,135} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
427 427
 //#define DAC_MOTOR_CURRENT_DEFAULT { 70, 80, 90, 80 } // Default drive percent - X, Y, Z, E axis
428 428
 
429
-/*  5DPRINT & AZTEEG_X3_PRO */
430
-//#define DIGIPOT_I2C  // uncomment to enable
429
+// Uncomment to enable an I2C based DIGIPOT like on the Azteeg X3 Pro
430
+//#define DIGIPOT_I2C
431 431
 #define DIGIPOT_I2C_NUM_CHANNELS 8 // 5DPRINT: 4     AZTEEG_X3_PRO: 8
432
-/* actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS */
432
+// Actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS
433 433
 #define DIGIPOT_I2C_MOTOR_CURRENTS {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0}  //  AZTEEG_X3_PRO
434 434
 
435 435
 //===========================================================================
@@ -652,6 +652,11 @@
652 652
   #define MESH_MAX_X (X_MAX_POS - (MESH_INSET))
653 653
   #define MESH_MIN_Y (Y_MIN_POS + MESH_INSET)
654 654
   #define MESH_MAX_Y (Y_MAX_POS - (MESH_INSET))
655
+#elif ENABLED(AUTO_BED_LEVELING_UBL)
656
+  #define UBL_MESH_MIN_X (X_MIN_POS + UBL_MESH_INSET)
657
+  #define UBL_MESH_MAX_X (X_MAX_POS - (UBL_MESH_INSET))
658
+  #define UBL_MESH_MIN_Y (Y_MIN_POS + UBL_MESH_INSET)
659
+  #define UBL_MESH_MAX_Y (Y_MAX_POS - (UBL_MESH_INSET))
655 660
 #endif
656 661
 
657 662
 // @section extras
@@ -807,6 +812,7 @@
807 812
   //#define E1_IS_TMC
808 813
   //#define E2_IS_TMC
809 814
   //#define E3_IS_TMC
815
+  //#define E4_IS_TMC
810 816
 
811 817
   #define X_MAX_CURRENT     1000 // in mA
812 818
   #define X_SENSE_RESISTOR    91 // in mOhms
@@ -848,6 +854,10 @@
848 854
   #define E3_SENSE_RESISTOR   91
849 855
   #define E3_MICROSTEPS       16
850 856
 
857
+  #define E4_MAX_CURRENT    1000
858
+  #define E4_SENSE_RESISTOR   91
859
+  #define E4_MICROSTEPS       16
860
+
851 861
 #endif
852 862
 
853 863
 // @section TMC2130
@@ -889,6 +899,7 @@
889 899
   //#define E1_IS_TMC2130
890 900
   //#define E2_IS_TMC2130
891 901
   //#define E3_IS_TMC2130
902
+  //#define E4_IS_TMC2130
892 903
 
893 904
   /**
894 905
    * Stepper driver settings
@@ -974,6 +985,7 @@
974 985
   //#define E1_IS_L6470
975 986
   //#define E2_IS_L6470
976 987
   //#define E3_IS_L6470
988
+  //#define E4_IS_L6470
977 989
 
978 990
   #define X_MICROSTEPS      16 // number of microsteps
979 991
   #define X_K_VAL           50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
@@ -1025,6 +1037,11 @@
1025 1037
   #define E3_OVERCURRENT  2000
1026 1038
   #define E3_STALLCURRENT 1500
1027 1039
 
1040
+  #define E4_MICROSTEPS     16
1041
+  #define E4_K_VAL          50
1042
+  #define E4_OVERCURRENT  2000
1043
+  #define E4_STALLCURRENT 1500
1044
+
1028 1045
 #endif
1029 1046
 
1030 1047
 /**

+ 1
- 1
Marlin/example_configurations/delta/kossel_xl/Configuration.h View File

@@ -142,7 +142,7 @@
142 142
 //#define MACHINE_UUID "00000000-0000-0000-0000-000000000000"
143 143
 
144 144
 // This defines the number of extruders
145
-// :[1, 2, 3, 4]
145
+// :[1, 2, 3, 4, 5]
146 146
 #define EXTRUDERS 1
147 147
 
148 148
 // Enable if your E steppers or extruder gear ratios are not identical

+ 20
- 3
Marlin/example_configurations/delta/kossel_xl/Configuration_adv.h View File

@@ -421,10 +421,10 @@
421 421
 //#define DIGIPOT_MOTOR_CURRENT {135,135,135,135,135} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
422 422
 //#define DAC_MOTOR_CURRENT_DEFAULT { 70, 80, 90, 80 } // Default drive percent - X, Y, Z, E axis
423 423
 
424
-/*  5DPRINT & AZTEEG_X3_PRO */
425
-//#define DIGIPOT_I2C  // uncomment to enable
424
+// Uncomment to enable an I2C based DIGIPOT like on the Azteeg X3 Pro
425
+//#define DIGIPOT_I2C
426 426
 #define DIGIPOT_I2C_NUM_CHANNELS 8 // 5DPRINT: 4     AZTEEG_X3_PRO: 8
427
-/* actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS */
427
+// Actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS
428 428
 #define DIGIPOT_I2C_MOTOR_CURRENTS {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0}  //  AZTEEG_X3_PRO
429 429
 
430 430
 //===========================================================================
@@ -647,6 +647,11 @@
647 647
   #define MESH_MAX_X (X_MAX_POS - (MESH_INSET))
648 648
   #define MESH_MIN_Y (Y_MIN_POS + MESH_INSET)
649 649
   #define MESH_MAX_Y (Y_MAX_POS - (MESH_INSET))
650
+#elif ENABLED(AUTO_BED_LEVELING_UBL)
651
+  #define UBL_MESH_MIN_X (X_MIN_POS + UBL_MESH_INSET)
652
+  #define UBL_MESH_MAX_X (X_MAX_POS - (UBL_MESH_INSET))
653
+  #define UBL_MESH_MIN_Y (Y_MIN_POS + UBL_MESH_INSET)
654
+  #define UBL_MESH_MAX_Y (Y_MAX_POS - (UBL_MESH_INSET))
650 655
 #endif
651 656
 
652 657
 // @section extras
@@ -802,6 +807,7 @@
802 807
   //#define E1_IS_TMC
803 808
   //#define E2_IS_TMC
804 809
   //#define E3_IS_TMC
810
+  //#define E4_IS_TMC
805 811
 
806 812
   #define X_MAX_CURRENT     1000 // in mA
807 813
   #define X_SENSE_RESISTOR    91 // in mOhms
@@ -843,6 +849,10 @@
843 849
   #define E3_SENSE_RESISTOR   91
844 850
   #define E3_MICROSTEPS       16
845 851
 
852
+  #define E4_MAX_CURRENT    1000
853
+  #define E4_SENSE_RESISTOR   91
854
+  #define E4_MICROSTEPS       16
855
+
846 856
 #endif
847 857
 
848 858
 // @section TMC2130
@@ -884,6 +894,7 @@
884 894
   //#define E1_IS_TMC2130
885 895
   //#define E2_IS_TMC2130
886 896
   //#define E3_IS_TMC2130
897
+  //#define E4_IS_TMC2130
887 898
 
888 899
   /**
889 900
    * Stepper driver settings
@@ -969,6 +980,7 @@
969 980
   //#define E1_IS_L6470
970 981
   //#define E2_IS_L6470
971 982
   //#define E3_IS_L6470
983
+  //#define E4_IS_L6470
972 984
 
973 985
   #define X_MICROSTEPS      16 // number of microsteps
974 986
   #define X_K_VAL           50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
@@ -1020,6 +1032,11 @@
1020 1032
   #define E3_OVERCURRENT  2000
1021 1033
   #define E3_STALLCURRENT 1500
1022 1034
 
1035
+  #define E4_MICROSTEPS     16
1036
+  #define E4_K_VAL          50
1037
+  #define E4_OVERCURRENT  2000
1038
+  #define E4_STALLCURRENT 1500
1039
+
1023 1040
 #endif
1024 1041
 
1025 1042
 /**

+ 1
- 1
Marlin/example_configurations/makibox/Configuration.h View File

@@ -142,7 +142,7 @@
142 142
 //#define MACHINE_UUID "00000000-0000-0000-0000-000000000000"
143 143
 
144 144
 // This defines the number of extruders
145
-// :[1, 2, 3, 4]
145
+// :[1, 2, 3, 4, 5]
146 146
 #define EXTRUDERS 1
147 147
 
148 148
 // Enable if your E steppers or extruder gear ratios are not identical

+ 20
- 3
Marlin/example_configurations/makibox/Configuration_adv.h View File

@@ -419,10 +419,10 @@
419 419
 //#define DIGIPOT_MOTOR_CURRENT {135,135,135,135,135} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
420 420
 //#define DAC_MOTOR_CURRENT_DEFAULT { 70, 80, 90, 80 } // Default drive percent - X, Y, Z, E axis
421 421
 
422
-/*  5DPRINT & AZTEEG_X3_PRO */
423
-//#define DIGIPOT_I2C  // uncomment to enable
422
+// Uncomment to enable an I2C based DIGIPOT like on the Azteeg X3 Pro
423
+//#define DIGIPOT_I2C
424 424
 #define DIGIPOT_I2C_NUM_CHANNELS 4 // 5DPRINT: 4     AZTEEG_X3_PRO: 8
425
-// actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS
425
+// Actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS
426 426
 #define DIGIPOT_I2C_MOTOR_CURRENTS { 1.7, 1.7, 1.7, 1.7 }  // 5DPRINT
427 427
 
428 428
 //===========================================================================
@@ -645,6 +645,11 @@
645 645
   #define MESH_MAX_X (X_MAX_POS - (MESH_INSET))
646 646
   #define MESH_MIN_Y (Y_MIN_POS + MESH_INSET)
647 647
   #define MESH_MAX_Y (Y_MAX_POS - (MESH_INSET))
648
+#elif ENABLED(AUTO_BED_LEVELING_UBL)
649
+  #define UBL_MESH_MIN_X (X_MIN_POS + UBL_MESH_INSET)
650
+  #define UBL_MESH_MAX_X (X_MAX_POS - (UBL_MESH_INSET))
651
+  #define UBL_MESH_MIN_Y (Y_MIN_POS + UBL_MESH_INSET)
652
+  #define UBL_MESH_MAX_Y (Y_MAX_POS - (UBL_MESH_INSET))
648 653
 #endif
649 654
 
650 655
 // @section extras
@@ -800,6 +805,7 @@
800 805
   //#define E1_IS_TMC
801 806
   //#define E2_IS_TMC
802 807
   //#define E3_IS_TMC
808
+  //#define E4_IS_TMC
803 809
 
804 810
   #define X_MAX_CURRENT     1000 // in mA
805 811
   #define X_SENSE_RESISTOR    91 // in mOhms
@@ -841,6 +847,10 @@
841 847
   #define E3_SENSE_RESISTOR   91
842 848
   #define E3_MICROSTEPS       16
843 849
 
850
+  #define E4_MAX_CURRENT    1000
851
+  #define E4_SENSE_RESISTOR   91
852
+  #define E4_MICROSTEPS       16
853
+
844 854
 #endif
845 855
 
846 856
 // @section TMC2130
@@ -882,6 +892,7 @@
882 892
   //#define E1_IS_TMC2130
883 893
   //#define E2_IS_TMC2130
884 894
   //#define E3_IS_TMC2130
895
+  //#define E4_IS_TMC2130
885 896
 
886 897
   /**
887 898
    * Stepper driver settings
@@ -967,6 +978,7 @@
967 978
   //#define E1_IS_L6470
968 979
   //#define E2_IS_L6470
969 980
   //#define E3_IS_L6470
981
+  //#define E4_IS_L6470
970 982
 
971 983
   #define X_MICROSTEPS      16 // number of microsteps
972 984
   #define X_K_VAL           50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
@@ -1018,6 +1030,11 @@
1018 1030
   #define E3_OVERCURRENT  2000
1019 1031
   #define E3_STALLCURRENT 1500
1020 1032
 
1033
+  #define E4_MICROSTEPS     16
1034
+  #define E4_K_VAL          50
1035
+  #define E4_OVERCURRENT  2000
1036
+  #define E4_STALLCURRENT 1500
1037
+
1021 1038
 #endif
1022 1039
 
1023 1040
 /**

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

@@ -142,7 +142,7 @@
142 142
 //#define MACHINE_UUID "00000000-0000-0000-0000-000000000000"
143 143
 
144 144
 // This defines the number of extruders
145
-// :[1, 2, 3, 4]
145
+// :[1, 2, 3, 4, 5]
146 146
 #define EXTRUDERS 1
147 147
 
148 148
 // Enable if your E steppers or extruder gear ratios are not identical

+ 20
- 3
Marlin/example_configurations/tvrrug/Round2/Configuration_adv.h View File

@@ -419,10 +419,10 @@
419 419
 //#define DIGIPOT_MOTOR_CURRENT {135,135,135,135,135} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
420 420
 //#define DAC_MOTOR_CURRENT_DEFAULT { 70, 80, 90, 80 } // Default drive percent - X, Y, Z, E axis
421 421
 
422
-/*  5DPRINT & AZTEEG_X3_PRO */
423
-//#define DIGIPOT_I2C  // uncomment to enable
422
+// Uncomment to enable an I2C based DIGIPOT like on the Azteeg X3 Pro
423
+//#define DIGIPOT_I2C
424 424
 #define DIGIPOT_I2C_NUM_CHANNELS 8 // 5DPRINT: 4     AZTEEG_X3_PRO: 8
425
-/* actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS */
425
+// Actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS
426 426
 #define DIGIPOT_I2C_MOTOR_CURRENTS {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0}  //  AZTEEG_X3_PRO
427 427
 
428 428
 //===========================================================================
@@ -645,6 +645,11 @@
645 645
   #define MESH_MAX_X (X_MAX_POS - (MESH_INSET))
646 646
   #define MESH_MIN_Y (Y_MIN_POS + MESH_INSET)
647 647
   #define MESH_MAX_Y (Y_MAX_POS - (MESH_INSET))
648
+#elif ENABLED(AUTO_BED_LEVELING_UBL)
649
+  #define UBL_MESH_MIN_X (X_MIN_POS + UBL_MESH_INSET)
650
+  #define UBL_MESH_MAX_X (X_MAX_POS - (UBL_MESH_INSET))
651
+  #define UBL_MESH_MIN_Y (Y_MIN_POS + UBL_MESH_INSET)
652
+  #define UBL_MESH_MAX_Y (Y_MAX_POS - (UBL_MESH_INSET))
648 653
 #endif
649 654
 
650 655
 // @section extras
@@ -800,6 +805,7 @@
800 805
   //#define E1_IS_TMC
801 806
   //#define E2_IS_TMC
802 807
   //#define E3_IS_TMC
808
+  //#define E4_IS_TMC
803 809
 
804 810
   #define X_MAX_CURRENT     1000 // in mA
805 811
   #define X_SENSE_RESISTOR    91 // in mOhms
@@ -841,6 +847,10 @@
841 847
   #define E3_SENSE_RESISTOR   91
842 848
   #define E3_MICROSTEPS       16
843 849
 
850
+  #define E4_MAX_CURRENT    1000
851
+  #define E4_SENSE_RESISTOR   91
852
+  #define E4_MICROSTEPS       16
853
+
844 854
 #endif
845 855
 
846 856
 // @section TMC2130
@@ -882,6 +892,7 @@
882 892
   //#define E1_IS_TMC2130
883 893
   //#define E2_IS_TMC2130
884 894
   //#define E3_IS_TMC2130
895
+  //#define E4_IS_TMC2130
885 896
 
886 897
   /**
887 898
    * Stepper driver settings
@@ -967,6 +978,7 @@
967 978
   //#define E1_IS_L6470
968 979
   //#define E2_IS_L6470
969 980
   //#define E3_IS_L6470
981
+  //#define E4_IS_L6470
970 982
 
971 983
   #define X_MICROSTEPS      16 // number of microsteps
972 984
   #define X_K_VAL           50 // 0 - 255, Higher values, are higher power. Be careful not to go too high
@@ -1018,6 +1030,11 @@
1018 1030
   #define E3_OVERCURRENT  2000
1019 1031
   #define E3_STALLCURRENT 1500
1020 1032
 
1033
+  #define E4_MICROSTEPS     16
1034
+  #define E4_K_VAL          50
1035
+  #define E4_OVERCURRENT  2000
1036
+  #define E4_STALLCURRENT 1500
1037
+
1021 1038
 #endif
1022 1039
 
1023 1040
 /**

+ 1
- 0
Marlin/language_an.h View File

@@ -112,6 +112,7 @@
112 112
 #define MSG_E2STEPS                         _UxGT("E2 trangos/mm")
113 113
 #define MSG_E3STEPS                         _UxGT("E3 trangos/mm")
114 114
 #define MSG_E4STEPS                         _UxGT("E4 trangos/mm")
115
+#define MSG_E5STEPS                         _UxGT("E5 trangos/mm")
115 116
 #define MSG_TEMPERATURE                     _UxGT("Temperatura")
116 117
 #define MSG_MOTION                          _UxGT("Movimiento")
117 118
 #define MSG_VOLUMETRIC                      _UxGT("Filamento")

+ 1
- 0
Marlin/language_bg.h View File

@@ -113,6 +113,7 @@
113 113
 #define MSG_E2STEPS                         _UxGT("E2 стъпки/mm")
114 114
 #define MSG_E3STEPS                         _UxGT("E3 стъпки/mm")
115 115
 #define MSG_E4STEPS                         _UxGT("E4 стъпки/mm")
116
+#define MSG_E5STEPS                         _UxGT("E5 стъпки/mm")
116 117
 #define MSG_TEMPERATURE                     _UxGT("Температура")
117 118
 #define MSG_MOTION                          _UxGT("Движение")
118 119
 #define MSG_VOLUMETRIC                      _UxGT("Нишка")

+ 1
- 0
Marlin/language_ca.h View File

@@ -117,6 +117,7 @@
117 117
 #define MSG_E2STEPS                         _UxGT("E2passos/mm")
118 118
 #define MSG_E3STEPS                         _UxGT("E3passos/mm")
119 119
 #define MSG_E4STEPS                         _UxGT("E4passos/mm")
120
+#define MSG_E5STEPS                         _UxGT("E5passos/mm")
120 121
 #define MSG_TEMPERATURE                     _UxGT("Temperatura")
121 122
 #define MSG_MOTION                          _UxGT("Moviment")
122 123
 #define MSG_VOLUMETRIC                      _UxGT("Filament")

+ 1
- 0
Marlin/language_cn.h View File

@@ -105,6 +105,7 @@
105 105
 #define MSG_E2STEPS                         "E2steps/mm"
106 106
 #define MSG_E3STEPS                         "E3steps/mm"
107 107
 #define MSG_E4STEPS                         "E4steps/mm"
108
+#define MSG_E5STEPS                         "E5steps/mm"
108 109
 #define MSG_TEMPERATURE                     "\xc9\xd2"
109 110
 #define MSG_MOTION                          "\xdf\xb2"
110 111
 #define MSG_VOLUMETRIC                      "Filament"

+ 1
- 0
Marlin/language_cz.h View File

@@ -116,6 +116,7 @@
116 116
 #define MSG_E2STEPS                         _UxGT("E2kroku/mm")
117 117
 #define MSG_E3STEPS                         _UxGT("E3kroku/mm")
118 118
 #define MSG_E4STEPS                         _UxGT("E4kroku/mm")
119
+#define MSG_E5STEPS                         _UxGT("E5kroku/mm")
119 120
 #define MSG_TEMPERATURE                     _UxGT("Teplota")
120 121
 #define MSG_MOTION                          _UxGT("Pohyb")
121 122
 #define MSG_VOLUMETRIC                      _UxGT("Filament")

+ 1
- 0
Marlin/language_da.h View File

@@ -114,6 +114,7 @@
114 114
 #define MSG_E2STEPS                         _UxGT("E2steps/mm")
115 115
 #define MSG_E3STEPS                         _UxGT("E3steps/mm")
116 116
 #define MSG_E4STEPS                         _UxGT("E4steps/mm")
117
+#define MSG_E5STEPS                         _UxGT("E5steps/mm")
117 118
 #define MSG_TEMPERATURE                     _UxGT("Temperatur")
118 119
 #define MSG_MOTION                          _UxGT("Bevægelse")
119 120
 #define MSG_VOLUMETRIC                      _UxGT("Filament")

+ 1
- 0
Marlin/language_de.h View File

@@ -118,6 +118,7 @@
118 118
 #define MSG_E2STEPS                         _UxGT("E2 Steps/mm")
119 119
 #define MSG_E3STEPS                         _UxGT("E3 Steps/mm")
120 120
 #define MSG_E4STEPS                         _UxGT("E4 Steps/mm")
121
+#define MSG_E5STEPS                         _UxGT("E5 Steps/mm")
121 122
 #define MSG_TEMPERATURE                     _UxGT("Temperatur")
122 123
 #define MSG_MOTION                          _UxGT("Bewegung")
123 124
 #define MSG_VOLUMETRIC                      _UxGT("Filament")

+ 1
- 0
Marlin/language_el-gr.h View File

@@ -112,6 +112,7 @@
112 112
 #define MSG_E2STEPS                         _UxGT("Bήματα Ε2 ανά μμ")
113 113
 #define MSG_E3STEPS                         _UxGT("Bήματα Ε3 ανά μμ")
114 114
 #define MSG_E4STEPS                         _UxGT("Bήματα Ε4 ανά μμ")
115
+#define MSG_E5STEPS                         _UxGT("Bήματα Ε5 ανά μμ")
115 116
 #define MSG_TEMPERATURE                     _UxGT("Θερμοκρασία")
116 117
 #define MSG_MOTION                          _UxGT("Κίνηση")
117 118
 #define MSG_VOLUMETRIC                      _UxGT("Νήμα")

+ 1
- 0
Marlin/language_el.h View File

@@ -112,6 +112,7 @@
112 112
 #define MSG_E2STEPS                         _UxGT("Bήματα Ε2 ανά μμ")
113 113
 #define MSG_E3STEPS                         _UxGT("Bήματα Ε3 ανά μμ")
114 114
 #define MSG_E4STEPS                         _UxGT("Bήματα Ε4 ανά μμ")
115
+#define MSG_E5STEPS                         _UxGT("Bήματα Ε5 ανά μμ")
115 116
 #define MSG_TEMPERATURE                     _UxGT("Θερμοκρασία")
116 117
 #define MSG_MOTION                          _UxGT("Κίνηση")
117 118
 #define MSG_VOLUMETRIC                      _UxGT("Νήμα")

+ 3
- 0
Marlin/language_en.h View File

@@ -291,6 +291,9 @@
291 291
 #ifndef MSG_E4STEPS
292 292
   #define MSG_E4STEPS                         _UxGT("E4steps/mm")
293 293
 #endif
294
+#ifndef MSG_E5STEPS
295
+  #define MSG_E5STEPS                         _UxGT("E5steps/mm")
296
+#endif
294 297
 #ifndef MSG_TEMPERATURE
295 298
   #define MSG_TEMPERATURE                     _UxGT("Temperature")
296 299
 #endif

+ 1
- 0
Marlin/language_es.h View File

@@ -116,6 +116,7 @@
116 116
 #define MSG_E2STEPS                         _UxGT("E2 pasos/mm")
117 117
 #define MSG_E3STEPS                         _UxGT("E3 pasos/mm")
118 118
 #define MSG_E4STEPS                         _UxGT("E4 pasos/mm")
119
+#define MSG_E5STEPS                         _UxGT("E5 pasos/mm")
119 120
 #define MSG_TEMPERATURE                     _UxGT("Temperatura")
120 121
 #define MSG_MOTION                          _UxGT("Movimiento")
121 122
 #define MSG_VOLUMETRIC                      _UxGT("Filamento")

+ 1
- 0
Marlin/language_eu.h View File

@@ -103,6 +103,7 @@
103 103
 #define MSG_E2STEPS                         _UxGT("E2 pausoak/mm")
104 104
 #define MSG_E3STEPS                         _UxGT("E3 pausoak/mm")
105 105
 #define MSG_E4STEPS                         _UxGT("E4 pausoak/mm")
106
+#define MSG_E5STEPS                         _UxGT("E5 pausoak/mm")
106 107
 #define MSG_TEMPERATURE                     _UxGT("Tenperatura")
107 108
 #define MSG_MOTION                          _UxGT("Mugimendua")
108 109
 #define MSG_VOLUMETRIC                      _UxGT("Filament")

+ 1
- 0
Marlin/language_fi.h View File

@@ -104,6 +104,7 @@
104 104
 #define MSG_E2STEPS                         _UxGT("E2steps/mm")
105 105
 #define MSG_E3STEPS                         _UxGT("E3steps/mm")
106 106
 #define MSG_E4STEPS                         _UxGT("E4steps/mm")
107
+#define MSG_E5STEPS                         _UxGT("E5steps/mm")
107 108
 #define MSG_TEMPERATURE                     _UxGT("Lämpötila")
108 109
 #define MSG_MOTION                          _UxGT("Liike")
109 110
 #define MSG_VOLUMETRIC                      _UxGT("Filament")

+ 1
- 0
Marlin/language_fr.h View File

@@ -117,6 +117,7 @@
117 117
 #define MSG_E2STEPS                         _UxGT("E2pas/mm")
118 118
 #define MSG_E3STEPS                         _UxGT("E3pas/mm")
119 119
 #define MSG_E4STEPS                         _UxGT("E4pas/mm")
120
+#define MSG_E5STEPS                         _UxGT("E5pas/mm")
120 121
 #define MSG_TEMPERATURE                     _UxGT("Tempzrature")
121 122
 #define MSG_MOTION                          _UxGT("Mouvement")
122 123
 #define MSG_VOLUMETRIC                      _UxGT("Filament")

+ 1
- 0
Marlin/language_gl.h View File

@@ -113,6 +113,7 @@
113 113
 #define MSG_E2STEPS                         _UxGT("E2pasos/mm")
114 114
 #define MSG_E3STEPS                         _UxGT("E3pasos/mm")
115 115
 #define MSG_E4STEPS                         _UxGT("E4pasos/mm")
116
+#define MSG_E5STEPS                         _UxGT("E5pasos/mm")
116 117
 #define MSG_TEMPERATURE                     _UxGT("Temperatura")
117 118
 #define MSG_MOTION                          _UxGT("Movemento")
118 119
 #define MSG_VOLUMETRIC                      _UxGT("Filamento")

+ 1
- 0
Marlin/language_hr.h View File

@@ -112,6 +112,7 @@
112 112
 #define MSG_E2STEPS                         _UxGT("E2steps/mm")
113 113
 #define MSG_E3STEPS                         _UxGT("E3steps/mm")
114 114
 #define MSG_E4STEPS                         _UxGT("E4steps/mm")
115
+#define MSG_E5STEPS                         _UxGT("E5steps/mm")
115 116
 #define MSG_TEMPERATURE                     _UxGT("Temperature")
116 117
 #define MSG_MOTION                          _UxGT("Gibanje")
117 118
 #define MSG_VOLUMETRIC                      _UxGT("Filament")

+ 1
- 0
Marlin/language_it.h View File

@@ -120,6 +120,7 @@
120 120
 #define MSG_E2STEPS                         _UxGT("E2passi/mm")
121 121
 #define MSG_E3STEPS                         _UxGT("E3passi/mm")
122 122
 #define MSG_E4STEPS                         _UxGT("E4passi/mm")
123
+#define MSG_E5STEPS                         _UxGT("E5passi/mm")
123 124
 #define MSG_TEMPERATURE                     _UxGT("Temperatura")
124 125
 #define MSG_MOTION                          _UxGT("Movimento")
125 126
 #define MSG_VOLUMETRIC                      _UxGT("Filamento")

+ 2
- 0
Marlin/language_kana.h View File

@@ -137,6 +137,7 @@
137 137
   #define MSG_E2STEPS                         "E2steps/mm"
138 138
   #define MSG_E3STEPS                         "E3steps/mm"
139 139
   #define MSG_E4STEPS                         "E4steps/mm"
140
+  #define MSG_E5STEPS                         "E5steps/mm"
140 141
 #else
141 142
   #define MSG_XSTEPS                          "Xsteps"
142 143
   #define MSG_YSTEPS                          "Ysteps"
@@ -146,6 +147,7 @@
146 147
   #define MSG_E2STEPS                         "E2steps"
147 148
   #define MSG_E3STEPS                         "E3steps"
148 149
   #define MSG_E4STEPS                         "E4steps"
150
+  #define MSG_E5STEPS                         "E5steps"
149 151
 #endif
150 152
 #define MSG_TEMPERATURE                     "\xb5\xdd\xc4\xde"                                                 // "オンド" ("Temperature")
151 153
 #define MSG_MOTION                          "\xb3\xba\xde\xb7\xbe\xaf\xc3\xb2"                                 // "ウゴキセッテイ" ("Motion")

+ 1
- 0
Marlin/language_kana_utf8.h View File

@@ -122,6 +122,7 @@
122 122
 #define MSG_E2STEPS                         _UxGT("E2steps/mm")
123 123
 #define MSG_E3STEPS                         _UxGT("E3steps/mm")
124 124
 #define MSG_E4STEPS                         _UxGT("E4steps/mm")
125
+#define MSG_E5STEPS                         _UxGT("E5steps/mm")
125 126
 #define MSG_TEMPERATURE                     _UxGT("オンド")                      // "Temperature"
126 127
 #define MSG_MOTION                          _UxGT("ウゴキセッテイ")                // "Motion"
127 128
 #define MSG_VOLUMETRIC                      _UxGT("フィラメント")                   // "Filament"

+ 1
- 0
Marlin/language_nl.h View File

@@ -112,6 +112,7 @@
112 112
 #define MSG_E2STEPS                         _UxGT("E2steps/mm")
113 113
 #define MSG_E3STEPS                         _UxGT("E3steps/mm")
114 114
 #define MSG_E4STEPS                         _UxGT("E4steps/mm")
115
+#define MSG_E5STEPS                         _UxGT("E5steps/mm")
115 116
 #define MSG_TEMPERATURE                     _UxGT("Temperatuur")
116 117
 #define MSG_MOTION                          _UxGT("Beweging")
117 118
 #define MSG_VOLUMETRIC                      _UxGT("Filament")

+ 1
- 0
Marlin/language_pl.h View File

@@ -112,6 +112,7 @@
112 112
 #define MSG_E2STEPS                         _UxGT("krokiE2/mm")
113 113
 #define MSG_E3STEPS                         _UxGT("krokiE3/mm")
114 114
 #define MSG_E4STEPS                         _UxGT("krokiE4/mm")
115
+#define MSG_E5STEPS                         _UxGT("krokiE5/mm")
115 116
 #define MSG_TEMPERATURE                     _UxGT("Temperatura")
116 117
 #define MSG_MOTION                          _UxGT("Ruch")
117 118
 #define MSG_VOLUMETRIC                      _UxGT("Filament")

+ 1
- 0
Marlin/language_pt-br.h View File

@@ -105,6 +105,7 @@
105 105
 #define MSG_E2STEPS                         "E2/mm"
106 106
 #define MSG_E3STEPS                         "E3/mm"
107 107
 #define MSG_E4STEPS                         "E4/mm"
108
+#define MSG_E5STEPS                         "E5/mm"
108 109
 #define MSG_TEMPERATURE                     "Temperatura"
109 110
 #define MSG_MOTION                          "Movimento"
110 111
 #define MSG_VOLUMETRIC                      "Filamento"

+ 1
- 0
Marlin/language_pt-br_utf8.h View File

@@ -105,6 +105,7 @@
105 105
 #define MSG_E2STEPS                         _UxGT("E2/mm")
106 106
 #define MSG_E3STEPS                         _UxGT("E3/mm")
107 107
 #define MSG_E4STEPS                         _UxGT("E4/mm")
108
+#define MSG_E5STEPS                         _UxGT("E5/mm")
108 109
 #define MSG_TEMPERATURE                     _UxGT("Temperatura")
109 110
 #define MSG_MOTION                          _UxGT("Movimento")
110 111
 #define MSG_VOLUMETRIC                      _UxGT("Filamento")

+ 1
- 0
Marlin/language_pt.h View File

@@ -109,6 +109,7 @@
109 109
 #define MSG_E2STEPS                         "E2 passo/mm"
110 110
 #define MSG_E3STEPS                         "E3 passo/mm"
111 111
 #define MSG_E4STEPS                         "E4 passo/mm"
112
+#define MSG_E5STEPS                         "E5 passo/mm"
112 113
 #define MSG_TEMPERATURE                     "Temperatura"
113 114
 #define MSG_MOTION                          "Movimento"
114 115
 #define MSG_VOLUMETRIC                      "Filamento"

+ 1
- 0
Marlin/language_pt_utf8.h View File

@@ -109,6 +109,7 @@
109 109
 #define MSG_E2STEPS                         _UxGT("E2 passo/mm")
110 110
 #define MSG_E3STEPS                         _UxGT("E3 passo/mm")
111 111
 #define MSG_E4STEPS                         _UxGT("E4 passo/mm")
112
+#define MSG_E5STEPS                         _UxGT("E5 passo/mm")
112 113
 #define MSG_TEMPERATURE                     _UxGT("Temperatura")
113 114
 #define MSG_MOTION                          _UxGT("Movimento")
114 115
 #define MSG_VOLUMETRIC                      _UxGT("Filamento")

+ 1
- 0
Marlin/language_tr.h View File

@@ -117,6 +117,7 @@
117 117
 #define MSG_E2STEPS                         _UxGT("E2steps/mm")                                         // E2steps/mm
118 118
 #define MSG_E3STEPS                         _UxGT("E3steps/mm")                                         // E3steps/mm
119 119
 #define MSG_E4STEPS                         _UxGT("E4steps/mm")                                         // E4steps/mm
120
+#define MSG_E5STEPS                         _UxGT("E5steps/mm")                                         // E4steps/mm
120 121
 #define MSG_TEMPERATURE                     _UxGT("Sıcaklık")                                           // Sıcaklık
121 122
 #define MSG_MOTION                          _UxGT("Hareket")                                            // Hareket
122 123
 #define MSG_VOLUMETRIC                      _UxGT("Filaman")                                            // Filaman

+ 1
- 0
Marlin/language_uk.h View File

@@ -113,6 +113,7 @@
113 113
 #define MSG_E2STEPS                         _UxGT("E2кроків/мм")
114 114
 #define MSG_E3STEPS                         _UxGT("E3кроків/мм")
115 115
 #define MSG_E4STEPS                         _UxGT("E4кроків/мм")
116
+#define MSG_E5STEPS                         _UxGT("E5кроків/мм")
116 117
 #define MSG_TEMPERATURE                     _UxGT("Температура")
117 118
 #define MSG_MOTION                          _UxGT("Рух")
118 119
 #define MSG_VOLUMETRIC                      _UxGT("Волокно")

+ 6
- 0
Marlin/pinsDebug_list.h View File

@@ -212,6 +212,9 @@
212 212
 #if PIN_EXISTS(E3_STEP)
213 213
   REPORT_NAME_DIGITAL(E3_STEP_PIN, __LINE__ )
214 214
 #endif
215
+#if PIN_EXISTS(E4_AUTO_FAN)
216
+  REPORT_NAME_DIGITAL(E4_AUTO_FAN_PIN, __LINE__ )
217
+#endif
215 218
 #if PIN_EXISTS(E4_DIR)
216 219
   REPORT_NAME_DIGITAL(E4_DIR_PIN, __LINE__ )
217 220
 #endif
@@ -434,6 +437,9 @@
434 437
 #if PIN_EXISTS(ORIG_E3_AUTO_FAN)
435 438
   REPORT_NAME_DIGITAL(ORIG_E3_AUTO_FAN_PIN, __LINE__ )
436 439
 #endif
440
+#if PIN_EXISTS(ORIG_E4_AUTO_FAN)
441
+  REPORT_NAME_DIGITAL(ORIG_E4_AUTO_FAN_PIN, __LINE__ )
442
+#endif
437 443
 #if PIN_EXISTS(PHOTOGRAPH)
438 444
   REPORT_NAME_DIGITAL(PHOTOGRAPH_PIN, __LINE__ )
439 445
 #endif

+ 6
- 0
Marlin/serial.h View File

@@ -65,6 +65,12 @@ extern const char errormagic[] PROGMEM;
65 65
 #define SERIAL_ERRORLN(x)              SERIAL_PROTOCOLLN(x)
66 66
 #define SERIAL_ERRORLNPGM(x)           SERIAL_PROTOCOLLNPGM(x)
67 67
 
68
+// These macros compensate for float imprecision
69
+#define SERIAL_PROTOCOLPAIR_F(name, value)    SERIAL_PROTOCOLPAIR(name, FIXFLOAT(value))
70
+#define SERIAL_PROTOCOLLNPAIR_F(name, value)  SERIAL_PROTOCOLLNPAIR(name, FIXFLOAT(value))
71
+#define SERIAL_ECHOPAIR_F(name,value)         SERIAL_ECHOPAIR(name, FIXFLOAT(value))
72
+#define SERIAL_ECHOLNPAIR_F(name, value)      SERIAL_ECHOLNPAIR(name, FIXFLOAT(value))
73
+
68 74
 void serial_echopair_P(const char* s_P, const char *v);
69 75
 void serial_echopair_P(const char* s_P, char v);
70 76
 void serial_echopair_P(const char* s_P, int v);

+ 7
- 0
Marlin/stepper.cpp View File

@@ -931,6 +931,9 @@ void Stepper::init() {
931 931
   #if HAS_E3_DIR
932 932
     E3_DIR_INIT;
933 933
   #endif
934
+  #if HAS_E4_DIR
935
+    E4_DIR_INIT;
936
+  #endif
934 937
 
935 938
   // Init Enable Pins - steppers default to disabled.
936 939
   #if HAS_X_ENABLE
@@ -973,6 +976,10 @@ void Stepper::init() {
973 976
     E3_ENABLE_INIT;
974 977
     if (!E_ENABLE_ON) E3_ENABLE_WRITE(HIGH);
975 978
   #endif
979
+  #if HAS_E4_ENABLE
980
+    E4_ENABLE_INIT;
981
+    if (!E_ENABLE_ON) E4_ENABLE_WRITE(HIGH);
982
+  #endif
976 983
 
977 984
   // Init endstops and pullups
978 985
   endstops.init();

+ 18
- 0
Marlin/stepper_indirection.cpp View File

@@ -75,6 +75,9 @@
75 75
   #if ENABLED(E3_IS_TMC)
76 76
     _TMC_DEFINE(E3);
77 77
   #endif
78
+  #if ENABLED(E4_IS_TMC)
79
+    _TMC_DEFINE(E4);
80
+  #endif
78 81
 
79 82
   #define _TMC_INIT(A) do{ \
80 83
     stepper##A.setMicrosteps(A##_MICROSTEPS); \
@@ -112,6 +115,9 @@
112 115
     #if ENABLED(E3_IS_TMC)
113 116
       _TMC_INIT(E3);
114 117
     #endif
118
+    #if ENABLED(E4_IS_TMC)
119
+      _TMC_INIT(E4);
120
+    #endif
115 121
   }
116 122
 
117 123
 #endif // HAVE_TMCDRIVER
@@ -157,6 +163,9 @@
157 163
   #if ENABLED(E3_IS_TMC2130)
158 164
     _TMC2130_DEFINE(E3);
159 165
   #endif
166
+  #if ENABLED(E4_IS_TMC2130)
167
+    _TMC2130_DEFINE(E4);
168
+  #endif
160 169
 
161 170
   // Use internal reference voltage for current calculations. This is the default.
162 171
   // Following values from Trinamic's spreadsheet with values for a NEMA17 (42BYGHW609)
@@ -213,6 +222,9 @@
213 222
     #if ENABLED(E3_IS_TMC2130)
214 223
       _TMC2130_INIT(E3);
215 224
     #endif
225
+    #if ENABLED(E4_IS_TMC2130)
226
+      _TMC2130_INIT(E4);
227
+    #endif
216 228
 
217 229
     TMC2130_ADV()
218 230
   }
@@ -260,6 +272,9 @@
260 272
   #if ENABLED(E3_IS_L6470)
261 273
     _L6470_DEFINE(E3);
262 274
   #endif
275
+  #if ENABLED(E4_IS_L6470)
276
+    _L6470_DEFINE(E4);
277
+  #endif
263 278
 
264 279
   #define _L6470_INIT(A) do{ \
265 280
     stepper##A.init(A##_K_VAL); \
@@ -300,6 +315,9 @@
300 315
     #if ENABLED(E3_IS_L6470)
301 316
       _L6470_INIT(E3);
302 317
     #endif
318
+    #if ENABLED(E4_IS_L6470)
319
+      _L6470_INIT(E4);
320
+    #endif
303 321
   }
304 322
 
305 323
 #endif // HAVE_L6470DRIVER

+ 31
- 0
Marlin/stepper_indirection.h View File

@@ -381,6 +381,37 @@
381 381
 #define E3_STEP_WRITE(STATE) WRITE(E3_STEP_PIN,STATE)
382 382
 #define E3_STEP_READ READ(E3_STEP_PIN)
383 383
 
384
+// E4 Stepper
385
+#if ENABLED(HAVE_L6470DRIVER) && ENABLED(E4_IS_L6470)
386
+  extern L6470 stepperE4;
387
+  #define E4_ENABLE_INIT NOOP
388
+  #define E4_ENABLE_WRITE(STATE) do{ if (STATE) stepperE4.Step_Clock(stepperE4.getStatus() & STATUS_HIZ); else stepperE4.softFree(); }while(0)
389
+  #define E4_ENABLE_READ (stepperE4.getStatus() & STATUS_HIZ)
390
+  #define E4_DIR_INIT NOOP
391
+  #define E4_DIR_WRITE(STATE) stepperE4.Step_Clock(STATE)
392
+  #define E4_DIR_READ (stepperE4.getStatus() & STATUS_DIR)
393
+#else
394
+  #if ENABLED(HAVE_TMCDRIVER) && ENABLED(E4_IS_TMC)
395
+    extern TMC26XStepper stepperE4;
396
+    #define E4_ENABLE_INIT NOOP
397
+    #define E4_ENABLE_WRITE(STATE) stepperE4.setEnabled(STATE)
398
+    #define E4_ENABLE_READ stepperE4.isEnabled()
399
+  #else
400
+    #if ENABLED(HAVE_TMC2130) && ENABLED(E4_IS_TMC2130)
401
+      extern TMC2130Stepper stepperE4;
402
+    #endif
403
+    #define E4_ENABLE_INIT SET_OUTPUT(E4_ENABLE_PIN)
404
+    #define E4_ENABLE_WRITE(STATE) WRITE(E4_ENABLE_PIN,STATE)
405
+    #define E4_ENABLE_READ READ(E4_ENABLE_PIN)
406
+  #endif
407
+  #define E4_DIR_INIT SET_OUTPUT(E4_DIR_PIN)
408
+  #define E4_DIR_WRITE(STATE) WRITE(E4_DIR_PIN,STATE)
409
+  #define E4_DIR_READ READ(E4_DIR_PIN)
410
+#endif
411
+#define E4_STEP_INIT SET_OUTPUT(E4_STEP_PIN)
412
+#define E4_STEP_WRITE(STATE) WRITE(E4_STEP_PIN,STATE)
413
+#define E4_STEP_READ READ(E4_STEP_PIN)
414
+
384 415
 /**
385 416
  * Extruder indirection for the single E axis
386 417
  */

+ 70
- 55
Marlin/ultralcd.cpp View File

@@ -918,39 +918,26 @@ void kill_screen(const char* lcd_msg) {
918 918
   /**
919 919
    * Watch temperature callbacks
920 920
    */
921
-  #if WATCH_HOTENDS
922
-    #if HAS_TEMP_HOTEND
923
-      void watch_temp_callback_E0() { thermalManager.start_watching_heater(0); }
924
-      #if HOTENDS > 1
925
-        void watch_temp_callback_E1() { thermalManager.start_watching_heater(1); }
926
-        #if HOTENDS > 2
927
-          void watch_temp_callback_E2() { thermalManager.start_watching_heater(2); }
928
-          #if HOTENDS > 3
929
-            void watch_temp_callback_E3() { thermalManager.start_watching_heater(3); }
930
-            #if HOTENDS > 4
931
-              void watch_temp_callback_E4() { thermalManager.start_watching_heater(4); }
932
-            #endif // HOTENDS > 4
933
-          #endif // HOTENDS > 3
934
-        #endif // HOTENDS > 2
935
-      #endif // HOTENDS > 1
936
-    #endif
937
-  #else
938
-    #if HAS_TEMP_HOTEND
939
-      void watch_temp_callback_E0() {}
940
-      #if HOTENDS > 1
941
-        void watch_temp_callback_E1() {}
942
-        #if HOTENDS > 2
943
-          void watch_temp_callback_E2() {}
944
-          #if HOTENDS > 3
945
-            void watch_temp_callback_E3() {}
946
-            #if HOTENDS > 4
947
-              void watch_temp_callback_E4() {}
948
-            #endif // HOTENDS > 4
949
-          #endif // HOTENDS > 3
950
-        #endif // HOTENDS > 2
951
-      #endif // HOTENDS > 1
921
+  #if HAS_TEMP_HOTEND
922
+    #if WATCH_HOTENDS
923
+      #define _WATCH_FUNC(N) thermalManager.start_watching_heater(N)
924
+    #else
925
+      #define _WATCH_FUNC(N) NOOP
952 926
     #endif
953
-  #endif
927
+    void watch_temp_callback_E0() { _WATCH_FUNC(0); }
928
+    #if HOTENDS > 1
929
+      void watch_temp_callback_E1() { _WATCH_FUNC(1); }
930
+      #if HOTENDS > 2
931
+        void watch_temp_callback_E2() { _WATCH_FUNC(2); }
932
+        #if HOTENDS > 3
933
+          void watch_temp_callback_E3() { _WATCH_FUNC(3); }
934
+          #if HOTENDS > 4
935
+            void watch_temp_callback_E4() { _WATCH_FUNC(4); }
936
+          #endif // HOTENDS > 4
937
+        #endif // HOTENDS > 3
938
+      #endif // HOTENDS > 2
939
+    #endif // HOTENDS > 1
940
+  #endif // HAS_TEMP_HOTEND
954 941
 
955 942
   #if WATCH_THE_BED
956 943
     void watch_temp_callback_bed() { thermalManager.start_watching_bed(); }
@@ -1905,10 +1892,13 @@ void kill_screen(const char* lcd_msg) {
1905 1892
             case 2: pos_label = PSTR(MSG_MOVE_E MSG_MOVE_E3); break;
1906 1893
             #if E_MANUAL > 3
1907 1894
               case 3: pos_label = PSTR(MSG_MOVE_E MSG_MOVE_E4); break;
1908
-            #endif
1909
-          #endif
1895
+              #if E_MANUAL > 4
1896
+                case 4: pos_label = PSTR(MSG_MOVE_E MSG_MOVE_E5); break;
1897
+              #endif // E_MANUAL > 4
1898
+            #endif // E_MANUAL > 3
1899
+          #endif // E_MANUAL > 2
1910 1900
         }
1911
-      #endif
1901
+      #endif // E_MANUAL > 1
1912 1902
       lcd_implementation_drawedit(pos_label, ftostr41sign(current_position[E_AXIS]));
1913 1903
     }
1914 1904
   }
@@ -1921,9 +1911,12 @@ void kill_screen(const char* lcd_msg) {
1921 1911
       void lcd_move_e2() { _lcd_move_e(2); }
1922 1912
       #if E_MANUAL > 3
1923 1913
         void lcd_move_e3() { _lcd_move_e(3); }
1924
-      #endif
1925
-    #endif
1926
-  #endif
1914
+        #if E_MANUAL > 4
1915
+          void lcd_move_e4() { _lcd_move_e(4); }
1916
+        #endif // E_MANUAL > 4
1917
+      #endif // E_MANUAL > 3
1918
+    #endif // E_MANUAL > 2
1919
+  #endif // E_MANUAL > 1
1927 1920
 
1928 1921
   /**
1929 1922
    *
@@ -1970,9 +1963,12 @@ void kill_screen(const char* lcd_msg) {
1970 1963
       void lcd_move_get_e2_amount()   { _lcd_move_distance_menu(E_AXIS, lcd_move_e2); }
1971 1964
       #if E_MANUAL > 3
1972 1965
         void lcd_move_get_e3_amount() { _lcd_move_distance_menu(E_AXIS, lcd_move_e3); }
1973
-      #endif
1974
-    #endif
1975
-  #endif
1966
+        #if E_MANUAL > 4
1967
+          void lcd_move_get_e4_amount() { _lcd_move_distance_menu(E_AXIS, lcd_move_e4); }
1968
+        #endif // E_MANUAL > 4
1969
+      #endif // E_MANUAL > 3
1970
+    #endif // E_MANUAL > 2
1971
+  #endif // E_MANUAL > 1
1976 1972
 
1977 1973
   /**
1978 1974
    *
@@ -2033,9 +2029,12 @@ void kill_screen(const char* lcd_msg) {
2033 2029
         MENU_ITEM(submenu, MSG_MOVE_E MSG_MOVE_E3, lcd_move_get_e2_amount);
2034 2030
         #if E_MANUAL > 3
2035 2031
           MENU_ITEM(submenu, MSG_MOVE_E MSG_MOVE_E4, lcd_move_get_e3_amount);
2036
-        #endif
2037
-      #endif
2038
-    #endif
2032
+          #if E_MANUAL > 4
2033
+            MENU_ITEM(submenu, MSG_MOVE_E MSG_MOVE_E5, lcd_move_get_e4_amount);
2034
+          #endif // E_MANUAL > 4
2035
+        #endif // E_MANUAL > 3
2036
+      #endif // E_MANUAL > 2
2037
+    #endif // E_MANUAL > 1
2039 2038
 
2040 2039
     END_MENU();
2041 2040
   }
@@ -2239,6 +2238,7 @@ void kill_screen(const char* lcd_msg) {
2239 2238
     // PID-P E2, PID-I E2, PID-D E2, PID-C E2, PID Autotune E2
2240 2239
     // PID-P E3, PID-I E3, PID-D E3, PID-C E3, PID Autotune E3
2241 2240
     // PID-P E4, PID-I E4, PID-D E4, PID-C E4, PID Autotune E4
2241
+    // PID-P E5, PID-I E5, PID-D E5, PID-C E5, PID Autotune E5
2242 2242
     //
2243 2243
     #if ENABLED(PIDTEMP)
2244 2244
 
@@ -2350,8 +2350,11 @@ void kill_screen(const char* lcd_msg) {
2350 2350
       void _reset_e2_acceleration_rate() { _reset_e_acceleration_rate(2); }
2351 2351
       #if E_STEPPERS > 3
2352 2352
         void _reset_e3_acceleration_rate() { _reset_e_acceleration_rate(3); }
2353
-      #endif
2354
-    #endif
2353
+        #if E_STEPPERS > 4
2354
+          void _reset_e4_acceleration_rate() { _reset_e_acceleration_rate(4); }
2355
+        #endif // E_STEPPERS > 4
2356
+      #endif // E_STEPPERS > 3
2357
+    #endif // E_STEPPERS > 2
2355 2358
   #endif
2356 2359
 
2357 2360
   void _planner_refresh_positioning() { planner.refresh_positioning(); }
@@ -2368,8 +2371,11 @@ void kill_screen(const char* lcd_msg) {
2368 2371
       void _planner_refresh_e2_positioning() { _reset_e_acceleration_rate(2); }
2369 2372
       #if E_STEPPERS > 3
2370 2373
         void _planner_refresh_e3_positioning() { _reset_e_acceleration_rate(3); }
2371
-      #endif
2372
-    #endif
2374
+        #if E_STEPPERS > 4
2375
+          void _planner_refresh_e4_positioning() { _reset_e_acceleration_rate(4); }
2376
+        #endif // E_STEPPERS > 4
2377
+      #endif // E_STEPPERS > 3
2378
+    #endif // E_STEPPERS > 2
2373 2379
   #endif
2374 2380
 
2375 2381
   /**
@@ -2411,9 +2417,12 @@ void kill_screen(const char* lcd_msg) {
2411 2417
       #if E_STEPPERS > 2
2412 2418
         MENU_ITEM_EDIT(float3, MSG_VMAX MSG_E3, &planner.max_feedrate_mm_s[E_AXIS + 2], 1, 999);
2413 2419
         #if E_STEPPERS > 3
2414
-          MENU_ITEM_EDIT(float3, MSG_VMAX MSG_E3, &planner.max_feedrate_mm_s[E_AXIS + 3], 1, 999);
2415
-        #endif
2416
-      #endif
2420
+          MENU_ITEM_EDIT(float3, MSG_VMAX MSG_E4, &planner.max_feedrate_mm_s[E_AXIS + 3], 1, 999);
2421
+          #if E_STEPPERS > 4
2422
+            MENU_ITEM_EDIT(float3, MSG_VMAX MSG_E5, &planner.max_feedrate_mm_s[E_AXIS + 4], 1, 999);
2423
+          #endif // E_STEPPERS > 4
2424
+        #endif // E_STEPPERS > 3
2425
+      #endif // E_STEPPERS > 2
2417 2426
     #else
2418 2427
       MENU_ITEM_EDIT(float3, MSG_VMAX MSG_E, &planner.max_feedrate_mm_s[E_AXIS], 1, 999);
2419 2428
     #endif
@@ -2436,8 +2445,11 @@ void kill_screen(const char* lcd_msg) {
2436 2445
         MENU_ITEM_EDIT_CALLBACK(long5, MSG_AMAX MSG_E3, &planner.max_acceleration_mm_per_s2[E_AXIS + 2], 100, 99000, _reset_e2_acceleration_rate);
2437 2446
         #if E_STEPPERS > 3
2438 2447
           MENU_ITEM_EDIT_CALLBACK(long5, MSG_AMAX MSG_E4, &planner.max_acceleration_mm_per_s2[E_AXIS + 3], 100, 99000, _reset_e3_acceleration_rate);
2439
-        #endif
2440
-      #endif
2448
+          #if E_STEPPERS > 4
2449
+            MENU_ITEM_EDIT_CALLBACK(long5, MSG_AMAX MSG_E5, &planner.max_acceleration_mm_per_s2[E_AXIS + 4], 100, 99000, _reset_e4_acceleration_rate);
2450
+          #endif // E_STEPPERS > 4
2451
+        #endif // E_STEPPERS > 3
2452
+      #endif // E_STEPPERS > 2
2441 2453
     #else
2442 2454
       MENU_ITEM_EDIT_CALLBACK(long5, MSG_AMAX MSG_E, &planner.max_acceleration_mm_per_s2[E_AXIS], 100, 99000, _reset_acceleration_rates);
2443 2455
     #endif
@@ -2460,8 +2472,11 @@ void kill_screen(const char* lcd_msg) {
2460 2472
         MENU_ITEM_EDIT_CALLBACK(float62, MSG_E3STEPS, &planner.axis_steps_per_mm[E_AXIS + 2], 5, 9999, _planner_refresh_e2_positioning);
2461 2473
         #if E_STEPPERS > 3
2462 2474
           MENU_ITEM_EDIT_CALLBACK(float62, MSG_E4STEPS, &planner.axis_steps_per_mm[E_AXIS + 3], 5, 9999, _planner_refresh_e3_positioning);
2463
-        #endif
2464
-      #endif
2475
+          #if E_STEPPERS > 4
2476
+            MENU_ITEM_EDIT_CALLBACK(float62, MSG_E5STEPS, &planner.axis_steps_per_mm[E_AXIS + 4], 5, 9999, _planner_refresh_e4_positioning);
2477
+          #endif // E_STEPPERS > 4
2478
+        #endif // E_STEPPERS > 3
2479
+      #endif // E_STEPPERS > 2
2465 2480
     #else
2466 2481
       MENU_ITEM_EDIT_CALLBACK(float62, MSG_ESTEPS, &planner.axis_steps_per_mm[E_AXIS], 5, 9999, _planner_refresh_positioning);
2467 2482
     #endif

Loading…
Cancel
Save