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.


(top ⬆)

⭐ 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 from the board's root directory.


  1. 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)

  2. (Optional) With your PyCubed board plugged into your computer, backup your PYCUBED drive by copying its contents to a directory on your computer.

  3. Copy the files from /software_example_beepsat/basic/ to your PYCUBED drive, overwriting any files when prompted

  4. 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

  5. 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 /Tasks/

Required Hardware

Code Breakdown & Task Explanation

1. Blink LED task

Priority: 255

Frequency: 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.

2. Report IMU data task

Priority: 5

Frequency: 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.