Flightkit Getting Started Guide
This document will guide you through installing and setting up Bright Ascension’s Helix Flightkit.
1. System requirements
The flightkit package is built for and tested with Ubuntu 22.04 LTS.
1.1. Java
Flightkit makes use of Java, and installing it will install the
openjdk-17-jre-headless package as a dependency.
If you use update-alternatives, or tools like SDKMAN! to manage your Java
environment, you must make sure that java uses the OpenJDK 17 JRE installed
by installing Flightkit.
You can check this by running java -version after you have installed the
flightkit package. You should see this output:
openjdk version "17.0.11" 2024-04-16
OpenJDK Runtime Environment (build 17.0.11+9-Ubuntu-122.04.1)
OpenJDK 64-Bit Server VM (build 17.0.11+9-Ubuntu-122.04.1, mixed mode, sharing)
If your output is different, you will need to change your environment configuration before using Flightkit.
1.2. eCryptfs
Due to the age of the meson build system tool available in Ubuntu 22.04,
flightkit does not work correctly if used in an eCryptfs encrypted directory.
You can check whether you may run into issues with eCryptfs by running the following command:
df -T $HOME
If the Type column reads ecryptfs then Flightkit workspaces will not be
buildable in your home directory.
You can work around this by keeping your workspaces in a directory which is not encrypted by eCryptfs.
2. Installing Flightkit
-
Download Flightkit from the Bright Ascension download server using the credentials provided in the introductory email.
-
Open a terminal in your downloads directory and run the following command:
sudo apt install ./flightkit_2025.6.0-1_amd64.debYou can safely ignore any warnings about downloads being "performed unsandboxed as root".
-
Check that Flightkit has installed correctly by running the following command in a new terminal:
hfkYou should see help text about the available sub-commands.
-
Install the licence file provided to you by Bright Ascension. To do this, first create the required licence directory using the following command:
mkdir -p ~/.config/brightascension/lab/licence/Then copy the licence file you received from Bright Ascension using the following command, run in the same directory as your
licence.propertiesfile:cp licence.properties ~/.config/brightascension/lab/licence/
|
The Helix Lab ground software included with Flightkit will not run without a valid licence file in the correct location. |
|
Helix Lab requires an internet connection in order to verify the licence. |
3. Updating Flightkit
Flightkit can be updated from an older version by downloading and installing the new package as in the last section.
You should consult the change notes before updating Flightkit. If you would like assistance with the update process, contact Bright Ascension using our customer portal.
|
Updating Flightkit will update the Updating Flightkit will also remove bundles which were installed with the old Flightkit package (bundles you have installed yourself will not be affected). If you used these bundles in your workspaces, you will need to update your workspaces to use the new versions of the bundles. If the major version of the bundles changes, you will also need to make changes to code you have written. |
-
Download Flightkit from the Bright Ascension download server using the credentials provided in your introductory email.
-
Open a terminal in your downloads directory and run the following command:
sudo apt install ./flightkit_2025.6.0-1_amd64.deb -
Update each workspace to use the tooling and bundles included in the new version of Flightkit:
-
In the
workspace.xmlfile, update the<Workspace>element’stoolingVersionattribute so it readstoolingVersion="3.1.2" -
In the
workspace.xmlfile, update any bundle dependency onFlightkitFoundationso it requires version 6.0.0:<Dependencies> <Bundle name="FlightkitFoundation"> <Version major="6" minor="0" patch="0"/> </Bundle> ... </Dependencies> -
In each
workspace.xmlfile, update any bundle dependency onFlightkitExtrasso it requires version 4.1.0:<Dependencies> <Bundle name="FlightkitExtras"> <Version major="4" minor="1" patch="0"/> </Bundle> ... </Dependencies> -
Run
hfk workspace prepareto update the local resources in the workspace. -
We recommend you remove the
generatedandoutputdirectories, as these may contain data which is no longer compatible with your new version of Flightkit. -
If you are updating from one major version to the next, consult the change notes to determine what changes you will need to make to your code.
-
4. Installing External Toolchains
Some of the platforms that Flightkit supports require you to install external toolchains to build for them.
4.1. Raspberry Pi Zero W
Flightkit support for the Raspberry Pi Zero W assumes you have installed Raspberry Pi OS on the device. We also make use of a specific toolchain for building binaries for the Pi. Refer to the Raspberry Pi Zero W How-to Guide for more information.
4.2. ACS Kryten
Flightkit support for the ACS Kryten requires you to install version
10.3-2021.10 of ARM’s arm-none-eabi toolchain. Refer to the
ACS Kryten How-to Guide for more information.
4.3. EnduroSat OBC
Flightkit support for the EnduroSat OBC requires you to install version
10.3-2021.10 of ARM’s arm-none-eabi toolchain. Refer to the
EnduroSat OBC How-to Guide for more
information.
5. Documentation
Flightkit documentation is installed to the following path:
/usr/share/doc/bright-ascension/helix/flightkit/
The documentation is provided as a static HTML site and is best accessed from
the index.html in that directory rather than by browsing the file tree
directly.
The documentation is categorised to aid navigation:
-
Tutorials: these documents guide you through activities intended to help you gain familiarity with Flightkit. We recommend that all new Flightkit users work through the tutorials when first getting to grips with it.
-
How-to Guides: these documents give step-by-step instructions about how to configure and use specific parts of Flightkit.
-
Feature Guides: these documents are explanatory guides intended to give a deeper understand of Flightkit’s features.
-
Reference Material: these documents give in depth technical information aimed at readers already familiar with Flightkit.
Also in this directory is the copyright file, which lists the 3rd-party free
and open source software used by Bright Ascension in Flightkit, along with
their respective licences.
6. Bundles
Bundles are snapshots of workspaces which can be required by your own workspace to enable access to the artefacts contained within them.
Flightkit comes shipped with two separate bundles, FlightkitFoundation and
FlightkitExtras.
6.1. FlightkitFoundation
FlightkitFoundation contains artefacts that we consider to be essential for
building a typical mission. The bundle also contains demonstration missions
which show how these artefacts can be used to produce flight software to run on
desktop Linux, the Raspberry Pi, the ACS Kryten and the EnduroSat OBC.
All of these artefacts have been tested on the physical hardware they are designed to run on.
For information on how to use FlightkitFoundation in your workspaces refer to
the final section of this guide.
6.2. FlightkitExtras
FlightkitExtras contains artefacts that provide support for interacting with
specific physical subsystems. The bundle also contains a demonstration mission
showing how these artefacts can be used to produce flight software to run on an
ACS Kryten-based spacecraft.
We do not have the facility to test these artefacts against hardware, and as such cannot guarantee their reliability or robustness.
For information on how to use FlightkitExtras in your workspaces refer to
the final section of this guide.
7. Running Helix Lab
The Helix Lab ground software included with Flightkit allows you to interact with flight software you are developing.
Helix Lab can be launched by clicking the "Helix Lab" icon in the applications menu.
Guidance on using Helix Lab to control and inspect flight software is given in the tutorials.
|
As described above, Helix Lab will not run without a valid licence file in the correct location. |
8. Running the tutorials
The Flightkit package includes a set of tutorials to help you get to grips with the development kit.
To begin, navigate to a directory of your choice in the terminal and run the following command to extract the tutorials:
hfk-prepare-tutorials
This command will direct you to the tutorials/readme.html file which will
guide you through the tutorials.
9. Creating workspaces
Once you’re familiar with Flightkit you can create your own workspace in which you’ll be able to write your own flight software.
To do so, run the following command:
hfk workspace create MyWorkspace
Your workspace should have been created in the MyWorkspace directory.
It is empty, but you can populate it with your own artefacts as described in the Flightkit Workflow Feature Guide.
You can also use artefacts from the bundles provided with Flightkit, bundles provided to you, or bundles you have generated yourself.
To use a bundle you must:
-
Determine whether the bundle you want to use is installed. To do so you can run the following command:
hfk bundle list -
If the bundle you want to use is not listed by
hfk bundle listyou must install it. To do so, run the following command, replacing<path-to-bundle-archive>with the path to the bundle.tar.gzfile which you wish to use:hfk bundle install <path-to-bundle-archive>You will likely need to use sudoto run this command because bundles are installed under/usr/share/bright-ascension/…. -
With the bundle installed you should be able to see it in the output of
hfk bundle list. You can then add it as a requirement of your workspace. Run the following command in your workspace directory, where<name-of-bundle>and<version-of-bundle>are the name and version of the bundle as they appear in the output ofhfk bundle list:hfk workspace bundle require <name-of-bundle>:<version-of-bundle>You may omit the version of the bundle you require if you want to use the latest version you have installed. Conversely, if you want to use a specific version of a bundle then you must provide a version. For example, to specifically require version 1.6.0 of MyNewBundle, you would runhfk workspace bundle require MyNewBundle:1.6.0.
You are now ready to build your own flight software using artefacts from whichever bundles you require.