Browse Source

Added z_fade_height to EEPROM-Settings

Firmware was forgetting the z_fade_height in Planner, set by M420 Z<f>,
after each reset or loading settings from EEPROM. Added the float
z_fade_height to EEPROM-Storage, now remembers the value.
james94jeans2 8 years ago
parent
commit
5b9476fe78

+ 4
- 0
Marlin/Marlin.h View File

@@ -307,6 +307,10 @@ float code_value_temp_diff();
307 307
   void reset_bed_level();
308 308
 #endif
309 309
 
310
+#if ENABLED(ENABLE_LEVELING_FADE_HEIGHT)
311
+  void set_z_fade_height(const float zfh);
312
+#endif
313
+
310 314
 #if ENABLED(Z_DUAL_ENDSTOPS)
311 315
   extern float z_endstop_adj;
312 316
 #endif

+ 83
- 31
Marlin/configuration_store.cpp View File

@@ -36,13 +36,13 @@
36 36
  *
37 37
  */
38 38
 
39
-#define EEPROM_VERSION "V32"
39
+#define EEPROM_VERSION "V33"
40 40
 
41 41
 // Change EEPROM version if these are changed:
42 42
 #define EEPROM_OFFSET 100
43 43
 
44 44
 /**
45
- * V32 EEPROM Layout:
45
+ * V33 EEPROM Layout:
46 46
  *
47 47
  *  100  Version                                    (char x4)
48 48
  *  104  EEPROM Checksum                            (uint16_t)
@@ -64,25 +64,28 @@
64 64
  *  195  M206 XYZ  home_offset                      (float x3)
65 65
  *  207  M218 XYZ  hotend_offset                    (float x3 per additional hotend)
66 66
  *
67
+ * Global Leveling:
68
+ *  219            z_fade_height                    (float)
69
+ *
67 70
  * Mesh bed leveling:                               43 bytes
68
- *  219  M420 S    from mbl.status                  (bool)
69
- *  220            mbl.z_offset                     (float)
70
- *  224            GRID_MAX_POINTS_X                (uint8_t)
71
- *  225            GRID_MAX_POINTS_Y                (uint8_t)
72
- *  226 G29 S3 XYZ z_values[][]                     (float x9, up to float x 81) +288
71
+ *  223  M420 S    from mbl.status                  (bool)
72
+ *  224            mbl.z_offset                     (float)
73
+ *  228            GRID_MAX_POINTS_X                (uint8_t)
74
+ *  229            GRID_MAX_POINTS_Y                (uint8_t)
75
+ *  230 G29 S3 XYZ z_values[][]                     (float x9, up to float x 81) +288
73 76
  *
74 77
  * AUTO BED LEVELING                                4 bytes
75
- *  262  M851      zprobe_zoffset                   (float)
78
+ *  266  M851      zprobe_zoffset                   (float)
76 79
  *
77 80
  * ABL_PLANAR (or placeholder):                     36 bytes
78
- *  266            planner.bed_level_matrix         (matrix_3x3 = float x9)
81
+ *  270            planner.bed_level_matrix         (matrix_3x3 = float x9)
79 82
  *
80 83
  * AUTO_BED_LEVELING_BILINEAR (or placeholder):     47 bytes
81
- *  302            GRID_MAX_POINTS_X                (uint8_t)
82
- *  303            GRID_MAX_POINTS_Y                (uint8_t)
83
- *  304            bilinear_grid_spacing            (int x2)
84
- *  308  G29 L F   bilinear_start                   (int x2)
85
- *  312            bed_level_grid[][]               (float x9, up to float x256) +988
84
+ *  306            GRID_MAX_POINTS_X                (uint8_t)
85
+ *  307            GRID_MAX_POINTS_Y                (uint8_t)
86
+ *  308            bilinear_grid_spacing            (int x2)
87
+ *  312  G29 L F   bilinear_start                   (int x2)
88
+ *  316            bed_level_grid[][]               (float x9, up to float x256) +988
86 89
  *
87 90
  * DELTA (if deltabot):                             48 bytes
88 91
  *  348  M666 XYZ  endstop_adj                      (float x3)
@@ -144,10 +147,10 @@
144 147
  *  568  M906 E1   stepperE1 current                (uint16_t)
145 148
  *  570  M906 E2   stepperE2 current                (uint16_t)
146 149
  *  572  M906 E3   stepperE3 current                (uint16_t)
147
- *  572  M906 E4   stepperE4 current                (uint16_t)
150
+ *  576  M906 E4   stepperE4 current                (uint16_t)
148 151
  *
149
- *  576                                Minimum end-point
150
- * 1897 (576 + 36 + 9 + 288 + 988)     Maximum end-point
152
+ *  580                                Minimum end-point
153
+ * 1901 (580 + 36 + 9 + 288 + 988)     Maximum end-point
151 154
  */
152 155
 #include "Marlin.h"
153 156
 #include "language.h"
@@ -200,6 +203,16 @@ void Config_Postprocess() {
200 203
     // Software endstops depend on home_offset
201 204
     LOOP_XYZ(i) update_software_endstops((AxisEnum)i);
202 205
   #endif
206
+
207
+  #if ENABLED(ENABLE_LEVELING_FADE_HEIGHT)
208
+    set_z_fade_height(
209
+      //#if ENABLED(AUTO_BED_LEVELING_UBL)
210
+      //  ubl.state.g29_correction_fade_height
211
+      //#else
212
+        planner.z_fade_height
213
+      //#endif
214
+    );
215
+  #endif
203 216
 }
204 217
 
205 218
 #if ENABLED(EEPROM_SETTINGS)
@@ -290,6 +303,17 @@ void Config_Postprocess() {
290 303
     #endif
291 304
 
292 305
     //
306
+    // General Leveling
307
+    //
308
+
309
+    #if ENABLED(ENABLE_LEVELING_FADE_HEIGHT)
310
+      EEPROM_WRITE(planner.z_fade_height);
311
+    #else
312
+      dummy = 10.0;
313
+      EEPROM_WRITE(dummy);
314
+    #endif
315
+
316
+    //
293 317
     // Mesh Bed Leveling
294 318
     //
295 319
 
@@ -619,6 +643,16 @@ void Config_Postprocess() {
619 643
       #endif
620 644
 
621 645
       //
646
+      // General Leveling
647
+      //
648
+
649
+      #if ENABLED(ENABLE_LEVELING_FADE_HEIGHT)
650
+        EEPROM_READ(planner.z_fade_height);
651
+      #else
652
+        EEPROM_READ(dummy);
653
+      #endif
654
+
655
+      //
622 656
       // Mesh (Manual) Bed Leveling
623 657
       //
624 658
 
@@ -927,6 +961,11 @@ void Config_ResetDefault() {
927 961
   planner.max_jerk[Y_AXIS] = DEFAULT_YJERK;
928 962
   planner.max_jerk[Z_AXIS] = DEFAULT_ZJERK;
929 963
   planner.max_jerk[E_AXIS] = DEFAULT_EJERK;
964
+
965
+  #if ENABLED(ENABLE_LEVELING_FADE_HEIGHT)
966
+    planner.z_fade_height = 0.0;
967
+  #endif
968
+
930 969
   #if DISABLED(NO_WORKSPACE_OFFSETS)
931 970
     ZERO(home_offset);
932 971
   #endif
@@ -968,11 +1007,13 @@ void Config_ResetDefault() {
968 1007
     COPY(delta_diagonal_rod_trim, drt);
969 1008
     COPY(delta_tower_angle_trim, dta);
970 1009
   #elif ENABLED(Z_DUAL_ENDSTOPS)
971
-    #if defined(Z_DUAL_ENDSTOPS_ADJUSTMENT)
972
-      float z_endstop_adj = Z_DUAL_ENDSTOPS_ADJUSTMENT;
973
-    #else
974
-      float z_endstop_adj = 0;
975
-    #endif
1010
+    float z_endstop_adj =
1011
+      #ifdef Z_DUAL_ENDSTOPS_ADJUSTMENT
1012
+        Z_DUAL_ENDSTOPS_ADJUSTMENT
1013
+      #else
1014
+        0
1015
+      #endif
1016
+    ;
976 1017
   #endif
977 1018
 
978 1019
   #if ENABLED(ULTIPANEL)
@@ -1027,11 +1068,11 @@ void Config_ResetDefault() {
1027 1068
   #endif
1028 1069
 
1029 1070
   volumetric_enabled =
1030
-  #if ENABLED(VOLUMETRIC_DEFAULT_ON)
1031
-    true
1032
-  #else
1033
-    false
1034
-  #endif
1071
+    #if ENABLED(VOLUMETRIC_DEFAULT_ON)
1072
+      true
1073
+    #else
1074
+      false
1075
+    #endif
1035 1076
   ;
1036 1077
   for (uint8_t q = 0; q < COUNT(filament_size); q++)
1037 1078
     filament_size[q] = DEFAULT_NOMINAL_FILAMENT_DIA;
@@ -1211,7 +1252,11 @@ void Config_ResetDefault() {
1211 1252
         SERIAL_ECHOLNPGM("Mesh Bed Leveling:");
1212 1253
         CONFIG_ECHO_START;
1213 1254
       }
1214
-      SERIAL_ECHOLNPAIR("  M420 S", mbl.has_mesh() ? 1 : 0);
1255
+      SERIAL_ECHOPAIR("  M420 S", mbl.has_mesh() ? 1 : 0);
1256
+      #if ENABLED(ENABLE_LEVELING_FADE_HEIGHT)
1257
+        SERIAL_ECHOLNPAIR(" Z", planner.z_fade_height);
1258
+      #endif
1259
+      SERIAL_EOL;
1215 1260
       for (uint8_t py = 1; py <= GRID_MAX_POINTS_Y; py++) {
1216 1261
         for (uint8_t px = 1; px <= GRID_MAX_POINTS_X; px++) {
1217 1262
           CONFIG_ECHO_START;
@@ -1229,8 +1274,11 @@ void Config_ResetDefault() {
1229 1274
         SERIAL_ECHOLNPGM("Unified Bed Leveling:");
1230 1275
         CONFIG_ECHO_START;
1231 1276
       }
1232
-
1233
-      SERIAL_ECHOLNPAIR("  M420 S", ubl.state.active ? 1 : 0);
1277
+      SERIAL_ECHOPAIR("  M420 S", ubl.state.active ? 1 : 0);
1278
+      //#if ENABLED(ENABLE_LEVELING_FADE_HEIGHT)
1279
+      //  SERIAL_ECHOLNPAIR(" Z", ubl.state.g29_correction_fade_height);
1280
+      //#endif
1281
+      SERIAL_EOL;
1234 1282
 
1235 1283
       if (!forReplay) {
1236 1284
         SERIAL_ECHOPGM("\nUBL is ");
@@ -1264,7 +1312,11 @@ void Config_ResetDefault() {
1264 1312
         SERIAL_ECHOLNPGM("Auto Bed Leveling:");
1265 1313
         CONFIG_ECHO_START;
1266 1314
       }
1267
-      SERIAL_ECHOLNPAIR("  M420 S", planner.abl_enabled ? 1 : 0);
1315
+      SERIAL_ECHOPAIR("  M420 S", planner.abl_enabled ? 1 : 0);
1316
+      #if ENABLED(ENABLE_LEVELING_FADE_HEIGHT)
1317
+        SERIAL_ECHOLNPAIR(" Z", planner.z_fade_height);
1318
+      #endif
1319
+      SERIAL_EOL;
1268 1320
 
1269 1321
     #endif
1270 1322
 

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

@@ -819,7 +819,7 @@
819 819
  */
820 820
 #define Z_CLEARANCE_DEPLOY_PROBE   100 // Z Clearance for Deploy/Stow
821 821
 #define Z_CLEARANCE_BETWEEN_PROBES   5 // Z Clearance between probe points
822
- 
822
+
823 823
 // For M851 give a range for adjusting the Z probe offset
824 824
 
825 825
 #define Z_PROBE_OFFSET_RANGE_MIN -15

+ 2
- 2
Marlin/planner.cpp View File

@@ -109,8 +109,8 @@ float Planner::min_feedrate_mm_s,
109 109
 #endif
110 110
 
111 111
 #if ENABLED(ENABLE_LEVELING_FADE_HEIGHT)
112
-  float Planner::z_fade_height = 0.0,
113
-        Planner::inverse_z_fade_height = 0.0;
112
+  float Planner::z_fade_height,
113
+        Planner::inverse_z_fade_height;
114 114
 #endif
115 115
 
116 116
 #if ENABLED(AUTOTEMP)

Loading…
Cancel
Save