The Bright Ascension Flight Software Development Kit (FSDK) is a unique, innovative development environment which permits the creation of mission-specific spacecraft flight software using configurable, off-the-shelf software components.
Building on our industry-leading GenerationOne model-based technology, our FSDK allows the rapid development of reliable flight software by combining bespoke, or tailored, software components with library components which have been previously validated, many in flight. The FSDK has evolved from our broad experience with spacecraft flight software, demonstrated by the success of the UKube-1 mission.
The GenerationOne FSDK comprises three major parts:
- an extensive library of validated components, many with flight heritage;
- a lightweight framework which promotes portability and modularity; and
- tooling to support component development, software integration and test.
Integrated into a rapid and adaptable workflow, our FSDK helps realise more value from missions, from single nano-satellites to large constellations.
For a summary of the GenerationOne FSDK you can download our product datasheet.
The component library which forms part of the FSDK provides you with most flight software functionality you need off-the-shelf. This allows you to focus on producing or procuring code to cover the unique parts of your mission. Whatever development you do, cross-platform support means most development and testing can be done on desktop PCs without access to flight hardware or engineering models.
On the ground side, we include a graphical test application software which will provide telemetry monitoring and telecommand to support your development and AIVT activities.
The component-based architecture we’ve used for GenerationOne means that software can be assembled from a library of existing, validated code and supplemented with new components to introduce new capabilities.
This flexibility extends into orbit, with a high level of reconfigurability and automation to cope with evolving mission needs and provide plenty of troubleshooting options.
The GenerationOne flight framework was designed with portability in mind. An abstraction layer and flexible build system make it straightforward to add support for new onboard computers, operating systems and architectures.
Our heavily tested, proven code is developed to strict coding standards based on industry norms for mission-critical software. Our scheduling system facilitates the development of robust, verifiable task schedules allowing you to be sure your flight software will meet strict real-time requirements.
We recognise the importance of good documentation which is why you will find comprehensive API reference documentation, a full user manual and thoroughly documented source code.
Wherever possible we adopt recognised and mature international standards to promote interoperability and portability. GenerationOne uses CCSDS standards for communications and for I/O handling on board giving you the most options for the operation of your spacecraft and adaptation of existing software to the GenerationOne framework.
The GenerationOne FSDK component library includes a wide range of components covering all mission needs. The FSDK component library includes the following:
- Subsystem components for many commercial off-the-shelf products such as electronic power systems, attitude control systems and radios
- Data handling components for efficiently gathering, pooling, logging and reporting telemetry parameters from the complete system
- Monitoring components which perform checks on parameters to validate correct system operations
- Communications components which permit monitoring, control and reporting to and from ground or other systems using a variety of standard protocols
- Automation components to permit the automation of onboard activities such as responding to events and scheduling onboard operations based on relative time, absolute time or spacecraft orbit
- Mission components which manage the spacecraft mode and separation sequence
platform and subsystem support
The GenerationOne FSDK supports a wide, and growing, range of hardware and software platforms. Through our unique, efficient approach to platform abstraction, we can also support a range of operating systems from vanilla Linux to hard real-time environments such as RTEMS. Library components allow access to system peripherals and subsystems in a regular way, permitting a high degree of modularity. Where the underlying platform provides fully featured drivers, such as in a Linux environment, driver components are simply responsible for making these accessible to the rest of the system. In other environments, especially when running on bare metal, drivers are written as components making them fully portable.
Onboard computer (OBC) platforms currently supported by the GenerationOne FSDK include:
- ÅAC Microtec Sirius OBC
- Clyde Space OBC
- GomSpace Nanomind A712D
- Pumpkin BeagleBone Black OBC
- Texas Instruments MSP430-based platforms
- Vorago VA10820 Radiation Hard OBC
- Xiphos Q7 (Xilinx Zynq)
- Many other Linux-based OBCs including Raspberry Pi
The novel approach to platform abstraction permits support for operating systems to be treated separately from the underlying computer platform. Operating systems and environments currently supported by the GenerationOne FSDK include:
- Bare metal environment using the built-in cooperative multi-tasking capabilities of the framework
The range of subsystems supported by the GenerationOne FSDK is extensive, and growing all the time. We are always interested to support additional subsystems, particularly if they are widely used, so contact us if your chosen subsystem is not listed here. Our current support includes:
- ÅAC Microtec Sirius TCM
- ArduCAM Mini 5MP Plus
- Astrodev radios including the Helium and Lithium
- All Clyde Space subsystems
- CPUT/F’SATI radios including UHF/VHF and S-band
- GomSpace subsystems, including the Nanomind OBC
- ISIS subsystems, including the UHF/VHF transceiver
- Maryland Aerospace subsystems, including the MAI-400
- NearSpace Launch Eyestar Duplex Modem
- Novatel OEM6 GPS
- Orbitonics C3D Imager
- Pumpkin subsystems, including power systems
- QB50/CubeSpace ADCS
- QinetiQ Q20 HD GPS
- A range of miniaturised sensors and ADCs
- Modems compatible with the ITU-T Rec. V.250 standard
The unique, modular approach to communications in GenerationOne means that the FSDK can permit support for a wide range of communications protocols. The current library has support for a number of standard protocols with many others currently in development.
- ECSS Packet Utilisation Standard (PUS)
- CCSDS Packet Protocol
- CCSDS File Delivery Protocol
- CCSDS Telemetry and Telecommand framing, synchronisation and coding
- CCSDS TM Space Data Link Protocol
- CCSDS TM Synchronization and Channel Coding
- SHA-1 HMAC authentication
- Generic KISS support
The following protocols are in development and will be available in the near future:
- CubeSat Space Protocol (CSP)
- CCSDS TC Data Link Protocols
- Link-level encryption
licensing and support
GenerationOne FSDK licensing is on a per-spacecraft basis, which allows you to use as many concurrent instances of the software as you need during the development and operation of a single spacecraft. This covers flight hardware, engineering models, developer PCs and functional simulators. To give you the most flexibility we provide full source code for onboard software elements. Other licensing options, including volume discounts, are available.
Each licence includes a full year of support and maintenance including training to get you started, delivered either remotely or at one of our office sites. All additions and improvements we make to the GenerationOne FSDK will be made available to customers during this period. Extended support options, including additional training, are available.