For LEONIRD, we are using the PyCubed Hardware + Software stack.


The central board's schematics can be found here: https://github.com/pycubed/hardware.

This includes:

  • 32-bit ARM M4 @ 120 MHz microprocessor
  • Flash memory + Micro SD card slot
  • Watch dog timer (automatically resets system in case of error)
  • IMU
  • Radio + 5V buck converter for radio + Antenna* (intended to operate at 433 MHz)
  • 4.5V-18V → 3.3V buck converter
  • Li-ion battery charger (compatible with solar)
  • Burn wire (cool mechanism that keeps the antenna "folded" until the satellite deploys, upon which it springs out)
  • Power monitor

*Side note: the PyCubed sofware by default disables radio unless you have the antenna attached because this can damage the radio. Once you've attached the antenna, you have to manually set ANTENNA_ATTACHED = True.


The board can be controlled using the PyCubed software, found here: https://github.com/pycubed/software/blob/master/mainboard-v05/lib/pycubed.py

The GitHub repo pretty much only has code to initialize the board and gives the user free reign to design the flight software.


An example of a basic process that can be made with the PyCubed repo can be found here: https://pycubed.org/Beep-Sat%20(basic)%20a3074e1925d74835bd3e2e3543819981.html and here: https://pycubed.org/Beep-Sat%20(advanced)%202d93fbe63d1a42cc8ce084b6f19535ba.html


Rules of thumb about designing flight software:

  • There is a central loop which takes sensor data → runs update() function
  • Each task should be given (1) a "priority score" (and tasks are executed in order as such) and (2) a frequency of which they are scheduled (if recurring)
  • Use the keyword await before a task if you want to 100% guarantee it is executed before moving on.
  • Use the schedule_later = True  keyphrase if you want something to skip its first iteration.


How to create your own task:

  • Use the /Tasks/task_test.py template in the repo


Argus is a satellite deployed by CMU that used the PyCubed stack. Its repo can be found here: https://github.com/cmu-argus-2/FSW-mainboard


  • No labels