In this Section
↩ Return Home
↩ Return to Resources
↩ Return to Quick Start
Beep-Sat is a complete software example for a simple beaconing satellite that performs a handful of tasks and runs forever.
⭐ Software architecture that is easy to understand & build-upon
A simple asynchronous state machine schedules and runs routine spacecraft tasks
⭐ Well documented code with real-time debug messages
Entire code base includes thorough in-line commentary & insight
As introduced in Hands-On Quick Start, whenever a PyCubed board is powered, it loads and runs
main.py from the board's root directory.
main.pydoes is automatically load each task file found within the
/Tasks/directory into a state machine and then runs the state machine indefinitely.
frequencyattributes to inform the state machine how often to run the task.
Download the latest Beep-Sat code from its GitHub Repo (either download the zip or if you're familiar with git, fork & clone the repo)
(Optional) With your PyCubed board plugged into your computer, backup your
PYCUBED drive by copying its contents to a directory on your computer.
Copy the files from
/software_example_beepsat/basic/ to your
PYCUBED drive, overwriting any files when prompted
Open a serial terminal and observe the output as the beep-sat conducts its mission.
Refer to Accessing the Serial Console for help opening the REPL
After observing the output in the terminal for a few moments, start working through understanding each task by stepping through the code breakdown discussion (below) while opening and playing with its respective file in
twice per second (2 Hz)
Very simple task to blink the onboard RGB LED. With a priority of 255, Blink has a very low priority and will be preempted by most all other tasks.
once every 10 seconds (0.1 Hz)
This task demonstrates an important spacecraft function: how to perform routine sensor data collection over common serial buses such as I2C, SPI, or UART.