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 submodule
below.
Configuration
config/config_default.yml
andconfig/config_custom.yml
The
config_*.yml
files provide configuration information specific to eachsubmodule
and `core`e.g. serial ports for each
submodule
(/dev/ttyUSB0
forAPRS
)e.g. telemetry dump intervals
e.g. structuring of
submodules
for startup(core
)
config_custom.yml
(if present) is given priority overconfig_default.yml
config_custom.yml
isgitignored
and is specific to each individual developer, butconfig_default.yml
provides the configuration specific to the environment onflight-pi
a
Here is an excerpt of
config/config_default.yml
for theaprs
submodule
The parent key
aprs
denotes that the following values are specific toaprs
aThe
depends_on
specifies a list of othersubmodules
on 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 submodules
used 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
pFS
and 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