Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion firmware/src/controller/homing_planner.c
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ TM_RAMFUNC bool homing_planner_evaluate()
if (state.stay_t_current >= config.max_stay_t)
{
// First time the endstop is considered found, reset origins and setpoints
frame_user_to_position_sensor_set_offset(observer_pos);
frame_user_to_position_sensor_set_offset(position_observer_get_pos_estimate());
controller_set_pos_setpoint_user_frame(0);
controller_set_vel_setpoint_user_frame(0);
}
Expand Down
28 changes: 28 additions & 0 deletions studio/Python/tests/test_nvm.py
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,34 @@ def test_c_parameter_persistence(self):
self.erase_config()
time.sleep(0.2)

def test_c2_homing_parameter_persistence(self):
"""
Test persisting homing parameters across config saves.
WARNING: This will perform one NVRAM write and two erase cycles.
"""
self.check_state(0)
self.erase_config()
time.sleep(0.2)

self.tm.homing.velocity = 5000
self.tm.homing.max_homing_t = 10.0
self.tm.homing.retract_dist = 2000
self.tm.homing.stall_detect.velocity = 3000
self.tm.homing.stall_detect.delta_pos = 500
self.tm.homing.stall_detect.t = 2.0
self.save_config()

time.sleep(0.2)
self.reset_and_wait()
self.assertAlmostEqual(self.tm.homing.velocity, 5000 * tick / s, delta=1 * tick / s)
self.assertAlmostEqual(self.tm.homing.max_homing_t, 10.0 * s, delta=0.01 * s)
self.assertAlmostEqual(self.tm.homing.retract_dist, 2000 * tick, delta=1 * tick)
self.assertAlmostEqual(self.tm.homing.stall_detect.velocity, 3000 * tick / s, delta=1 * tick / s)
self.assertAlmostEqual(self.tm.homing.stall_detect.delta_pos, 500 * tick, delta=1 * tick)
self.assertAlmostEqual(self.tm.homing.stall_detect.t, 2.0 * s, delta=0.01 * s)
self.erase_config()
time.sleep(0.2)

def test_d_position_control_w_loaded_config(self):
"""
Test position control after saving and loading config.
Expand Down