This repository contains code used for flight software for Nakuja Rocket N2. The following description provides a detailed description of program flow, project structure, library dependencies and/or any other necessary documentation needed to run this code successfully.
├── data
│ └── flightdata.txt
├── include
│ ├── checkState.h
│ ├── defs.h
│ ├── functions.h
│ ├── kalmanfilter.h
│ ├── logdata.h
│ ├── readsensors.h
│ └── transmitwifi.h
├── lib
│ └── README
├── LICENSE
├── platformio.ini
├── README.md
├── src
│ └── main.cpp
└── test
└── README| Folder | Description |
|---|---|
| include | Contains header files |
| lib | Project libraries |
| src | Contains main.cpp source file run by the flight computer |
| test | Contains unit test files |
| File | Description |
|---|---|
| defs.h | Contains constants declaration |
| functions.h | Contains general utility functions and prototype function declarations |
| logdata.h | code for SD card mounting and logging |
| checkState.h | Contains state machine logic |
| kalmanfilter.h | Contains kalman filter for accelerometer values |
| readsensors.h | Contains code for sensors on board including the MPU,BMP,GPS |
| transmitwifi.h | Contains WiFi set-up and MQTT code |
The flight program is structured as a state machine with the following states:
| State | Description | Waiting for event |
|---|---|---|
| 0 | Pre-Flight Ground | altitude >= 10m AGL |
| 1 | Powered Flight | |
| 2 | Coasting | velocity < 0 to detect apogee |
| 3 | Apogee | 10m below apogee to deploy parachute |
| 4 | Chute Descent | altitude <= 10m AGL |
| 5 | Post-flight Ground | No more events |
Proposed safe mode conditions to prevent premature misfires of the parachute ejection system:
- Ejection system pins are disabled
- State transitions are locked
- State is maintained at SAFE_MODE-PREFLIGHT
In the flight-mode:
- The parachute ejection system is enabled- any pin being used in the ejection system is enabled
- State transition flag is enabled
