LV2 Flight Computer State Flow (for "sequencer.c")
Up: | Software |
---|---|
Xref: | LaunchSequenceLv2,LaunchControl |
- Turn on: Housecleaning tasks necessary before starting the state machine.
- 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.
- 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).
- 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
- 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).
- 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).
- 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.
- 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.
- 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
- 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
- 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
LC_DEPLOY_DROGUE
.
- Goto Boost on chuff detect (engine has started up again)
- 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.
LC_DEPLOY_MAIN
- 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
LC_DEPLOY_MAIN
- 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)
- Descend Main: Main chutes deployed and the rocket is descending (slowly).)
- Disarm recovery node.
- Goto Recovery Wait on touchdown detect
- 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
- 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
- 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:
- StateMachineApr2003
- ?FlightSequencing
Attachments: