FSW B0-10-0 Release Notes

This page summarizes the functionality included in FSW Release B0-10-0 and lists the JIRA issues resolved in the Release.

User procedures for B0-9-0 are described in the LAT Flight Software User Guide. A cumulative list of procedure changes since that Release is provided below. Users of B0-10-0 should also review the entries for the JIRA items resolved in B0-10-0.

Additional files, materials, and release documentation for B0-10-0 (including complete 0-10-0 command and telemetry interface reference documentation) are available on the B0-10-0 Release Page .

I. Functionality of B0-10-0

B0-10-0 supports end-to-end operation of the LAT using the SIU and EPUs. 0-10-0 has the following capabilities:

  • Full support for LAT internal hardware interfaces and the LAT external interfaces with the Spacecraft.
  • Full boot capabilities on the SIU and EPUs
  • CPU watchdog management
  • Command and telemetry processing and a complete set of commands and telemetry to support end-to-end operations, as well as handle Spacecraft ancillary messages
  • Processing of all time signals and messages from the Spacecraft, and drift-corrected timekeeping
  • CPU memory and EEPROM file system management
  • Delivery of event data from the hardware to the Spacecraft Solid State Recorder
  • Configurable Gamma, MIP, and heavy ion filtering of event data
  • Collection of charge injection calibration data
  • Operational mode control to manage pointed observations, sky survey observations, and target of opportunity observations
  • Load shed management and operations during SAA transit
  • Thermal control system
  • Instrument configuration by file and readback of instrument configuration
  • Compression of event data
  • Special event filters for use in collecting CR calibration data and trigger diagnostic data

B0-10-0 does not implement the LAT GRB detection algorithm.

II. Changes Affecting LAT Operations and Command Interface

  • Substantial changes to were made to the LAT Instrument Manager (LIM) application and to the instrument mode control sequence. An overview of the new implementation is provided in this presentation from a March 23, 2007 LAT mode control workshop. More detail is provided in the updated LIM Package Design document. In previous Releases, LIM could defer/queue LPASTART and LPASTOP telecommands to the LAT Physics Acquisition (LPA) application depending on the current operating mode or SAA transit status, and forward those message at a later time; this queuing functionality was removed in B0-10-0, meaning all LPASTART and LPASTOP telecommands are immediately forwarded to LPA if the current mode is correct. The changes to LIM will require the following adjustments to I&T tests and scripts:
    • The TOO and ARR instrument modes are decoupled from LPA status (IDLE, STOPPING, RUNNING). TOO observations are affected most by this change: to execute a TOO observation and switch to a new LPA_DB or LATC configuration when the LAT is currently taking data in PHYSICS mode, 3 commands must be sent - TOO-START, LPASTOP, LPASTART. In this scenario, the TOO-START command sets the observation mode to TOO and identifies the LPA_DB or LATC configuration to use for the duration of the TOO; however, the new configuration is not applied until LPASTOP then LPASTART are sent. Thereafter, LPA can be stopped and restarted any number of times while the TOO is in progress with the same result - the configuration settings in the TOO-START command "trump" any configuration parameters in the LPASTART command, until the TOO ends. The attached chart documents the effects of the GBM interrupt and the LPASTART, LPASTOP, TOO-START, GRB-SUSPECTED, and GRB-CONFIRMED commands in different LIM modes and LPA states.
    • The SAA interrupts and terminates any observation run. LIM no longer queues an LPASTART command for execution once SAA is past. Physics runs must be re-started by sending an LPASTART command after SAA transit.
    • The LIMBIASACD, LIMBIASCAL, and LIMBIASTKR telecommands are only valid when (a) LIM is operating in QUIESCENT, TOO, or ARR mode and (b) an LPASTOP command has been issued to idle the LPA application.
  • The LPA telecommand set was expanded to allow operators to set a default data taking configuration and select that default when starting a run.
    • The new LPASETDEFAULT  command takes an LPA_DB instance ID (from 0 to 31; only 0 is valid in this Release), a fileID for a LATC configuration file, and a fileID for LATC ignore map file to set as defaults for subsequent data collection runs.
    • The LPALATCFGID, LPALATCIGNID, and LPADBID fields in the LPASTART command now accept the value 0xffffffff, meaning use the default configuration settings.
  • The LIMLATCCONFIGURE   and LIMLATCVERIFY  telecommands were added to LIM. LIMLATCCONFIGURE applies the instrument configuration in the specified LATC configuration files. LIMLATCVERIFY reads back the LAT configuration, compares it to the latest requested configuration, and - if there is a mismatch - dumps the configuration data to the SSR in LATCDATA science telemetry packets (APID 0x3FD). LIMLATCVERIFY is valid when LPA is idle and LIM is in QUIESCENT, TOO, ARR, or HOLD mode.
  • Added support for new GRB detection simulation in LPASETGRB command.
    • LPAGRBSIMMODE field - GRB simulation mode. 3 modes are currently planned:
      Mode 0 is disabled.
      Mode 1 will execute all available detection states: suspect->(update*10)->confirm->closeout.
      Mode 2 will execute only suspect->closeout.
    • LPAGRBSIMINTV field - time interval in seconds between the GRB detection states for the simulation mode
    • LPAGRBSIMRPTSEC field - GRB repoint request in seconds for the simulation mode
    • If the simulation mode is enabled, a LAT detected GRB will be initiated 60 seconds after the LPASTART successfully completes. Each LPASETGRB command will activate a single LAT detected GRB simulation ONLY for the subsequent physics run. All remaining physics runs will have the simulation disabled. While in simulation mode, all GBM telecommands will be ignored by the GRB software. Note that LIM will still issue acknowledgement of receipt of any such commands. In addition, all EPU GRB summary packets will be discarded.
    • Issuing the LPASTOP command will immediately end the active LAT detected GRB simulation by executing GRB closeout.
  • LPA (via LATC) now uses a solicited trigger to inject a start and stop marker event into the data stream, and arranges for the EPUs to include the marker events into the event datagrams; this is done to allow precise demarcation of the beginning and end of data collection runs. Also, as part of processing the LPASTART and LPASTOP commands, the LPA master task on the SIU confirms that the LPA slave tasks on the EPUs are ready to start or stop the observation and ready to funnel the marker event into the data stream. If the EPUs do not confirm they are ready to begin or end the run within a short timeout period, triggers are disabled and the run is aborted. Notification of failure to start the run is recorded as LIM_ACTION_PHYSICS_COMPLETE in the LIMTACTION field and LPA_ERROR in the LIMTSTATUS field of the Lrs0 housekeeping packet (APID 0x227).
  • Certain LAT Computer Manager telecommands take as a parameter a numerical FSW taskID. TaskIDs are also reported in telemetry. The taskID enumeration was updated:
    LCM_LCMTASKID_LCM_M = 1, /*!< LAT computer manager, master */
    LCM_LCMTASKID_LFS_M = 2, /*!< LAT file system, master */
    LCM_LCMTASKID_LHK_M = 4, /*!< LAT housekeeping system, master */
    LCM_LCMTASKID_LHK_S = 5, /*!< LAT housekeeping, slave */
    LCM_LCMTASKID_LIM_M = 6, /*!< LAT instrument manager, master */
    LCM_LCMTASKID_LSM_M = 8, /*!< LAT spacecraft messages, master */
    LCM_LCMTASKID_LSM_S = 9, /*!< LAT spacecraft messages, slave */
    LCM_LCMTASKID_LSW_M = 10, /*!< LAT software watchdog, master */
    LCM_LCMTASKID_LCI_M = 12, /*!< LAT calibration, master */
    LCM_LCMTASKID_STX_U = 30, /*!< SDI (transmit), utility */
    LCM_LCMTASKID_LMC_M = 14, /*!< LAT mux rate counters, master */
    LCM_LCMTASKID_LPA_M = 15, /*!< LAT physics aquisition, master */
    LCM_LCMTASKID_LRA_M = 17, /*!< LAT register access, master */
    LCM_LCMTASKID_LTC_M = 18, /*!< LAT thermal control, master */
    LCM_LCMTASKID_GRB_S = 19, /*!< LAT GRB analysis, slave */
    LCM_LCMTASKID_CRXC_U = 22, /*!< CTDB command receive, utility */
    LCM_LCMTASKID_LTX0_U = 25, /*!< LCB transmit, utility */
    LCM_LCMTASKID_LRXR_U = 26, /*!< LCB receive result, utility */
    LCM_LCMTASKID_LRXE_U = 27, /*!< LCB receive event, utility */
    LCM_LCMTASKID_CTX_U = 29, /*!< CTDB transmit, utility */
    LCM_LCMTASKID_LPA_S = 16, /*!< LAT physics acquisition, slave */

III. Changes Affecting LAT Telemetry

  • Error and status register datagrams in LRASSRDATA science telemetry packets (APID 0x3A0) now contain only the contents of error and status registers of the TKR, CAL, and ACD readout controller (RC) and front-end (FE) ASICs. ESR dumps are sent to the SSR in response to the LRAESRSEND command (APID 0x680, function code 11).
  • Error and status register data has been removed from LATC dump datagrams in LATCDATA science telemetry packets (APID 0x3FD).
  • Each CPU transmits an LPA diagnostic telemetry packet whenever an LPA configuration change occurs. For example, when LPACONFIGURE, LPAASSOCIATE, LPASTART , and LPASETDEFAULT commands are sent, diagnostic packets are transmitted which can be used to confirm the configuration settings that were chosen. Details are provided on the C&T Web pages for the SIUCFG , EPU0CFG , EPU1CFG , and EPU2CFG  packets.

IV. Changes Affecting LAT Configuration Process

  • All periodic trigger configuration settings are now defined in LATC configuration files. Within a <GEM> configuration block, the newly-available <periodic_mode> </periodic_mode> tag can be used to set whether "free-run" (0x1) or "limited" (0x0) periodic triggers are delivered by the GEM.
  • In a related change, the number of LPA configurations (LPA_DB instances) loaded into RAM on startup has been reduced from 3 to 1. Previously, the choice of LPA_DB instance determined the periodic trigger setting. Now, the only valid values for the LPADBID telecommand field are 0x0 or 0xffffffff (default).
  • Duplicate tag names have been eliminated from the LATC configuration file schema. Previously, GEM configuration files used separate <external></external> tags to set (a) whether an external trigger was enabled as a trigger input and (b) whether the external trigger condition was allowed as an input to logic for opening a trigger window. The new tag used to set (a) is <external_trg></external_trig>. In addition, TEM and AEM configuration files each used a <data_mask></data_mask> tag. The new tag for AEM files is <freeboard_mask></freeboard_mask>.

V. FSW Packages Changed or Added in B0-10-0

B0-10-0 provides "flight" code modules, which are loaded and executed on LAT CPUs, and the corresponding source code. In addition, B0-10-0 contains unit tests, test support code, ground support utilities, and qualification test documents and scripts.

  • FSW packages that were changed or added since B0-9-0 are itemized here .
  • All FSW packages in B0-10-0 are itemized here .

VI. JIRA Items Resolved in B0-10-0


  • [FSW-424] - The sense of the GPS lock flag in the timetone messages is opposite to what was it thought to be
  • [FSW-723] - LATC (and RIM) XML contains duplicate tag names
  • [FSW-724] - QSEC does not update the event-time fields in the standard context correctly
  • [FSW-747] - Correct two separate errors with the extended counters
  • [FSW-753] - ACD calibration PHA threshold is not being iterated
  • [FSW-837] - Lack of task pointer check prior to invoking ITC_detachRaw
  • [FSW-878] - CLONE -After integration with the space craft, time tones do not seem to be properly updated
  • [FSW-884] - EMP package IVV2 code issues
  • [FSW-885] - LCI package IVV2 code issues
  • [FSW-886] - LCM package IVV2 code issues
  • [FSW-889] - LHK package IVV2 code issues
  • [FSW-895] - Compression Bugs Exposed by Sweep Event
  • [FSW-896] - Compressed files fail to open sometimes
  • [FSW-897] - LRA commands missing LRAPADs
  • [FSW-898] - CLONE -Event time issues with LCI runs
  • [FSW-902] - qemp_print throws "Segmentation fault" on Linux systems
  • [FSW-903] - LCI stops working in middle of run; subsequent runs fail until reset
  • [FSW-904] - Operating system is writing to address zero
  • [FSW-905] - The LICOS/ITOS task enumeration in package LCM is wrong
  • [FSW-906] - Packages CCSDSP, DFIP and VSCP specify a specific version of python
  • [FSW-907] - Potential infinite loop in message code lookup
  • [FSW-908] - unreferenced DSC lines in telemetry dbx file
  • [FSW-909] - FMX shareable usability issues


  • [FSW-239] - vxw_flight RTOS consitutent still has the serial console device enabled
  • [FSW-808] - Problem enabling periodic triggers
  • [FSW-841] - Implement enumerations in LCAT so they're part of the T&C database
  • [FSW-843] - Modify LIM behavior to favor ARR over TOO and to always obey LPASTART and LPASTOP
  • [FSW-852] - Telemetry PIG dump with APID 0x3FE needed to be define in PIG
  • [FSW-869] - Create LPA Documentation
  • [FSW-870] - LHK Documentation Is Out Of Date
  • [FSW-871] - LMC Documentation Is Out Of Date
  • [FSW-874] - LIM documentation is out of date
  • [FSW-883] - Remove error and status register information from LATC dumps
  • [FSW-891] - Error and status register dump contains extraneous data
  • [FSW-892] - Improve speed and infrastructure of reboot trace information
  • [FSW-893] - Augment LPASETGRB telecommand to allow testing of messaging protocols
  • [FSW-894] - allow default values for LATCCFGID and LATCIGNID in LPASTART
  • [FSW-901] - QPIG package contains spurious dependencies
  • [FSW-910] - QSE CDM-file resolution fails if FMX shareable is already initialized

New Feature

  • [FSW-164] - Add LATC Telecommand Interface to LIM
  • [FSW-915] - Need to query components of compound files