AA236A (Old) Team Interfaces - spacecraft-design-lab-2019/documentation GitHub Wiki
Interfaces
This wiki page is for documenting and listing interfaces between different sub-teams. Each team will be listed, with subsections for their interfaces between the other teams:
Team 1: Flight Software
Mechanical/Mechanisms
Mechanical/Mechanisms to Flight Software
- How deployment mechanisms interface with software
- Spacecraft mass properties (e.g., mass, moments of inertia, products of inertia, dimensions, etc.)
- Battery properties, like capacity, maximum power output, maximum charge rate, etc.
- How to read battery (if applicable)
Flight Software to Mechanical/Mechanisms
- TBD
GNC
GNC to Flight Software
- GNC code (integrate into state machine)
- Test their C++ software vs. our Python sim
- Attitude determination/Kalman filter
- Command output format
- Interface for validation simulation
- Time format State format
Flight Software to GNC
- Wrap GNC code in Python
- State machine framework
- Feedback on deviation from ground-truth sim
- Sensor information input format
- Spacecraft parameter input format
- Simulation for validation
- State machine/mode information
- Time format
- State format
Actuators/Solar Panels
Actuators/Solar Panels to Flight Software
- Actuator properties
- Conditions for antenna deployment (time, what needs to be actuated and how)
- How do we read the solar panel? What sensors are we using, and how are they connected?
- Comms models (How does the radio work? How do we uplink? How do we downlink?)
- Power budget
- Python function for radio testing
Flight Software to Actuators/Solar Panels
- Frequency (Hz) of the microcontroller loops, so they know what sort of frequencies to work with WRT comms
- CircuitPython comms functions (and possibly full state machine/framework) for radio testing
- Interface to the actuator.
- Power budget
- Communication models(i.e., uplink, downlink)
Flight Computer/Sensors
Flight Computer/Sensors to Flight Software
- Magnetorquer models (specifically, we need to know what sort of signals to send the actuators to control them)
- Sensor specifications
- PyCubed set up with sensor models for hardware-in-the-loop testing
- Low-level hardware-interface code (how to read each sensor using CircuitPython)
Flight Software to Flight COmputer/Sensors
- Camera software integration
- Full state machine to help determine power allocation
Team 2: Mechanical/Mechanisms
Flight Software
Flight Software to Mechanical/Mechanisms
- TBD
Mechanical/Mechanisms to Flight Software
- How deployment mechanisms interface with software
- Spacecraft mass properties (e.g., mass, moments of inertia, products of inertia, dimensions, etc.)
- Battery properties, like capacity, maximum power output, maximum charge rate, etc.
- How to read battery (if applicable)
GNC
Receive:
- Ideal sensors placements
- Ideal magnetorquer placements/orientations (iterative)
- Expected solar performance (re. pointing requirements & eclipse period) (maybe solar team?)
Deliver:
- Mass and inertia properties
- Actual magnetorquer placements/orientations (iterative)
Actuators/Solar Panels
Receive:
- Solar cell area & position (re. pointing requirements; do we need deployable panels?)
- Solar panel actuation requirements (if deployable panels required)
- Expected solar performance (maybe GNC team, re. pointing requirements & eclipse period)
- Ideal antenna design, for us to convert to deployable form (maybe avionics team?)
Deliver:
- Solar cell layout restrictions (sensor/camera placement forcing gaps in the solar array)
- Power requirements
- Structural composition (for use in analyzing antenna placement needs)
Flight Computer/Sensors
Receive:
- Power requirements
- Sensor size, mass, ideal locations
- Mainboard and camera final configuration for integration into PocketQube
- Mainboard and camera datasheets and component specifications for vacuum testing and materials lists
Deliver:
- Power budget based on battery capacity and charge/discharge capability
Team 3: Actuators/Solar Panels
Mechanical/Mechanisms
Receive:
- Solar cell layout restrictions (sensor/camera placement forcing gaps in the solar array)
- Power requirements
- Structural composition (for use in analyzing antenna placement needs)
Deliver:
- Solar cell area & position, need to decide:
- Pointing requirements
- Expected solar performance including eclipse period (after interacted with GNC team)
- Antenna design, need to decide:
- Size of the antenna - Need to establish link budgets.
- How to deploy?
Flight Software
Actuators/Solar Panels to Flight Software
- Actuator properties
- Conditions for antenna deployment (time, what needs to be actuated and how)
- How do we read the solar panel? What sensors are we using, and how are they connected?
- Comms models (How does the radio work? How do we uplink? How do we downlink?)
- Power budget
- Python function for radio testing
Flight Software to Actuators/Solar Panels
- Frequency (Hz) of the microcontroller loops, so they know what sort of frequencies to work with WRT comms
- CircuitPython comms functions (and possibly full state machine/framework) for radio testing
- Interface to the actuator.
- Power budget
- Communication models(i.e., uplink, downlink)
GNC
Receive:
- Orbit and orientation design and planning
- Power requirements
Deliver:
- Expected solar performance (i.e., pointing requirements & eclipse period)
- Force generated from magnetic torques.
Flight Computer/Sensors
Receive:
- Power budget based on battery capacity and charge/discharge capability
- Pointing requirements for sensors (if needed.) need to interact with solar panel pointing requirements
- Battery power circuitry
Deliver:
- Solar panel pointing requirements
- Solar panel circuit integration plan (MPPT, etc.)
- Interface to actuator control
Team 4: Flight Computer/Sensors
Mechanical/Mechanisms
Deliver:
- Mainboard and camera final configuration for integration into PocketQube
- Mainboard and camera datasheets and component specifications for vacuum testing and materials lists
GNC
Receive:
- Power requirements for magnetorquer to ensure power limits are observed for combined magnetorquer, mainboard, and camera loading
- Sun sensor location (Maybe Mechanical and/or Solar?)
Actuators/Solar Panels
Receive:
- Power budget from actuators/solar panels
- Battery power circuitry to determine interface with mainboard.
Deliver:
- Power requirements
Flight Software
- The CPU shall be a SAME51J20, which is an Arm Cortex M4 with FPU. Max speed 120MHz.
- Max has the most experience with circuitPython drivers. Ask him if additional support is needed.
- FC shall provide a pinout description for all final hardware
Team 5: GNC
Mechanical/Mechanisms
Receive:
- Mass and inertia properties
- Actual magnetorquer placements/orientations (iterative)
Deliver:
- Ideal sensors placements
- Ideal magnetorquer placements/orientations (iterative)
Flight Computer/Sensors
Receive
- Sensor model information/accuracy
- Maximum allowed command rate (also actuator team)
Deliver
Actuators/Solar Panels
- Expected solar performance (i.e., pointing requirements & eclipse period)
- Maximum allowed command rate (also flight computer team)
Deliver:
- Orbit and orientation design and planning
- Power requirements
Flight Software
Flight Software to GNC
- Wrap GNC code in Python
- State machine framework
- Feedback on deviation from ground-truth sim
- Sensor information input format
- Spacecraft parameter input format
- Simulation for validation
- State machine/mode information
- Time format
- State format
GNC to Flight Software
- GNC code (integrate into state machine)
- Test their C++ software vs. our Python sim
- Attitude determination/Kalman filter
- Command output format
- Interface for validation simulation
- Time format State format