Browse Source

Apply updated changes for delta_tower_angle_trim

Scott Lahteine 8 years ago
parent
commit
47242a40bb
2 changed files with 57 additions and 59 deletions
  1. 13
    16
      Marlin/Marlin_main.cpp
  2. 44
    43
      Marlin/configuration_store.cpp

+ 13
- 16
Marlin/Marlin_main.cpp View File

@@ -185,7 +185,7 @@
185 185
  * M503 - Print the current settings (in memory): "M503 S<verbose>". S0 specifies compact output.
186 186
  * M540 - Enable/disable SD card abort on endstop hit: "M540 S<state>". (Requires ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED)
187 187
  * M600 - Pause for filament change: "M600 X<pos> Y<pos> Z<raise> E<first_retract> L<later_retract>". (Requires FILAMENT_CHANGE_FEATURE)
188
- * M665 - Set delta configurations: "M665 L<diagonal rod> R<delta radius> S<segments/s>" (Requires DELTA)
188
+ * M665 - Set delta configurations: "M665 L<diagonal rod> R<delta radius> S<segments/s> A<rod A trim mm> B<rod B trim mm> C<rod C trim mm> I<tower A trim angle> J<tower B trim angle> K<tower C trim angle>" (Requires DELTA)
189 189
  * M666 - Set delta endstop adjustment. (Requires DELTA)
190 190
  * M605 - Set dual x-carriage movement mode: "M605 S<mode> [X<x_offset>] [R<temp_offset>]". (Requires DUAL_X_CARRIAGE)
191 191
  * M851 - Set Z probe's Z offset in current units. (Negative = below the nozzle.)
@@ -556,9 +556,6 @@ static uint8_t target_extruder;
556 556
 
557 557
 #if ENABLED(DELTA)
558 558
 
559
-  #define SIN_60 0.8660254037844386
560
-  #define COS_60 0.5
561
-
562 559
   float delta[ABC],
563 560
         endstop_adj[ABC] = { 0 };
564 561
 
@@ -567,12 +564,12 @@ static uint8_t target_extruder;
567 564
         delta_tower_angle_trim_1 = DELTA_TOWER_ANGLE_TRIM_1,
568 565
         delta_tower_angle_trim_2 = DELTA_TOWER_ANGLE_TRIM_2,
569 566
         delta_tower_angle_trim_3 = DELTA_TOWER_ANGLE_TRIM_3,
570
-        delta_tower1_x = -sin( (60 - delta_tower_angle_trim_1) * PI/180) * (delta_radius + DELTA_RADIUS_TRIM_TOWER_1), // front left tower
571
-        delta_tower1_y = -cos( (60 - delta_tower_angle_trim_1) * PI/180) * (delta_radius + DELTA_RADIUS_TRIM_TOWER_1),
572
-        delta_tower2_x =  sin( (60 + delta_tower_angle_trim_2) * PI/180) * (delta_radius + DELTA_RADIUS_TRIM_TOWER_2), // front right tower
573
-        delta_tower2_y = -cos( (60 + delta_tower_angle_trim_2) * PI/180) * (delta_radius + DELTA_RADIUS_TRIM_TOWER_2),
574
-        delta_tower3_x = -sin( (     delta_tower_angle_trim_3) * PI/180),                                                    // back middle tower
575
-        delta_tower3_y =  cos( (     delta_tower_angle_trim_3) * PI/180) * (delta_radius + DELTA_RADIUS_TRIM_TOWER_3),
567
+        delta_tower1_x = -sin(RADIANS(60 - delta_tower_angle_trim_1)) * (delta_radius + DELTA_RADIUS_TRIM_TOWER_1), // front left tower
568
+        delta_tower1_y = -cos(RADIANS(60 - delta_tower_angle_trim_1)) * (delta_radius + DELTA_RADIUS_TRIM_TOWER_1),
569
+        delta_tower2_x =  sin(RADIANS(60 + delta_tower_angle_trim_2)) * (delta_radius + DELTA_RADIUS_TRIM_TOWER_2), // front right tower
570
+        delta_tower2_y = -cos(RADIANS(60 + delta_tower_angle_trim_2)) * (delta_radius + DELTA_RADIUS_TRIM_TOWER_2),
571
+        delta_tower3_x = -sin(RADIANS(     delta_tower_angle_trim_3)),                                                    // back middle tower
572
+        delta_tower3_y =  cos(RADIANS(     delta_tower_angle_trim_3)) * (delta_radius + DELTA_RADIUS_TRIM_TOWER_3),
576 573
         delta_diagonal_rod = DELTA_DIAGONAL_ROD,
577 574
         delta_diagonal_rod_trim_tower_1 = DELTA_DIAGONAL_ROD_TRIM_TOWER_1,
578 575
         delta_diagonal_rod_trim_tower_2 = DELTA_DIAGONAL_ROD_TRIM_TOWER_2,
@@ -9146,12 +9143,12 @@ void ok_to_send() {
9146 9143
    * settings have been changed (e.g., by M665).
9147 9144
    */
9148 9145
   void recalc_delta_settings(float radius, float diagonal_rod) {
9149
-    delta_tower1_x = -sin( (60 - delta_tower_angle_trim_1) * PI/180) * (delta_radius + DELTA_RADIUS_TRIM_TOWER_1), // front left tower
9150
-    delta_tower1_y = -cos( (60 - delta_tower_angle_trim_1) * PI/180) * (delta_radius + DELTA_RADIUS_TRIM_TOWER_1),
9151
-    delta_tower2_x =  sin( (60 + delta_tower_angle_trim_2) * PI/180) * (delta_radius + DELTA_RADIUS_TRIM_TOWER_2), // front right tower
9152
-    delta_tower2_y = -cos( (60 + delta_tower_angle_trim_2) * PI/180) * (delta_radius + DELTA_RADIUS_TRIM_TOWER_2),
9153
-    delta_tower3_x = -sin( (     delta_tower_angle_trim_3) * PI/180),                                              // back middle tower
9154
-    delta_tower3_y =  cos( (     delta_tower_angle_trim_3) * PI/180) * (delta_radius + DELTA_RADIUS_TRIM_TOWER_3),
9146
+    delta_tower1_x = -sin(RADIANS(60 - delta_tower_angle_trim_1)) * (delta_radius + DELTA_RADIUS_TRIM_TOWER_1), // front left tower
9147
+    delta_tower1_y = -cos(RADIANS(60 - delta_tower_angle_trim_1)) * (delta_radius + DELTA_RADIUS_TRIM_TOWER_1),
9148
+    delta_tower2_x =  sin(RADIANS(60 + delta_tower_angle_trim_2)) * (delta_radius + DELTA_RADIUS_TRIM_TOWER_2), // front right tower
9149
+    delta_tower2_y = -cos(RADIANS(60 + delta_tower_angle_trim_2)) * (delta_radius + DELTA_RADIUS_TRIM_TOWER_2),
9150
+    delta_tower3_x = -sin(RADIANS(     delta_tower_angle_trim_3)),                                              // back middle tower
9151
+    delta_tower3_y =  cos(RADIANS(     delta_tower_angle_trim_3)) * (delta_radius + DELTA_RADIUS_TRIM_TOWER_3),
9155 9152
     delta_diagonal_rod_2_tower_1 = sq(diagonal_rod + delta_diagonal_rod_trim_tower_1);
9156 9153
     delta_diagonal_rod_2_tower_2 = sq(diagonal_rod + delta_diagonal_rod_trim_tower_2);
9157 9154
     delta_diagonal_rod_2_tower_3 = sq(diagonal_rod + delta_diagonal_rod_trim_tower_3);

+ 44
- 43
Marlin/configuration_store.cpp View File

@@ -36,13 +36,13 @@
36 36
  *
37 37
  */
38 38
 
39
-#define EEPROM_VERSION "V30"
39
+#define EEPROM_VERSION "V31"
40 40
 
41 41
 // Change EEPROM version if these are changed:
42 42
 #define EEPROM_OFFSET 100
43 43
 
44 44
 /**
45
- * V30 EEPROM Layout:
45
+ * V31 EEPROM Layout:
46 46
  *
47 47
  *  100  Version                                   (char x4)
48 48
  *  104  EEPROM Checksum                           (uint16_t)
@@ -96,55 +96,56 @@
96 96
  *  388  M665 J    delta_tower_angle_trim_2        (float)
97 97
  *  392  M665 K    delta_tower_angle_trim_3        (float)
98 98
  *
99
- * Z_DUAL_ENDSTOPS:                                4 bytes
100
- *  384  M666 Z    z_endstop_adj                   (float)
99
+ * Z_DUAL_ENDSTOPS (if not deltabot):              48 bytes
100
+ *  348  M666 Z    z_endstop_adj                   (float)
101
+ *  ---            dummy data                      (float x11)
101 102
  *
102 103
  * ULTIPANEL:                                      6 bytes
103
- *  388  M145 S0 H lcd_preheat_hotend_temp         (int x2)
104
- *  392  M145 S0 B lcd_preheat_bed_temp            (int x2)
105
- *  396  M145 S0 F lcd_preheat_fan_speed           (int x2)
104
+ *  396  M145 S0 H lcd_preheat_hotend_temp         (int x2)
105
+ *  400  M145 S0 B lcd_preheat_bed_temp            (int x2)
106
+ *  404  M145 S0 F lcd_preheat_fan_speed           (int x2)
106 107
  *
107 108
  * PIDTEMP:                                        66 bytes
108
- *  400  M301 E0 PIDC  Kp[0], Ki[0], Kd[0], Kc[0]  (float x4)
109
- *  416  M301 E1 PIDC  Kp[1], Ki[1], Kd[1], Kc[1]  (float x4)
110
- *  432  M301 E2 PIDC  Kp[2], Ki[2], Kd[2], Kc[2]  (float x4)
111
- *  448  M301 E3 PIDC  Kp[3], Ki[3], Kd[3], Kc[3]  (float x4)
112
- *  464  M301 L        lpq_len                     (int)
109
+ *  408  M301 E0 PIDC  Kp[0], Ki[0], Kd[0], Kc[0]  (float x4)
110
+ *  424  M301 E1 PIDC  Kp[1], Ki[1], Kd[1], Kc[1]  (float x4)
111
+ *  440  M301 E2 PIDC  Kp[2], Ki[2], Kd[2], Kc[2]  (float x4)
112
+ *  456  M301 E3 PIDC  Kp[3], Ki[3], Kd[3], Kc[3]  (float x4)
113
+ *  472  M301 L        lpq_len                     (int)
113 114
  *
114
- * PIDTEMPBED:
115
- *  466  M304 PID  thermalManager.bedKp, thermalManager.bedKi, thermalManager.bedKd (float x3)
115
+ * PIDTEMPBED:                                      12 bytes
116
+ *  474  M304 PID  thermalManager.bedKp, .bedKi, .bedKd (float x3)
116 117
  *
117 118
  * DOGLCD:                                          2 bytes
118
- *  478  M250 C    lcd_contrast                     (int)
119
+ *  486  M250 C    lcd_contrast                     (int)
119 120
  *
120 121
  * FWRETRACT:                                       29 bytes
121
- *  480  M209 S    autoretract_enabled              (bool)
122
- *  481  M207 S    retract_length                   (float)
123
- *  485  M207 W    retract_length_swap              (float)
124
- *  489  M207 F    retract_feedrate_mm_s            (float)
125
- *  493  M207 Z    retract_zlift                    (float)
126
- *  497  M208 S    retract_recover_length           (float)
127
- *  501  M208 W    retract_recover_length_swap      (float)
128
- *  505  M208 F    retract_recover_feedrate_mm_s    (float)
122
+ *  488  M209 S    autoretract_enabled              (bool)
123
+ *  489  M207 S    retract_length                   (float)
124
+ *  493  M207 W    retract_length_swap              (float)
125
+ *  497  M207 F    retract_feedrate_mm_s            (float)
126
+ *  501  M207 Z    retract_zlift                    (float)
127
+ *  505  M208 S    retract_recover_length           (float)
128
+ *  509  M208 W    retract_recover_length_swap      (float)
129
+ *  513  M208 F    retract_recover_feedrate_mm_s    (float)
129 130
  *
130 131
  * Volumetric Extrusion:                            17 bytes
131
- *  509  M200 D    volumetric_enabled               (bool)
132
- *  510  M200 T D  filament_size                    (float x4) (T0..3)
132
+ *  517  M200 D    volumetric_enabled               (bool)
133
+ *  518  M200 T D  filament_size                    (float x4) (T0..3)
133 134
  *
134
- * TMC2130:                                         20 bytes
135
- *  526  M906 X    TMC2130  X-stepper current       (uint16_t)
136
- *  528  M906 Y    TMC2130  Y-stepper current       (uint16_t)
137
- *  530  M906 Z    TMC2130  Z-stepper current       (uint16_t)
138
- *  532  M906 X2   TMC2130 X2-stepper current       (uint16_t)
139
- *  534  M906 Y2   TMC2130 Y2-stepper current       (uint16_t)
140
- *  536  M906 Z2   TMC2130 Z2-stepper current       (uint16_t)
141
- *  538  M906 E0   TMC2130 E0-stepper current       (uint16_t)
142
- *  540  M906 E1   TMC2130 E1-stepper current       (uint16_t)
143
- *  542  M906 E2   TMC2130 E2-stepper current       (uint16_t)
144
- *  544  M906 E3   TMC2130 E3-stepper current       (uint16_t)
135
+ * TMC2130 Stepper Current:                         20 bytes
136
+ *  534  M906 X    stepperX current                 (uint16_t)
137
+ *  536  M906 Y    stepperY current                 (uint16_t)
138
+ *  538  M906 Z    stepperZ current                 (uint16_t)
139
+ *  540  M906 X2   stepperX2 current                (uint16_t)
140
+ *  542  M906 Y2   stepperY2 current                (uint16_t)
141
+ *  544  M906 Z2   stepperZ2 current                (uint16_t)
142
+ *  546  M906 E0   stepperE0 current                (uint16_t)
143
+ *  548  M906 E1   stepperE1 current                (uint16_t)
144
+ *  550  M906 E2   stepperE2 current                (uint16_t)
145
+ *  552  M906 E3   stepperE3 current                (uint16_t)
145 146
  *
146
- *  546                                Minimum end-point
147
- * 1867 (546 + 36 + 9 + 288 + 988)     Maximum end-point
147
+ *  554                                Minimum end-point
148
+ * 1875 (554 + 36 + 9 + 288 + 988)     Maximum end-point
148 149
  *
149 150
  */
150 151
 #include "Marlin.h"
@@ -365,10 +366,10 @@ void Config_Postprocess() {
365 366
     #elif ENABLED(Z_DUAL_ENDSTOPS)
366 367
       EEPROM_WRITE(z_endstop_adj);            // 1 float
367 368
       dummy = 0.0f;
368
-      for (uint8_t q = 8; q--;) EEPROM_WRITE(dummy);
369
+      for (uint8_t q = 11; q--;) EEPROM_WRITE(dummy);
369 370
     #else
370 371
       dummy = 0.0f;
371
-      for (uint8_t q = 9; q--;) EEPROM_WRITE(dummy);
372
+      for (uint8_t q = 12; q--;) EEPROM_WRITE(dummy);
372 373
     #endif
373 374
 
374 375
     #if DISABLED(ULTIPANEL)
@@ -693,10 +694,10 @@ void Config_Postprocess() {
693 694
       #elif ENABLED(Z_DUAL_ENDSTOPS)
694 695
         EEPROM_READ(z_endstop_adj);
695 696
         dummy = 0.0f;
696
-        for (uint8_t q=8; q--;) EEPROM_READ(dummy);
697
+        for (uint8_t q=11; q--;) EEPROM_READ(dummy);
697 698
       #else
698 699
         dummy = 0.0f;
699
-        for (uint8_t q=9; q--;) EEPROM_READ(dummy);
700
+        for (uint8_t q=12; q--;) EEPROM_READ(dummy);
700 701
       #endif
701 702
 
702 703
       #if DISABLED(ULTIPANEL)
@@ -1191,7 +1192,7 @@ void Config_ResetDefault() {
1191 1192
       SERIAL_EOL;
1192 1193
       CONFIG_ECHO_START;
1193 1194
       if (!forReplay) {
1194
-        SERIAL_ECHOLNPGM("Delta settings: L=diagonal_rod, R=radius, S=segments_per_second, ABC=diagonal_rod_trim_tower_[123], IJK=tower_angle_trim[123]");
1195
+        SERIAL_ECHOLNPGM("Delta settings: L=diagonal rod, R=radius, S=segments-per-second, ABC=diagonal rod trim, IJK=tower angle trim");
1195 1196
         CONFIG_ECHO_START;
1196 1197
       }
1197 1198
       SERIAL_ECHOPAIR("  M665 L", delta_diagonal_rod);

Loading…
Cancel
Save