|
@@ -96,8 +96,7 @@
|
96
|
96
|
* specified height, no correction is applied and natural printer kenimatics take over. If no
|
97
|
97
|
* number is specified for the command, 10mm is assumed to be reasonable.
|
98
|
98
|
*
|
99
|
|
- * G # Grid * Perform a Grid Based Leveling of the current Mesh using a grid with n points on
|
100
|
|
- * a side.
|
|
99
|
+ * G # Grid * Perform a Grid Based Leveling of the current Mesh using a grid with n points on a side.
|
101
|
100
|
*
|
102
|
101
|
* H # Height Specify the Height to raise the nozzle after each manual probe of the bed. The
|
103
|
102
|
* default is 5mm.
|
|
@@ -267,12 +266,6 @@
|
267
|
266
|
* of the mesh, you are limited to 3-Point and Grid Leveling. (G29 P0 T and G29 P0 G
|
268
|
267
|
* respectively.)
|
269
|
268
|
*
|
270
|
|
- * Z-Probe Sleds are not currently fully supported. There were too many complications caused
|
271
|
|
- * by them to support them in the Unified Bed Leveling code. Support for them will be handled
|
272
|
|
- * better in the upcoming Z-Probe Object that will happen during the Code Clean Up phase. (That
|
273
|
|
- * is what they really are: A special case of the Z-Probe.) When a Z-Probe Object appears, it
|
274
|
|
- * should slip in under the Unified Bed Leveling code without major trauma.
|
275
|
|
- *
|
276
|
269
|
* When you do a G28 and then a G29 P1 to automatically build your first mesh, you are going to notice
|
277
|
270
|
* the Unified Bed Leveling probes points further and further away from the starting location. (The
|
278
|
271
|
* starting location defaults to the center of the bed.) The original Grid and Mesh leveling used
|
|
@@ -1076,11 +1069,6 @@
|
1076
|
1069
|
ubl.state.active = ubl_state_at_invocation;
|
1077
|
1070
|
}
|
1078
|
1071
|
|
1079
|
|
- void g29_print_line(bool longer=false) {
|
1080
|
|
- SERIAL_PROTOCOLPGM(" -------------------------------------");
|
1081
|
|
- if (longer) SERIAL_PROTOCOLPGM("-------------------");
|
1082
|
|
- SERIAL_PROTOCOLLNPGM(" <----<<<");
|
1083
|
|
- }
|
1084
|
1072
|
|
1085
|
1073
|
/**
|
1086
|
1074
|
* Much of the 'What?' command can be eliminated. But until we are fully debugged, it is
|
|
@@ -1090,70 +1078,85 @@
|
1090
|
1078
|
int k = E2END - ubl_eeprom_start;
|
1091
|
1079
|
statistics_flag++;
|
1092
|
1080
|
|
1093
|
|
- SERIAL_PROTOCOLLNPGM("Version #4: 10/30/2016 branch");
|
1094
|
|
- SERIAL_PROTOCOLPGM("Unified Bed Leveling System ");
|
|
1081
|
+ SERIAL_PROTOCOLPGM("Unified Bed Leveling System Version 1.00 ");
|
1095
|
1082
|
if (ubl.state.active)
|
1096
|
|
- SERIAL_PROTOCOLPGM("Active.");
|
|
1083
|
+ SERIAL_PROTOCOLPGM("Active.\n");
|
1097
|
1084
|
else
|
1098
|
|
- SERIAL_PROTOCOLPGM("Inactive.");
|
1099
|
|
- g29_print_line(); // These are just to help me find this info buried in the clutter
|
|
1085
|
+ SERIAL_PROTOCOLPGM("Inactive.\n");
|
|
1086
|
+ SERIAL_EOL;
|
|
1087
|
+ delay(50);
|
1100
|
1088
|
|
1101
|
1089
|
if (ubl.state.eeprom_storage_slot == 0xFFFF) {
|
1102
|
1090
|
SERIAL_PROTOCOLPGM("No Mesh Loaded.");
|
1103
|
|
- g29_print_line(); // These are just to help me find this info buried in the clutter
|
1104
|
1091
|
}
|
1105
|
1092
|
else {
|
1106
|
1093
|
SERIAL_PROTOCOLPGM("Mesh: ");
|
1107
|
1094
|
prt_hex_word(ubl.state.eeprom_storage_slot);
|
1108
|
1095
|
SERIAL_PROTOCOLPGM(" Loaded. ");
|
1109
|
|
- g29_print_line(true); // These are just to help me find this info buried in the clutter
|
1110
|
1096
|
}
|
1111
|
1097
|
|
1112
|
|
- SERIAL_PROTOCOLPAIR("\ng29_correction_fade_height : ", ubl.state.g29_correction_fade_height );
|
1113
|
|
- g29_print_line(); // These are just to help me find this info buried in the clutter
|
|
1098
|
+ SERIAL_EOL;
|
|
1099
|
+ delay(50);
|
|
1100
|
+
|
|
1101
|
+ SERIAL_PROTOCOLPAIR("g29_correction_fade_height : ", ubl.state.g29_correction_fade_height );
|
|
1102
|
+ SERIAL_EOL;
|
1114
|
1103
|
|
1115
|
1104
|
idle();
|
1116
|
1105
|
|
1117
|
1106
|
SERIAL_PROTOCOLPGM("z_offset: ");
|
1118
|
1107
|
SERIAL_PROTOCOL_F(ubl.state.z_offset, 6);
|
1119
|
|
- g29_print_line(true); // These are just to help me find this info buried in the clutter
|
|
1108
|
+ SERIAL_EOL;
|
1120
|
1109
|
|
1121
|
1110
|
SERIAL_PROTOCOLPGM("X-Axis Mesh Points at: ");
|
1122
|
1111
|
for (uint8_t i = 0; i < UBL_MESH_NUM_X_POINTS; i++) {
|
1123
|
1112
|
SERIAL_PROTOCOL_F( ubl.map_x_index_to_bed_location(i), 1);
|
1124
|
1113
|
SERIAL_PROTOCOLPGM(" ");
|
|
1114
|
+ delay(10);
|
1125
|
1115
|
}
|
1126
|
1116
|
SERIAL_EOL;
|
|
1117
|
+ delay(50);
|
|
1118
|
+ idle();
|
|
1119
|
+
|
1127
|
1120
|
SERIAL_PROTOCOLPGM("Y-Axis Mesh Points at: ");
|
1128
|
1121
|
for (uint8_t i = 0; i < UBL_MESH_NUM_Y_POINTS; i++) {
|
1129
|
1122
|
SERIAL_PROTOCOL_F( ubl.map_y_index_to_bed_location(i), 1);
|
1130
|
1123
|
SERIAL_PROTOCOLPGM(" ");
|
|
1124
|
+ delay(10);
|
1131
|
1125
|
}
|
1132
|
1126
|
SERIAL_EOL;
|
|
1127
|
+ delay(50);
|
|
1128
|
+ idle();
|
1133
|
1129
|
|
1134
|
1130
|
#if HAS_KILL
|
1135
|
1131
|
SERIAL_PROTOCOLPAIR("Kill pin on :", KILL_PIN);
|
1136
|
1132
|
SERIAL_PROTOCOLLNPAIR(" state:", READ(KILL_PIN));
|
1137
|
1133
|
#endif
|
|
1134
|
+ delay(50);
|
|
1135
|
+ idle();
|
|
1136
|
+ SERIAL_EOL;
|
1138
|
1137
|
|
1139
|
1138
|
SERIAL_PROTOCOLLNPAIR("ubl_state_at_invocation :", ubl_state_at_invocation);
|
|
1139
|
+ SERIAL_EOL;
|
1140
|
1140
|
SERIAL_PROTOCOLLNPAIR("ubl_state_recursion_chk :", ubl_state_recursion_chk);
|
1141
|
|
-
|
1142
|
1141
|
SERIAL_EOL;
|
1143
|
1142
|
SERIAL_PROTOCOLPGM("Free EEPROM space starts at: 0x");
|
1144
|
1143
|
prt_hex_word(ubl_eeprom_start);
|
1145
|
1144
|
SERIAL_EOL;
|
|
1145
|
+ delay(50);
|
1146
|
1146
|
idle();
|
1147
|
1147
|
|
1148
|
1148
|
SERIAL_PROTOCOLPGM("end of EEPROM : ");
|
1149
|
1149
|
prt_hex_word(E2END);
|
1150
|
1150
|
SERIAL_EOL;
|
|
1151
|
+ delay(50);
|
1151
|
1152
|
idle();
|
1152
|
1153
|
|
1153
|
1154
|
SERIAL_PROTOCOLLNPAIR("sizeof(ubl) : ", (int)sizeof(ubl));
|
1154
|
1155
|
SERIAL_EOL;
|
1155
|
1156
|
SERIAL_PROTOCOLLNPAIR("z_value[][] size: ", (int)sizeof(z_values));
|
1156
|
1157
|
SERIAL_EOL;
|
|
1158
|
+ delay(50);
|
|
1159
|
+ idle();
|
1157
|
1160
|
|
1158
|
1161
|
SERIAL_PROTOCOLPGM("EEPROM free for UBL: 0x");
|
1159
|
1162
|
prt_hex_word(k);
|
|
@@ -1162,41 +1165,28 @@
|
1162
|
1165
|
|
1163
|
1166
|
SERIAL_PROTOCOLPGM("EEPROM can hold 0x");
|
1164
|
1167
|
prt_hex_word(k / sizeof(z_values));
|
1165
|
|
- SERIAL_PROTOCOLLNPGM(" meshes.");
|
|
1168
|
+ SERIAL_PROTOCOLLNPGM(" meshes.\n");
|
|
1169
|
+ delay(50);
|
1166
|
1170
|
|
1167
|
|
- SERIAL_PROTOCOLPGM("sizeof(stat) :");
|
|
1171
|
+ SERIAL_PROTOCOLPGM("sizeof(ubl.state) :");
|
1168
|
1172
|
prt_hex_word(sizeof(ubl.state));
|
1169
|
|
- SERIAL_EOL;
|
1170
|
1173
|
idle();
|
1171
|
1174
|
|
1172
|
1175
|
SERIAL_PROTOCOLPAIR("\nUBL_MESH_NUM_X_POINTS ", UBL_MESH_NUM_X_POINTS);
|
1173
|
1176
|
SERIAL_PROTOCOLPAIR("\nUBL_MESH_NUM_Y_POINTS ", UBL_MESH_NUM_Y_POINTS);
|
1174
|
1177
|
SERIAL_PROTOCOLPAIR("\nUBL_MESH_MIN_X ", UBL_MESH_MIN_X);
|
|
1178
|
+ delay(50);
|
|
1179
|
+ idle();
|
1175
|
1180
|
SERIAL_PROTOCOLPAIR("\nUBL_MESH_MIN_Y ", UBL_MESH_MIN_Y);
|
1176
|
1181
|
SERIAL_PROTOCOLPAIR("\nUBL_MESH_MAX_X ", UBL_MESH_MAX_X);
|
1177
|
1182
|
SERIAL_PROTOCOLPAIR("\nUBL_MESH_MAX_Y ", UBL_MESH_MAX_Y);
|
|
1183
|
+ delay(50);
|
|
1184
|
+ idle();
|
1178
|
1185
|
SERIAL_PROTOCOLPGM("\nMESH_X_DIST ");
|
1179
|
1186
|
SERIAL_PROTOCOL_F(MESH_X_DIST, 6);
|
1180
|
1187
|
SERIAL_PROTOCOLPGM("\nMESH_Y_DIST ");
|
1181
|
1188
|
SERIAL_PROTOCOL_F(MESH_Y_DIST, 6);
|
1182
|
1189
|
SERIAL_EOL;
|
1183
|
|
- idle();
|
1184
|
|
-
|
1185
|
|
- SERIAL_PROTOCOLPAIR("\nsizeof(block_t): ", (int)sizeof(block_t));
|
1186
|
|
- SERIAL_PROTOCOLPAIR("\nsizeof(planner.block_buffer): ", (int)sizeof(planner.block_buffer));
|
1187
|
|
- SERIAL_PROTOCOLPAIR("\nsizeof(char): ", (int)sizeof(char));
|
1188
|
|
- SERIAL_PROTOCOLPAIR(" sizeof(unsigned char): ", (int)sizeof(unsigned char));
|
1189
|
|
- SERIAL_PROTOCOLPAIR("\nsizeof(int): ", (int)sizeof(int));
|
1190
|
|
- SERIAL_PROTOCOLPAIR(" sizeof(unsigned int): ", (int)sizeof(unsigned int));
|
1191
|
|
- SERIAL_PROTOCOLPAIR("\nsizeof(long): ", (int)sizeof(long));
|
1192
|
|
- SERIAL_PROTOCOLPAIR(" sizeof(unsigned long int): ", (int)sizeof(unsigned long int));
|
1193
|
|
- SERIAL_PROTOCOLPAIR("\nsizeof(float): ", (int)sizeof(float));
|
1194
|
|
- SERIAL_PROTOCOLPAIR(" sizeof(double): ", (int)sizeof(double));
|
1195
|
|
- SERIAL_PROTOCOLPAIR("\nsizeof(void *): ", (int)sizeof(void *));
|
1196
|
|
- struct pf { void *p_f(); } ptr_func;
|
1197
|
|
- SERIAL_PROTOCOLPAIR(" sizeof(struct pf): ", (int)sizeof(pf));
|
1198
|
|
- SERIAL_PROTOCOLPAIR(" sizeof(void *()): ", (int)sizeof(ptr_func));
|
1199
|
|
- SERIAL_EOL;
|
1200
|
1190
|
|
1201
|
1191
|
idle();
|
1202
|
1192
|
|