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:
*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:
await before a task if you want to 100% guarantee it is executed before moving on.schedule_later = True keyphrase if you want something to skip its first iteration.How to create your own task: