PSAS/ FlightComputerStateFlowSep2003

LV2 Flight Computer State Flow (for "sequencer.c")

Up: Software
Xref: LaunchSequenceLv2,LaunchControl

  1. Turn on: Housecleaning tasks necessary before starting the state machine.

  2. Evaluate Power up: Check for a reboot in flight

    • Check log (or FC status file) for current rocket state at last powerdown (in debug mode? in flight?)
    • Goto Initialize UNLESS:
    • Log/FC status file says we're doing something else, and recovery node and sensors verify that.
    • Jump to the "current" state, while determining if any nodes need to be reset/initialized.

  3. Initialize: Get all nodes in a known and safe state.

    • RocketReady deasserted
    • Recovery node safed
    • All nodes off or in "off/low power" mode
    • Goto Idle after all nodes are safed (automatic transition).

  4. Idle: Low power mode for waiting on pad or for debugging

    • FC, APS and REC nodes only.
    • Goto Preflight Check on LC_START_PREFLIGHT_CHECK message

  5. Preflight Check: Turn on and test all subsystems.

    • Turn on all nodes
    • Test all subsystems
    • Goto Idle on LC_ABORT_LAUNCH or failed subsystem test.
    • Goto Ready if all tests pass (automatic transition).

  6. Ready: All systems are go; waiting for count down

    • Arm the recovery node using the 2m system
    • Goto Idle on LC_ABORT_LAUNCH or any system failure, error or warning.
    • Goto Armed on LC_ARM_FC_FOR_COUNTDOWN (at T-110 seconds into countdown).

  7. Armed: _Nodes ready for flight; waiting for launch _

    • Arm all CAN nodes except Recovery node.
    • Goto Rocket Ready on LC_T-5_SECONDS message.
    • Goto Initialize on LC_ABORT_LAUNCH or any system failure, error or warning.

  8. Rocket Ready: Turn on the launch interlock relay and wait for launch detect.

    • Start and check recovery timers; begin reseting recovery timers every second until launch detect.
    • Assert the RocketReady line (APS)
    • Inform launchcontrol that rocketready is asserted and we're go for launch.
    • Goto Boost on launch detect.
    • Goto Launch Abort on LC_ABORT_LAUNCH or any system failure, error or warning.

  9. Launch Abort: The launch has been aborted, but it may be too late; wait in case the main motor has ignited.

    • Start 60 second timer; keep reseting T-0 time on recovery timers.
    • Goto Preflight check on 60 sec. timeout
    • Goto Boost if launch detected

  10. Boost: IMU/GPS/Altimeter/Umbilical vote implies motor has started.

    • Update recovery node timer with actual launch time.
    • Goto Coast on burnout detect.
    • Goto Deploy drogue on:
    • Manual command
    • Recovery node timeout occurred

  11. Coast: Motor has burnt out and the rocket is coasting

    • Goto Boost on chuff detect (engine has started up again)

    • Goto Deploy drogue on:
    • Apogee detect
    • Recovery timeout occurred

  12. Deploy Drogue: Apogee has been reached; deploy the drogue parachute.

    • Tell recovery node to deploy drogue now.
    • Goto Descend Drogue on drogue deployed detected
    • Goto Deploy Main on:
    • No drogue timeout (panic).
    • Recovery timeout occurred.

  13. Descend Drogue: The drogue is deployed and the rocket is descending (fast).

    • Update recovery node line cutter timer.
    • Goto Deploying Main on:
    • AGL < 500m
    • Recovery node timeout

  14. Deploy Main: Near ground; fire the line cutters to release the main parachute.

    • Tell recovery node to fire line cutter.
    • Goto Descend Main on main deployed detect.
    • Goto Lawn Dart if main chute timeout (panic)

  15. Descend Main: Main chutes deployed and the rocket is descending (slowly).)

    • Disarm recovery node.
    • Goto Recovery Wait on touchdown detect

  16. Recovery Wait: Rocket on ground; waiting for recovery teams to pick it up.

    • Disarm all nodes.
    • Goto Recovery Sleep if battery low
    • Goto Power Down on LC_POWER_DOWN

  17. Recovery Sleep: Low power waiting mode.

    • Go into a low power mode. Cycle Wifi and ATV amplifiers to conserve power.
    • At a minimum, send GPS data.
    • Goto Powering Down on LC_POWER_DOWN

  18. Power down: Power the rocket down.

    • Entered via a power down condition
    • manual (via message)
    • manual (via hardware jumper)
    • Shuts down tasks
    • Issues can message to power node
    • halts kernel.

OUTDATED, OLDER state flows: