Structure and Configuration
How pFS is structured and configured
High Level Structure
pFS is structured into two parts: core and submodules. core is representative of a system while submodules tailor to individual hardware. An example of a submodule would be aprs.py. aprs.py is the submodule that pertains to and only to the APRS radio. The methods within aprs.py would pertain only to interfacing with the APRS radio so messages can be sent and received through the physical APRS radio and be processed within the pFS application. An example of a core function would be power monitoring. In flight, it is the responsibility of core to constantly read the current power levels of the CUBESAT and react accordingly. This functionality uses submodules to read the report current energy levels from the power delivery system(EPS). Power monitoring is not specific to any one submodule and affects the pFS application as a whole, therefore core is responsible for monitoring power levels.
More on core here.
More on submodules here. List of actual submodulebelow.
Configuration
config/config_default.ymlandconfig/config_custom.ymlThe
config_*.ymlfiles provide configuration information specific to eachsubmoduleand `core`e.g. serial ports for each
submodule(/dev/ttyUSB0forAPRS)e.g. telemetry dump intervals
e.g. structuring of
submodulesfor startup(core)
config_custom.yml(if present) is given priority overconfig_default.ymlconfig_custom.ymlisgitignoredand is specific to each individual developer, butconfig_default.ymlprovides the configuration specific to the environment onflight-pia
Here is an excerpt of
config/config_default.ymlfor theaprssubmodule
aprs: depends_on: - telemetry serial_port: /dev/ttyUSB0 telem_timeout: 70 message_spacing: 1The parent key
aprsdenotes that the following values are specific toaprsaThe
depends_onspecifies a list of othersubmoduleson which the parent key(aprs) needs to be able to access in flightThe other values(
serial_port,telem_timeout,message_spacing) are constants specific toaprs
Submodules
Here is a list of all the submodulesused in pFS
Everything listed here has a corresponding Python file in pFS
Handles the deployment of the ISIS Antenna
Handles the receiving and sending of messages through the APRS radio
Handles the parsing and execution of command messages
Handles the interfacing between
pFSand the Clyde Space EPS(power management)
Handles the receiving and sending of messages through the Iridium radio
Handles the collection and formatting of telemetry data for the satellite as a whole
Last updated
Was this helpful?