Professional Flight Computer Firmware for Model Rocketry
What is ARK? • Design Philosophy • Architecture • Project Structure • Usage Concept
Developed by Team Ignition
Vellore Institute of Technology, Chennai
ARK (Advanced Rocketry Kernel) is a robust, safe, and heavily tested SDK designed to support the development of a Flight Operating System.
ARK is not an application and not a monolithic firmware.
It is a restricted execution kernel that exposes only flight-safe interfaces required for:
- Sensor data acquisition and filtering
- Flight state estimation inputs
- Deterministic execution control
- Payload isolation
The Flight Operating System (Flight OS) built on top of ARK is responsible for scheduling, supervision, and orchestration.
Flight safety always takes precedence over payload execution.
ARK enforces this principle by design:
- Flight logic always has the highest priority
- Payload applications run only during free cycles
- Hardware access is strictly mediated
- Only validated and filtered data is exposed (Unless an external driver is added by the suer)
- Deterministic behavior
- Defensive defaults
- No implicit side effects
- Clear failure boundaries
ARK exposes only:
- Processed sensor outputs
- Flight state indicators
- Explicit lifecycle hooks
- Controlled configuration points
Everything else remains internal.
- ARK Core → flight-safe kernel logic
- Drivers → hardware abstraction
- Flight OS → scheduling and policy
- Payload → non-critical computation
- Raw sensor ingestion
- Filtering and validation
- Processed outputs (altitude, acceleration, etc.)
- Compile-time option for file-based data sources (simulation/testing)
- Centralized flight state interfaces
- Deterministic state evaluation inputs
- Designed to be driven by the Flight OS
- Base
ARKclass initialization - Driver registration
- Sensor pin / source configuration
- Mission parameter configuration (e.g. expected altitude)
- Payload attachment with strict execution constraints
┌─────────────────────────────────────────────┐
│ Payload App │
│ (Non-critical logic, runs on free cycles) │
└─────────────────────▲───────────────────────┘
│
┌─────────────────────┴───────────────────────┐
│ Flight OS │
│ • Registers drivers & subsystems │
│ • Defines mission parameters │
│ • Composes system configuration │
└─────────────────────▲───────────────────────┘
│
┌─────────────────────┴───────────────────────┐
│ ARK │
│ • Deterministic scheduling │
│ • Execution priority control │
│ • Sensor filtering & validation │
│ • Flight state interfaces │
│ • Safety gates & isolation │
└─────────────────────▲───────────────────────┘
│
┌─────────────────────┴───────────────────────┐
│ Hardware Drivers │
│ • Sensors │
│ • Actuators │
│ • Low-level peripherals │
└─────────────────────────────────────────────┘
Current repository layout:
ARK/
├── core/ # Core ARK kernel (to be implemented)
├── docs/ # Architecture, specifications, design notes
├── examples/ # Example payloads and integrations
├── test/ # Unit and integration tests
├── tools/ # Build, simulation, and analysis tools
├── public/ # Logos and shared visual assets
├── README.md
ARK ark;
/* Initialize kernel */
ark.init();
/* Register hardware drivers */
ark.addDriver(barometer);
ark.addDriver(accelerometer);
/* Configure sensor sources */
ark.configureSensors({
.altitude = SENSOR_BARO,
.accel = SENSOR_IMU
});
/* Mission parameters */
ark.setExpectedAltitude(1200.0f);
/* Attach payload */
ark.attachPayload(payloadApp);
/* Hand control to Flight OS */
FlightOS::run(ark);Payload execution never interferes with flight-critical execution.
- Rocket flight computers
- Experimental aerospace systems
- Safety-critical embedded research
- Flight simulation and validation
- Academic and R&D avionics platforms
ARK is developed as part of Team Ignition’s avionics stack.
Contributions are welcome in the form of:
- Design reviews
- Safety analysis
- Testing frameworks
- Simulation tooling
- Documentation improvements
Please open an issue or discussion before major changes.
This project is licensed under the GNU General Public License v3 with additional restrictions.
Commercial use is prohibited without explicit written permission.
See the LICENSE file for details.