Surefire is a C++ framework for building flight software applications at the level of advanced collegiate rocketry. The framework provides three main things:
- Portable interfaces for common flight software needs
- Config languages to allow rapid iteration of flight software
- State machine domain-specific language (DSL) to streamline integration of control logic
- Read the design one-pager
- Work through the basic application bringup tutorial
- Find further documentation in the documentation index
- Full send
Surefire natively supports Linux and NI sbRIO-9637, with some support for Arduino platforms. The Surefire Core Library is written in bare metal C++11 and built on an abstraction layer, so the user may develop custom ports.
Surefire is WIP. The master branch contains features that are complete and tested:
- State vector, state machine, and task APIs
- Compilers and autocoders for state vector and state machine config files
- Socket, thread, digital I/O, and analog I/O abstractions
- Task execution API
- Configurable network and device I/O tasks
- Documentation and examples
Surefire was originally developed as a computer science honors thesis at the University of Texas at Austin. The original thesis can be found in the repo here. The halcyon bird, delta, and sun cross on the mission patch are borrowed from mission patches of the Texas Rocket Engineering Lab, whose flight software is a spiritual predecessor to Surefire.