|
@@ -185,8 +185,10 @@ void Config_Postprocess() {
|
185
|
185
|
#if ENABLED(EEPROM_SETTINGS)
|
186
|
186
|
|
187
|
187
|
#define DUMMY_PID_VALUE 3000.0f
|
188
|
|
- #define EEPROM_WRITE_VAR(pos, value) _EEPROM_writeData(pos, (uint8_t*)&value, sizeof(value))
|
189
|
|
- #define EEPROM_READ_VAR(pos, value) _EEPROM_readData(pos, (uint8_t*)&value, sizeof(value))
|
|
188
|
+ #define EEPROM_START() int eeprom_index = EEPROM_OFFSET
|
|
189
|
+ #define EEPROM_SKIP(VAR) eeprom_index += sizeof(VAR)
|
|
190
|
+ #define EEPROM_WRITE(VAR) _EEPROM_writeData(eeprom_index, (uint8_t*)&VAR, sizeof(VAR))
|
|
191
|
+ #define EEPROM_READ(VAR) _EEPROM_readData(eeprom_index, (uint8_t*)&VAR, sizeof(VAR))
|
190
|
192
|
|
191
|
193
|
/**
|
192
|
194
|
* M500 - Store Configuration
|
|
@@ -194,26 +196,27 @@ void Config_Postprocess() {
|
194
|
196
|
void Config_StoreSettings() {
|
195
|
197
|
float dummy = 0.0f;
|
196
|
198
|
char ver[4] = "000";
|
197
|
|
- int i = EEPROM_OFFSET;
|
198
|
199
|
|
199
|
|
- EEPROM_WRITE_VAR(i, ver); // invalidate data first
|
200
|
|
- i += sizeof(eeprom_checksum); // Skip the checksum slot
|
|
200
|
+ EEPROM_START();
|
|
201
|
+
|
|
202
|
+ EEPROM_WRITE(ver); // invalidate data first
|
|
203
|
+ EEPROM_SKIP(eeprom_checksum); // Skip the checksum slot
|
201
|
204
|
|
202
|
205
|
eeprom_checksum = 0; // clear before first "real data"
|
203
|
206
|
|
204
|
|
- EEPROM_WRITE_VAR(i, planner.axis_steps_per_mm);
|
205
|
|
- EEPROM_WRITE_VAR(i, planner.max_feedrate_mm_s);
|
206
|
|
- EEPROM_WRITE_VAR(i, planner.max_acceleration_mm_per_s2);
|
207
|
|
- EEPROM_WRITE_VAR(i, planner.acceleration);
|
208
|
|
- EEPROM_WRITE_VAR(i, planner.retract_acceleration);
|
209
|
|
- EEPROM_WRITE_VAR(i, planner.travel_acceleration);
|
210
|
|
- EEPROM_WRITE_VAR(i, planner.min_feedrate_mm_s);
|
211
|
|
- EEPROM_WRITE_VAR(i, planner.min_travel_feedrate_mm_s);
|
212
|
|
- EEPROM_WRITE_VAR(i, planner.min_segment_time);
|
213
|
|
- EEPROM_WRITE_VAR(i, planner.max_xy_jerk);
|
214
|
|
- EEPROM_WRITE_VAR(i, planner.max_z_jerk);
|
215
|
|
- EEPROM_WRITE_VAR(i, planner.max_e_jerk);
|
216
|
|
- EEPROM_WRITE_VAR(i, home_offset);
|
|
207
|
+ EEPROM_WRITE(planner.axis_steps_per_mm);
|
|
208
|
+ EEPROM_WRITE(planner.max_feedrate_mm_s);
|
|
209
|
+ EEPROM_WRITE(planner.max_acceleration_mm_per_s2);
|
|
210
|
+ EEPROM_WRITE(planner.acceleration);
|
|
211
|
+ EEPROM_WRITE(planner.retract_acceleration);
|
|
212
|
+ EEPROM_WRITE(planner.travel_acceleration);
|
|
213
|
+ EEPROM_WRITE(planner.min_feedrate_mm_s);
|
|
214
|
+ EEPROM_WRITE(planner.min_travel_feedrate_mm_s);
|
|
215
|
+ EEPROM_WRITE(planner.min_segment_time);
|
|
216
|
+ EEPROM_WRITE(planner.max_xy_jerk);
|
|
217
|
+ EEPROM_WRITE(planner.max_z_jerk);
|
|
218
|
+ EEPROM_WRITE(planner.max_e_jerk);
|
|
219
|
+ EEPROM_WRITE(home_offset);
|
217
|
220
|
|
218
|
221
|
#if ENABLED(MESH_BED_LEVELING)
|
219
|
222
|
// Compile time test that sizeof(mbl.z_values) is as expected
|
|
@@ -221,45 +224,45 @@ void Config_StoreSettings() {
|
221
|
224
|
uint8_t mesh_num_x = MESH_NUM_X_POINTS,
|
222
|
225
|
mesh_num_y = MESH_NUM_Y_POINTS,
|
223
|
226
|
dummy_uint8 = mbl.status & _BV(MBL_STATUS_HAS_MESH_BIT);
|
224
|
|
- EEPROM_WRITE_VAR(i, dummy_uint8);
|
225
|
|
- EEPROM_WRITE_VAR(i, mbl.z_offset);
|
226
|
|
- EEPROM_WRITE_VAR(i, mesh_num_x);
|
227
|
|
- EEPROM_WRITE_VAR(i, mesh_num_y);
|
228
|
|
- EEPROM_WRITE_VAR(i, mbl.z_values);
|
|
227
|
+ EEPROM_WRITE(dummy_uint8);
|
|
228
|
+ EEPROM_WRITE(mbl.z_offset);
|
|
229
|
+ EEPROM_WRITE(mesh_num_x);
|
|
230
|
+ EEPROM_WRITE(mesh_num_y);
|
|
231
|
+ EEPROM_WRITE(mbl.z_values);
|
229
|
232
|
#else
|
230
|
233
|
// For disabled MBL write a default mesh
|
231
|
234
|
uint8_t mesh_num_x = 3,
|
232
|
235
|
mesh_num_y = 3,
|
233
|
236
|
dummy_uint8 = 0;
|
234
|
237
|
dummy = 0.0f;
|
235
|
|
- EEPROM_WRITE_VAR(i, dummy_uint8);
|
236
|
|
- EEPROM_WRITE_VAR(i, dummy);
|
237
|
|
- EEPROM_WRITE_VAR(i, mesh_num_x);
|
238
|
|
- EEPROM_WRITE_VAR(i, mesh_num_y);
|
239
|
|
- for (uint8_t q = 0; q < mesh_num_x * mesh_num_y; q++) EEPROM_WRITE_VAR(i, dummy);
|
|
238
|
+ EEPROM_WRITE(dummy_uint8);
|
|
239
|
+ EEPROM_WRITE(dummy);
|
|
240
|
+ EEPROM_WRITE(mesh_num_x);
|
|
241
|
+ EEPROM_WRITE(mesh_num_y);
|
|
242
|
+ for (uint8_t q = 0; q < mesh_num_x * mesh_num_y; q++) EEPROM_WRITE(dummy);
|
240
|
243
|
#endif // MESH_BED_LEVELING
|
241
|
244
|
|
242
|
245
|
#if !HAS_BED_PROBE
|
243
|
246
|
float zprobe_zoffset = 0;
|
244
|
247
|
#endif
|
245
|
|
- EEPROM_WRITE_VAR(i, zprobe_zoffset);
|
|
248
|
+ EEPROM_WRITE(zprobe_zoffset);
|
246
|
249
|
|
247
|
250
|
// 9 floats for DELTA / Z_DUAL_ENDSTOPS
|
248
|
251
|
#if ENABLED(DELTA)
|
249
|
|
- EEPROM_WRITE_VAR(i, endstop_adj); // 3 floats
|
250
|
|
- EEPROM_WRITE_VAR(i, delta_radius); // 1 float
|
251
|
|
- EEPROM_WRITE_VAR(i, delta_diagonal_rod); // 1 float
|
252
|
|
- EEPROM_WRITE_VAR(i, delta_segments_per_second); // 1 float
|
253
|
|
- EEPROM_WRITE_VAR(i, delta_diagonal_rod_trim_tower_1); // 1 float
|
254
|
|
- EEPROM_WRITE_VAR(i, delta_diagonal_rod_trim_tower_2); // 1 float
|
255
|
|
- EEPROM_WRITE_VAR(i, delta_diagonal_rod_trim_tower_3); // 1 float
|
|
252
|
+ EEPROM_WRITE(endstop_adj); // 3 floats
|
|
253
|
+ EEPROM_WRITE(delta_radius); // 1 float
|
|
254
|
+ EEPROM_WRITE(delta_diagonal_rod); // 1 float
|
|
255
|
+ EEPROM_WRITE(delta_segments_per_second); // 1 float
|
|
256
|
+ EEPROM_WRITE(delta_diagonal_rod_trim_tower_1); // 1 float
|
|
257
|
+ EEPROM_WRITE(delta_diagonal_rod_trim_tower_2); // 1 float
|
|
258
|
+ EEPROM_WRITE(delta_diagonal_rod_trim_tower_3); // 1 float
|
256
|
259
|
#elif ENABLED(Z_DUAL_ENDSTOPS)
|
257
|
|
- EEPROM_WRITE_VAR(i, z_endstop_adj); // 1 float
|
|
260
|
+ EEPROM_WRITE(z_endstop_adj); // 1 float
|
258
|
261
|
dummy = 0.0f;
|
259
|
|
- for (uint8_t q = 8; q--;) EEPROM_WRITE_VAR(i, dummy);
|
|
262
|
+ for (uint8_t q = 8; q--;) EEPROM_WRITE(dummy);
|
260
|
263
|
#else
|
261
|
264
|
dummy = 0.0f;
|
262
|
|
- for (uint8_t q = 9; q--;) EEPROM_WRITE_VAR(i, dummy);
|
|
265
|
+ for (uint8_t q = 9; q--;) EEPROM_WRITE(dummy);
|
263
|
266
|
#endif
|
264
|
267
|
|
265
|
268
|
#if DISABLED(ULTIPANEL)
|
|
@@ -267,34 +270,34 @@ void Config_StoreSettings() {
|
267
|
270
|
preheatHotendTemp2 = PREHEAT_2_TEMP_HOTEND, preheatBedTemp2 = PREHEAT_2_TEMP_BED, preheatFanSpeed2 = PREHEAT_2_FAN_SPEED;
|
268
|
271
|
#endif // !ULTIPANEL
|
269
|
272
|
|
270
|
|
- EEPROM_WRITE_VAR(i, preheatHotendTemp1);
|
271
|
|
- EEPROM_WRITE_VAR(i, preheatBedTemp1);
|
272
|
|
- EEPROM_WRITE_VAR(i, preheatFanSpeed1);
|
273
|
|
- EEPROM_WRITE_VAR(i, preheatHotendTemp2);
|
274
|
|
- EEPROM_WRITE_VAR(i, preheatBedTemp2);
|
275
|
|
- EEPROM_WRITE_VAR(i, preheatFanSpeed2);
|
|
273
|
+ EEPROM_WRITE(preheatHotendTemp1);
|
|
274
|
+ EEPROM_WRITE(preheatBedTemp1);
|
|
275
|
+ EEPROM_WRITE(preheatFanSpeed1);
|
|
276
|
+ EEPROM_WRITE(preheatHotendTemp2);
|
|
277
|
+ EEPROM_WRITE(preheatBedTemp2);
|
|
278
|
+ EEPROM_WRITE(preheatFanSpeed2);
|
276
|
279
|
|
277
|
280
|
for (uint8_t e = 0; e < MAX_EXTRUDERS; e++) {
|
278
|
281
|
|
279
|
282
|
#if ENABLED(PIDTEMP)
|
280
|
283
|
if (e < HOTENDS) {
|
281
|
|
- EEPROM_WRITE_VAR(i, PID_PARAM(Kp, e));
|
282
|
|
- EEPROM_WRITE_VAR(i, PID_PARAM(Ki, e));
|
283
|
|
- EEPROM_WRITE_VAR(i, PID_PARAM(Kd, e));
|
|
284
|
+ EEPROM_WRITE(PID_PARAM(Kp, e));
|
|
285
|
+ EEPROM_WRITE(PID_PARAM(Ki, e));
|
|
286
|
+ EEPROM_WRITE(PID_PARAM(Kd, e));
|
284
|
287
|
#if ENABLED(PID_ADD_EXTRUSION_RATE)
|
285
|
|
- EEPROM_WRITE_VAR(i, PID_PARAM(Kc, e));
|
|
288
|
+ EEPROM_WRITE(PID_PARAM(Kc, e));
|
286
|
289
|
#else
|
287
|
290
|
dummy = 1.0f; // 1.0 = default kc
|
288
|
|
- EEPROM_WRITE_VAR(i, dummy);
|
|
291
|
+ EEPROM_WRITE(dummy);
|
289
|
292
|
#endif
|
290
|
293
|
}
|
291
|
294
|
else
|
292
|
295
|
#endif // !PIDTEMP
|
293
|
296
|
{
|
294
|
297
|
dummy = DUMMY_PID_VALUE; // When read, will not change the existing value
|
295
|
|
- EEPROM_WRITE_VAR(i, dummy); // Kp
|
|
298
|
+ EEPROM_WRITE(dummy); // Kp
|
296
|
299
|
dummy = 0.0f;
|
297
|
|
- for (uint8_t q = 3; q--;) EEPROM_WRITE_VAR(i, dummy); // Ki, Kd, Kc
|
|
300
|
+ for (uint8_t q = 3; q--;) EEPROM_WRITE(dummy); // Ki, Kd, Kc
|
298
|
301
|
}
|
299
|
302
|
|
300
|
303
|
} // Hotends Loop
|
|
@@ -302,67 +305,68 @@ void Config_StoreSettings() {
|
302
|
305
|
#if DISABLED(PID_ADD_EXTRUSION_RATE)
|
303
|
306
|
int lpq_len = 20;
|
304
|
307
|
#endif
|
305
|
|
- EEPROM_WRITE_VAR(i, lpq_len);
|
|
308
|
+ EEPROM_WRITE(lpq_len);
|
306
|
309
|
|
307
|
310
|
#if DISABLED(PIDTEMPBED)
|
308
|
311
|
dummy = DUMMY_PID_VALUE;
|
309
|
|
- for (uint8_t q = 3; q--;) EEPROM_WRITE_VAR(i, dummy);
|
|
312
|
+ for (uint8_t q = 3; q--;) EEPROM_WRITE(dummy);
|
310
|
313
|
#else
|
311
|
|
- EEPROM_WRITE_VAR(i, thermalManager.bedKp);
|
312
|
|
- EEPROM_WRITE_VAR(i, thermalManager.bedKi);
|
313
|
|
- EEPROM_WRITE_VAR(i, thermalManager.bedKd);
|
|
314
|
+ EEPROM_WRITE(thermalManager.bedKp);
|
|
315
|
+ EEPROM_WRITE(thermalManager.bedKi);
|
|
316
|
+ EEPROM_WRITE(thermalManager.bedKd);
|
314
|
317
|
#endif
|
315
|
318
|
|
316
|
319
|
#if !HAS_LCD_CONTRAST
|
317
|
320
|
const int lcd_contrast = 32;
|
318
|
321
|
#endif
|
319
|
|
- EEPROM_WRITE_VAR(i, lcd_contrast);
|
|
322
|
+ EEPROM_WRITE(lcd_contrast);
|
320
|
323
|
|
321
|
324
|
#if ENABLED(SCARA)
|
322
|
|
- EEPROM_WRITE_VAR(i, axis_scaling); // 3 floats
|
|
325
|
+ EEPROM_WRITE(axis_scaling); // 3 floats
|
323
|
326
|
#else
|
324
|
327
|
dummy = 1.0f;
|
325
|
|
- EEPROM_WRITE_VAR(i, dummy);
|
|
328
|
+ EEPROM_WRITE(dummy);
|
326
|
329
|
#endif
|
327
|
330
|
|
328
|
331
|
#if ENABLED(FWRETRACT)
|
329
|
|
- EEPROM_WRITE_VAR(i, autoretract_enabled);
|
330
|
|
- EEPROM_WRITE_VAR(i, retract_length);
|
|
332
|
+ EEPROM_WRITE(autoretract_enabled);
|
|
333
|
+ EEPROM_WRITE(retract_length);
|
331
|
334
|
#if EXTRUDERS > 1
|
332
|
|
- EEPROM_WRITE_VAR(i, retract_length_swap);
|
|
335
|
+ EEPROM_WRITE(retract_length_swap);
|
333
|
336
|
#else
|
334
|
337
|
dummy = 0.0f;
|
335
|
|
- EEPROM_WRITE_VAR(i, dummy);
|
|
338
|
+ EEPROM_WRITE(dummy);
|
336
|
339
|
#endif
|
337
|
|
- EEPROM_WRITE_VAR(i, retract_feedrate_mm_s);
|
338
|
|
- EEPROM_WRITE_VAR(i, retract_zlift);
|
339
|
|
- EEPROM_WRITE_VAR(i, retract_recover_length);
|
|
340
|
+ EEPROM_WRITE(retract_feedrate_mm_s);
|
|
341
|
+ EEPROM_WRITE(retract_zlift);
|
|
342
|
+ EEPROM_WRITE(retract_recover_length);
|
340
|
343
|
#if EXTRUDERS > 1
|
341
|
|
- EEPROM_WRITE_VAR(i, retract_recover_length_swap);
|
|
344
|
+ EEPROM_WRITE(retract_recover_length_swap);
|
342
|
345
|
#else
|
343
|
346
|
dummy = 0.0f;
|
344
|
|
- EEPROM_WRITE_VAR(i, dummy);
|
|
347
|
+ EEPROM_WRITE(dummy);
|
345
|
348
|
#endif
|
346
|
|
- EEPROM_WRITE_VAR(i, retract_recover_feedrate_mm_s);
|
|
349
|
+ EEPROM_WRITE(retract_recover_feedrate_mm_s);
|
347
|
350
|
#endif // FWRETRACT
|
348
|
351
|
|
349
|
|
- EEPROM_WRITE_VAR(i, volumetric_enabled);
|
|
352
|
+ EEPROM_WRITE(volumetric_enabled);
|
350
|
353
|
|
351
|
354
|
// Save filament sizes
|
352
|
355
|
for (uint8_t q = 0; q < MAX_EXTRUDERS; q++) {
|
353
|
356
|
if (q < COUNT(filament_size)) dummy = filament_size[q];
|
354
|
|
- EEPROM_WRITE_VAR(i, dummy);
|
|
357
|
+ EEPROM_WRITE(dummy);
|
355
|
358
|
}
|
356
|
359
|
|
357
|
|
- uint16_t final_checksum = eeprom_checksum;
|
|
360
|
+ uint16_t final_checksum = eeprom_checksum,
|
|
361
|
+ eeprom_size = eeprom_index;
|
358
|
362
|
|
359
|
|
- int j = EEPROM_OFFSET;
|
360
|
|
- EEPROM_WRITE_VAR(j, version);
|
361
|
|
- EEPROM_WRITE_VAR(j, final_checksum);
|
|
363
|
+ eeprom_index = EEPROM_OFFSET;
|
|
364
|
+ EEPROM_WRITE(version);
|
|
365
|
+ EEPROM_WRITE(final_checksum);
|
362
|
366
|
|
363
|
367
|
// Report storage size
|
364
|
368
|
SERIAL_ECHO_START;
|
365
|
|
- SERIAL_ECHOPAIR("Settings Stored (", i);
|
|
369
|
+ SERIAL_ECHOPAIR("Settings Stored (", eeprom_size);
|
366
|
370
|
SERIAL_ECHOLNPGM(" bytes)");
|
367
|
371
|
}
|
368
|
372
|
|
|
@@ -370,11 +374,15 @@ void Config_StoreSettings() {
|
370
|
374
|
* M501 - Retrieve Configuration
|
371
|
375
|
*/
|
372
|
376
|
void Config_RetrieveSettings() {
|
373
|
|
- int i = EEPROM_OFFSET;
|
|
377
|
+
|
|
378
|
+ EEPROM_START();
|
|
379
|
+
|
374
|
380
|
char stored_ver[4];
|
|
381
|
+ EEPROM_READ(stored_ver);
|
|
382
|
+
|
375
|
383
|
uint16_t stored_checksum;
|
376
|
|
- EEPROM_READ_VAR(i, stored_ver);
|
377
|
|
- EEPROM_READ_VAR(i, stored_checksum);
|
|
384
|
+ EEPROM_READ(stored_checksum);
|
|
385
|
+
|
378
|
386
|
// SERIAL_ECHOPAIR("Version: [", ver);
|
379
|
387
|
// SERIAL_ECHOPAIR("] Stored version: [", stored_ver);
|
380
|
388
|
// SERIAL_ECHOLNPGM("]");
|
|
@@ -388,63 +396,63 @@ void Config_RetrieveSettings() {
|
388
|
396
|
eeprom_checksum = 0; // clear before reading first "real data"
|
389
|
397
|
|
390
|
398
|
// version number match
|
391
|
|
- EEPROM_READ_VAR(i, planner.axis_steps_per_mm);
|
392
|
|
- EEPROM_READ_VAR(i, planner.max_feedrate_mm_s);
|
393
|
|
- EEPROM_READ_VAR(i, planner.max_acceleration_mm_per_s2);
|
394
|
|
-
|
395
|
|
- EEPROM_READ_VAR(i, planner.acceleration);
|
396
|
|
- EEPROM_READ_VAR(i, planner.retract_acceleration);
|
397
|
|
- EEPROM_READ_VAR(i, planner.travel_acceleration);
|
398
|
|
- EEPROM_READ_VAR(i, planner.min_feedrate_mm_s);
|
399
|
|
- EEPROM_READ_VAR(i, planner.min_travel_feedrate_mm_s);
|
400
|
|
- EEPROM_READ_VAR(i, planner.min_segment_time);
|
401
|
|
- EEPROM_READ_VAR(i, planner.max_xy_jerk);
|
402
|
|
- EEPROM_READ_VAR(i, planner.max_z_jerk);
|
403
|
|
- EEPROM_READ_VAR(i, planner.max_e_jerk);
|
404
|
|
- EEPROM_READ_VAR(i, home_offset);
|
|
399
|
+ EEPROM_READ(planner.axis_steps_per_mm);
|
|
400
|
+ EEPROM_READ(planner.max_feedrate_mm_s);
|
|
401
|
+ EEPROM_READ(planner.max_acceleration_mm_per_s2);
|
|
402
|
+
|
|
403
|
+ EEPROM_READ(planner.acceleration);
|
|
404
|
+ EEPROM_READ(planner.retract_acceleration);
|
|
405
|
+ EEPROM_READ(planner.travel_acceleration);
|
|
406
|
+ EEPROM_READ(planner.min_feedrate_mm_s);
|
|
407
|
+ EEPROM_READ(planner.min_travel_feedrate_mm_s);
|
|
408
|
+ EEPROM_READ(planner.min_segment_time);
|
|
409
|
+ EEPROM_READ(planner.max_xy_jerk);
|
|
410
|
+ EEPROM_READ(planner.max_z_jerk);
|
|
411
|
+ EEPROM_READ(planner.max_e_jerk);
|
|
412
|
+ EEPROM_READ(home_offset);
|
405
|
413
|
|
406
|
414
|
uint8_t dummy_uint8 = 0, mesh_num_x = 0, mesh_num_y = 0;
|
407
|
|
- EEPROM_READ_VAR(i, dummy_uint8);
|
408
|
|
- EEPROM_READ_VAR(i, dummy);
|
409
|
|
- EEPROM_READ_VAR(i, mesh_num_x);
|
410
|
|
- EEPROM_READ_VAR(i, mesh_num_y);
|
|
415
|
+ EEPROM_READ(dummy_uint8);
|
|
416
|
+ EEPROM_READ(dummy);
|
|
417
|
+ EEPROM_READ(mesh_num_x);
|
|
418
|
+ EEPROM_READ(mesh_num_y);
|
411
|
419
|
#if ENABLED(MESH_BED_LEVELING)
|
412
|
420
|
mbl.status = dummy_uint8;
|
413
|
421
|
mbl.z_offset = dummy;
|
414
|
422
|
if (mesh_num_x == MESH_NUM_X_POINTS && mesh_num_y == MESH_NUM_Y_POINTS) {
|
415
|
423
|
// EEPROM data fits the current mesh
|
416
|
|
- EEPROM_READ_VAR(i, mbl.z_values);
|
|
424
|
+ EEPROM_READ(mbl.z_values);
|
417
|
425
|
}
|
418
|
426
|
else {
|
419
|
427
|
// EEPROM data is stale
|
420
|
428
|
mbl.reset();
|
421
|
|
- for (uint8_t q = 0; q < mesh_num_x * mesh_num_y; q++) EEPROM_READ_VAR(i, dummy);
|
|
429
|
+ for (uint8_t q = 0; q < mesh_num_x * mesh_num_y; q++) EEPROM_READ(dummy);
|
422
|
430
|
}
|
423
|
431
|
#else
|
424
|
432
|
// MBL is disabled - skip the stored data
|
425
|
|
- for (uint8_t q = 0; q < mesh_num_x * mesh_num_y; q++) EEPROM_READ_VAR(i, dummy);
|
|
433
|
+ for (uint8_t q = 0; q < mesh_num_x * mesh_num_y; q++) EEPROM_READ(dummy);
|
426
|
434
|
#endif // MESH_BED_LEVELING
|
427
|
435
|
|
428
|
436
|
#if !HAS_BED_PROBE
|
429
|
437
|
float zprobe_zoffset = 0;
|
430
|
438
|
#endif
|
431
|
|
- EEPROM_READ_VAR(i, zprobe_zoffset);
|
|
439
|
+ EEPROM_READ(zprobe_zoffset);
|
432
|
440
|
|
433
|
441
|
#if ENABLED(DELTA)
|
434
|
|
- EEPROM_READ_VAR(i, endstop_adj); // 3 floats
|
435
|
|
- EEPROM_READ_VAR(i, delta_radius); // 1 float
|
436
|
|
- EEPROM_READ_VAR(i, delta_diagonal_rod); // 1 float
|
437
|
|
- EEPROM_READ_VAR(i, delta_segments_per_second); // 1 float
|
438
|
|
- EEPROM_READ_VAR(i, delta_diagonal_rod_trim_tower_1); // 1 float
|
439
|
|
- EEPROM_READ_VAR(i, delta_diagonal_rod_trim_tower_2); // 1 float
|
440
|
|
- EEPROM_READ_VAR(i, delta_diagonal_rod_trim_tower_3); // 1 float
|
|
442
|
+ EEPROM_READ(endstop_adj); // 3 floats
|
|
443
|
+ EEPROM_READ(delta_radius); // 1 float
|
|
444
|
+ EEPROM_READ(delta_diagonal_rod); // 1 float
|
|
445
|
+ EEPROM_READ(delta_segments_per_second); // 1 float
|
|
446
|
+ EEPROM_READ(delta_diagonal_rod_trim_tower_1); // 1 float
|
|
447
|
+ EEPROM_READ(delta_diagonal_rod_trim_tower_2); // 1 float
|
|
448
|
+ EEPROM_READ(delta_diagonal_rod_trim_tower_3); // 1 float
|
441
|
449
|
#elif ENABLED(Z_DUAL_ENDSTOPS)
|
442
|
|
- EEPROM_READ_VAR(i, z_endstop_adj);
|
|
450
|
+ EEPROM_READ(z_endstop_adj);
|
443
|
451
|
dummy = 0.0f;
|
444
|
|
- for (uint8_t q=8; q--;) EEPROM_READ_VAR(i, dummy);
|
|
452
|
+ for (uint8_t q=8; q--;) EEPROM_READ(dummy);
|
445
|
453
|
#else
|
446
|
454
|
dummy = 0.0f;
|
447
|
|
- for (uint8_t q=9; q--;) EEPROM_READ_VAR(i, dummy);
|
|
455
|
+ for (uint8_t q=9; q--;) EEPROM_READ(dummy);
|
448
|
456
|
#endif
|
449
|
457
|
|
450
|
458
|
#if DISABLED(ULTIPANEL)
|
|
@@ -452,86 +460,86 @@ void Config_RetrieveSettings() {
|
452
|
460
|
preheatHotendTemp2, preheatBedTemp2, preheatFanSpeed2;
|
453
|
461
|
#endif
|
454
|
462
|
|
455
|
|
- EEPROM_READ_VAR(i, preheatHotendTemp1);
|
456
|
|
- EEPROM_READ_VAR(i, preheatBedTemp1);
|
457
|
|
- EEPROM_READ_VAR(i, preheatFanSpeed1);
|
458
|
|
- EEPROM_READ_VAR(i, preheatHotendTemp2);
|
459
|
|
- EEPROM_READ_VAR(i, preheatBedTemp2);
|
460
|
|
- EEPROM_READ_VAR(i, preheatFanSpeed2);
|
|
463
|
+ EEPROM_READ(preheatHotendTemp1);
|
|
464
|
+ EEPROM_READ(preheatBedTemp1);
|
|
465
|
+ EEPROM_READ(preheatFanSpeed1);
|
|
466
|
+ EEPROM_READ(preheatHotendTemp2);
|
|
467
|
+ EEPROM_READ(preheatBedTemp2);
|
|
468
|
+ EEPROM_READ(preheatFanSpeed2);
|
461
|
469
|
|
462
|
470
|
#if ENABLED(PIDTEMP)
|
463
|
471
|
for (uint8_t e = 0; e < MAX_EXTRUDERS; e++) {
|
464
|
|
- EEPROM_READ_VAR(i, dummy); // Kp
|
|
472
|
+ EEPROM_READ(dummy); // Kp
|
465
|
473
|
if (e < HOTENDS && dummy != DUMMY_PID_VALUE) {
|
466
|
474
|
// do not need to scale PID values as the values in EEPROM are already scaled
|
467
|
475
|
PID_PARAM(Kp, e) = dummy;
|
468
|
|
- EEPROM_READ_VAR(i, PID_PARAM(Ki, e));
|
469
|
|
- EEPROM_READ_VAR(i, PID_PARAM(Kd, e));
|
|
476
|
+ EEPROM_READ(PID_PARAM(Ki, e));
|
|
477
|
+ EEPROM_READ(PID_PARAM(Kd, e));
|
470
|
478
|
#if ENABLED(PID_ADD_EXTRUSION_RATE)
|
471
|
|
- EEPROM_READ_VAR(i, PID_PARAM(Kc, e));
|
|
479
|
+ EEPROM_READ(PID_PARAM(Kc, e));
|
472
|
480
|
#else
|
473
|
|
- EEPROM_READ_VAR(i, dummy);
|
|
481
|
+ EEPROM_READ(dummy);
|
474
|
482
|
#endif
|
475
|
483
|
}
|
476
|
484
|
else {
|
477
|
|
- for (uint8_t q=3; q--;) EEPROM_READ_VAR(i, dummy); // Ki, Kd, Kc
|
|
485
|
+ for (uint8_t q=3; q--;) EEPROM_READ(dummy); // Ki, Kd, Kc
|
478
|
486
|
}
|
479
|
487
|
}
|
480
|
488
|
#else // !PIDTEMP
|
481
|
489
|
// 4 x 4 = 16 slots for PID parameters
|
482
|
|
- for (uint8_t q = MAX_EXTRUDERS * 4; q--;) EEPROM_READ_VAR(i, dummy); // Kp, Ki, Kd, Kc
|
|
490
|
+ for (uint8_t q = MAX_EXTRUDERS * 4; q--;) EEPROM_READ(dummy); // Kp, Ki, Kd, Kc
|
483
|
491
|
#endif // !PIDTEMP
|
484
|
492
|
|
485
|
493
|
#if DISABLED(PID_ADD_EXTRUSION_RATE)
|
486
|
494
|
int lpq_len;
|
487
|
495
|
#endif
|
488
|
|
- EEPROM_READ_VAR(i, lpq_len);
|
|
496
|
+ EEPROM_READ(lpq_len);
|
489
|
497
|
|
490
|
498
|
#if ENABLED(PIDTEMPBED)
|
491
|
|
- EEPROM_READ_VAR(i, dummy); // bedKp
|
|
499
|
+ EEPROM_READ(dummy); // bedKp
|
492
|
500
|
if (dummy != DUMMY_PID_VALUE) {
|
493
|
501
|
thermalManager.bedKp = dummy;
|
494
|
|
- EEPROM_READ_VAR(i, thermalManager.bedKi);
|
495
|
|
- EEPROM_READ_VAR(i, thermalManager.bedKd);
|
|
502
|
+ EEPROM_READ(thermalManager.bedKi);
|
|
503
|
+ EEPROM_READ(thermalManager.bedKd);
|
496
|
504
|
}
|
497
|
505
|
#else
|
498
|
|
- for (uint8_t q=3; q--;) EEPROM_READ_VAR(i, dummy); // bedKp, bedKi, bedKd
|
|
506
|
+ for (uint8_t q=3; q--;) EEPROM_READ(dummy); // bedKp, bedKi, bedKd
|
499
|
507
|
#endif
|
500
|
508
|
|
501
|
509
|
#if !HAS_LCD_CONTRAST
|
502
|
510
|
int lcd_contrast;
|
503
|
511
|
#endif
|
504
|
|
- EEPROM_READ_VAR(i, lcd_contrast);
|
|
512
|
+ EEPROM_READ(lcd_contrast);
|
505
|
513
|
|
506
|
514
|
#if ENABLED(SCARA)
|
507
|
|
- EEPROM_READ_VAR(i, axis_scaling); // 3 floats
|
|
515
|
+ EEPROM_READ(axis_scaling); // 3 floats
|
508
|
516
|
#else
|
509
|
|
- EEPROM_READ_VAR(i, dummy);
|
|
517
|
+ EEPROM_READ(dummy);
|
510
|
518
|
#endif
|
511
|
519
|
|
512
|
520
|
#if ENABLED(FWRETRACT)
|
513
|
|
- EEPROM_READ_VAR(i, autoretract_enabled);
|
514
|
|
- EEPROM_READ_VAR(i, retract_length);
|
|
521
|
+ EEPROM_READ(autoretract_enabled);
|
|
522
|
+ EEPROM_READ(retract_length);
|
515
|
523
|
#if EXTRUDERS > 1
|
516
|
|
- EEPROM_READ_VAR(i, retract_length_swap);
|
|
524
|
+ EEPROM_READ(retract_length_swap);
|
517
|
525
|
#else
|
518
|
|
- EEPROM_READ_VAR(i, dummy);
|
|
526
|
+ EEPROM_READ(dummy);
|
519
|
527
|
#endif
|
520
|
|
- EEPROM_READ_VAR(i, retract_feedrate_mm_s);
|
521
|
|
- EEPROM_READ_VAR(i, retract_zlift);
|
522
|
|
- EEPROM_READ_VAR(i, retract_recover_length);
|
|
528
|
+ EEPROM_READ(retract_feedrate_mm_s);
|
|
529
|
+ EEPROM_READ(retract_zlift);
|
|
530
|
+ EEPROM_READ(retract_recover_length);
|
523
|
531
|
#if EXTRUDERS > 1
|
524
|
|
- EEPROM_READ_VAR(i, retract_recover_length_swap);
|
|
532
|
+ EEPROM_READ(retract_recover_length_swap);
|
525
|
533
|
#else
|
526
|
|
- EEPROM_READ_VAR(i, dummy);
|
|
534
|
+ EEPROM_READ(dummy);
|
527
|
535
|
#endif
|
528
|
|
- EEPROM_READ_VAR(i, retract_recover_feedrate_mm_s);
|
|
536
|
+ EEPROM_READ(retract_recover_feedrate_mm_s);
|
529
|
537
|
#endif // FWRETRACT
|
530
|
538
|
|
531
|
|
- EEPROM_READ_VAR(i, volumetric_enabled);
|
|
539
|
+ EEPROM_READ(volumetric_enabled);
|
532
|
540
|
|
533
|
541
|
for (uint8_t q = 0; q < MAX_EXTRUDERS; q++) {
|
534
|
|
- EEPROM_READ_VAR(i, dummy);
|
|
542
|
+ EEPROM_READ(dummy);
|
535
|
543
|
if (q < COUNT(filament_size)) filament_size[q] = dummy;
|
536
|
544
|
}
|
537
|
545
|
|
|
@@ -539,7 +547,7 @@ void Config_RetrieveSettings() {
|
539
|
547
|
Config_Postprocess();
|
540
|
548
|
SERIAL_ECHO_START;
|
541
|
549
|
SERIAL_ECHO(version);
|
542
|
|
- SERIAL_ECHOPAIR(" stored settings retrieved (", i);
|
|
550
|
+ SERIAL_ECHOPAIR(" stored settings retrieved (", eeprom_index);
|
543
|
551
|
SERIAL_ECHOLNPGM(" bytes)");
|
544
|
552
|
}
|
545
|
553
|
else {
|