diff --git a/src/modules/stage/stage.cpp b/src/modules/stage/stage.cpp index c228c86..fb84138 100644 --- a/src/modules/stage/stage.cpp +++ b/src/modules/stage/stage.cpp @@ -12,12 +12,13 @@ // The array below has 3 stepper objects, for X,Y,Z respectively const uint8_t n_motors = STAGE_N_MOTORS; +const uint8_t stage_position_eeprom = 0; long min_step_delay = -1; -const uint8_t min_step_delay_eeprom = sizeof(long) * n_motors; +const uint8_t min_step_delay_eeprom = stage_position_eeprom + sizeof(long) * n_motors; long ramp_time = -1; -const uint8_t ramp_time_eeprom = sizeof(long) * (n_motors + 1); -const uint8_t axis_max_eeprom = sizeof(long) * (n_motors + 2); -const uint8_t non_blocking_moves_eeprom = sizeof(long) * (n_motors + 3); +const uint8_t ramp_time_eeprom = min_step_delay_eeprom + sizeof(long); +const uint8_t axis_max_eeprom = ramp_time_eeprom + sizeof(long); +const uint8_t non_blocking_moves_eeprom = axis_max_eeprom + sizeof(long); Stepper *motors[n_motors]; signed long current_pos[n_motors]; long steps_remaining[n_motors]; @@ -181,6 +182,7 @@ void stage_loop() } } } + EEPROM.put(0, current_pos); // ensure our position is held in EEPROM so it persists if (!stage_moving && notify_on_stop) {