Structure and Configuration
How pFS is structured and configured
Last updated
Was this helpful?
How pFS is structured and configured
Last updated
Was this helpful?
pFS is structured into two parts: and . 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
.
More on submodules
. List of actual submodule
below.
config/config_default.yml
and config/config_custom.yml
The config_*.yml
files provide configuration information specific to each submodule
and `core`
e.g. serial ports for each submodule
(/dev/ttyUSB0
for APRS
)
e.g. telemetry dump intervals
e.g. structuring of submodules
for startup(core
)
config_custom.yml
(if present) is given priority over config_default.yml
config_custom.yml
is gitignored
and is specific to each individual developer, but config_default.yml
provides the configuration specific to the environment on flight-pi
a
Here is an excerpt of config/config_default.yml
for the aprs
submodule
The parent key aprs
denotes that the following values are specific to aprs
a
The depends_on
specifies a list of other submodules
on which the parent key(aprs
) needs to be able to access in flight
The other values(serial_port
,telem_timeout
,message_spacing
) are constants specific to aprs
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