diff --git a/Firmware/MotorControl/axis.cpp b/Firmware/MotorControl/axis.cpp index f5e64724..dcd21b55 100644 --- a/Firmware/MotorControl/axis.cpp +++ b/Firmware/MotorControl/axis.cpp @@ -334,6 +334,7 @@ bool Axis::run_closed_loop_control_loop() { controller_.config_.control_mode = homing_.storedControlMode; controller_.config_.input_mode = homing_.storedInputMode; homing_.homing_state = HOMING_STATE_IDLE; + homing_.isHomed = true; } } else { // Check for endstop presses diff --git a/Firmware/MotorControl/axis.hpp b/Firmware/MotorControl/axis.hpp index f53ae0c1..060e3005 100644 --- a/Firmware/MotorControl/axis.hpp +++ b/Firmware/MotorControl/axis.hpp @@ -94,6 +94,7 @@ public: HomingState_t homing_state = HOMING_STATE_IDLE; Controller::ControlMode_t storedControlMode = Controller::CTRL_MODE_POSITION_CONTROL; Controller::InputMode_t storedInputMode = Controller::INPUT_MODE_PASSTHROUGH; + bool isHomed = false; }; enum thread_signals { @@ -272,6 +273,7 @@ public: make_protocol_ro_property("loop_counter", &loop_counter_), make_protocol_ro_property("lockin_state", &lockin_state_), make_protocol_ro_property("homing_state", &homing_.homing_state), + make_protocol_property("is_homed", &homing_.isHomed), make_protocol_object("config", make_protocol_property("startup_motor_calibration", &config_.startup_motor_calibration), make_protocol_property("startup_encoder_index_search", &config_.startup_encoder_index_search), diff --git a/Firmware/MotorControl/controller.cpp b/Firmware/MotorControl/controller.cpp index b77d6ed1..8837bae1 100644 --- a/Firmware/MotorControl/controller.cpp +++ b/Firmware/MotorControl/controller.cpp @@ -72,6 +72,7 @@ bool Controller::home_axis() { input_vel_ = -config_.homing_speed; input_current_ = 0.0f; + axis_->homing_.isHomed = false; axis_->homing_.homing_state = HOMING_STATE_HOMING; } else { return false;