F´ (F Prime) flight software for the PROVES CubeSat Kit. This version of the PROVES flight software is under development and is not ready to be used with flight hardware. Please see proveskit/flight_software for our latest flight ready software.
This guide features setup for both Linux/macOS and Windows (through the use of WSL). There will be a section specific to only Windows users, as well as a common section where steps will apply to both groups (Linux/macOS and Windows).
If you're a Linux/macOS user, you can go straight to the Common Section. If a Windows user, do the Windows section then go on to the Common Section section.
If you don’t have Windows Subsystem for Linux (WSL) installed on your computer, install it by opening Windows Powershell and typing
wsl –install
After installation, search for an application on your PC called ‘Ubuntu’ and open. A terminal will open, and it may be accompanied with an error message.*
*If you have an error message, restart your machine. Upon restarting, open the Ubuntu app, and it should now work properly.
Proceed to enter a username and password. After you set up your profile, you are now able to use WSL.
A good first step with your new environment is to install new versions of packages available. In your WSL terminal, the folowing command will install new packages for your WSL environment.
sudo apt update && sudo apt upgrade
Note: Your default Python3 installation in WSL may not come with 'venv', a package to create Python virtual environments. To install, enter
sudo apt install python3-venv
For some of us on WSL, the default download of CMake using apt resulted in build errors, but the latest version was able to allow for succesful builds. We recommend downloading the latest version of CMake.
wget -qO- https://github.com/Kitware/CMake/releases/download/v3.30.4/cmake-3.30.4-linux-x86_64.tar.gz | tar xzv && sudo mv cmake-3.30.4-linux-x86_64/bin/* /usr/local/bin && rm -r cmake-3.30.4-linux-x86_64
Now, you can proceed to the Common Section and continue setup.
Getting started is easy! Please let us know if you run into any issues with the instructions below.
You must have Python 3.9+ and Git to build this repo. You can check with:
python3 --version
git --version
Note: If you do not have these downloaded to your device, please download Git and Python.
-
Open your terminal or command prompt
-
Navigate to the location you want to clone the repository to using:
cd example/path/to/the/repo/location/
Note: 'example/path/to/the/repo/location' is a placeholder for the path to the location you wish to put the repo
-
To clone the repository, use the following in your terminal or command prompt:
git clone https://github.com/proveskit/fprime-proves.git
-
Once the repository is finished downloading, navigate into the fprime-proves directory:
cd fprime-proves/
- Pull the fprime submodule
git submodule update --init --recursive
- Create a python venv
python3 -m venv fprime-venv
- Activate the venv
source fprime-venv/bin/activate
- Install required packages
pip install -r fprime/requirements.txt
- Install the arduino-cli
curl -fsSL https://raw.githubusercontent.com/arduino/arduino-cli/master/install.sh | BINDIR=$VIRTUAL_ENV/bin sh
- Install the arduino-cli-wrapper
pip install arduino-cli-cmake-wrapper
- Install the RP2040 board
arduino-cli config init
arduino-cli config add board_manager.additional_urls https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json
arduino-cli core install rp2040:[email protected]
- Install additional arduino-cli dependencies:
arduino-cli lib install Time
arduino-cli lib install RadioHead
- Generate the initial fprime build cache
fprime-util generate
-
Build the binary
fprime-util build -j20
-
Find your board's mount location
For the next steps you'll need to know where your board is mounted. To find your board's mount location run
ls -lah /dev/tty*
for a list of all possible paths. On Linux and WSL your board's mount location will look like/dev/ttyACM0
. On Mac your board's mount location will look like/dev/tty.usbmodem101
. -
Upload the firmware to the proves board over USB
Don't forget to replace the board mount location after the
-p
flagarduino-cli upload -v -b 115200 --fqbn rp2040:rp2040:rpipico -p /dev/ttyACM0 -i build-artifacts/rpipico/BroncoDeployment/bin/BroncoDeployment.uf2
-
Run GDS over serial:
Don't forget to replace the board mount location after the
--uart-device
flagfprime-gds -n --dictionary build-artifacts/rpipico/BroncoDeployment/dict/BroncoDeploymentTopologyAppDictionary.xml --comm-adapter uart --uart-baud 115200 --uart-device /dev/ttyACM0 --output-unframed-data -