diff --git a/scripts/event_header_generator/Events.h.template b/scripts/event_header_generator/Events.h.template index 456d25118ec7bae544e4f460c5905c0cf601607a..3d79b58591da02b142395484b2d2865983d57a7f 100644 --- a/scripts/event_header_generator/Events.h.template +++ b/scripts/event_header_generator/Events.h.template @@ -37,7 +37,6 @@ #include "events/Event.h" #include "events/EventBroker.h" -#include "EventStrings.h" #include "Topics.h" using std::string; diff --git a/src/boards/DeathStack/DeploymentController/DeploymentController.cpp b/src/boards/DeathStack/DeploymentController/DeploymentController.cpp index b1dc602053cebf0c491a1ec5cd0d0feb603a2fff..6df81f36d7493c6705cd29f2a237c6480efbabf0 100644 --- a/src/boards/DeathStack/DeploymentController/DeploymentController.cpp +++ b/src/boards/DeathStack/DeploymentController/DeploymentController.cpp @@ -132,6 +132,11 @@ State DeploymentController::state_idle(const Event& ev) resetServo(); break; } + case EV_WIGGLE_SERVO + { + wiggleServo(); + break; + } default: { retState = tran_super(&DeploymentController::Hsm_top); @@ -407,4 +412,17 @@ void DeploymentController::disableServo() ejection_servo.disable(SERVO_CHANNEL); } +void DeploymentController::wiggleServo() +{ + for (int i = 0; i < 3; i++) + { + ejection_servo.setPosition(SERVO_CHANNEL, SERVO_RESET_POS + SERVO_WIGGLE_AMPLITUDE); + Thread::sleep(500); + ejection_servo.setPosition(SERVO_CHANNEL, SERVO_RESET_POS - SERVO_WIGGLE_AMPLITUDE); + Thread::sleep(500); + ejection_servo.setPosition(SERVO_CHANNEL, SERVO_RESET_POS); + Thread::sleep(500); + } +} + } // namespace DeathStackBoard diff --git a/src/boards/DeathStack/DeploymentController/DeploymentController.h b/src/boards/DeathStack/DeploymentController/DeploymentController.h index fca36fe5173be3908270968ce60e378ca834292b..c8d0f9db3859c7997f9c5c3caa663c56d1753acc 100644 --- a/src/boards/DeathStack/DeploymentController/DeploymentController.h +++ b/src/boards/DeathStack/DeploymentController/DeploymentController.h @@ -90,6 +90,12 @@ private: void ejectNosecone(); void disableServo(); + /** + * @brief Wiggle the servo just a bit around the reset position to show it's + * working + */ + void wiggleServo(); + /** * Defer an event to be processed when the state machine goes back to * state_idle diff --git a/src/boards/DeathStack/FlightModeManager/FlightModeManager.cpp b/src/boards/DeathStack/FlightModeManager/FlightModeManager.cpp index 304466402199d2e089e6c16609070cb6d474db7c..2e50d0c57208df2c9d3c43dbea0c4e1bdf012b1a 100644 --- a/src/boards/DeathStack/FlightModeManager/FlightModeManager.cpp +++ b/src/boards/DeathStack/FlightModeManager/FlightModeManager.cpp @@ -339,6 +339,7 @@ State FlightModeManager::state_armed(const Event& ev) break; } case EV_UMBILICAL_DETACHED: + case EV_TC_LAUNCH: { retState = transition(&FlightModeManager::state_ascending); break; @@ -412,6 +413,11 @@ State FlightModeManager::state_testing(const Event& ev) sEventBroker->post(Event{EV_RESET_SERVO}, TOPIC_DEPLOYMENT); break; } + case EV_TC_WIGGLE_SERVO: + { + sEventBroker->post(Event{EV_WIGGLE_SERVO}, TOPIC_DEPLOYMENT); + break; + } case EV_TC_CLOSE_LOG: { logger.stop(); diff --git a/src/boards/DeathStack/SensorManager/SensorManager.cpp b/src/boards/DeathStack/SensorManager/SensorManager.cpp index 1ab94e8b1ddc75ef5d4ac2289f44daef0ecde316..de2107d071663440077261cf215c02021d00e933 100644 --- a/src/boards/DeathStack/SensorManager/SensorManager.cpp +++ b/src/boards/DeathStack/SensorManager/SensorManager.cpp @@ -122,16 +122,24 @@ void SensorManager::initSensors() sensor_status.piksi = 1; // Initialization + TRACE("Mpu init\n"); sensor_status.mpu9250 = imu_mpu9250->init(); // sensor_status.adis = imu_adis16405->init(); + TRACE("LM75b IMU init\n"); sensor_status.lm75b_imu = temp_lm75b_imu->init(); + + TRACE("LM75b ANAL init\n"); + sensor_status.lm75b_analog = temp_lm75b_analog->init(); // // TODO: lsm6ds3h - sensor_status.ms5803 = pressure_ms5803->init(); + TRACE("MS5803 init\n"); + sensor_status.ms5803 = pressure_ms5803->init(); + TRACE("AD7994 init\n"); + sensor_status.ad7994 = adc_ad7994->init(); sensor_status.battery_sensor = adc_internal->getBatterySensorPtr()->init(); @@ -254,16 +262,7 @@ void SensorManager::stateIdle(const Event& ev) // Perform the transition in both cases case EV_TC_START_SENSOR_LOGGING: - case EV_LIFTOFF: - -#ifdef USE_MOCK_SENSORS - // Signal to the mock pressure sensor that we have liftoff in order - // to start simulating flight pressures - if (ev.sig == EV_LIFTOFF) - { - mock_pressure_sensor->before_liftoff = false; - } -#endif + case EV_ARMED: transition(&SensorManager::stateLogging); break; diff --git a/src/boards/DeathStack/TMTCManager/TMTCManager.cpp b/src/boards/DeathStack/TMTCManager/TMTCManager.cpp index c350f125fc9473abea74eddd623a8c0526c67be7..6546c580c5c264a80cbd8ddf22bd2dd8d93be108 100644 --- a/src/boards/DeathStack/TMTCManager/TMTCManager.cpp +++ b/src/boards/DeathStack/TMTCManager/TMTCManager.cpp @@ -75,7 +75,7 @@ void TMTCManager::stateGroundTM(const Event& ev) test_tm_event_id = sEventBroker->postDelayed<TEST_TM_TIMEOUT>( Event{EV_SEND_TEST_TM}, TOPIC_TMTC); - TRACE("[TMTC] Entering stateTestTM\n"); + TRACE("[TMTC] Entering stateGroundTM\n"); StackLogger::getInstance()->updateStack(THID_TMTC_FSM); break; @@ -118,7 +118,7 @@ void TMTCManager::stateGroundTM(const Event& ev) { sEventBroker->removeDelayed(test_tm_event_id); - TRACE("[TMTC] Exiting stateTestTM\n"); + TRACE("[TMTC] Exiting stateGroundTM\n"); break; } default: diff --git a/src/boards/DeathStack/TMTCManager/TMTCManager.h b/src/boards/DeathStack/TMTCManager/TMTCManager.h index 2aa2b8710ac1a13fbe438d366351babe165a9690..da3e07f9d6ab7f8f2b1d460144cb4bd246e4e733 100644 --- a/src/boards/DeathStack/TMTCManager/TMTCManager.h +++ b/src/boards/DeathStack/TMTCManager/TMTCManager.h @@ -74,7 +74,6 @@ private: // void stateIdle(const Event& ev); void stateGroundTM(const Event& ev); void stateFlightTM(const Event& ev); - void stateTestTM(const Event& ev); inline void packHRTelemetry(uint8_t* packet, unsigned int index); inline void packLRTelemetry(uint8_t* packet); diff --git a/src/boards/DeathStack/configs/DeploymentConfig.h b/src/boards/DeathStack/configs/DeploymentConfig.h index 99b32893bce9aa9a24d916781893adfe7f89bddd..3c71bc6887f273ac4fe68f1aab4e1b426940938a 100644 --- a/src/boards/DeathStack/configs/DeploymentConfig.h +++ b/src/boards/DeathStack/configs/DeploymentConfig.h @@ -38,8 +38,7 @@ namespace DeploymentConfigs static constexpr uint8_t MAX_EJECTION_ATTEMPTS = 1; -static constexpr int NC_OPEN_TIMEOUT = 10000; -static constexpr int SERVO_RESET_TIMEOUT = 1000; +static constexpr int NC_OPEN_TIMEOUT = 5000; static const PWM::Timer SERVO_TIMER{ TIM4, &(RCC->APB1ENR), RCC_APB1ENR_TIM4EN, @@ -49,6 +48,8 @@ static constexpr PWMChannel SERVO_CHANNEL = PWMChannel::CH1; // Servo rest position static constexpr float SERVO_RESET_POS = 0.77f; +static constexpr float SERVO_WIGGLE_AMPLITUDE = 0.02f; + // Servo position when ejecting the nosecone static constexpr float SERVO_EJECT_POS = 0.45f;