Main Flight Computer Software Structure

Types of Functionality

  • Communication
    • I2C
      • I'm working on this, it is nearly complete. — Brad Luyster 2010/11/02 02:02
    • External
      • Must use data stored by data storage code
      • Must keep track of data transmitted, received and acknowledged
      • Must properly append batch numbers
      • Store timestamps, batch numbers and Bitmask for record keeping
      • Must remove byte alignment (where necessary) based on knowledge of data formats
  • Flight Logic (Decision Making and Control)
    • Will invoke all other data gathering/assembly commands
    • Series of If-Else type logic
    • Examples
      • if(rateOfAltitudeChange > Threshold) { Drop Ballast }
      • if(dataXmitTimeout) { Send Batch }
  • Data Acquisition
    • Use I2C communications to gather data from disparate sources
    • Data To Gather
      • All the Data Mentioned on the Wiki
    • Examples (Each bullet is a single function)
      • Gather NMEA String, returns pointer to string
      • Gather raw BMP085 value
      • Gather raw TMP100 value
  • Data Translation/Manipulation
    • Canned functions for each data input type
    • Uses functions from Data Acquisition layer
    • Examples (Each bullet is a single function)
      • Extract data from NMEA strings, and translate into floating point numbers, return pointers to floats.
      • Translate raw BMP085 values into useful pressure output
      • Concatenate temperature values into fixed-point numbers
  • Data Storage
    • Uses functions from Data Translation/Manipulation layer
    • Must store data for transmission
    • Must retrieve data for transmission
    • Must Apply Compression (if applicable)
    • Examples (Each bullet is a single function)
      • Put Values into Timestamped Array
      • Retrieve Samples from Timestamped Array based on timestamp
      • Compress(Pointer to String)

Flight Computer Data Storage

We will need an external EEPROM. Below are some examples of struct types we will need to implement.

  • Raw Values
    • Big array of raw sensor values, unmanipulated
    • Must be static size, byte aligned
  • Parsed Values
    • Big array of parsed sensor values, trimmed and formatted
    • Must be static size, byte aligned
  • Transmitted Data
    • Includes timestamp, batch number, and bitmask/version
    • In order to pull data for transmission, timestamps are used as unique indices

Flight Computer Globals

  • Balloon State
    • Keep enough in memory to make informed flight decisions, but do not store
    • These include any internal variables needed for flight decisions, but separate from telemetry data
    • We need to identify these!
  • Threshold Values for flight logic
software/speedball1/flightcomputer/structures.txt · Last modified: 2018/07/29 17:58 (external edit)
Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki