Flight computer firmware for the SAMWISE 2U cubesat. Designed for the Raspberry Pi RP2040 and RP2350 microcontrollers.
Beyond functional parity with the prior CircuitPython-based Sapling firmware, this project has a few additional goals:
- Reliable OTAs
- Use the blackboard pattern
- Eliminate heap allocations
- Simple flight/debug configuration
- Clean code
-
Install bazelisk by following instructions for your platform here: https://github.com/bazelbuild/bazelisk.
- You can also use bazel, but this is not recommended.
-
Pull necessary submodules using:
git submodule update --init --recursive
Historically, see the onboarding doc for development environment setup (pre-bazel).
To build the code in this repo, run bazel build :samwise --config=picubed-debug.
You can use the pre-provided scripts, source build_tests.sh and source build_debug.sh, to run automatically.
NOTE: These automatically delete the build_tests and build directories respectively before running, so run with caution!
The following configuration options are available:
pico: pico exectuablepicubed-debug: picubed executable, for debuggingpicubed-flight: picubed executable, for flightpicubed-bringup: picubed executable, for bringing up the board (these can be configured in.bazelrc)
The C Build github action automatically builds RP2350 archives on pushes to pull requests into main.
