Phoenix (PHX)

Software Interface Specification

Interface Title: Microscopy, Electrochemistry and Conductivity Analyzer (MECA) -Non-imaging Experiment Data Record (EDR)

Mission: PHX Date: 4-Dec-2008

Module ID: PHX-274-307

Module Type (REFerence Only or MISsion-specific info included): MIS

Reference Module ID: N/A Date: N/A

Signatures

GDS Generating Elements:

Ops Product Generation System

Payam Zamani ______________________________________ ________________

Subsystem Engineer Date

GDS Receiving Elements:

PHX Science Manager

Leslie Tamppari ______________________________________ ________________

Manager Date

Concurrence:

MECA Instrument Co-Investigator

Michael Hecht ______________________________________ ________________

Cognizant Engineer Date

GDS Manager

Marla Thornton _______________________________________ _______________

Subsystem Engineer Date

PDS Discipline Node Manager

Ray Arvidson _______________________________________ _______________

Manager Date

Phoenix Project

Software Interface Specification (SIS)

MECA Non-imaging

Experiment Data Record (EDR)

Authors:

M. Hecht (JPL), S. Slavney (Washington U.), A. Stanboli (JPL), P. Zamani (JPL)

Custodian:

Payam Zamani

Paper copies of this document may not be current and should not be relied on for official purposes. The current version is in the Community Server at: Team Work Area/Mission System/MOS/GDS/OPGS-MIPL

JPL D-33230

4 December 2008

Jet Propulsion Laboratory

California Institute of Technology


DOCUMENT CHANGE LOG

Date

Description

07-NOV-06

New Document to incorporate all MECA instrument packets except optical microscope

29-Nov-06

Incorporated comments into document

22-Dec-06

Incorporated Mike's comments and inst. description. Added new sample headers from latest version of EDR builder

15-Mar-07

Incorporated comments from the Peer Review

25-NOV-07

Addressed review RFA with wholesale changes in description

18-Jan-08

Added missing keywords to Appendix C; replaced example PDS labels in Appendix E with current versions; added explanatory text to Appendix F; added explanatory text and current versions of format files to Appendix G; minor edits throughout (all by S. Slavney)

22-Feb-08

Added revised Appendix B from Mike Hecht (S. Slavney)

10 Mar-08

Corrected missing subscripts and superscripts (S. Slavney)

14 Mar-08

Changed TECP Permittivity calibration equation to more recent (Jan. 2007) version

Changed form of TECP EC Resistivity polynomial (eliminated the DN5 term)

In the TECP EC high gain and medium gain Rm polynomial coefficient tables, eliminated column "a" and retitled column "b" as "a", "c" as "b", "d" as "c", "e" as "d", and "f" as "e".

In the TECP EC low gain table, replaced all values using values from the TECP Calibration Report, and added note about the range of DN values that table was valid for

Added a second TECP EC low gain coefficients table for a higher range of DN values (all by S. Wood)

4 Dec 08

Add text to Appendix B, Type 7: TECP about RA position.

TBD ITEMS

Section

Description


CONTENTS

1. Purpose and Scope of Document......................................................................................................... 6

2. Applicable Documents............................................................................................................................... 6

3. Relationships with Other Interfaces.......................................................................................... 6

4. Data Product Characteristics and Environment................................................................ 7

4.1 Instrument Overview................................................................................................................................... 7

4.1.1 Atomic Force Microscope (AFM)............................................................................................................ 7

4.1.2 Thermal and Electrical Conductivity Probe....................................................................................... 11

4.1.3 Wet Chemistry Laboratory (WCL)......................................................................................................... 13

4.1.4 Software and Electronics....................................................................................................................... 14

4.2 Data Product Overview............................................................................................................................ 15

4.3 Data Processing overview....................................................................................................................... 16

4.3.1 Data Processing Level............................................................................................................................. 16

4.3.2 Data Product Generation....................................................................................................................... 16

4.3.3 Data Flow.................................................................................................................................................. 16

4.3.4 Labeling and Identification standards................................................................................................ 16

4.3.5 PDS Standards.......................................................................................................................................... 16

4.3.6 Time Standards......................................................................................................................................... 17

4.3.7 Data Storage Conventions..................................................................................................................... 18

4.4 Data Validation and Peer Review....................................................................................................... 18

5. Detailed Data Product Specifications....................................................................................... 18

5.1 Data Product Structure and Organization.................................................................................... 18

5.2 Label and Header........................................................................................................................................ 19

6. Applicable Software................................................................................................................................ 19

Appendix A. PRODUCT LEVELS................................................................................................................. 20

Appendix B. RECORD STRUCTURE........................................................................................................... 21

B.1 Data Structure Overview....................................................................................................................... 21

B.2 Binary data description.......................................................................................................................... 21

B.2.1 Binary header detail............................................................................................................................... 21

B.2.2 Binary data detail.................................................................................................................................... 22

Appendix C. PDS LABEL KEYWORDS...................................................................................................... 59

Appendix D. EDR File naming convention................................................................................... 71

Standards.............................................................................................................................................................. 71

File Naming Rules.............................................................................................................................................. 71

Appendix E. Examples of EDR PDS Labels.................................................................................... 73

Type 0: AFM_FRQTEST....................................................................................................................................... 73

Type 1: AFM_RESPONSE.................................................................................................................................... 75

Type 2: AFM_SCAN.............................................................................................................................................. 78

Type 3: AFM_TIPS................................................................................................................................................. 81

Type 4: CME_STATUS......................................................................................................................................... 84

Type 5: POWER_DATA........................................................................................................................................ 86

Type 6: TBL............................................................................................................................................................. 90

Type 7: TECP........................................................................................................................................................... 93

Type 8: WCHEM.................................................................................................................................................... 95

Appendix F. EDR Type 6 Table Contents....................................................................................... 99

Table 0: State Table......................................................................................................................................... 99

Table 1: Parameter Value Table.............................................................................................................. 102

Table 2: Parameter Range Table.............................................................................................................. 110

Table 3: AFM Attribute Table.................................................................................................................... 110

Table 4: Coupons Table................................................................................................................................. 112

Table 5: Tips Table........................................................................................................................................... 112

Appendix G. Format Files..................................................................................................................... 114

AFM_FREQUENCY_SAMPLE.FMT................................................................................................................ 114

AFM_TIPS.FMT.................................................................................................................................................... 116

TBL_0_STATE_DATA.FMT.............................................................................................................................. 118

TBL_1_PARAMETER_VALUES_DATA.FMT.............................................................................................. 124

TBL_2_PARAMETER_RANGE_DATA.FMT................................................................................................ 124

TBL_3_AFM_ATTRIBUTE_DATA.FMT....................................................................................................... 125

TBL_4_COUPONS_DATA.FMT....................................................................................................................... 126

TBL_5_TIPS_DATA.FMT.................................................................................................................................. 126

TECP_SAMPLE.FMT.......................................................................................................................................... 127

Appendix H. Acronyms............................................................................................................................. 131


1. Purpose and Scope of Document

The purpose of this document is to provide users of MECA Experiment Data Records (EDR) with a detailed description of the products and how they are generated, including data sources and destinations.

The document is intended to provide enough information to enable users to read and understand the data products. Intended users of this document are the scientists who will analyze the mission and supporting data, both those associated with the Phoenix Project and members of the general planetary science community.

2. Applicable Documents

1. Planetary Data System Standards Reference, JPL D-7669 part 2, version 3.7, March 20, 2006.

2. Phoenix Project Archive Generation, Validation and Transfer Plan, JPL D-29392, Rev. 1.0, December 20, 2004.

3. Planetary Data System Archive Preparation Guide, version 0.050503, May 3, 2005.

4. Mars Exploration Program Data Management Plan, Arvidson et al., Rev. 3.0, March 20, 2002.

5. Data Management and Computation, Volume 1: Issues and Recommendations, Committee on Data Management and Computation, Space Science Board, Assembly of Mathematical and Physical Sciences, National Research Council, National Academy Press, Washington D.C., 1982

6. Issues and Recommendations Associated with Distributed Computation and Data Management Systems for Space Sciences, Space Science Board, Assembly of Mathematical and Physical Sciences, National Research Council, National Academy Press, Washington D.C., 1986

3. Relationships with Other Interfaces

This SIS document, and the products that it describes, could be affected by changes to the MECA or Phoenix flight software or PDS standards. Such changes may require updates to this document as applicable. Major changes would require re-approval of all listed individuals and teams per the signature page.

4. Data Product Characteristics and Environment

The Microscopy, Electrochemistry, and Conductivity Analyzer (MECA) is a suite of soil analysis instruments that combines a wet chemistry laboratory (WCL), an optical microscope (OM), an atomic-force microscope (AFM), and a thermal and electrical-conductivity probe (TECP), with common supporting structure, electronics, and software.

Data in this product represent the lowest level reduction of packet data from the MECA instrument with the notable exception of the images acquired by the OM, which are described in the Phoenix Camera EDR/RDR SIS and archived on the Imaging node of the Planetary Data System. However, status information pertaining to those images and various tabular data that determine how they are acquired are part of this Non-Imaging product.

4.1 Instrument Overview

The MECA instrument suite is a component of the Mars '07 Phoenix investigation, which will also return data from a Thermal and Evolved Gas Analyzer (TEGA), three cameras, and a meteorology suite (MET). Phoenix is motivated by the goals of (1) studying the history of water in all its phases, and (2) searching for habitable zones. Samples of surface and subsurface soil and ice will be delivered to MECA and TEGA from a trench excavated by a Robot Arm, while MECA's Thermal and Electrical Conductivity Probe (TECP) will be deployed in soil and air by the Robot Arm. The Robot Arm Camera will document the morphology of the trench walls, while the Surface Stereo Imager (SSI) and the Mars Descent Imager (MARDI) establish a geological context. Throughout the mission, MET will monitor polar weather and local water transport.

4.1.1 Atomic Force Microscope (AFM)

The Atomic Force Microscope (AFM) is part of the MECA Microscopy Station, which comprises a Sample Wheel and Translation Stage (SWTS), an optical microscope (OM), and the AFM. As shown in Figure 1, the MECA AFM is located between the OM and the SWTS inside the darkened MECA enclosure on the spacecraft deck. It scans a small region (from 1-65 µm square) on any of 69 substrates, each 3-mm in diameter, positioned along the rim of the SWTS. The chief scientific objectives of the AFM are to analyze small dust and soil particles in terms of their size, size distribution, shape, and texture. The AFM is particularly well suited to analyze particles carried by the wind, which are believed to be in the size range 1-3 µm.

Prior to AFM scanning, OM images are acquired to document the substrates and provide context for the AFM scans. OM data is described in the Phoenix camera SIS, along with the RAC and SSI, and is outside the scope of this document. The reader is also referred to that document for more detailed description of the SWTS and its substrates.

The AFM is contributed by a Swiss-led consortium spearheaded by the University of Neuchatel. Run by a dedicated microcontroller, the AFM uses one of an array of eight micromachined cantilevers with sharp tips to obtain topographs (sometimes called "scans" or "images") of up to a 65×65-µm area of the sample. Within this constraint the scan can be of any size, dimension, or orientation, but the AFM can only address a narrow horizontal stripe of each substrate. Since the sample wheel can be rotated (but not elevated) prior to initiation of scanning, the AFM can access a thin band approximately 1/3 of the way up from the bottom of the corresponding OM image. Note that the x and y axes of the MECA AFM image are rotated by +45 degrees relative to the OM images (figure 2).

Figure 1. Left: The SWTS translates in and out to collect samples, remove excess material, focus, and approach the AFM. It rotates to select any of 69 substrates. Right: The sampling chute, viewed from the top with 6 substrates exposed

The 69 substrates on the SWTS are divided into ten sets of six (a weak and a strong magnet, two "microbuckets", a textured substrate, and a sticky silicone pad) and nine utility or calibration targets. Using the SWTS, these can be coated with a thin layer of dust or soil, and then rotated to the vertical scanning position where they can be imaged by the optical microscope. Of the six substrates in each set, two are specifically designed for AFM use in that they resist the tendency for particles to become dislodged and to adhere to the AFM tip. Such particle adhesion can degrade the scans in question and the quality of the tip in general. One of these substrates is a uniform piece of silicone that remains pliant under martian conditions. The second is a custom micro-machined silicon substrate with pits and posts that hold particles of an appropriate scale for AFM scanning. Two of the remaining four substrates are magnets that may, under certain circumstances, be appropriate for AFM scanning. The final two substrates are deep "buckets" that would not normally be accessible to the AFM.

To operate the microscopy station, soil samples are deposited by the RA (or dust from the air) onto a segment of the SWTS ring that has been extended such that exactly one set of 6 substrates protrudes from a horizontal slot in the MECA enclosure. Excess material is removed by passing the substrates under a blade positioned 0.2 mm above the surface, after which the samples are rotated for imaging by the OM and AFM. The exposed substrates are then rotated from their horizontal load positions into their vertical imaging positions. The SWTS is also used for focusing and AFM coarse positioning.

Attempting to scan excessively steep or ragged surfaces with the AFM will result in scans that are largely out of range, and could conceivably damage the tip. Further, bandwidth and time constraints severely limit the number of scans that can be acquired and returned to Earth. These considerations dictate a two-day imaging strategy for each set of microscopy samples. On the first day a sample is delivered, then characterized by the optical microscope. AFM calibration scans are also acquired. These images are evaluated on the ground and targets for AFM scanning are selected. On the second day the targeted areas are imaged again with the optical microscope, and then scanned with the AFM.

MECA's AFM comprises three major components, a microfabricated probe-chip, an electro-magnetic scanner-actuator and single board control electronics. The probe-chip features 8 cantilevers, numbered 0-7. The chip is mounted with two orthogonal tilt angles of 10 degrees relative to the sample to ensure that only one tip contacts the sample at a time. In case of contamination or malfunction of this front-most tip, the defective cantilever and its support beam can be cleaved off by a special tool on the sample wheel, after which the next one in the array becomes active. The force constant of the levers varies between 9 and 13 N/m.

Each of the 8 MECA cantilevers features an integrated piezo-electric stress sensor, which is used to measure its pure deflection (static mode) or its vibration amplitude, frequency and phase (dynamic mode). In static mode the deflection signal is proportional to the force, while in dynamic mode the shift of the resonance frequency is a measure of the force gradient. Dynamic mode minimizes the interactions between tip and surface and is less likely to result in particles being moved around or dislodged during the scan. In either mode, these signals are used to regulate the distance between the tip and the sample in the z-direction by means of a proportional-integral feedback loop.

The z-axis servo signal represents the sample topography as the tip is rastered across the surface in the x (fast) and y (slow) directions. (Though the resulting topograph is sometimes referred to as an image, it bears little resemblance to an optical image until it is transformed and processed.) Imperfect feedback or an out-of-range condition can result in residual bending of the cantilever in static mode, or a phase shift of the oscillation in dynamic mode. This error signal may optionally be recorded in a second data channel. Since each line in the raster scan begins at the same point on the x-axis, both primary and error signals may be recorded either on the forward or the backward legs of the scan (or, typically, both). Thus a single raster scan can produce up to four arrays of data: Forward (signal), forward (error), backward (signal), and backward (error), each of which can be displayed in image format.

Several of the status values returned in MECA telemetry refer to the configuration and status of the AFM digital feedback loop. The piezoresistors on the cantilevers are addressed by a multiplexer, which links them to a temperature-compensated Wheatsone bridge. For static mode imaging the value of the bridge is directly compared to a setpoint. For dynamic mode imaging a frequency modulation technique is applied that maintains the resonant frequency of the cantilever at a setpoint while stabilizing the amplitude. The measured parameters are the phase-shift between the excitation of the cantilever and the measured signal from the Wheatstone bridge, maintained by a phase locked loop. The array geometry is designed to spread the resonant frequencies of the levers between 30 and 40 kHz in order to avoid cross-talk during dynamic operation (these shift slightly with temperature).

Figure 2. Upper Left: The AFM scanner viewed from the perspective of the sample. Upper right: The scanner positioned under the nose of the OM and in front of the SWTS. Middle left: The AFM chip. (A) is a close-up of one of the silicone tips, (B) points is one of 8 cantilevers mounted on a cleavable support-beam (C). D) is a reference piezoresistor used for temperature compensation. Middle right: Geometry of the AFM scan field relative to the OM coordinate system. Cartoon on right exaggerates size of AFM scan (OM image is 2 mm high by 1 mm wide) . Bottom: topographs of pincushion array with increasing magnification.

It must be emphasized that an AFM scan is acquired by rastering a physical tool across a surface. As a result, line-to-line noise and artifacts may be significantly different than point-to-point artifacts along the scan direction. Moreover, outside the range of authority of the cantilever (approximately 65 x 65 micrometers laterally and 13 micrometers in height) the topograph does not go "out of focus" but simply saturates, while anywhere within its range of authority it is equally "in focus." The topograph itself reflects the interaction between a tip of finite size and a non-uniform surface, and therefore convolves physical characteristics of both the probe and the target. Thus, while an AFM topograph may look like an image product, the processing required bears little in common with the processing of an actual optical image.

4.1.2 Thermal and Electrical Conductivity Probe

An end-effector on the Phoenix Robotic Arm (figure 3), the TECP is a probe of soil physical properties including temperature, thermal conductivity and diffusivity, electrical conductivity and permittivity, as well as atmospheric temperature, humidity, and wind speed. These measurements are made with four conical needles, three of which contain electrical heaters and thermometers, and a hygrometer sensor mounted separately in the body of the TECP.

Three of the four parallel needles contain a thermocouple and a heater. The two needle pairs are used as electrodes for regolith electrical properties measurements. The same needles also serve as heating elements and thermometers for regolith thermal properties and wind speed measurements. The needles can be inserted into the soil for thermal and electrical measurements or positioned above the surface for atmospheric temperature, and wind speed measurements. Regolith thermal properties (including temperature, thermal conductivity, thermal diffusivity, volumetric heat capacity, and thermal inertia) as well as wind speed are derived from the heating and cooling behavior of the needles before and after a known amount of heat is added. Regolith electrical properties, including electrical conductivity and dielectric permittivity, are measured with capacitance and resistance sensors coupled to the regolith through the sensing needles. Atmospheric water vapor concentration is measured with a calibrated capacitance hygrometer mounted near a temperature sensor on the TECP printed circuit board, but exposed to the atmosphere through a particulate filter.

The humidity sensor determines the capacitance of the thin film hygrometer, which is a calibrated function of the relative humidity at the film surface. By measuring the film temperature with the adjacent temperature sensor, the result can be converted to absolute humidity. Under the assumption that gradients in vapor pressure are small, external relative humidity can be determined by comparison of the TECP result with the MET temperature sensors.

The scientific objectives of the TECP are:



Figure 3: Top: Schematic of TECP position on the RA. See description of RA encoder joint angles in TECP_SAMPLE.FMT. Bottom: TECP (right) mounted on the robotic arm. The small white circle on the lower left is the humidity sensor. The four needles at right perform the other sensor measurements.
 
 

TECP thermal and electrical properties measurement quality depends on proper needle placement by the RA. Non-linear insertion, partial insertion, and lateral movement all affect data quality negatively. Thermal properties measurements can also be negatively impacted by non steady state thermal conditions, and the TECP should therefore be allowed to equilibrate to its thermal environment before making thermal properties measurements.

Measurement electronics are contained in the body of the TECP, and include a 12 bit A/D converter, two phase detectors, three resistance bridges, and a digital shift register. The A/D converter and shift register communicate through a serial interface to an FPGA on the primary MECA control and measurement electronics (CME) board.

4.1.3 Wet Chemistry Laboratory (WCL)

MECA's wet chemistry laboratory (WCL) comprises four single-use modules, each consisting of a beaker assembly and an actuator assembly (figure 4). The modules mix soil samples with a leaching solution in a pressure vessel for electrochemical analysis. The scientific objective of the WCL is to determine the total pH, redox properties, and concentration of the principal aqueously solvated components of the acquired soil samples.

Chemical data is returned by 26 distinct sensors, some redundant, lining the walls of each beaker. These measure: Temperature; pH (3); conductivity; oxidation-reduction potential; the anions chloride (2), bromide, and iodide; cations sodium, potassium, calcium, magnesium; and barium, used in a sulfate titration. Also included are electrodes for cyclic voltammetry, anodic stripping voltammetry, and chronopotentiometry (3). Lithium electrodes (2) are used as a reference relative to the known concentration of lithium salts in the solution. Sensors for nitrate, ammonium, dissolved oxygen and carbon dioxide, which for various reasons do not provide a quantitative measure of soil composition, are used only for context. A heater is imbedded in the base of the beaker to maintain water temperature during operation.

Each WCL actuator assembly includes a tank containing 25-30 ml of a calibration and leaching solution, a sample loading drawer with a capacity of ~1.0 cm3, temperature and pressure sensors, heaters, a stirring mechanism, and a device to dispense up to five small crucibles into the solution. The AA is responsible for soil, water, and solid reagent addition as well as stirring and two-zone internal heating (tank and drawer). Telemetry returned by the AA includes internal cell pressure, water storage tank and sampling drawer temperatures, and certain limit switch positions.

Figure 4: MECA Wet chemistry cells installed in flight enclosure (left) and detail (right)

Each WCL experiment lasts two days, not necessarily sequential. After an initial post-landing checkout, preparation for a chemical experiment starts with melting the frozen leaching/calibration solution in the storage tank and delivering it to the beaker by actuating a puncture mechanism. Sensors are calibrated in that solution, and then calibrated again after addition of a crucible containing small quantities of specific salts. The combined ion concentration from the initial solution and from the crucible, less than 10-4 molar for most ions, establishes the detection floor. The final step is to open the sampling drawer and receive a sample from the robotic arm. The total sample volume is estimated with an accuracy of 0.25 cc (maximum 1 cc) from images acquired by the robot arm camera. For the remainder of the day, the concentration of major anions and cations are monitored as well as key indicators such as pH, redox potential, and cyclic voltammetry, stirring when appropriate and maintaining a constant temperature of 5C. At the end of the day the solution is allowed to freeze in the beaker. A second day of measurement begins with thawing of the solution in the beaker, determining the sensor baseline, and adding an acid-containing crucible to lower the pH. Monitoring continues as on the first day. The final activity is the sequential addition of three crucibles of barium chloride. A sulfate titration is performed by monitoring the barium and chloride levels as the crucible contents slowly dissolve.

Most sensors will have three separate calibration steps prior to their use on Mars. Each individual electrochemical sensor was first calibrated prior to integration into the beaker by laboratory measurement in several standard solutions using commercial electronics. The second calibration was performed with the same solutions after beaker integration, using flight-like analog electronics and a laboratory digital controller. The exceptions were the bromide and iodide sensors, which could not be tested after integration without contaminating the chloride sensor. The final two-point calibration will occur on Mars. In general, the ion selective electrodes exhibit classic logarithmic Nernstian behavior over the specified measurement range. While the two-point calibration will be used to determine logarithmic slope and zero offset, the laboratory data suggests that it is sufficient to assume the ideal Nernstian slope and correct only the offset.

Pre-amplifier circuitry for the electrochemical sensors is embedded in the beaker walls. Analog to digital conversion (12-bit) is performed on a heavily-multiplexed "Analog Board" which interfaces to an FPGA on the primary MECA control and measurement electronics (CME) board. The FPGA also generates waveforms for the voltammetric and potentiometric sensors, performs temperature control, and operates actuators. Also returned in telemetry is a reading from an external temperature sensor located on the base of the microscopy sample stage.

4.1.4 Software and Electronics

MECA flight software (FSW) runs on the primary spacecraft computer and communicates to MECA hardware at 9600 baud via a serial Payload and Attitude Control Interface(PACI) interface. On the other side of that interface is an FPGA, located on the Command and Measurement Electronics (CME) board inside the MECA enclosure. The FPGA controls all hardware functions in the MECA suite with the exception of the Atomic Force Microscope (AFM), which has an embedded processor, and discreet switches, controlled directly by the spacecraft computer, for powering MECA and for switching between AFM processor and FPGA. Data return described here is generated by the FPGA.

The common MECA electronics return telemetry packets indicative of the overall instrument configuration, including parameter tables, the status of the command and measurement electronics, and the products of a low-level command parser that can be used to address any of the four instruments.

4.2 Data Product Overview

Each MECA Non-Imaging EDR consists of a single file containing binary data preceded by an ASCII PDS label. The body of the file is a binary data set consisting of one of sixteen format types as described in Appendix B. Types 0-3 contain data pertinent to an AFM measurement; the actual scan data is a table in type 2. Types 4 (CME status), 5 (power monitoring), and 6 (tables) are data returned by common electronics functions. Type 7 contains all the TECP data. Types 8-15 pertain to the WCL: Type 8 contains data from all the potentiometric WCL sensors such as pH and ion-selective electrodes; type 9 contains conductivity data; types 10-14 contains various voltammetries and potentiometries, all in a common format; and type 15 contains pressure and temperature data.

Experiment Data Records (EDR), the Level 0 products, are generated directly from the spacecraft telemetry stream but also include results from calibration, characterization, and cataloguing (CCC) activities on a variety of laboratory instruments. Each MECA non-imaging EDR consists of a cluster of uncalibrated data records, typically in a time-series, grouped together by virtue of being acquired on the same sol with the same token, product type, and record length. Tokens are embedded in the file and are assigned at the time of sequence generation specifically for the purpose of dividing EDRs into logical segments and helping to associate the data products with the original command sequence. Product types reflect the flight software command used to generate the data. Sixteen distinct telemetry product types have been defined, and are described in Appendix B. Within a particular telemetry type, the record length may vary with commanded parameters, and thus it is contingent on sequence engineers to apply common parameters to data commands whose records should be grouped together. As part of EDR generation, distinct products that have been transmitted in multiple telemetry packets (as indicated by a common time stamp) are reassembled into single records within the EDR.

Discussion of Reduced Data Records (RDR) is outside the scope of this document. In general, however, the objective of the EDR is to ensure that all telemetry, regardless of perceived importance, is retained in an unadulterated form, while the RDRs will emphasize key data and will offer more accessible forms such as ASCII tables and spreadsheets.

4.3 Data Processing overview

4.3.1 Data Processing Level

MECA non-imaging EDRs are equivalent to NASA Level 0 (CODMAC Level 2) data products as defined in Appendix-A. Higher level products (RDR) may have the same general format and structure as EDRs, although they are not described by this document.

4.3.2 Data Product Generation

The MGSS-IOS element, supported by the Multi-mission Image Processing Lab (MIPL) at JPL is responsible for generation of the MECA non-imaging EDRs. Raw MECA data packets are extracted from the telemetry stream and stored in EDRs, by activity, product type and record length. The PDS product label and its keywords are described in detail in Appendix-C.

4.3.3 Data Flow

After generation, each EDR is saved locally on the MIPL file server located at JPL and automatically delivered to the Science Operation Center (SOC) at the University of Arizona in real-time using the File Exchange Interface (FEI),a tool developed by MIPL for automation of data/file transfer using subscription and notification. Upon arrival at the SOC, these files/products will be published into the product catalog (ROMe) via another automated process. It will subsequently be organized in time order and delivered to the PDS in the form of an Archive Volume by the MECA team.

FEI is a tool that is used for automation of data/file transfer using subscription and notification. FEI is a multi-mission tool developed by MIPL.

After the proprietary period has passed, all applicable product such as EDRs, RDRs, etc. will be put into a PDS archive volume and submitted to the PDS Geosciences Node by the MECA team.

4.3.4 Labeling and Identification standards

The EDR format described in this document will follow the Phoenix product file naming conventions as described in Appendix-D. All filenames will be PDS compliant and will follow the Phoenix file naming convention described in Appendix D. Additional identification information will be contained in the PDS label as described in Appendix-C.

4.3.5 PDS Standards

MECA non-imaging EDR products will comply with the Planetary Data System's standards as specified in the PDS Standards Reference (see Applicable Documents). All label keywords are PDS compliant and registered in the PDS dictionary.

4.3.6 Time Standards

The following time standards and conventions are used throughout this document, as well as the Phoenix project for planning activities and identification of events.

SCET

Spacecraft event time. This is the time when an event occurred on-board the spacecraft, in UTC. It is usually derived from SCLK.

SCLK

Spacecraft Clock. This is an on-board 64-bit counter, in units of nano-seconds and increments once every 100 milliseconds. Time zero corresponds to midnight on 1-Jan-1980.

ERT

Earth Received Time. This is the time (UTC) when the first bit of the packet containing the current data was received at the Deep Space (DSN) station.

Local Solar Time

Local Solar Time (LST). This is the local solar time defined by the local solar days (sols) from the landing date using a 24 "hour" clock within the current local solar day (HR:MN:SC). Since the Mars day is 24h 37m 22s long, each unit of LST is slightly longer than the corresponding Earth unit. LST is computed using positions of the Sun and the landing site from SPICE kernels specified in the CHRONOS setup file. If a landing date is unknown to the program (e.g. for calibration data acquired on Earth) then no sol number will be provided on output

LST examples:

SOL 12 12:00:01

SOL 132 01:22:32.498

SOL 2 9

True Local Solar Time

This is related to LST which is also known as the mean solar time, is the time of day based on the position of the sun, rather than measure of time based on midnight to midnight "day". True local solar time is used in all MIPL generated products.

SOL

Solar Day Number, also known as PLANET DAY NUMBER in PDS label. This is the number of complete solar days on Mars since landing. The landing day therefore is SOL zero.

4.3.7 Data Storage Conventions

MECA non-imaging EDR products will be stored as binary files, with the binary data preceded by a PDS label in ASCII format, with each keyword definition terminated by ASCII carriage-return and line-feed characters. EDR products are defined as PDS spreadsheet objects (Applicable Document 1).

All MECA non-imaging EDRs will contain fixed length records, although the size of the records in each file could differ between EDRs. When necessary, records will be padded with extra bytes of 0x00.

4.4 Data Validation and Peer Review

The MECA non-imaging EDR product design, as described in this SIS, is subject to PDS peer review. The peer review will be completed well in advance of actual production, to allow time for changes in the design as needed. This SIS document will be updated to show any such changes.

Validation of MECA non-imaging EDR products during production will be performed according to specifications in the Phoenix Archive Plan and the MECA Team - Geosciences Node ICD (Applicable Documents 2 and 10). The MECA Team will validate the science content of the data products, and the Geosciences Node will validate the products for compliance with PDS standards and for conformance with the design specified in this SIS.

5. Detailed Data Product Specifications

The MECA non-imaging EDR contains time-ordered clusters of raw sensor and status data as specified below. Details of individual fields are described in Appendix B.

Notably absent from many of the EDR products are specific indicators of the relationship between the data and the command that produced it. Since Phoenix is a short mission and there are limited MECA resources (e.g. only four WCL cells and ten SWTS sets), the spacecraft clock tag on every data packet is usually sufficient to allow comparison with, for example, the uplink and downlink logs from the operations team. More explicit linkage will be provided in RDR products.

5.1 Data Product Structure and Organization

The philosophy of the MECA non-imaging data product is to retain the full detail provided in the raw telemetry packet, while clustering related time-sequences of data and eliminating the segmentation of individual objects (e.g. spectra) imposed by the telemetry process. This approach places the emphasis for data analysis on tools provided by the Phoenix Science Team for "ingesting" the binary data into common analysis or spreadsheet platforms. Initially tools will be provided for porting EDRs into the Matlab© environment and into comma-separated-value (CSV) files for use in spreadsheet environments such as Excel©.

MECA non-imaging EDRs are generated from raw telemetry with 16 different data types anddata definitions. All instances of MECA non-imaging EDRs will have the same PDS label information, though some fields may be undefined (designated "UNK") for some telemetry types. The binary field definitions are dependent on the telemetry type, which is defined both in the ASCII label information and in the binary header. Definitions of the fields in the MECA non-imaging products are provided in Appendix B.

To aidin distinguishing the ASCII label information from the binary data, the location of the first binary data record will be the final ASCII line which consists of the word "END" followed by carriage return and line feed characters.

5.2 Label and Header

MECA non-imaging data products are described by the same information in the header of each product. A PDS label is an ASCII text field consisting of a series of keyword=value statements. The label carries the metadata necessary to read and understand the data product. An example of a PDS label is provided in Appendix E, and definitions of the keywords used in the label are given in Appendix C.

6. Applicable Software

MECA non-imaging EDRs can be read with any programming language capable of interpreting binary data. As a courtesy to the scientific community, tools will be made available by the Phoenix science team for importing these EDRs into the Matlab© environment and for producing pure ASCII files consisting of a PDS header and tabulated data. Please contact the MECA Instrument Co-Investigator at michael.h.hecht@jpl.nasa.gov for more information.

Appendix A. PRODUCT LEVELS

Definitions of Data Processing Levels

This table shows definitions of processing levels as defined by NASA and by CODMAC, the Committee on Data Management and Computation (Applicable Documents 8 and 9)

Table A.1 Data Processing Levels

NASA

CODMAC

Description

Packet data

Raw - Level 1

Telemetry data stream as received at the ground station, with science and engineering data embedded.

Level-0

Edited - Level 2

Instrument science data (e.g., raw voltages, counts) at full resolution, time ordered, with duplicates and transmission errors removed.

Level 1A

Calibrated - Level 3

Level 0 data that have been located in space and may have been transformed (e.g., calibrated, rearranged) in a reversible manner and packaged with needed ancillary and auxiliary data (e.g., radiances with the calibration equations applied).

Level 1B

Resampled - Level 4

Irreversibly transformed (e.g., resampled, remapped, calibrated) values of the instrument measurements (e.g., radiances, magnetic field strength).

Level 1C

Derived - Level 5

Level 1A or 1B data that have been resampled and mapped onto uniform space-time grids. The data are calibrated (i.e., radiometrically corrected) and may have addi­tional corrections applied (e.g., terrain correction).

Level 2

Derived - Level 5

Geophysical parameters, generally derived from Level 1 data, and located in space and time commensurate with instrument location, pointing, and sampling.

Level 3

Derived - Level 5

Geophysical parameters mapped onto uniform space-time grids.

Ancillary - Level 6

Data needed to generate calibrated or resampled data sets.

Appendix B. RECORD STRUCTURE

B.1 Data Structure Overview

Each EDR contains an ASCII header consisting of the PDS label, followed by a series of binary data records, each of which begins with a binary header. While certain fields in the binary header are common, others are specific to an individual data type. All records in any single EDR are of the same length and format.

The PDS label is an ASCII text field consisting of a series of keyword=value statements. The label carries the metadata necessary to read and understand the data product. An example of a PDS label is provided in Appendix E, and definitions of the keywords used in the label are given in Appendix C.

Note that all binary quantities are big-endian; that is, the most significant byte of a multi-byte value comes first. In general, PCs are little-endian while Macintosh and UNIX systems are big-endian.

Note also that the word "packet" as used in the field name descriptions is not strictly equivalent to a telemetry packet. The packets referred to in the EDR should more properly be thought of as records, which correspond to a single packet of telemetry except when the data set length forced the flight software to divide it among two or more packets. In the EDR, such split records have been reunited into a single record or "super-packet."

B.2 Binary data description

Following the PDS keywords, each EDR contains a series of binary records of the same type, length, and ops_token (see below) each of which is preceded by a 36-byte binary header.

B.2.1 Binary header detail

Table B.2.1. Binary Header format

Offset (bytes)

Field name

Type

Size

(bits)

Description

Eng Units

Header

0

CMD_secs

Unsigned

32

Instrument command receipt time (seconds)

Secs

4

CMD_frac

Unsigned

32

Instrument command receipt time (remainder)

Secs/ 232

8

read_secs

Unsigned

32

Command complete time (seconds)*

N/A

12

read_frac

Unsigned

32

Command complete time (remainder)*

N/A

16

Datalength

Unsigned

32

Record length (minus headers)

Bytes

20

Records

Unsigned

16

Records in this product

Records

22

record_num

Unsigned

16

# of this record, within the product (starting with 1)

N/A

24

Datatype

Unsigned

16

Telemetry type (AFM: FRQTEST = 0)

N/A

26

TypeSpecific

Unsigned

48

[See individual type descriptions]

N/A

32

ops_token

Unsigned

32

Ops token

N/A

* Not present in some data types

The generic format of the Binary Header is described in Table B.2.1, where the fields may be interpreted as follows:

CMD_secs: This is the time that the command was issued from the spacecraft computer to the MECA subsystem across the serial interface. Units are seconds of Spacecraft Clock (SCLK).

CMD_frac: The remainder, where 232 is a full second.

read_secs: This is the time that the data was returned to the spacecraft computer across the serial interface from the MECA subsystem (not used for some telemetry types). Units are seconds of Spacecraft Clock (SCLK).

read_frac: The remainder, where 232 is a full second.

datalength: The length of the following record (and all records in this product), not including this header.

records: The number of records in this EDR.

record_num: The number of this record, from 1 to records. These should be in chronological order, but preliminary data products may not have these fields properly populated and the records may be out of order or have data gaps..

datatype: The telemetry type, 0-15, as described in following sections.

TypeSpecific: See individual descriptions in the following sections

ops_token: The ops token consists of 8 hexadecimal digits that help link the data record to the issuing command. It serves to separate groups of products into distinct EDRs in a logical manner and may also be coded for information that is not present elsewhere, such as the command type that produced the data, the WCL beaker number, or TECP gain settings. The first four hexadecimal characters of the ops token are an "activity id" that will be common to all the records in one EDR. The remaining four hexadecimal characters are assigned for various purposes at command time. This document will be updated as protocols for these definitions are established.

B.2.2 Binary data detail

Record descriptions for the various telemetry types are presented in the following sections.


Type 0: AFM: FRQTEST

Description:

Each of the eight AFM cantilevers is tuned to a unique resonant frequency that is used in the "dynamic" or frequency-modulated mode of operation. In dynamic mode a piezoelectric vibrator, which shakes the entire chip, is tuned to a particular cantilever. This is the preferred mode of operation (as compared to "static" mode) because it results in less interaction between the tip and the surface, but it is more complicated and prone to failure. FRQTEST scans through the frequency spectrum to find the resonant frequency and phase as well as the strength of the resonance for the "current" cantilever, which may be temporarily changed by the sequence to allow backup cantilevers to be tested. The quality of the resonance is captured in the applied voltage, Vap­­­, which is the input voltage required to keep the Phase Locked Loop (PLL) output amplitude at 10V. A good Vap is around 2.3V, while values above 6V typically indicate that the cantilever cannot be used in dynamic mode.

The test consists of two passes, each of which scans the designated frequency range using each of nine phase settings (0°,20°,40°, etc.). The best frequency and phase, as indicated by the lowest value of Vap, is selected from these 18 scans.

Generated by:

MECA_AFM_FRQTEST

Format:

Offset (bytes)

Field name

Type

Size (bits)

Description

Eng Units

Header

0

CMD_secs

Unsigned

32

Spacecraft command receipt time (whole seconds)

Secs

4

CMD_frac

Unsigned

32

Spacecraft command receipt time (remainder)

Secs/ 232

8

read_secs

Unsigned

32

Unused

N/A

12

read_frac

Unsigned

32

Unused

N/A

16

datalength

Unsigned

32

Record length (minus headers)

Bytes

20

records

Unsigned

16

Records in this product

Records

22

record_num

Unsigned

16

# of this record, within the product (starting with 1)

N/A

24

datatype

Unsigned

16

Telemetry type (AFM: FRQTEST = 0)

N/A

26

unused

Unsigned

48

Unused (zero)

N/A

32

ops_token

Unsigned

32

Ops token

N/A

Frequency

Test

Data

(112 bytes)

36

Tip

Unsigned

8

Current tip (0-7)

N/A

37

Vap_initial

Unsigned

8

Initial Vap (Vap<4 indicates good test)

V x 25.5

38

unused

Unsigned

16

Unused

N/A

40

freq0

Unsigned

32

Initial frequency

Hz

44

Vap_pass1

Unsigned

9*8

Vap values for pass 1, phases 0, 20, …, 160° deg

V x 25.5

53

Vap_pass2

Unsigned

9*8

Vap values for pass 2, phases 180, 200, …, 340°

V x 25.5

62

unused

Unsigned

16

Unused

N/A

64

freq_pass1

Unsigned

9*32

Center frequencies for pass 1, phase 0, 20, …, 160°

Hz

100

freq_pass2

Unsigned

9*32

Center frequencies for pass 2, phase 180, 200, …, 340°

Hz

136

Vap_min

Unsigned

8

Lowest Vap found in this test

V x 25.5

137

Vap_min_phase

Unsigned

8

Phase where lowest Vap found (0=0°, 1 = 20°, …)

V x 25.5

138

Vap_new

Unsigned

8

Vap to be used from here on

V x 25.5

139

unused

Unsigned

8

Unused

N/A

140

amplitude

Signed

32

New amplitude (signed - if negative, add 180° to phase)

mV

144

frequency

Unsigned

32

New center frequency

Hz

Field descriptions:

Tip: This refers to the current beam/cantilever/tip assembly, numbered 0-7. The AFM has eight silicon beams, each topped by a short, flexible cantilever. Protruding from each cantilever is a fine silicon tip. Here and elsewhere, tip is shorthand used to designate the entire assembly. Upon landing, Tip 0 is employed until it is no longer usable.

Vap_initial: This is the value of Vap at the start of the test (see above).

freq0: The starting frequency for the test

Vap_pass1: The lowest value of Vap for each of 9 sweeps with different phases

Vap_pass2: Same as above, second pass

freq_pass1: Frequencies corresponding to Vap_pass1

freq_pass2: Frequencies corresponding to Vap_pass1

Vap_min: Best (lowest) value of Vap from all 18 scans

Vap_min_phase: Phase corresponding to Vap_min

Vap_new: Final value of Vap (should be Vap_min)

amplitude: Amplitude of oscillation corresponding to Vap_min

frequency: Resonant frequency corresponding to Vap_min

Usage notes:

· Voltages are coded as integer data numbers (DN) such that V=DN/25.5


Type 1: AFM: RESPONSE

Description:

The AFM is operated by a custom microprocessor using proprietary code similar to that used by the commercial NanoSurf instrument. Phoenix FSW communicates with the AFM over a serial line. The low-level commands listed below have little or no associated telemetry other than return status codes from the microprocessor. These status codes, a string of ASCII bytes, are returned in Telemetry Type 1. A glossary of these codes is beyond the scope of this document, but the MECA Science Team can advise on the meaning of specific returns. Product length may vary with AFM command, in which case records under a common activity code may be separated into multiple EDRs.

Generated by:

MECA_AFM_ATTRGET (Returns AFM attributes with any of 43 IDs)

MECA_AFM_INITPLN (Prepares to scan)

MECA_AFM_INITBRG (Bridge initialization)

MECA_AFM_MVSTART (Moves to starting point for scan)

MECA_AFM_RAW (Issues raw, low-level command)

MECA_AFM_RDADCS (Reads Analog/Digital Converter)

Format:

Offset (bytes)

Field name

Type

Size (bits)

Description

Eng Units

Header

0

CMD_secs

Unsigned

32

Spacecraft command receipt time (whole seconds)

Secs

4

CMD_frac

Unsigned

32

Spacecraft command receipt time (remainder)

Secs/ 232

8

read_secs

Unsigned

32

Unused

N/A

12

read_frac

Unsigned

32

Unused

N/A

16

datalength

Unsigned

32

Record length (minus headers)

Bytes

20

records

Unsigned

16

Records in this EDR

Records

22

record_num

Unsigned

16

# of this record within the EDR (starting with 1)

N/A

24

datatype

Unsigned

16

Telemetry type (AFM: RESPONSE = 1)

N/A

26

unused

Unsigned

48

Unused (zero)

N/A

32

ops_token

Unsigned

32

Ops token

N/A

AFM response

36

AFM_response

Unsigned

Varies

Response from the AFM controller

N/A

Field descriptions:

AFM_response: This is the raw response from the AFM microcontroller to the issued command. the response should be 256 bits (32 bytes) long unless the raw command performed a scan (unlikely).

The format of the response is: <STX> <StatID> [ <StatStr> ] <SUM> <ETX> , where:


Type 2: AFM: SCAN

Description:

The AFM acquires topographic information by scanning the image in a raster pattern. Typically the scan is performed both forwards and backwards, and both the nominal height and the error signal are recorded. Thus each physical scan typically results in four data products, typically in the order Forward/Error, Forward/Height, Backwards/Error, Backwards/Height.

Image dimensions along the x and y axes vary to 512x512 bytes, or 266240 bytes per image including line headers. The physical dimensions corresponding to the data grid are not specificied in the telemetry and must be recovered from the command sequence. Subsequent reduced data products will include the conversion to physical units.

The AFM achieves a wide range of vertical (Z-axis) resolution in 8-bit data by offering a choice of gain settings, termed Channel Gain (CG), which is reported in every line header. When CG=0 the 8 bits of data span the entire ~13.6µm range of authority of the z-axis. The exact scan range is somewhat dependent on temperature and will require calibration in situ. Each step increase in CG decreases the range by a factor of two. For example, CG=2 nominally spans 3.4 µm. After every scan line the mean value of z is determined and that becomes the reference position, termed z-offset, for the subsequent line. In this way, even with a high CG, the scan can report some variations of topography in 8-bit data over the entire range of authority of the scanner.

Regardless of the gain setting for the height signal, the error signal range is always 20 V, centered on the setpoint (not reported in telemetry). For example, if the setpoint is 2 V, the range is from -8 to +12 V. The relation between the 20V and the deflection at the end (in microns) depends on the calibration and the mode. In dynamic mode the setpoint, and therefore the error signal is based on a frequency shift.

Note that the AFM feedback loop is always operating over the full range of authority of the cantilever, even if the resulting data is outside the reportable range designated by CG. Height data at the rails do not necessarily imply that the scanner is out of lock - this must be determined from the corresponding error signal. Correspondingly, since the error signal reports the physical error in the feedback loop, it will not reflect the "error" resulting from data values falling outside the range determined by CG and z-offset.

Generated by:

MECA_AFM_IMAGE

MECA_AFM_DOFRAME (low-level command)

MECA_AFM_DOLINE (low-level command)


Format:

Offset (bytes)

Field name

Type

Size (bits)

Description

Eng Units

Header

0

CMD_secs

Unsigned

32

Spacecraft command receipt time (whole seconds)

Secs

4

CMD_frac

Unsigned

32

Spacecraft command receipt time (remainder)

Secs/ 232

8

read_secs

Unsigned

32

Time at which last scanline was received from the instrument (whole seconds)

Secs

12

read_frac

Unsigned

32

Time at which last scanline was received from the instrument (remainder)

Secs/ 232

16

datalength

Unsigned

32

Record length (minus headers)

Bytes

20

records

Unsigned

16

Records in this EDR

Records

22

record_num

Unsigned

16

# of this record, within the EDR (starting with 1)

N/A

24

datatype

Unsigned

16

Telemetry type (AFM: SCAN = 2)

N/A

26

width

Unsigned

16

Scan width

Points

28

height

Unsigned

16

Scan height

Lines

30

direction

Unsigned

4

Scan direction mask. 1 = forward, 2 = backward

N/A

channel

Unsigned

4

Channel represented. 1 = error, 2 = height.

N/A

31

zoomregion

Unsigned

8

Zoom region if requested (1 is upper-left, 4 is upper-right, 16 is lower-right), 0 otherwise

N/A

32

ops_token

Unsigned

32

Ops token

N/A

AFM scan data

36

scan_data

Unsigned

Up to 15752 bits

AFM Scan data

N/A

Field descriptions:

Byte 1: Scan direction (0 = forward, 1 = backward)

Byte 2: Channel mask (always set to 3)

Bytes 3-4: Line number

Bytes 5-6: Z-offset. The 0-255 range spans the full z-range of the scanner.

Byte 7: Z channel gain (0 spans the full z-range, 1 spans half the range, etc.)

Byte 8: Designated for Vap, not implemented (see Type 0)

Byte 9 - (8+width): 8-bit scan data

Usage notes:

· In nearly all cases, data results from a call to MECA_AFM_IMAGE. In rare cases the low-level commands AFM_DOFRAME and AFM_DOLINE may have been called, in which case the scan data may include interleaved directions and/or channels as well as status data (see Type 1).

· Product length may vary, in which case records under a common activity code may be separated into multiple EDRs.


Type 3: AFM: TIPS

Description:

Data reported here result from initialization and test of the Wheatstone Bridge used to monitor the deflection of the AFM cantilevers. The result is an offset, an assessment of the quality of the cantilever, and the error signal from a "scan" in air which serves to evaluate noise on the measurement circuit (only the error is returned because the actual signal should be at the rail).

Generated by:

MECA_AFM_TSTTIPS

Format:

Offset (bytes)

Field name

Type

Size (bits)

Description

Eng Units

Header

0

CMD_secs

Unsigned

32

Spacecraft command receipt time (whole seconds)

Secs

4

CMD_frac

Unsigned

32

Spacecraft command receipt time (remainder)

Secs/ 232

8

read_secs

Unsigned

32

Unused

N/A

12

read_frac

Unsigned

32

Unused

N/A

16

datalength

Unsigned

32

Record length (minus headers)

Bytes

20

records

Unsigned

16

Records in this EDR

Records

22

record_num

Unsigned

16

# of this record within the EDR (starting with 1)

N/A

24

datatype

Unsigned

16

Telemetry type (AFM: TIPS = 3)

N/A

26

unused

Unsigned

48

Unused (zero)

N/A

32

ops_token

Unsigned

32

Ops token

N/A

Tip Test Data

(8324 bytes)

36

current_tip

Unsigned

8

Current tip (0-7)

N/A

37

unused

Unsigned

24

Unused

N/A

40

BridgeOffset1(1)

Unsigned

32

Bridge offset, pass 1, tip 0 (-32768 = -8V, 32767 = -4V)

DN

44

BridgeOffset2(1)

Unsigned

32

Bridge offset, pass 2, tip 0 (Same as above)

DN

48

LeverState1(1)

Unsigned

32

Lever state, pass 1, tip 0

N/A

52

LeverState2(1)

Unsigned

32

Lever state, pass 2, tip 0 (Same as above)

N/A

56

ScanResults1(1)

Unsigned

512*8

Scan results, pass 1, tip 0

N/A

568

ScanResults2(1)

Unsigned

512*8

Scan results, pass 2, tip 0

N/A

… (repeat for tips 1-6)

7320

BridgeOffset1(8)

Unsigned

32

Bridge offset, pass 1, tip 7

DN

7324

BridgeOffset2(8)

Unsigned

32

Bridge offset, pass 2, tip 7

DN

7328

LeverState1(8)

Unsigned

32

Lever state, pass 1, tip 7

N/A

7332

LeverState2(8)

Unsigned

32

Lever state, pass 2, tip 7

N/A

7336

ScanResults1(8)

Unsigned

512*8

Scan results, pass 1, tip 7

N/A

7848

ScanResults2(8)

Unsigned

512*8

Scan results, pass 2, tip 7

N/A

Field descriptions:

· current-tip: The number 0-7 of the cantilever that the software understands is currently being used for scanning. This is for status only, and all 8 cantilevers are evaluated in order, regardless of this value.

· BridgeOffset1: The offset required to balance the Wheatstone bridge

· BridgeOffset2: Same thing, second pass

· LeverState1: The evaluated condition of the cantilever, pass 1 (0 = NOT_TESTED, 1 = DEAD, 2 = NOT_CENTERED, 3 = OUT_OF_RANGE, 4 = NOISY, 5 = OK)

· LeverState2: Same as above, second pass

· ScanResults1: The error signal from a test "scan" in air consisting of a single line, forwards and backwards. Unlike the AFM_SCAN data type, the signal is not preceded by header information.

· ScanResults2: The Same as above, second pass

Usage notes:

· Data starts with the tip 0 and goes through tip 7, regardless of the value of current_tip. Broken off tips should be marked as dead.

· Note that the first three bytes of the data block (36-38) are not repeated.

· Note that tips 0-7 map into array elements 1-8 to accommodate array numbering conventions of analysis software.


Type 4: CME_STATUS

Description:

Type 4 is a direct response from the FPGA that controls all aspects of MECA operations. It is preserved in EDR format for completeness and because it is occasionally used as a "workaround" for a primary science measurement, but it would not normally be used directly by the general community.

The most common usage of this telemetry type is as a reply to routine requests including turning on LEDs for imaging, moving the microscope sample stage, deploying a chemistry actuator (sample drawer, water release, or stirring motor), or simply a status inquiry. The data return provides not only confirmation that the requested operation occurred, but specific information useful for calibration, such as the position of the stage when the atomic force microscope is engaged.

A second usage of this telemetry type is in response to a "raw" command, a direct instruction to the FPGA to execute any of its allowed functions. While not recommended for routine science measurements, this mode is often used for operations that are not performed in the desired sequence by the standard flight software commands. This method is currently used, for example, to set up the waveform prior to a WCL voltammetry or potentiometry scan. Since all records in a single EDR must be of the same length, the commands containing RAW fields will be in separate EDRs from the routine requests.

Generated by:

MECA_CMD_NO_OP

MECA_CMD_RAW

MECA_OM_SETLEDS

MECA_STG_ABSROT

MECA_STG_ABSXLT

MECA_STG_RELROT

MECA_STG_RELXLT

MECA_WC_DRWRCLS

MECA_WC_DRWROPEN

MECA_WC_RLSRGT

MECA_WC_RLSWATER

MECA_WC_STIR


Format:

Offset (bytes)

Field name

Type

Size (bits)

Description

Eng Units

Header

0

CMD_secs

Unsigned

32

Spacecraft command receipt time (whole seconds)

Secs

4

CMD_frac

Unsigned

32

Spacecraft command receipt time (remainder)

Secs/ 232

8

read_secs

Unsigned

32

Time at which this data was received from the instrument (whole seconds)

Secs

12

read_frac

Unsigned

32

Time at which this data was received from the instrument (fractional seconds = value / 232)

See description

16

datalength

Unsigned

32

Product length (minus headers)

Bytes

20

records

Unsigned

16

Records in this product

Records

22

record_num

Unsigned

16

# of this record, within the product (starting with 1)

N/A

24

datatype

Unsigned

16

Telemetry type (CME_STATUS = 4)

N/A

26

unused

Unsigned

48

Unused (zero)

N/A

32

ops_token

Unsigned

32

Ops token

N/A

CME status

36

[RAW]

[CME_command]

CME_status

Unsigned

176, unless from CMD_RAW

The 22-byte CME status returned in the FPGA command response. If output is from the CMD_RAW command, science data and command echo will precede the status.

N/A

Field descriptions:

· RAW: This field would normally be populated only for WCL commands used to set up voltammetry and potentiometry scans.

· CME_Command: Used only when RAW is present, this is an echo of the 42-byte command to the FPGA. Details are available from the MECA team.

· CME_status: This is a standard 22-byte coded field returned by the FPGA. It indicates such things as limit switch positions or which components are enabled or disabled. Details are available from the MECA team.


Type 5: POWER_DATA

Description:

Type 5 data returns a time series of voltage and current values provided by the primary MECA 5V (load and logic) and 15V (load and AFM) power supplies. These results are diagnostic of the functioning of all subsystems and should be indicative of many anomalous conditions.

Generated by:

MECA_CMD_RDPOWER

Format:

Offset (bytes)

Field name

Type

Size

(bits)

Description

Eng Units

Header

0

CMD_secs

Unsigned

32

Spacecraft command receipt time (whole seconds)

Secs

4

CMD_frac

Unsigned

32

Spacecraft command receipt time (remainder)

Secs/ 232

8

read_secs

Unsigned

32

Time at which this data was received from the instrument (whole seconds)

Secs

12

read_frac

Unsigned

32

Time at which this data was received from the instrument (remainder)

Secs/ 232

16

datalength

Unsigned

32

Record length (minus headers)

Bytes

20

records

Unsigned

16

Records in this EDR

Records

22

record_num

Unsigned

16

# of this record within the EDR (starting with 1)

N/A

24

datatype

Unsigned

16

Telemetry type (POWER_DATA = 5)

N/A

26

nsamples

Unsigned

8

Number of samples in this product

Samples

27

samplesize

Unsigned

8

Sample size (should be 20)

Bytes

28

unused

Unsigned

32

Unused (zero)

N/A

32

ops_token

Unsigned

32

Ops token

N/A

Power Data (one sample)

36

response

Unsigned

12

5V-logic (voltage)

DN

Unsigned

12

5V-load (voltage)

39

Unsigned

12

15V-load (voltage)

Unsigned

12

15V-AFM (voltage)

42

Unsigned

12

5V-logic (current)

Unsigned

12

5V-load (current)

45

Unsigned

12

15V-load (current)

Unsigned

12

15V-AFM (current)

48

Unsigned

32

Time at which this data was received from the instrument (whole seconds)

Secs

52

Unsigned

32

Time at which this data was received from the instrument (remainder)

Secs/ 232

56

<Repeat response for remainder of data>

Field descriptions:

· nsamples: The number of times the power lines were read.

· samplesize: Should always read 20 (bytes).

· response: The first 4 fields return voltage readings for the 5V logic and load lines followed by the 15V load and the 15V dedicated AFM drive lines. The following 4 fields contain the current signals for the same line. These 12-bit signals are concatenated such that the sequence of 8 requires 12 bytes. The final 8 bytes tag each set of readings with the spacecraft clock time, using the same convention as the header. To express voltages in mV, multiply the data numbers to by 7.324. To express current values in mA, multiply by 0.610.


Type 6: TBL

Description:

Type 6 data returns, on request, the contents of any of six tables that modify the operation of the MECA flight software (FSW). These include a state table which is autonomously maintained by FSW as well as several tables that can only be set by explicit user command. These user-maintained tables contain the values and allowed ranges of parameters and attributes that define the implementation of each experiment. For microscopy, for example, they might define the different substrate positions on the sample wheel as well as the optimal focus position. Download of these latter tables is for the purpose of confirmation that the actual parameters of an experiment were set as intended.

Generated by:

MECA_TBL_DWNLD

Format:

Offset (bytes)

Field name

Type

Size

(bits)

Description

Eng Units

Header

0

CMD_secs

Unsigned

32

Spacecraft command receipt time (whole seconds)

Secs

4

CMD_frac

Unsigned

32

Spacecraft command receipt time (remainder)

Secs/ 232

8

read_secs

Unsigned

32

Time at which this data was received from the instrument (whole seconds)

Secs

12

read_frac

Unsigned

32

Time at which this data was received from the instrument (remainder)

Secs/ 232

16

datalength

Unsigned

32

Record length (minus header)

Bytes

20

records

Unsigned

16

Records in this EDR

Records

22

record_num

Unsigned

16

# of this record, within the EDR (starting with 1)

N/A

24

datatype

Unsigned

16

Telemetry type (TBL = 6)

N/A

26

tabletype

Unsigned

8

Table type

N/A

27

unused

Unsigned

40

Unused (zero)

N/A

32

ops_token

Unsigned

32

Ops token

N/A

Table Contents

36

response

Unsigned

Varies by table type:

The contents of the requested table.

N/A

Field descriptions:

· tabletype: The type of table requested: (0=State, 1=Parameter Values, 2=Parameter Ranges, 3=AFM Attribute ranges, 4=Coupons, 5=Tips).

· response: Depends on table type (see Appendix F). Note that the header listed in Appendix F is used on upload but is not returned with the data. Table lengths are:

0. State Table: 136 bytes

1. Parameter Value Table: 1600 bytes

2. Parameter Range Table: 3200 bytes

3. AFM Attribute Table: 860 bytes

4. Coupons Table: 276 bytes

5. Tips Table: 192 bytes


Type 7: TECP

Description:

Type 7 data contains results of TECP measurements in all its modes, accompanied by indications of the robotic arm position (hence the TECP position) at the time the data was acquired. The mode itself is not indicated except by reference to the original command sequence (this will be corrected in the reduced data records). All eight channels (3 thermocouples, humidity, electrical conductivity and permittivity, electronics board temperature and the heater current) are always returned, with data values set to zero if the channel is inactive. Typically several channels are active at a time. If the robotic arm is not powered on during a TECP activity, the RA position will not be properly reported in the EDR. RA position variables for such observations will be added into the RDR, along with comments about the records and observations.

The eight TECP channel values are converted from data numbers (DN) to physical units as described below. The calibration constants are nominal, and the user should refer to the official calibration document for the most up-to-date values.

· Thermocouples 1-3: The data are returned as 12-bit unsigned values that must first be converted to a signed integer. This, if DN>2048, the signed value is (DN/2048-2), while if DN<2048, the signed value is DN/2048. The result is then multiplied by the opamp gain, nominally 1277, to retrieve ΔV (µV) of the thermocouple. This result is converted to temperature using the formula

T(K) = Tb + ΔV/S

where Tb is the board temperature (see below) and S is the corresponding Seebeck coefficient, derived using the polynomial form:

S (µV/K) = 1.05x10-6∙Tb3 - 1.04x10-3∙Tb2 + 0.432∙Tb - 1.62

Note, however, that for electronic reasons, Tb cannot be read simultaneously with the thermocouples, so Tb will be zero for any EDRs that contain nonzero values of thermocouples 1-3. Tb must therefore be extracted from preceding or following EDRs.

· Board temperature: Temperature is retrieved from the data in DN from:

Tb(K) = 0.0831∙DN - 4.76.

· Humidity: Relative humidity was calibrated by measuring the DN reading of the TECP at various known combinations of temperature and humidity. Thus DN can be converted to RH by solving for the larger root of the polynomial:

DN = -59.922∙RH2 + (-1742 +8.843∙Tb) ∙RH

+ (1860 - 8.2781∙Tb - 0.017443∙Tb2)

where Tb is the board temperature in Kelvin (see above).

· Permittivity: The dielectric constant is found from the polynomial:

εr = 1.172x10-9∙DN3 - 8.528x10-6∙DN28.504x10-6∙DN 2 + 0.02289∙DN0.02277∙DN - 10.5810.42

· Electrical conductivity: Conductivity data is acquired at one of three gain settings. Unfortunately, the gain setting is not returned with the telemetry and must be recovered from the original command. This will be corrected in the reduced data records. Note that at high gain, conductivity is only defined for DN<3421; at medium gain, 229<DN<3636; and at low gain, for DN>211.

The resistance of the medium Rm is determined from the data with the temperature-dependent polynomial:

Rm (Ω) = exp[a∙DN4exp[a∙DN5 + b∙DN3b∙DN4 + c∙DN2c∙DN3 + d∙DN + e]

Where for high gain, and DN < 3421:

T(K)

a

b

c

d

e

160

-8.341E-14

8.237E-10

-2.751E-6

4.743E-3

3.136

200

-7.892E-14

7.927E-10

-2.691E-6

4.718E-3

3.128

240

-7.809E-14

7.858E-10

-2.673E-6

4.699E-3

3.136

280

-7.742E-14

7.807E-10

-2.661E-6

4.690E-3

3.139

323

-7.769E-14

7.820E-10

-2.662E-6

4.689E-3

3.141

For medium gain, and 229 < DN < 3636 :

T(K)

a

b

c

d

e

160

-3.248E-14

4.654E-10

-1.922E-6

4.037E-3

7.918

200

-3.171E-14

4.536E-10

-1.885E-6

4.004E-3

7.910

240

-3.263E-14

4.605E-10

-1.903E-6

4.019E-3

7.905

280

-3.128E-14

4.498E-10

-1.877E-6

4.000E-3

7.901

323

-3.100E-14

4.478E-10

-1.873E-6

3.998E-3

7.901

For low gain, and 211< DN £ 2750:

T(K)

a

b

c

d

e

160

3.433E-13

-1.813E-9

2.535E-6

9.912E-4

11.85

200

3.451E-13

-1.826E-9

2.565E-6

9.698E-4

11.85

240

2.342E-13

-1.116E-9

1.133E-6

1.971E-3

11.66

280

1.111E-13

-1.938E-10

9.454E-7

3.561E-3

11.35

323

2.909E-13

-1.240E-9

9.917E-7

2.302E-3

11.57

For low gain and 2750 < DN £ 3400:

T(K)

a

b

c

d

e

200

0

1.3236E-8

-1.1648E-4

3.4362E-1

-3.2341E+2

240

0

1.2165E-8

-1.0593E-4

3.0932E-1

-2.8657E+2

280

0

1.9291E-8

-1.7078E-4

5.0553E-1

-4.8393E+2

To retrieve actual soil conductivity, DN are first converted to resistance, which then yields conductivity according to

EC (µS/cm) = 106 / (Rm∙ p):

where the probe constant p is a function of Rm and gain according to:

p (cm) = a∙ [ln(Rm)] 2 + b∙ln(Rm) + c

where:

Gain

a

b

c

high

-1.97E-2

0.540

0.0601

medium

-3.99E-3

8.90E-3

3.39

low

0

0

3.79

· Heater current: Heater current is retrieved from the data in DN from:

I(mA) = 0.610∙DN

Generated by:

MECA_TECP_READ

Format:

Offset (bytes)

FSW field name

Type

Size (bits)

Description

Eng Units

Header

0

CMD_secs

Unsigned

32

Spacecraft command receipt time (whole seconds)

Secs

4

CMD_frac

Unsigned

32

Spacecraft command receipt time (remainder)

Secs/ 232

8

read_secs

Unsigned

32

Time at which this data was received from the instrument (whole seconds)

Secs

12

read_frac

Unsigned

32

Time at which this data was received from the instrument (fractional seconds = value / 232)

See description

16

datalength

Unsigned

32

Product length (minus headers)

Bytes

20

records

Unsigned

16

Records in this product

Records

22

record_num

Unsigned

16

# of this record, within the product (starting with 1)

N/A

24

datatype

Unsigned

16

Telemetry type (TECP = 7)

N/A

26

nsamples

Unsigned

8

Number of samples in this product

Samples

27

samplesize

Unsigned

8

Sample size

Bytes

28

unused

Unsigned

32

Unused (zero)

N/A

32

ops_token

Unsigned

32

Ops token

N/A

TECP Data (one sample)

36

response

Unsigned

12

Thermocouple 1

A-to-D counts

Unsigned

12

Thermocouple 2

39

Unsigned

12

Thermocouple 3

Unsigned

12

Humidity

42

Unsigned

12

Electrical conductivity

Unsigned

12

Board temperature

45

Unsigned

12

Permittivity

Unsigned

12

Heater current

48

Unsigned

32

Time at which this data was received from the instrument (whole seconds)

Secs

52

Unsigned

32

Time at which this data was received from the instrument (fractional seconds = value / 232)

See description

56

Float

4*32

Joint angles from RA encoders

Radians

72

Float

4*32

Joint angles from RA pots

Radians

88

Float

3*32

Position of TECP in RA frame

Meters

100

Float

4*32

Orientation of TECP in RA frame (quaternion)

N/A

116

Float

4*32

Temperature of each RA joint

Degrees C

132

Unsigned

32

RA tool referenced (fixed at ra_tool_value_RA_TECP = 6)

N/A

136

Field descriptions:

· nsamples: The number of times the TECP was read.

· samplesize: Should always read 100 (bytes).

· response: The first 8 fields are the actual TECP 12-bit data channels, concatenated such that the sequence of 8 requires 12 bytes. The next 8 bytes tag each set of readings with the spacecraft clock time, using the same convention as the header. The remaining values in each iteration locate the TECP in the RA frame. If the robotic arm is not powered on during a TECP activity, the RA position will not be reported in the EDR. The fields RA_encoders, RA_pots, Tjoint, and TECP_pos will be all zero. TECP_orientation (the quaternion) elements will be 0, 1, 0, 0. The user is referred to Phoenix Camera EDR/RDR SIS for further discussion of lander reference frames.


Type 8: WCL: ISES

Description:

This data type contains a single set of readings from the majority of the sensors in the WCL beakers. Conversion to physical units begins with conversion of data numbers (DN) to mV, a characteristic of the analog-to-digital converter circuit common to most the ISEs. Nominal values for the half-cell are:

V(mV) = -0.80579∙DN + 2057.8

The half-cell results are then converted to an absolute potential by subtracting the potential measured on either of the lithium reference sensors. Note that oxidation-reduction potential (ORP) is not specifically listed as a sensor because it serves as the ground for all other sensors. Thus VORP = -VLi.

Conversion from mV to molar concentration is uses calibration constants specific to the beaker. These will be updated after in situ calibration. See the WCL calibration report for additional details.

Generated by:

MECA_WC_READ (Mode 2)

Format:

Offset (bytes)

Field name

Type

Size (bits)

Description

Eng Units

Header

0

CMD_secs

Unsigned

32

Spacecraft command receipt time (whole seconds)

Secs

4

CMD_frac

Unsigned

32

Spacecraft command receipt time (remainder)

Secs/ 232

8

read_secs

Unsigned

32

Time at which this data was received from the instrument (whole seconds)

Secs

12

read_frac

Unsigned

32

Time at which this data was received from the instrument (fractional seconds = value / 232)

See description

16

datalength

Unsigned

32

Record length (minus headers)

Bytes

20

records

Unsigned

16

Records in this EDR

Records

22

record_num

Unsigned

16

# of this record, within the EDR (starting with 1)

N/A

24

datatype

Unsigned

16

Telemetry type (WCL: ISES = 8)

N/A

26

unused

Unsigned

48

Unused (zero)

N/A

32

ops_token

Unsigned

32

Ops token

N/A

WCL data

36

response

Unsigned

384

CME response: 48 bytes WCL data

N/A

Command echo

84

CME_Command

Unsigned

336

42-byte CME command

N/A

Command status

126

CME_status

Unsigned

176

22-byte CME status

N/A

Field descriptions:

· response: Data consists of 24 12-bit words returned in two bytes with the most significant bits set to zero. Data is returned in the following order:

Byte Offset

Description

0

one of 6 measurements per cycle of chloride reference

2

one of 6 measurements per cycle of chloride reference

4

polymer pH electrode (1 of 2)

6

polymer pH electrode (2 of 2)

8

sodium electrode

10

lithium electrode (1 of 2)

12

potassium electrode

14

dissolved oxygen reference electrode

16

calcium electrode

18

magnesium electrode

20

nitrate electrode

22

ammonium electrode

24

barium electrode

26

bromine electrode

28

lithium electrode (2 of 2)

30

one of 6 measurements per cycle of chloride reference

32

one of 6 measurements per cycle of chloride reference

34

one of 6 measurements per cycle of chloride reference

36

iridium pH electrode

38

iodide electrode

40

chloride electrode

42

carbon dioxide electrode

44

monitor for voltage supplied to beaker electronics

46

one of 6 measurements per cycle of chloride reference

· CME_Command: This is an echo of the 42-byte command to the FPGA. Details are available from the MECA team.

· CME_status: This is a standard 22-byte coded field returned by the FPGA. It indicates such things as limit switch positions or which components are enabled or disabled. Details are available from the MECA team.


Type 9: WCL: COND

Description:

This data type contains a single set of readings from the WCL conductivity sensor, the current in each of two ranges and the voltage (read twice). Conversion to physical units begins with conversion of data numbers (DN) to resistance, with the nominal gain given by.

Rlow(Ω) = 5715.3∙(V/Ilow)

Rhigh(Ω) = 5810.4∙(V/Ihigh)

where V = 2517.95-DN and I = 2570-DN.

Conductance is the reciprocal of the resistance. Conductance is converted to conductivity by multiplying by the cell constant, which varies from beaker to beaker and is described in the WCL Calibration Report. The cell constant will be updated after in situ calibration.

Generated by:

MECA_WC_READ (Mode 3)

Format:

Offset (bytes)

Field name

Type

Size (bits)

Description

Eng Units

Header

0

CMD_secs

Unsigned

32

Spacecraft command receipt time (whole seconds)

Secs

4

CMD_frac

Unsigned

32

Spacecraft command receipt time (remainder)

Secs/ 232

8

read_secs

Unsigned

32

Time at which this data was received from the instrument (whole seconds)

Secs

12

read_frac

Unsigned

32

Time at which this data was received from the instrument (fractional seconds = value / 232)

See description

16

datalength

Unsigned

32

Record length (minus headers)

Bytes

20

records

Unsigned

16

Records in this EDR

Records

22

record_num

Unsigned

16

# of this record within the EDR (starting with 1)

N/A

24

datatype

Unsigned

16

Telemetry type (WCL: COND = 9)

N/A

26

unused

Unsigned

48

Unused (zero)

N/A

32

ops_token

Unsigned

32

Ops token

N/A

WCL data

36

response

Unsigned

64

8 bytes WCL conductivity data

N/A

Command echo

44

CME_Command

Unsigned

336

42-byte CME command

N/A

Command status

86

CME_status

Unsigned

176

22-byte CME status

N/A

Field descriptions:

· response: Data consists of 4 12-bit, unpacked data, each returned in two bytes with the most significant bits set to zero. Data is returned in the following order:

Byte Offset

Name

Description

0

I_HI

1st measure of electrical current in conductivity sensor

2

V

measure of voltage in conductivity sensor

4

I_LO

2nd measure of electrical current in conductivity sensor

6

V

measure of voltage in conductivity sensor

· CME_Command: This is an echo of the 42-byte command to the FPGA. Details are available from the MECA team.

· CME_status: This is a standard 22-byte coded field returned by the FPGA. It indicates such things as limit switch positions or which components are enabled or disabled. Details are available from the MECA team.


Type 10: WCL: DOX

Description:

The WCL Dissolved Oxygen sensor consists of an oxygen permeable membrane encapsulating a gel with electrochemical properties sensitive to the oxygen concentration. Behind the gel is a cyclic voltammetry (CV) electrode, and the form of the readout is thus identical to that of CV (Type 11).

To convert the data to physical units requires knowledge of both the drive (voltage) waveform and the response (current). Both require information that can be extracted from the CME_Command echo (see Field Descriptions). This information will be provided in an accessible form in reduced data records.

With knowledge of the gain setting, the current response to the waveform can be extracted according to the formula:

I(nA) = a∙DN + b

where the parameters a and b for each of the 8 gain settings are nominally as follows (please see the WCL Calibration Report for most recent values):

Gain

a

b

0

0

0

1

-0.743

1895

2

-0.0734

187.7

3

-8.534

21778

4

0

0

5

-2.568

6554

6

-0.245

626.5

7

n/a

n/a

Note that the gain settings are not monotonically increasing due to a bit order reversal in the FPGA.

The voltage ramp is typically a triangle, repeated until the specified number of points is exhausted (normally just once). The step size, timing, upper and lower voltage limits, and number of points can be extracted from CME_Command in data numbers (DN), but not the starting voltage and ramp, which depend on preceding RAW commands. In most cases, however, the ramp will start at the lower voltage limit.

The drive waveform can be converted from DN to voltage with the following nominal formula:

V(mV) = -1.614∙DN + 3310

Generated by:

MECA_WC_READ (Mode 4)

Format:

Offset (bytes)

Field name

Type

Size (bits)

Description

Eng Units

Header

0

CMD_secs

Unsigned

32

Spacecraft command receipt time (whole seconds)

Secs

4

CMD_frac

Unsigned

32

Spacecraft command receipt time (remainder)

Secs/ 232

8

read_secs

Unsigned

32

Time at which this data was received from the instrument (whole seconds)

Secs

12

read_frac

Unsigned

32

Time at which this data was received from the instrument (fractional seconds )

Secs/ 232

16

datalength

Unsigned

32

Record length (minus headers)

Bytes

20

records

Unsigned

16

Records in this EDR

Records

22

record_num

Unsigned

16

# of this record within the EDR (starting with 1)

N/A

24

datatype

Unsigned

16

Telemetry type (WCL: DOX = 10)

N/A

26

unused

Unsigned

48

Unused (zero)

N/A

32

ops_token

Unsigned

32

Ops token

N/A

WCL data

36

response

Unsigned

<24180

Sensor readings

N/A

Command echo

CME_Command

Unsigned

336

42-byte CME command

N/A

Command status

CME_status

Unsigned

176

22-byte CME status

N/A

Field descriptions:

· response: Data consists of a series of 12-bit samples padded and returned in two-byte words. Up to 2015 samples can be requested.

· CME_Command: This is an echo of the 42-byte command to the FPGA. Selected fields are described below and will be explicitly specified in future reduced data records. Contact the MECA team for additional information.

For each byte # specified in the table, the top line refers to the four MSBs and the second line to the four LSBs. 12-bit values cross byte boundaries.

Byte #

Description

3

MODE (4 for DOx, 5 ASV, 6 CV)

Beaker select (lower two bits indicate beaker 0-3)

30

# of samples (maximum 2015)

31

32

DAC_inc, the DAC increment in DN (~1.6 mV/DN)

Clock ticks per step (6.51 µsec/tick, max allowed ~870)

33

34

Square wave step size in DN (only for ASV, 0 otherwise)

adcReadCount (specifies phasing between drive step and sensor read, typically 0)

35

36

DAC_A (DN). Due to an FPGA idiosyncrasy, the minimum value of the ramp is DAC_min =DAC_A - 2*DAC_inc. Most ramps start at DAC_min.

37

DAC_B (DN). Due to an FPGA idiosyncrasy, the maximum value of the ramp is DAC_max =DAC_B + 2*DAC_inc.

38

39

RampMode (1 for DOx, typically 2 for all others, 3 for inverted CV or ASV)

Gain (top 3 bits; divide by 2 to get actual gain setting)

· CME_status: This is a standard 22-byte coded field returned by the FPGA. It indicates such things as limit switch positions or which components are enabled or disabled. Details are available from the MECA team.


Type 11: WCL: CV

Description:

Type 11 returns data from a cyclic voltammetry experiment. To convert the data to physical units requires knowledge of both the drive (voltage) waveform and the response (current). Both require information that can be extracted from the CME_Command echo (see Field Descriptions). This information will be provided in an accessible form in reduced data records.

With knowledge of the gain setting, the current response to the waveform can be extracted according to the formula:

I(nA) = a∙DN + b

where the parameters a and b for each of the 8 gain settings are nominally as follows (please see the WCL Calibration Report for most recent values):

Gain

a

b

0

0

0

1

-0.734

1873

2

-0.0725

184.7

3

-8.433

21523

4

0

0

5

-2.537

6476

6

-0.243

618.4

7

-49.68

126816

Note that the gain settings are not monotonically increasing due to a bit order reversal in the FPGA.

The voltage ramp is typically a triangle, repeated until the specified number of points is exhausted (normally just once). The step size, timing, upper and lower voltage limits, and number of points can be extracted from CME_Command in data numbers (DN), but not the starting voltage and ramp, which depend on preceding RAW commands. In most cases, however, the ramp will start at the lower voltage limit.

The drive waveform can be converted from DN to voltage with the following nominal formula:

V(mV) = 1.612∙DN - 3296

Generated by:

MECA_WC_READ (Mode 6)


Format:

Offset (bytes)

Field name

Type

Size (bits)

Description

Eng Units

Header

0

CMD_secs

Unsigned

32

Spacecraft command receipt time (whole seconds)

Secs

4

CMD_frac

Unsigned

32

Spacecraft command receipt time (remainder)

Secs/ 232

8

read_secs

Unsigned

32

Time at which this data was received from the instrument (whole seconds)

Secs

12

read_frac

Unsigned

32

Time at which this data was received from the instrument (fractional seconds )

Secs/ 232

16

datalength

Unsigned

32

Record length (minus headers)

Bytes

20

records

Unsigned

16

Records in this EDR

Records

22

record_num

Unsigned

16

# of this record within the EDR (starting with 1)

N/A

24

datatype

Unsigned

16

Telemetry type (WCL: DOX = 10)

N/A

26

unused

Unsigned

48

Unused (zero)

N/A

32

ops_token

Unsigned

32

Ops token

N/A

WCL data

36

response

Unsigned

<24180

Sensor readings

N/A

Command echo

CME_Command

Unsigned

336

42-byte CME command

N/A

Command status

CME_status

Unsigned

176

22-byte CME status

N/A

Field descriptions:

· response: Data consists of a series of 12-bit samples padded and returned in two-byte words. Up to 2015 samples can be requested.

· CME_Command: This is an echo of the 42-byte command to the FPGA. Selected fields are described below and will be explicitly specified in future reduced data records. Contact the MECA team for additional information.

For each byte # specified in the table, the top line refers to the four MSBs and the second line to the four LSBs. 12-bit values cross byte boundaries.

Byte #

Description

3

MODE (4 for DOx, 5 ASV, 6 CV)

Beaker select (lower two bits indicate beaker 0-3)

30

# of samples (maximum 2015)

31

32

DAC_inc, the DAC increment in DN (~1.6 mV/DN)

Clock ticks per step (6.51 µsec/tick, max allowed ~870)

33

34

Square wave step size in DN (only for ASV, 0 otherwise)

adcReadCount (specifies phasing between drive step and sensor read, typically 0)

35

36

DAC_A (DN). Due to an FPGA idiosyncrasy, the minimum value of the ramp is DAC_min =DAC_A - 2*DAC_inc. Most ramps start at DAC_min.

37

DAC_B (DN). Due to an FPGA idiosyncrasy, the maximum value of the ramp is DAC_max =DAC_B + 2*DAC_inc.

38

39

RampMode (1 for DOx, typically 2 for all others, 3 for inverted CV or ASV)

Gain (top 3 bits; divide by 2 to get actual gain setting)

· CME_status: This is a standard 22-byte coded field returned by the FPGA. It indicates such things as limit switch positions or which components are enabled or disabled. Details are available from the MECA team.


Type 12: WCL: CP

Description:

Type 12 returns data from a chronopotentiometry (CP) experiment, in which a current ramp is applied to one of three electrodes and the corresponding potential is measured. When either of the two Ag electrodes are selected (CP1 or CP2), peaks in the derivative of the returned waveform reflect the concentration of chloride, bromide, or iodide in the solution. When the Pt electrode is used (CP3), the same peaks may suggest the presence of iron.

CP was not part of the original FPGA configuration and therefore masquerades as a CV experiment - a switch set in a prior RAW command alerts the electronics boards to respond in chronopotentiometry mode. In contrast to CV, the user has a choice of six gain settings for the drive current but only a single setting for the returned voltage. To convert the data to physical units requires knowledge of both the drive (current) waveform and the response (voltage). Both require information that can be extracted from the CME_Command echo (see Field Descriptions). This information will be provided in an accessible form in reduced data records.

With knowledge of the gain setting, the current corresponding to the waveform can be extracted according to the formula:

I(nA) = a∙DN + b

where the parameters a and b for each of the 8 gain settings are nominally as follows (please see the WCL Calibration Report for most recent values):

Gain

a

b

0

0

0

1

-6.454

13195

2

-62.83

128460

3

-0.6474

1322

4

-122.3

250061

5

-3.225

6592

6

-31.81

65046

7

-0.329

659

Note that the gain settings are not monotonically increasing due to a bit order reversal in the FPGA.

The current ramp uses the same parameters as CV, but is specified to either increase from a low value to a higher value or to remains constant (Dac_inc=0). The step size, timing, upper and lower current limits, and number of points can be extracted from CME_Command in data numbers (DN). The current ramp should always start at the lower voltage limit.

The output can be converted from DN to voltage with the following nominal formula:

V(mV) = -0.70∙DN + 1788

Generated by:

MECA_WC_READ (Mode 6)

Format:

Offset (bytes)

Field name

Type

Size (bits)

Description

Eng Units

Header

0

CMD_secs

Unsigned

32

Spacecraft command receipt time (whole seconds)

Secs

4

CMD_frac

Unsigned

32

Spacecraft command receipt time (remainder)

Secs/ 232

8

read_secs

Unsigned

32

Time at which this data was received from the instrument (whole seconds)

Secs

12

read_frac

Unsigned

32

Time at which this data was received from the instrument (fractional seconds )

Secs/ 232

16

datalength

Unsigned

32

Record length (minus headers)

Bytes

20

records

Unsigned

16

Records in this EDR

Records

22

record_num

Unsigned

16

# of this record within the EDR (starting with 1)

N/A

24

datatype

Unsigned

16

Telemetry type (WCL: DOX = 10)

N/A

26

unused

Unsigned

48

Unused (zero)

N/A

32

ops_token

Unsigned

32

Ops token

N/A

WCL data

36

response

Unsigned

<24180

Sensor readings

N/A

Command echo

CME_Command

Unsigned

336

42-byte CME command

N/A

Command status

CME_status

Unsigned

176

22-byte CME status

N/A

Field descriptions:

· response: Data consists of a series of 12-bit samples padded and returned in two-byte words. Up to 2015 samples can be requested.

· CME_Command: This is an echo of the 42-byte command to the FPGA. Selected fields are described below and will be explicitly specified in future reduced data records. Contact the MECA team for additional information.

For each byte # specified in the table, the top line refers to the four MSBs and the second line to the four LSBs. 12-bit values cross byte boundaries.

Byte #

Description

3

MODE (should be 5 for CP1/Ag electrode, 6 for CP2/Ag, 4 for CP3/Pt)

Beaker select (lower two bits indicate beaker 0-3)

30

# of samples (maximum 2015)

31

32

DAC_inc, the DAC increment in DN (~1.6 mV/DN). 0 for constant current

Clock ticks per step (6.51 µsec/tick, max allowed ~870)

33

34

Square wave step size in DN (only for ASV, 0 otherwise)

adcReadCount (specifies phasing between drive step and sensor read, typically 0)

35

36

DAC_A (DN). Due to an FPGA idiosyncrasy, the minimum value of the ramp is DAC_min =DAC_A - 2*DAC_inc. Most ramps start at DAC_min.

37

DAC_B (DN). Due to an FPGA idiosyncrasy, the maximum value of the ramp is DAC_max =DAC_B + 2*DAC_inc.

38

39

RampMode (2 for CP1 and CP2; 1 for CP3/Pt)

Gain (top 3 bits; divide by 2 to get actual gain setting)

· CME_status: This is a standard 22-byte coded field returned by the FPGA. It indicates such things as limit switch positions or which components are enabled or disabled. Details are available from the MECA team.


Type 13: WCL: AS

Description:

Type 13 returns data from an anodic stripping voltammetry (ASV) experiment. In this mode, the applied waveform moves in a stairstep from a low to a high voltage. At each step a squarewave is applied and the resulting current is measured a fixed interval above, then below the designated ramp voltage. Prior to running this experiment, trace metals are plated onto the electrode by application of a fixed potential. The ASV waveform drives these metals from the electrode, resulting in characteristic peaks.

To convert the data to physical units requires knowledge of both the drive (voltage) waveform and the response (current). Both require information that can be extracted from the CME_Command echo (see Field Descriptions). This information will be provided in an accessible form in reduced data records.

With knowledge of the gain setting, the current response to the waveform can be extracted according to the formula:

I(nA) = a∙DN + b

where the parameters a and b for each of the 8 gain settings are nominally as follows (please see the WCL Calibration Report for most recent values):

Gain

a

b

0

0

0

1

-0.743

1894

2

-0.0734

187.8

3

-8.538

21778

4

0

0

5

-2.568

6551

6

-0.245

625.2

7

-50.46

128735

Note that the gain settings are not monotonically increasing due to a bit order reversal in the FPGA.

The voltage ramp is a squarewave superimposed on a ramp. It is monotonically increasing and, if too many points are specified, will simply flatten off at the maximum voltage. The step size, timing, upper and lower voltage limits, square wave amplitude, and number of points can be extracted from CME_Command in data numbers (DN). The ramp should always start at the lower voltage limit.

The drive waveform can be converted from DN to voltage with the following nominal formula:

V(mV) = 1.612∙DN - 3296

Generated by:

MECA_WC_READ (Mode 6)

Format:

Offset (bytes)

Field name

Type

Size

(bits)

Description

Eng Units

Header

0

CMD_secs

Unsigned

32

Spacecraft command receipt time (whole seconds)

Secs

4

CMD_frac

Unsigned

32

Spacecraft command receipt time (remainder)

Secs/ 232

8

read_secs

Unsigned

32

Time at which this data was received from the instrument (whole seconds)

Secs

12

read_frac

Unsigned

32

Time at which this data was received from the instrument (fractional seconds )

Secs/ 232

16

datalength

Unsigned

32

Record length (minus headers)

Bytes

20

records

Unsigned

16

Records in this EDR

Records

22

record_num

Unsigned

16

# of this record within the EDR (starting with 1)

N/A

24

datatype

Unsigned

16

Telemetry type (WCL: DOX = 10)

N/A

26

unused

Unsigned

48

Unused (zero)

N/A

32

ops_token

Unsigned

32

Ops token

N/A

WCL data

36

response

Unsigned

<24180

Sensor readings

N/A

Command echo

CME_Command

Unsigned

336

42-byte CME command

N/A

Command status

CME_status

Unsigned

176

22-byte CME status

N/A

Field descriptions:

· response: Data consists of a series of 12-bit samples padded and returned in two-byte words. Up to 2015 samples can be requested.

· CME_Command: This is an echo of the 42-byte command to the FPGA. Selected fields are described below and will be explicitly specified in future reduced data records. Contact the MECA team for additional information.

For each byte # specified in the table, the top line refers to the four MSBs and the second line to the four LSBs. 12-bit values cross byte boundaries.

Byte #

Description

3

MODE (4 for DOx, 5 ASV, 6 CV)

Beaker select (lower two bits indicate beaker 0-3)

30

# of samples (maximum 2015)

31

32

DAC_inc, the DAC increment in DN (~1.6 mV/DN)

Clock ticks per step (6.51 µsec/tick, max allowed ~870)

33

34

Square wave step size in DN (~1.6 mV/DN)

adcReadCount (specifies phasing between drive step and sensor read, typically 0)

35

36

DAC_A (DN). Due to an FPGA idiosyncrasy, the minimum value of the ramp is DAC_min =DAC_A - 2*DAC_inc. Most ramps start at DAC_min.

37

DAC_B (DN). Due to an FPGA idiosyncrasy, the maximum value of the ramp is DAC_max =DAC_B + 2*DAC_inc.

38

39

RampMode (1 for DOx, typically 2 for all others, 3 for inverted CV or ASV)

Gain (top 3 bits; divide by 2 to get actual gain setting)

· CME_status: This is a standard 22-byte coded field returned by the FPGA. It indicates such things as limit switch positions or which components are enabled or disabled. Details are available from the MECA team.


Type 14: WCL: (Reserved)

Description:

Currently unused, reserved for special modes of voltammetry or potentiometry.

Generated by:

MECA_WC_READ


Type 15: WCL: PT

Description:

For the active WCL cell (known from the command history) each record contains a measurement of the internal pressure sensor as well as temperature data from each of three sensors mounted on the water tank, the sample drawer, and in the beaker wall. The tank is used to monitor and verify thawing of the stored leaching solution, while the drawer sensor monitors the operation of sample introduction and reagent addition actuators. The beaker sensor is critical for analysis of chemical data. Regardless of which cell is active, each telemetry record includes a reading of the microscopy sample stage temperature. Thus many of the returned EDRs may be for the purpose of supporting microscopy experiments.

Each datum is a 12-bit number stored in 2 bytes, with the four most significant bits set to 0. Except for the stage sensor, the conversion to physical units is specific to the selected chemistry cell. The conversion follows the appropriate formula below:

P(mbar) = a∙DN + b

T(°C) = a∙DN + b

Nominal values of a and b are specified in the table below:

a

b

T stage

0.0664

-154.15

Cell 0

P

0.338903

-124.002

T beaker

0.06290586

-143.267

T tank

0.0643204

-145.966

T drawer

0.06947986

-158.314

Cell 1

P

0.340479

-135.385

T beaker

0.06495649

-145.755

T tank

0.09388902

-208.137

T drawer

0.07991369

-182.836

Cell 2

P

0.344203

-150.138

T beaker

0.06726234

-151.284

T tank

0.06370578

-136.16

T drawer

0.06797629

-151.228

Cell 3

P

0.246445

-126.864

T beaker

0.05697277

-132.773

T tank

0.06379372

-135.449

T drawer

0.07836308

-179.763



Generated by:

MECA_WC_READ (Mode 7)

Format:

Offset (bytes)

Field name

Type

Size

(bits)

Description

Eng Units

Header

0

CMD_secs

Unsigned

32

Spacecraft command receipt time (whole seconds)

Secs

4

CMD_frac

Unsigned

32

Spacecraft command receipt time (remainder)

Secs/ 232

8

read_secs

Unsigned

32

Time at which this data was received from the instrument (whole seconds)

Secs

12

read_frac

Unsigned

32

Time at which this data was received from the instrument (fractional seconds

Secs/ 232

16

datalength

Unsigned

32

Record length (minus headers)

Bytes

20

records

Unsigned

16

Records in this EDR

Records

22

record_num

Unsigned

16

# of this record within the EDR (starting with 1)

N/A

24

datatype

Unsigned

16

Telemetry type (WCL: PT = 15)

N/A

26

unused

Unsigned

48

Unused (zero)

N/A

32

ops_token

Unsigned

32

Ops token

N/A

36

32

reserved

T stage

40

T stage

Unsigned

16

SWTS temperature sensor

DN

42

16

reserved

P

44

Pressure

Unsigned

16

pressure sensor output

DN

46

16

reserved

T drawer

48

T drawer

Unsigned

16

AA sample drawer temperature sensor

DN

50

48

reserved

T tank

56

T tank

Unsigned

16

AA water tank temperature sensor

DN

58

48

reserved

T beaker

64

T beaker

Unsigned

16

Beaker temperature sensor

DN

66

reserved

Command echo

68

CME_Command

Unsigned

336

42-byte CME command

N/A

Command status

110

CME_status

Unsigned

176

22-byte CME status

N/A

Field descriptions:

· T stage: Common reading of microscopy stage temperature.

· Pressure: Pressure in the active WCL cell.

· T drawer: Temperature measured at the sample drawer of the active cell.

· T tank: Temperature measured on the water tank of the active cell.

· T beaker: Temperature measured in the wall of the beaker of the active cell.

· CME_Command: This is an echo of the 42-byte command to the FPGA. Details are available from the MECA team.

· CME_status: This is a standard 22-byte coded field returned by the FPGA. It indicates such things as limit switch positions or which components are enabled or disabled. Details are available from the MECA team.


Appendix C. PDS LABEL KEYWORDS

Keyword Name

Definition

Type

Units

Valid Values

Location & Source

APPLICATION_PROCESS_ID

Identifies the source/process which created the data.

Integer

(see APPLICATION_PROCESS_NAME)

TELEMETRY (Class)

CCSDS:Primary:APID

APPLICATION_PROCESS_NAME

Provides the name associated with the source/process which created the data.

String (256)

APID_MECA_AFM_KEY_STRAT

{values for WC,TECP)

Constant for each MECA instrument.

Table Lookup

CCSDS:Primary:APID

BITS

The number of bits in a column defined as data type BIT_STRING

Integer

Minimum 1, maximum 32

File structure

BIT_DATA_TYPE

See DATA_TYPE

String

MSB_UNSIGNED_INTEGER,
MSB_INTEGER ,
MSB_BIT_STRING, IEEE_REAL

File structure

BIT_MASK

A binary number indicating which bits in a value are valid

String

Example: 2#11110000# means high 4 bits are valid

File structure

BYTES

Number of bytes in a data column

Integer

1, 2, 4, 8 (or multiples thereof for a multiple-item column)

File structure

COLUMNS

Number of columns in a data table

Integer

Minimum 1

File structure

COLUMN_NUMBER

Number of a given data column

Integer

Minimum 1

File structure

DATA_SET_ID

A unique alphanumeric identifier for a data set or a data product. The DATA_SET_ID value for a given data set or product is constructed according to flight project naming conventions. In most cases the DATA_SET_ID is an abbreviation of the DATA_SET_NAME.

Note: In the PDS, the values for both DATA_SET_ID and DATA_SET_NAME are constructed according to standards outlined in the Standards Reference.

String (40)

See example labels for actual values used in each product type

Constant for each MECA instrument.

Table look up and CCSDS header

DATA_TYPE

Data storage type of a data value; e.g. real, integer, character; signed v. unsigned; most or least significant byte first

String

MSB_UNSIGNED_INTEGER,
MSB_INTEGER ,
MSB_BIT_STRING, IEEE_REAL

File structure

DESCRIPTION

(not by MIPL)

General text descriptor to describe data column. Free format comment field, enclosed in double quotes.

String

UNK for MIPL pipeline. Filled in for MECA generated calibration/characterization data

EARTH_RECEIVED_START_TIME

Provides the beginning time at which telemetry was received during a time period of interest. This should be represented in UTC system format.

Datetime

YYYY-MM-DDThh:mm:ss[.fff]

SFDU

Calculated

CHDO_82:ert

EARTH_RECEIVED_STOP_TIME

Provides the ending time for receiving telemetry during a time period of interest. This should be represented in UTC system format.

Datetime

YYYY-MM-DDThh:mm:ss[.fff]

SFDU

Calculated

CHDO_82:ert

END_OBJECT

OBJECT and END_OBJECT delimit the definition of a table, column, or other data construct.

String

Example: COLUMN, BIT_COLUMN, CONTAINER, TABLE. A prefix may be prepended to TABLE.

File structure

FILE_RECORDS

Indicates the number of physical file records.

Integer

Number of records in this EDR

Computed/updated by generating, or updating software

INSTRUMENT_HOST_ID

Identifier of the host (i.e. spacecraft) on which an instrument is based; an abbreviated version of INSTRUMENT_HOST_NAME

String

PHX

Constant

INSTRUMENT_HOST_NAME

The full name of the host (spacecraft) on which an instrument is based

String

PHOENIX

Constant

INSTRUMENT_ID

Unique identifier of an instrument; an abbreviated version of INSTRUMENT_NAME

String

MECA_AFM, MECA_ELEC, MECA_TECP, MECA_WCL

INSTRUMENT_MODE_ID

Identifier of a component or operating mode of an instrument

String

AS, CHRONOAS, CHRONOCV, CME, COND, CV, DOX, FRQTEST, ISES, N/A, PARAM_RANGE_TABLE, PT, PWR, RESPONSE, SCAN, TIPS_TABLE

INSTRUMENT_NAME

Name of the instrument, free format, enclosed in double quotes.

String

"MECA ATOMIC FORCE MICROSCOPE", "MECA COMMON ELECTRONICS", "MECA THERMAL AND ELECTRICAL CONDUCTIVITY PROBE", "MECA WET CHEMISTRY LABORATORY"

Table look up and constants.

INTERCHANGE_FORMAT

Denotes whether data file contents are in ASCII text or binary values

String

ASCII, BINARY

All MECA data products are BINARY.

ITEMS

Number of values in a data column that contains multiple values

Integer

Minimum 1

File structure

ITEM_BYTES

Number of bytes in one item

Integer

Minimum 1

File structure

ITEM_OFFSET

Number of bytes from the start of one item to the start of the next

Integer

Minimum 1

File structure

LABEL_RECORDS

Indicates the number of physical file records (i.e. one ASCII line of this file header) that contain only (PDS) label information.

Integer

0 to n

Computed/updated by generating or updating software

LABEL_REVISION_NOTE

Version of Label definitions

String

Determined by generating software

LOCAL_TRUE_SOLAR_TIME

USE COMMAND TIME

LTST is measured relative to the true position of the Sun as seen from a point on the planet's surface.

The coordinate system used to define LTST has its origin at the center of the planet. Its Z- axis is the north pole vector (or spin axis) of the planet. The X- axis points at the vernal equinox of the planet's orbit. LTST positions are expressed in spherical coordinates as a radius and areocentric right ascension (ARA) and declination. The ARA, is measured positive eastward in the equatorial plane from the vernal equinox vector to the intersection of the meridian containing the point with the equator. The areocentric declination is the angle between the equatorial plane and the vector to the point. LTST is a function of the difference between the ARAs of the vectors to the Sun and to the point on the planet' s surface. Specifically, LTST = (a(P)-a(TS) )*( 24/360) + 12, where:

LTST = the local true solar time in true solar hours

a( P) = ARA of the point on the planet' s surface (degrees)

a( TS) = ARA of the true sun (degrees)

String (12)

NOTE: Value will be UNK if this value can not be computed from the available SPICE kernels. Value will by "N/A", if SPICE kernel access is turned off. Also see SPICE_FILE_NAME

Computed from SCLK using SPICE kernels

MISSION_NAME

Identifies a major planetary mission or project. A given planetary mission may be associated with one or more spacecraft.

String

"PHOENIX"

Constant

MISSION_PHASE_NAME

Provides the commonly-used identifier of a mission phase.

String (30)

"CRUISE", "EXTENDED MISSION", "PRIMARY MISSION", "ATLO", "ORT1", "ORT2", "CCC", "TBD", "TEST", etc.

Table look from, based on parameter input.

NAME

Descriptive name given to a data column

String

File structure

OBJECT

OBJECT and END_OBJECT delimit the definition of a table, column, or other data construct.

String

Example: COLUMN, BIT_COLUMN, CONTAINER, TABLE. A prefix may be prepended to TABLE.

File structure

OPS_TOKEN

32-bit operations token, represented as an 8-digit hex value

Integer

0 - 16#FFFFFFFF

Telemetry, instrument header

OPS_TOKEN_ACTIVTY

16-bit Activity Code from the the OPS token. Represented as a 4 digit Hex value

Integer

0 - 15#FFFF

Telemetry, 16 msb of the ops token

OPS_TOKEN_PAYLOAD

4-bit payload value of the Ops. token, represented as a single Hex digit

Integer

0 - 16#F

Telemetry ops token

OPS_TOKEN_SEQUENCE

12-bit command sequence number of the ops. token, represented at a decimal value

Integer

0 - 16#FFF

Telemetry, least 12-bits of the ops token

PDS_VERSION_ID

Represents the version number of the PDS standards document that is valid when a data product label is created.

String (6)

"PDS3"

Constant

PLANET_DAY_NUMBER

Indicates the number of sidereal days (rotation of 360 degrees) elapsed since a reference day (e.g., the day on which a landing vehicle set down). Days are measured in rotations of the planet in question from the reference day (which is day zero). Landing day is 0

Integer

Computed from SCLK present in telemetry

PROCESSING_HISTORY_TEXT

Provides an entry for each processing step and program used in generating a particular data file.

String

e.g. "CODMAC LEVEL 1 TO LEVEL 2 CONVERSION VIA JPL/MIPL MERTELEMPROC"

Static Value

PRODUCER_FULL_NAME

Individual who acquired/generated the data

e.g. "Alice Stanboli"

PRODUCER_INSTITUTION_NAME

Identifies a university, research center, NASA center or other institution associated with the production of a data set. This would generally be an institution associated with the element PRODUCER_FULL_NAME.

String (60)

Generally, "MULTIMISSION INSTRUMENT PROCESSING LAB, JET PROPULSION LAB"

Static Value

PRODUCT_CREATION_TIME

Defines the UTC system format time when a product was created.

String

YYYY-MM-DDThh:mm:ss[.fff]

SFDU header

PRODUCT_ID

Represents a permanent, unique identifier assigned to a data productby its producer. See also: source_product_id.

Note: In the PDS, the value assigned to product_id must be unique within its data set.

Additional note: The product_id can describe the lowest-level data object that has a PDS label.

String (40)

File name, less the extension.

Calculated static value

PRODUCT_TYPE

The PRODUCT_TYPE data element identifies the type or category of a data product within a data set. See example labels for actual values used within MECA non-imaging data set

String (30)

"MECA_WCL"

"MECA_AFM_FRQTEST"

"MECA_AFM_SCAN"

"MECA_AFM_TIPS"

"MECA_CME_STATUS"

"MECA_POWER_DATA"

"MECA_TBL"

"MECA_TECP"

"MECA_WCHEM_ISES"

"MECA_AFM_RESPONSE"

Table lookup

PRODUCT_VERSION_ID

Identifies the version of an individual product within a data set.

PRODUCT_VERSION_ID is intended for use within AMMOS to identify separate iterations of a given product, which will also have a unique FILE_NAME.

Note: This might not be the same as the data set version that is an element of the DATA_SET_ID value.

String (12)

"V<vernum> D-22850"

User Parameter

RECORD_BYTES

Indicates the number of bytes in a physical file record, including record terminators and separators.

Integer

0 to n

Telemetry and instrument header

RECORD_TYPE

Indicates the record format of a file.

(Does not apply to label lines except that collectively the label length must be a multiple of the record length).

String (20)

"FIXED_LENGTH"

Constant

RELEASE_ID

Unique identifier associated with the release to the public of all or part of a data set. The first release of a data set should have a RELEASE_ID of "0001."

When a data set is released incrementally, such as every three months during a mission, the RELEASE_ID is updated each time part of the data set is released.

String

User Parameter

REPETITIONS

Number of times a CONTAINER object is repeated. A CONTAINER is a set of columns in a table treated as a group.

Integer

Minimum 1

File structure

ROWS

Number of rows in a table

Integer

Minimum 1

File structure

ROW_BYTES

Number of bytes in a row

Integer

Minimum 1

File structure

SOFTWARE_NAME

Identifies data processing software that generated this EDR.

String (60)

e.g. "PHXTELEMPROC"

User Parameter

SOFTWARE_VERSION_ID

Indicates the version (development level) of the processing software that generated this EDR..

String (20)

User Parameter

SPACECRAFT_CLOCK_START_COUNT

Starting SCLK, smallest, value of all the records contained in the EDR.

String (30)

Format is dddddddddd.ddd, measured in units of seconds stored internally as a floating point number.

Telemetry and instrument engineering header

Note: It is possible for the sclk to be earlier than the DVT time reported in the data product meta data file and the sclk reported in the data product file name.

SPACECRAFT_CLOCK_STOP_COUNT

Ending SCLK, largest value of all the records contained in the EDR.

String (30)

Format is dddddddddd.ddd, measured in units of Seconds and is stored internally as a floating point number.

Calculated

SPICE_FILE_NAME

Provides the names of the SPICE files used in processing the data.

String (180)

Value will be the name of the various SPICE kernels used, or "N/A" if SPICE processing is turned off in EDR generation software.

User parameter

START_BIT

In a column defined as a BIT_STRING, the starting bit of a BIT_COLUMN from the beginning of the string. The first bit in the bit string is Bit 1.

Integer

Minimum 1

File structure

START_BYTE

The starting byte of a column from the beginning of the row. The first byte in the row is Byte 1.

Integer

Minimum 1

File structure

START_TIME

SPACECRAFT_CLOCK_START_COUNT converted and represented in UTC

String

Formation rule:

YYYY-MM-DDThh:mm:ss[.fff]

Calculated

STOP_TIME

SPACECRAFT_CLOCK_STOP_COUNT converted and represented in UTC

String

Formation rule:

YYYY-MM-DDThh:mm:ss[.fff]

Calculated

TARGET_NAME

Identifies a target. The target may be a planet, satellite, ring, region, feature, asteroid or comet. See TARGET_TYPE. This is based on mission phase.

String (30)

"MARS", "CALIBRATION"

Static

TELEMETRY_SOURCE_TYPE

Classifies the source of the telemetry used in creation of this data set.

String (12)

"SFDU", "RAW"

User Parameter

UNIT

The units of measurement of the value in a data column.

String

"SECOND", "SECOND/2**32"

File structure

^xxx_TABLE

The pointer to the beginning of a named table described in the PDS label. The value is either (a) the record number on which the table data begin, with the first record in the file as Record 1, or (b) with the <BYTES> qualifier, the byte number on which the data begin, with the first byte in the file as Byte 1, or (c) the name of a separate file containing the data.

Integer or string

Minimum 1; for MECA, always a byte offset.

File structure

^STRUCTURE

The pointer to a file containing data column definitions

String

"AFM_FREQUENCY_SAMPLE.FMT", "AFM_TIPS.FMT", TECP_SAMPLE.FMT", "TBL_0_STATE_DATA.FMT", TBL_1_PARAMETER_VALUES_DATA.FMT", "TBL_2_PARAMETER_RANGE_DATA.FMT", "TBL_3_AFM_ATTRIBUTE_DATA.FMT", "TBL_4_COUPONS_DATA.FMT", "TBL_5_TIPS_DATA.FMT"

File structure


Appendix D. EDR File naming convention

Standards

The file naming convention defined for the MECA non-imaging EDRs complies with the conventions for Phoenix EDRs and RDRs, which in turn complies with the PDS Level II 27.3 file naming standards.

Each product name is uniquely identifiable throughout the mission.

File Naming Rules

A template for general filename is shown below. Character positions 9 through 25 are reserved for instrument specific.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

Instrument

Source/Epic

Sol

Product Type

MECA non-imaging Specific

Producer

Version

.

Extension

Detailed definition of product filenames are defined in the table below. Both the generic and MECA-specific fields are described.

Position

Name

Description/value

1

Instrument

O MECA-OM

P MECA-TECP

F MECA-AFM

W MECA-WCE

X MECA-Misc

2

Source/Epic

Spacecraft

S Surface, flight model

T Test-bed

C Cruise, flight model

3-5

SOL

Solar days since first full day on Mars. Landing day is Sol zero. If Source/Epic is T, day of year should is used (ERT or SCET). For cruise phase, it is always set to "_C_".

6-8

Product Type

3-char identifiers to differentiate products as either EDR (Level 0) or RDR (Level 1+) products. If the identifier begins with an "E", then the product is a type of EDR. Otherwise, it is a type of RDR, defined as needed.

For MECA non-Imaging EDRs, this field is always set to "EMx", where x is a hex digit representing one of 16 MECA data types.

9

Reserved

Always set to "_" (underscore) character

10-11

Revision

EDR revision number, 0-255, represented at a 2-digit Hex value.

12

Reserved

Always set to "_" (underscore) character

13-17

Record Length

Length of records represented as a 5-digit Hex value.

18-25

Ops Token

Token value represented as an 8-digit Hex value

26

Producer

Producer's id.

M For MIPL generated EDRs

27

Version

Version number, 0-9,A-Z (36 total)

MIPL EDRs are always set to 0.

28

Period

Always set to "." (ASCII period)

29-31

File Extension

PDS file extension. For MECA non-Imaging, this is always set to "DAT".


Appendix E. Examples of EDR PDS Labels

The following examples were taken from actual MECA EDRs. Due to the large number of different EDR types, only one example of each type is provided.

Type 0: AFM_FRQTEST

PDS_VERSION_ID = PDS3

LABEL_REVISION_NOTE = "2006-10-27, Initial"

/* File characteristics */

RECORD_TYPE = FIXED_LENGTH

RECORD_BYTES = 148

LABEL_RECORDS = 52

FILE_RECORDS = 54

/* Pointers to object in file */

^AFM_TABLE = 7253 <BYTES>

/* Identification */

DATA_SET_ID = "PHX-M-MECA-2-NIEDR-V1.0"

DESCRIPTION = "UNK"

PRODUCT_ID = "FT___EM0_00_00070ABABABABM0"

PRODUCT_VERSION_ID = "V1.0 D-22850"

PRODUCT_TYPE = "MECA-EM0"

RELEASE_ID = "0001"

INSTRUMENT_HOST_NAME = "PHOENIX"

INSTRUMENT_HOST_ID = PHX

INSTRUMENT_NAME = "MECA ATOMIC FORCE MICROSCOPE"

INSTRUMENT_ID = "MECA_AFM"

INSTRUMENT_MODE_ID = "FRQTEST"

MISSION_NAME = "PHOENIX"

OPS_TOKEN = "16#BABA#"

OPS_TOKEN_ACTIVITY = "16#BABA#"

OPS_TOKEN_PAYLOAD = "16#5#"

OPS_TOKEN_SEQUENCE = "16#BAB#"

TARGET_NAME = MARS

/* History */

PROCESSING_HISTORY_TEXT = "CODMAC LEVEL 1 to LEVEL 2 CONVERSION

VIA JPL/MIPL PHXTELEMPROC"

/* Telemetry */

TELEMETRY_SOURCE_TYPE = SFDU

/* Time information */

MISSION_PHASE_NAME = "TEST"

SPACECRAFT_CLOCK_START_COUNT = "849981735.032"

SPACECRAFT_CLOCK_STOP_COUNT = "850003332.077"

START_TIME = 2006-12-07T18:02:01.125

STOP_TIME = 2006-12-08T00:01:58.301

PLANET_DAY_NUMBER = UNK

EARTH_RECEIVED_START_TIME = 2006-01-12T00:00:00.000

EARTH_RECEIVED_STOP_TIME = 2006-12-08T00:07:51.550

LOCAL_TRUE_SOLAR_TIME = "12:03:50"

PRODUCT_CREATION_TIME = 2007-04-10T16:59:59.000

/* Processing information */

APPLICATION_PROCESS_ID = 50

APPLICATION_PROCESS_NAME = APID_MECA_AFM_KEY_STRAT

PRODUCER_FULL_NAME = "N/A"

PRODUCER_INSTITUTION_NAME = "MULTIMISSION IMAGE PROCESSING SUBSYSTEM,

JET PROPULSION LAB"

SOFTWARE_NAME = PHXTELEMPROC

SOFTWARE_VERSION_ID = "V2.0 03-16-07"

SPICE_FILE_NAME = "phx.furn"

/* Data object definition */

OBJECT = AFM_TABLE

INTERCHANGE_FORMAT = BINARY

COLUMNS = 26

ROWS = 2

ROW_BYTES = 148

OBJECT = COLUMN

COLUMN_NUMBER = 1

NAME = "CMDTIME WHOLE SECONDS"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 1

BYTES = 4

UNIT = SECOND

DESCRIPTION = "Spacecraft command receipt time,

whole seconds portion"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 2

NAME = "CMDTIME FRACTION"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 5

BYTES = 4

UNIT = "SECOND/2**32"

DESCRIPTION = "Spacecraft command receipt time,

fractional seconds portion

(value / 2**32)"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 3

NAME = "READTIME WHOLE SECONDS"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 9

BYTES = 4

UNIT = SECOND

DESCRIPTION = "Time at which this data was received

from the instrument, whole seconds

portion"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 4

NAME = "READTIME FRACTION"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 13

BYTES = 4

UNIT = "SECOND/2**32"

DESCRIPTION = "Time at which this data was received

from the instrument, fractional seconds

portion (value / 2**32)"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 5

NAME = "DATA LENGTH"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 17

BYTES = 4

DESCRIPTION = "Product length in bytes, minus headers"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 6

NAME = "OF TOTAL"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 21

BYTES = 2

DESCRIPTION = "Total number of records in this

product"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 7

NAME = "PART NUM"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 23

BYTES = 2

DESCRIPTION = "Number of this record within the

product (starting with 1)"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 8

NAME = "DATA TYPE"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 25

BYTES = 2

DESCRIPTION = "Telemetry type"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 9

NAME = "INST_PART_1"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 27

BYTES = 2

DESCRIPTION = "Unused (zero) TBR"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 10

NAME = "INST_PART_2"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 29

BYTES = 4

DESCRIPTION = "Unused (zero) TBR"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 11

NAME = "OPS TOKEN"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 33

BYTES = 4

DESCRIPTION = "Ops token"

END_OBJECT = COLUMN

OBJECT = CONTAINER

NAME = "AFM FREQUENCY SAMPLE"

BYTES = 112

START_BYTE = 37

REPETITIONS = 1

DESCRIPTION = "AMF Frequency test results."

^STRUCTURE = "AFM_FREQUENCY_SAMPLE.FMT"

END_OBJECT = CONTAINER

END_OBJECT = AFM_TABLE

END

Type 1: AFM_RESPONSE

PDS_VERSION_ID = PDS3

LABEL_REVISION_NOTE = "2006-10-27, Initial"

/* File characteristics */

RECORD_TYPE = FIXED_LENGTH

RECORD_BYTES = 49

LABEL_RECORDS = 159

FILE_RECORDS = 170

/* Pointers to object in file */

^AFM_TABLE = 7204 <BYTES>

/* Identification */

DATA_SET_ID = "PHX-M-MECA-2-NIEDR-V1.0"

DESCRIPTION = "UNK"

PRODUCT_ID = "FT___EM1_00_0000DABABABABM0"

PRODUCT_VERSION_ID = "V1.0 D-22850"

PRODUCT_TYPE = "MECA-EM1"

RELEASE_ID = "0001"

INSTRUMENT_HOST_NAME = "PHOENIX"

INSTRUMENT_HOST_ID = PHX

INSTRUMENT_NAME = "MECA ATOMIC FORCE MICROSCOPE"

INSTRUMENT_ID = "MECA_AFM"

INSTRUMENT_MODE_ID = "RESPONSE"

MISSION_NAME = "PHOENIX"

OPS_TOKEN = "16#BABA#"

OPS_TOKEN_ACTIVITY = "16#BABA#"

OPS_TOKEN_PAYLOAD = "16#5#"

OPS_TOKEN_SEQUENCE = "16#BAB#"

TARGET_NAME = MARS

/* History */

PROCESSING_HISTORY_TEXT = "CODMAC LEVEL 1 to LEVEL 2 CONVERSION

VIA JPL/MIPL PHXTELEMPROC"

/* Telemetry */

TELEMETRY_SOURCE_TYPE = SFDU

/* Time information */

MISSION_PHASE_NAME = "TEST"

SPACECRAFT_CLOCK_START_COUNT = "849989007.044"

SPACECRAFT_CLOCK_STOP_COUNT = "850006300.088"

START_TIME = 2006-12-07T20:03:13.172

STOP_TIME = 2006-12-08T00:51:26.344

PLANET_DAY_NUMBER = UNK

EARTH_RECEIVED_START_TIME = 2006-01-01T00:00:00.000

EARTH_RECEIVED_STOP_TIME = 2006-12-08T00:51:52.488

LOCAL_TRUE_SOLAR_TIME = "14:01:48"

PRODUCT_CREATION_TIME = 2007-04-10T17:00:10.000

/* Processing information */

APPLICATION_PROCESS_ID = 50

APPLICATION_PROCESS_NAME = APID_MECA_AFM_KEY_STRAT

PRODUCER_FULL_NAME = "N/A"

PRODUCER_INSTITUTION_NAME = "MULTIMISSION IMAGE PROCESSING SUBSYSTEM,

JET PROPULSION LAB"

SOFTWARE_NAME = PHXTELEMPROC

SOFTWARE_VERSION_ID = "V2.0 03-16-07"

SPICE_FILE_NAME = "phx.furn"

/* Data object definition */

OBJECT = AFM_TABLE

INTERCHANGE_FORMAT = BINARY

COLUMNS = 12

ROWS = 11

ROW_BYTES = 49

OBJECT = COLUMN

COLUMN_NUMBER = 1

NAME = "CMDTIME WHOLE SECONDS"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 1

BYTES = 4

UNIT = SECOND

DESCRIPTION = "Spacecraft command receipt time,

whole seconds portion"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 2

NAME = "CMDTIME FRACTION"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 5

BYTES = 4

UNIT = "SECOND/2**32"

DESCRIPTION = "Spacecraft command receipt time,

fractional seconds portion

(value / 2**32)"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 3

NAME = "READTIME WHOLE SECONDS"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 9

BYTES = 4

UNIT = SECOND

DESCRIPTION = "Time at which this data was received

from the instrument, whole seconds

portion"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 4

NAME = "READTIME FRACTION"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 13

BYTES = 4

UNIT = "SECOND/2**32"

DESCRIPTION = "Time at which this data was received

from the instrument, fractional seconds

portion (value / 2**32)"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 5

NAME = "DATA LENGTH"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 17

BYTES = 4

DESCRIPTION = "Product length in bytes, minus headers"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 6

NAME = "OF TOTAL"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 21

BYTES = 2

DESCRIPTION = "Total number of records in this

product"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 7

NAME = "PART NUM"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 23

BYTES = 2

DESCRIPTION = "Number of this record within the

product (starting with 1)"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 8

NAME = "DATA TYPE"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 25

BYTES = 2

DESCRIPTION = "Telemetry type"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 9

NAME = "INST_PART_1"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 27

BYTES = 2

DESCRIPTION = "Unused (zero) TBR"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 10

NAME = "INST_PART_2"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 29

BYTES = 4

DESCRIPTION = "Unused (zero) TBR"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 11

NAME = "OPS TOKEN"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 33

BYTES = 4

DESCRIPTION = "Ops token"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 12

NAME = "AFM RESPONSE"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 37

BYTES = 13

ITEMS = 13

ITEM_BYTES = 1

ITEM_OFFSET = 1

DESCRIPTION = "The actual AFM response to the command,

including the STX, checksum and ETX protocol bytes."

END_OBJECT = COLUMN

END_OBJECT = AFM_TABLE

END

Type 2: AFM_SCAN

PDS_VERSION_ID = PDS3

LABEL_REVISION_NOTE = "2006-10-27, Initial"

/* File characteristics */

RECORD_TYPE = FIXED_LENGTH

RECORD_BYTES = 1316

LABEL_RECORDS = 10

FILE_RECORDS = 14

/* Pointers to object in file */

^AFM_TABLE = 11845 <BYTES>

/* Identification */

DATA_SET_ID = "PHX-M-MECA-2-NIEDR-V1.0"

DESCRIPTION = "UNK"

PRODUCT_ID = "FT___EM2_00_00500ABABABABM0"

PRODUCT_VERSION_ID = "V1.0 D-22850"

PRODUCT_TYPE = "MECA-EM2"

RELEASE_ID = "0001"

INSTRUMENT_HOST_NAME = "PHOENIX"

INSTRUMENT_HOST_ID = PHX

INSTRUMENT_NAME = "MECA ATOMIC FORCE MICROSCOPE"

INSTRUMENT_ID = "MECA_AFM"

INSTRUMENT_MODE_ID = "SCAN"

MISSION_NAME = "PHOENIX"

OPS_TOKEN = "16#BABA#"

OPS_TOKEN_ACTIVITY = "16#BABA#"

OPS_TOKEN_PAYLOAD = "16#5#"

OPS_TOKEN_SEQUENCE = "16#BAB#"

TARGET_NAME = MARS

/* History */

PROCESSING_HISTORY_TEXT = "CODMAC LEVEL 1 to LEVEL 2 CONVERSION

VIA JPL/MIPL PHXTELEMPROC"

/* Telemetry */

TELEMETRY_SOURCE_TYPE = SFDU

/* Time information */

MISSION_PHASE_NAME = "TEST"

SPACECRAFT_CLOCK_START_COUNT = "849993940.065"

SPACECRAFT_CLOCK_STOP_COUNT = "849993940.065"

START_TIME = 2006-12-07T21:25:26.254

STOP_TIME = 2006-12-07T21:25:26.254

PLANET_DAY_NUMBER = UNK

EARTH_RECEIVED_START_TIME = 2006-12-07T21:30:26.939

EARTH_RECEIVED_STOP_TIME = 2006-12-07T21:30:26.939

LOCAL_TRUE_SOLAR_TIME = "15:21:50"

PRODUCT_CREATION_TIME = 2007-04-10T16:59:43.000

/* Processing information */

APPLICATION_PROCESS_ID = 50

APPLICATION_PROCESS_NAME = APID_MECA_AFM_KEY_STRAT

PRODUCER_FULL_NAME = "N/A"

PRODUCER_INSTITUTION_NAME = "MULTIMISSION IMAGE PROCESSING SUBSYSTEM,

JET PROPULSION LAB"

SOFTWARE_NAME = PHXTELEMPROC

SOFTWARE_VERSION_ID = "V2.0 03-16-07"

SPICE_FILE_NAME = "phx.furn"

/* Data object definition */

OBJECT = AFM_TABLE

INTERCHANGE_FORMAT = BINARY

COLUMNS = 20

ROWS = 4

ROW_BYTES = 1316

OBJECT = COLUMN

COLUMN_NUMBER = 1

NAME = "CMDTIME WHOLE SECONDS"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 1

BYTES = 4

UNIT = SECOND

DESCRIPTION = "Spacecraft command receipt time,

whole seconds portion"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 2

NAME = "CMDTIME FRACTION"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 5

BYTES = 4

UNIT = "SECOND/2**32"

DESCRIPTION = "Spacecraft command receipt time,

fractional seconds portion

(value / 2**32)"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 3

NAME = "READTIME WHOLE SECONDS"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 9

BYTES = 4

UNIT = SECOND

DESCRIPTION = "Time at which this data was received

from the instrument, whole seconds

portion"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 4

NAME = "READTIME FRACTION"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 13

BYTES = 4

UNIT = "SECOND/2**32"

DESCRIPTION = "Time at which this data was received

from the instrument, fractional seconds

portion (value / 2**32)"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 5

NAME = "DATA LENGTH"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 17

BYTES = 4

DESCRIPTION = "Product length in bytes, minus headers"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 6

NAME = "OF TOTAL"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 21

BYTES = 2

DESCRIPTION = "Total number of records in this

product"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 7

NAME = "PART NUM"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 23

BYTES = 2

DESCRIPTION = "Number of this record within the

product (starting with 1)"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 8

NAME = "DATA TYPE"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 25

BYTES = 2

DESCRIPTION = "Telemetry type"

END_OBJECT = COLUMN

OBJECT = COLUMN

NAME = COLS

COLUMN_NUMBER = 9

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 27

BYTES = 2

DESCRIPTION = "Image width."

END_OBJECT = COLUMN

OBJECT = COLUMN

NAME = LINES

COLUMN_NUMBER = 10

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 29

BYTES = 2

DESCRIPTION = "Image height."

END_OBJECT = COLUMN

OBJECT = COLUMN

NAME = DIR_CHANNEL_MASKS

COLUMN_NUMBER = 11

DATA_TYPE = MSB_BIT_STRING

START_BYTE = 31

BYTES = 1

DESCRIPTION = "Direction and channel masks."

OBJECT = BIT_COLUMN

NAME = "DIRECTION MASK"

BIT_DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BIT = 1

BITS = 4

DESCRIPTION = "Direction mask indicating scan

direction. 1=forward, 2=backward."

END_OBJECT = BIT_COLUMN

OBJECT = BIT_COLUMN

NAME = "CHANNEL MASK"

BIT_DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BIT = 5

BITS = 4

DESCRIPTION = "Channel represented. 1=height,

2=error. Note that this is the opposite

of the commanded channel mask."

END_OBJECT = BIT_COLUMN

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 12

NAME = "ZOOM REGION"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 32

BYTES = 1

DESCRIPTION = "Zoom region represented (1 is

upper-left corner, 4 is upper-right

corner, 16 is lower-right corner."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 13

NAME = "OPS TOKEN"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 33

BYTES = 4

DESCRIPTION = "Ops token"

END_OBJECT = COLUMN

OBJECT = CONTAINER

NAME = "AFM SCAN DATA."

BYTES = 64

START_BYTE = 37

REPETITIONS = 32

DESCRIPTION = "This container represents one AFM

scan line, including the 8-byte line

header. The REPETITIONS keyword

indicates the number of scan lines

in this record. The size of a scan line

and the number of scan lines per record

may vary from one AFM_SCAN

product to another, but they do not

vary within a single product."

OBJECT = COLUMN

COLUMN_NUMBER = 14

NAME = "DIRECTION"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 1

BYTES = 1

DESCRIPTION = "Direction (0=forward, 1=backward)"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 15

NAME = "CHANNEL MASK"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 2

BYTES = 1

DESCRIPTION = "Channel mask (1=error, 2=height)"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 16

NAME = "Y VALUE"

DATA_TYPE = MSB_INTEGER

START_BYTE = 3

BYTES = 2

DESCRIPTION = "Line number."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 17

NAME = "Z OFFSET"

DATA_TYPE = MSB_INTEGER

START_BYTE = 5

BYTES = 2

DESCRIPTION = "Maps the range specified by Z channel gain."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 18

NAME = "Z CHANNEL GAIN"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 7

BYTES = 1

DESCRIPTION = "(0=maps the entire z-range,

1=maps half the range, etc."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 19

NAME = "VAP"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 8

BYTES = 1

DESCRIPTION = "V x 25.5, currently not implemented."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 20

NAME = "SCAN DATA"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 9

BYTES = 56

ITEMS = 56

ITEM_BYTES = 1

ITEM_OFFSET = 1

DESCRIPTION = "One AFM scan line"

END_OBJECT = COLUMN

END_OBJECT = CONTAINER

END_OBJECT = AFM_TABLE

END

Type 3: AFM_TIPS

PDS_VERSION_ID = PDS3

LABEL_REVISION_NOTE = "2006-10-27, Initial"

/* File characteristics */

RECORD_TYPE = FIXED_LENGTH

RECORD_BYTES = 8360

LABEL_RECORDS = 1

FILE_RECORDS = 3

/* Pointers to object in file */

^AFM_TABLE = 8361 <BYTES>

/* Identification */

DATA_SET_ID = "PHX-M-MECA-2-NIEDR-V1.0"

DESCRIPTION = "UNK"

PRODUCT_ID = "FT___EM3_00_02084ABABABABM0"

PRODUCT_VERSION_ID = "V1.0 D-22850"

PRODUCT_TYPE = "MECA-EM3"

RELEASE_ID = "0001"

INSTRUMENT_HOST_NAME = "PHOENIX"

INSTRUMENT_HOST_ID = PHX

INSTRUMENT_NAME = "MECA ATOMIC FORCE MICROSCOPE"

INSTRUMENT_ID = "MECA_AFM"

INSTRUMENT_MODE_ID = "TIPS_TABLE"

MISSION_NAME = "PHOENIX"

OPS_TOKEN = "16#BABA#"

OPS_TOKEN_ACTIVITY = "16#BABA#"

OPS_TOKEN_PAYLOAD = "16#5#"

OPS_TOKEN_SEQUENCE = "16#BAB#"

TARGET_NAME = MARS

/* History */

PROCESSING_HISTORY_TEXT = "CODMAC LEVEL 1 to LEVEL 2 CONVERSION

VIA JPL/MIPL PHXTELEMPROC"

/* Telemetry */

TELEMETRY_SOURCE_TYPE = SFDU

/* Time information */

MISSION_PHASE_NAME = "TEST"

SPACECRAFT_CLOCK_START_COUNT = "849981522.049"

SPACECRAFT_CLOCK_STOP_COUNT = "850003126.061"

START_TIME = 2006-12-07T17:58:28.191

STOP_TIME = 2006-12-07T23:58:32.238

PLANET_DAY_NUMBER = UNK

EARTH_RECEIVED_START_TIME = 2006-01-12T00:00:00.000

EARTH_RECEIVED_STOP_TIME = 2006-12-08T00:00:41.624

LOCAL_TRUE_SOLAR_TIME = "12:00:23"

PRODUCT_CREATION_TIME = 2007-04-10T16:59:58.000

/* Processing information */

APPLICATION_PROCESS_ID = 50

APPLICATION_PROCESS_NAME = APID_MECA_AFM_KEY_STRAT

PRODUCER_FULL_NAME = "N/A"

PRODUCER_INSTITUTION_NAME = "MULTIMISSION IMAGE PROCESSING SUBSYSTEM,

JET PROPULSION LAB"

SOFTWARE_NAME = PHXTELEMPROC

SOFTWARE_VERSION_ID = "V2.0 03-16-07"

SPICE_FILE_NAME = "phx.furn"

/* Data object definition */

OBJECT = AFM_TABLE

INTERCHANGE_FORMAT = BINARY

COLUMNS = 20

ROWS = 2

ROW_BYTES = 8360

OBJECT = COLUMN

COLUMN_NUMBER = 1

NAME = "CMDTIME WHOLE SECONDS"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 1

BYTES = 4

UNIT = SECOND

DESCRIPTION = "Spacecraft command receipt time,

whole seconds portion"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 2

NAME = "CMDTIME FRACTION"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 5

BYTES = 4

UNIT = "SECOND/2**32"

DESCRIPTION = "Spacecraft command receipt time,

fractional seconds portion

(value / 2**32)"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 3

NAME = "READTIME WHOLE SECONDS"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 9

BYTES = 4

UNIT = SECOND

DESCRIPTION = "Time at which this data was received

from the instrument, whole seconds

portion"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 4

NAME = "READTIME FRACTION"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 13

BYTES = 4

UNIT = "SECOND/2**32"

DESCRIPTION = "Time at which this data was received

from the instrument, fractional seconds

portion (value / 2**32)"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 5

NAME = "DATA LENGTH"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 17

BYTES = 4

DESCRIPTION = "Product length in bytes, minus headers"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 6

NAME = "OF TOTAL"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 21

BYTES = 2

DESCRIPTION = "Total number of records in this

product"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 7

NAME = "PART NUM"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 23

BYTES = 2

DESCRIPTION = "Number of this record within the

product (starting with 1)"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 8

NAME = "DATA TYPE"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 25

BYTES = 2

DESCRIPTION = "Telemetry type"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 9

NAME = "INST_PART_1"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 27

BYTES = 2

DESCRIPTION = "Unused (zero) TBR"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 10

NAME = "INST_PART_2"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 29

BYTES = 4

DESCRIPTION = "Unused (zero) TBR"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 11

NAME = "OPS TOKEN"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 33

BYTES = 4

DESCRIPTION = "Ops token"

END_OBJECT = COLUMN

OBJECT = CONTAINER

NAME = "AFM TIPS"

BYTES = 8324

START_BYTE = 37

REPETITIONS = 1

DESCRIPTION = "AFM tips test results."

^STRUCTURE = "AFM_TIPS.FMT"

END_OBJECT = CONTAINER

END_OBJECT = AFM_TABLE

END

Type 4: CME_STATUS

PDS_VERSION_ID = PDS3

LABEL_REVISION_NOTE = "2006-10-27, Initial"

/* File characteristics */

RECORD_TYPE = FIXED_LENGTH

RECORD_BYTES = 58

LABEL_RECORDS = 132

FILE_RECORDS = 281

/* Pointers to object in file */

^CME_TABLE = 7135 <BYTES>

/* Identification */

DATA_SET_ID = "PHX-M-MECA-2-NIEDR-V1.0"

DESCRIPTION = "UNK"

PRODUCT_ID = "XT___EM4_00_00016ABABABABM0"

PRODUCT_VERSION_ID = "V1.0 D-22850"

PRODUCT_TYPE = "MECA-EM4"

RELEASE_ID = "0001"

INSTRUMENT_HOST_NAME = "PHOENIX"

INSTRUMENT_HOST_ID = PHX

INSTRUMENT_NAME = "MECA COMMON ELECTRONICS"

INSTRUMENT_ID = "MECA_ELEC"

INSTRUMENT_MODE_ID = "CME"

MISSION_NAME = "PHOENIX"

OPS_TOKEN = "16#BABA#"

OPS_TOKEN_ACTIVITY = "16#BABA#"

OPS_TOKEN_PAYLOAD = "16#5#"

OPS_TOKEN_SEQUENCE = "16#BAB#"

TARGET_NAME = MARS

/* History */

PROCESSING_HISTORY_TEXT = "CODMAC LEVEL 1 to LEVEL 2 CONVERSION

VIA JPL/MIPL PHXTELEMPROC"

/* Telemetry */

TELEMETRY_SOURCE_TYPE = SFDU

/* Time information */

MISSION_PHASE_NAME = "TEST"

SPACECRAFT_CLOCK_START_COUNT = "849980535.053"

SPACECRAFT_CLOCK_STOP_COUNT = "870620446.056"

START_TIME = 2006-12-07T17:42:01.207

STOP_TIME = 2007-08-03T15:00:32.219

PLANET_DAY_NUMBER = UNK

EARTH_RECEIVED_START_TIME = 2006-01-01T00:00:00.000

EARTH_RECEIVED_STOP_TIME = 2006-01-01T00:00:00.000

LOCAL_TRUE_SOLAR_TIME = "11:44:22"

PRODUCT_CREATION_TIME = 2007-04-10T17:00:11.000

/* Processing information */

APPLICATION_PROCESS_ID = 52

APPLICATION_PROCESS_NAME = APID_MECA_ANCIL_KEY_STRAT

PRODUCER_FULL_NAME = "N/A"

PRODUCER_INSTITUTION_NAME = "MULTIMISSION IMAGE PROCESSING SUBSYSTEM,

JET PROPULSION LAB"

SOFTWARE_NAME = PHXTELEMPROC

SOFTWARE_VERSION_ID = "V2.0 03-16-07"

SPICE_FILE_NAME = "phx.furn"

/* Data object definition */

OBJECT = CME_TABLE

INTERCHANGE_FORMAT = BINARY

COLUMNS = 11

ROWS = 149

ROW_BYTES = 58

OBJECT = COLUMN

COLUMN_NUMBER = 1

NAME = "CMDTIME WHOLE SECONDS"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 1

BYTES = 4

UNIT = SECOND

DESCRIPTION = "Spacecraft command receipt time,

whole seconds portion"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 2

NAME = "CMDTIME FRACTION"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 5

BYTES = 4

UNIT = "SECOND/2**32"

DESCRIPTION = "Spacecraft command receipt time,

fractional seconds portion

(value / 2**32)"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 3

NAME = "READTIME WHOLE SECONDS"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 9

BYTES = 4

UNIT = SECOND

DESCRIPTION = "Time at which this data was received

from the instrument, whole seconds

portion"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 4

NAME = "READTIME FRACTION"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 13

BYTES = 4

UNIT = "SECOND/2**32"

DESCRIPTION = "Time at which this data was received

from the instrument, fractional seconds

portion (value / 2**32)"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 5

NAME = "DATA LENGTH"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 17

BYTES = 4

DESCRIPTION = "Product length in bytes, minus headers"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 6

NAME = "OF TOTAL"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 21

BYTES = 2

DESCRIPTION = "Total number of records in this

product"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 7

NAME = "PART NUM"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 23

BYTES = 2

DESCRIPTION = "Number of this record within the

product (starting with 1)"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 8

NAME = "DATA TYPE"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 25

BYTES = 2

DESCRIPTION = "Telemetry type"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 9

NAME = "INST_PART_1"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 27

BYTES = 2

DESCRIPTION = "Unused (zero) TBR"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 10

NAME = "INST_PART_2"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 29

BYTES = 4

DESCRIPTION = "Unused (zero) TBR"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 11

NAME = "OPS TOKEN"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 33

BYTES = 4

DESCRIPTION = "Ops token"

END_OBJECT = COLUMN

OBJECT = COLUMN

NAME = "CME STATUS"

DATA_TYPE = "MSB_UNSIGNED_INTEGER"

START_BYTE = 37

BYTES = 22

ITEMS = 22

ITEM_BYTES = 1

DESCRIPTION = "The CME status returned in the FPGA command response."

END_OBJECT = COLUMN

END_OBJECT = CME_TABLE

END

Type 5: POWER_DATA

PDS_VERSION_ID = PDS3

LABEL_REVISION_NOTE = "2006-10-27, Initial"

/* File characteristics */

RECORD_TYPE = FIXED_LENGTH

RECORD_BYTES = 56

LABEL_RECORDS = 210

FILE_RECORDS = 211

/* Pointers to object in file */

^PWR_TABLE = 11649 <BYTES>

/* Identification */

DATA_SET_ID = "PHX-M-MECA-2-NIEDR-V1.0"

DESCRIPTION = "UNK"

PRODUCT_ID = "XT___EM5_00_00014ABABABABM0"

PRODUCT_VERSION_ID = "V1.0 D-22850"

PRODUCT_TYPE = "MECA-EM5"

RELEASE_ID = "0001"

INSTRUMENT_HOST_NAME = "PHOENIX"

INSTRUMENT_HOST_ID = PHX

INSTRUMENT_NAME = "MECA COMMON ELECTRONICS"

INSTRUMENT_ID = "MECA_ELEC"

INSTRUMENT_MODE_ID = "PWR"

MISSION_NAME = "PHOENIX"

OPS_TOKEN = "16#BABA#"

OPS_TOKEN_ACTIVITY = "16#BABA#"

OPS_TOKEN_PAYLOAD = "16#5#"

OPS_TOKEN_SEQUENCE = "16#BAB#"

TARGET_NAME = MARS

/* History */

PROCESSING_HISTORY_TEXT = "CODMAC LEVEL 1 to LEVEL 2 CONVERSION

VIA JPL/MIPL PHXTELEMPROC"

/* Telemetry */

TELEMETRY_SOURCE_TYPE = SFDU

/* Time information */

MISSION_PHASE_NAME = "TEST"

SPACECRAFT_CLOCK_START_COUNT = "870614837.068"

SPACECRAFT_CLOCK_STOP_COUNT = "870614837.068"

START_TIME = 2007-08-03T13:27:03.266

STOP_TIME = 2007-08-03T13:27:03.266

PLANET_DAY_NUMBER = UNK

EARTH_RECEIVED_START_TIME = 2006-12-08T17:22:42.229

EARTH_RECEIVED_STOP_TIME = 2006-12-08T17:22:42.229

LOCAL_TRUE_SOLAR_TIME = "21:04:08"

PRODUCT_CREATION_TIME = 2007-04-10T16:58:23.000

/* Processing information */

APPLICATION_PROCESS_ID = 52

APPLICATION_PROCESS_NAME = APID_MECA_ANCIL_KEY_STRAT

PRODUCER_FULL_NAME = "N/A"

PRODUCER_INSTITUTION_NAME = "MULTIMISSION IMAGE PROCESSING SUBSYSTEM,

JET PROPULSION LAB"

SOFTWARE_NAME = PHXTELEMPROC

SOFTWARE_VERSION_ID = "V2.0 03-16-07"

SPICE_FILE_NAME = "phx.furn"

/* Data object definition */

OBJECT = PWR_TABLE

INTERCHANGE_FORMAT = BINARY

COLUMNS = 15

ROWS = 1

ROW_BYTES = 56

OBJECT = COLUMN

COLUMN_NUMBER = 1

NAME = "CMDTIME WHOLE SECONDS"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 1

BYTES = 4

UNIT = SECOND

DESCRIPTION = "Spacecraft command receipt time,

whole seconds portion"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 2

NAME = "CMDTIME FRACTION"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 5

BYTES = 4

UNIT = "SECOND/2**32"

DESCRIPTION = "Spacecraft command receipt time,

fractional seconds portion

(value / 2**32)"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 3

NAME = "READTIME WHOLE SECONDS"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 9

BYTES = 4

UNIT = SECOND

DESCRIPTION = "Time at which this data was received

from the instrument, whole seconds

portion"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 4

NAME = "READTIME FRACTION"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 13

BYTES = 4

UNIT = "SECOND/2**32"

DESCRIPTION = "Time at which this data was received

from the instrument, fractional seconds

portion (value / 2**32)"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 5

NAME = "DATA LENGTH"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 17

BYTES = 4

DESCRIPTION = "Product length in bytes, minus headers"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 6

NAME = "OF TOTAL"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 21

BYTES = 2

DESCRIPTION = "Total number of records in this

product"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 7

NAME = "PART NUM"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 23

BYTES = 2

DESCRIPTION = "Number of this record within the

product (starting with 1)"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 8

NAME = "DATA TYPE"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 25

BYTES = 2

DESCRIPTION = "Telemetry type"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 9

NAME = "SAMPLES"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 27

BYTES = 1

DESCRIPTION = "Number of samples in each record of

this product"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 10

NAME = "SAMPLE SIZE"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 28

BYTES = 1

DESCRIPTION = "Sample size in bytes"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 11

NAME = "INST"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 29

BYTES = 4

DESCRIPTION = "Unused (zero) TBR"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 12

NAME = "OPS TOKEN"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 33

BYTES = 4

DESCRIPTION = "Ops token"

END_OBJECT = COLUMN

OBJECT = CONTAINER

NAME = "POWER DATA"

BYTES = 20

START_BYTE = 37

REPETITIONS = 1

DESCRIPTION = "Power data for commanded power measurements."

OBJECT = COLUMN

COLUMN_NUMBER = 1

NAME = "READING"

DATA_TYPE = MSB_BIT_STRING

START_BYTE = 1

BYTES = 20

DESCRIPTION = "Commanded power measurement."

OBJECT = BIT_COLUMN

NAME = "5V LOGIC VOLTS"

BIT_DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BIT = 1

BITS = 12

DESCRIPTION = "5V logic volts"

END_OBJECT = BIT_COLUMN

OBJECT = BIT_COLUMN

NAME = "5V LOAD VOLTS"

BIT_DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BIT = 13

BITS = 12

DESCRIPTION = "5V load volts"

END_OBJECT = BIT_COLUMN

OBJECT = BIT_COLUMN

NAME = "15V LOAD VOLTS"

BIT_DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BIT = 25

BITS = 12

DESCRIPTION = "15V load volts"

END_OBJECT = BIT_COLUMN

OBJECT = BIT_COLUMN

NAME = "15V AFM VOLTS"

BIT_DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BIT = 37

BITS = 12

DESCRIPTION = "15V AFM volts"

END_OBJECT = BIT_COLUMN

OBJECT = BIT_COLUMN

NAME = "5V LOGIC CURRENT"

BIT_DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BIT = 49

BITS = 12

DESCRIPTION = "5V logic current"

END_OBJECT = BIT_COLUMN

OBJECT = BIT_COLUMN

NAME = "5V LOAD CURRENT"

BIT_DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BIT = 61

BITS = 12

DESCRIPTION = "5V load current"

END_OBJECT = BIT_COLUMN

OBJECT = BIT_COLUMN

NAME = "15V LOAD CURRENT"

BIT_DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BIT = 73

BITS = 12

DESCRIPTION = "15V load current"

END_OBJECT = BIT_COLUMN

OBJECT = BIT_COLUMN

NAME = "15V AFM CURRENT"

BIT_DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BIT = 85

BITS = 12

DESCRIPTION = "15V AFM current"

END_OBJECT = BIT_COLUMN

END_OBJECT = COLUMN

OBJECT = COLUMN

NAME = "SAMPLE TIME"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 13

BYTES = 4

UNIT = SECOND

DESCRIPTION = "Time at which data was received from

instrument, whole seconds portion"

END_OBJECT = COLUMN

OBJECT = COLUMN

NAME = "SAMPLE TIME FRACTION"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 17

BYTES = 4

UNIT = "SECOND/2**32"

DESCRIPTION = "Time at which data was received from

instrument, fractional seconds portion

(value / 2**32)"

END_OBJECT = COLUMN

END_OBJECT = CONTAINER

END_OBJECT = PWR_TABLE

END

Type 6: TBL

This is an example label for one of several types of table data. See Appendix F for an explanation of the different types.

PDS_VERSION_ID = PDS3

LABEL_REVISION_NOTE = "2006-10-27, Initial"

/* File characteristics */

RECORD_TYPE = FIXED_LENGTH

RECORD_BYTES = 3056

LABEL_RECORDS = 3

FILE_RECORDS = 5

/* Pointers to object in file */

^TBL_TABLE = 9661 <BYTES>

/* Identification */

DATA_SET_ID = "PHX-M-MECA-2-NIEDR-V1.0"

DESCRIPTION = "UNK"

PRODUCT_ID = "XT___EM6_00_00C70ABABABABM0"

PRODUCT_VERSION_ID = "V1.0 D-22850"

PRODUCT_TYPE = "MECA-EM6"

RELEASE_ID = "0001"

INSTRUMENT_HOST_NAME = "PHOENIX"

INSTRUMENT_HOST_ID = PHX

INSTRUMENT_NAME = "MECA COMMON ELECTRONICS"

INSTRUMENT_ID = "MECA_ELEC"

INSTRUMENT_MODE_ID = "PARAM_RANGE_TABLE"

MISSION_NAME = "PHOENIX"

OPS_TOKEN = "16#BABA#"

OPS_TOKEN_ACTIVITY = "16#BABA#"

OPS_TOKEN_PAYLOAD = "16#5#"

OPS_TOKEN_SEQUENCE = "16#BAB#"

TARGET_NAME = MARS

/* History */

PROCESSING_HISTORY_TEXT = "CODMAC LEVEL 1 to LEVEL 2 CONVERSION

VIA JPL/MIPL PHXTELEMPROC"

/* Telemetry */

TELEMETRY_SOURCE_TYPE = SFDU

/* Time information */

MISSION_PHASE_NAME = "TEST"

SPACECRAFT_CLOCK_START_COUNT = "849981132.029"

SPACECRAFT_CLOCK_STOP_COUNT = "850002836.081"

START_TIME = 2006-12-07T17:51:58.113

STOP_TIME = 2006-12-07T23:53:42.316

PLANET_DAY_NUMBER = UNK

EARTH_RECEIVED_START_TIME = 2006-01-12T00:00:00.000

EARTH_RECEIVED_STOP_TIME = 2006-12-07T23:54:15.956

LOCAL_TRUE_SOLAR_TIME = "11:54:03"

PRODUCT_CREATION_TIME = 2007-04-10T16:59:58.000

/* Processing information */

APPLICATION_PROCESS_ID = 52

APPLICATION_PROCESS_NAME = APID_MECA_ANCIL_KEY_STRAT

PRODUCER_FULL_NAME = "N/A"

PRODUCER_INSTITUTION_NAME = "MULTIMISSION IMAGE PROCESSING SUBSYSTEM,

JET PROPULSION LAB"

SOFTWARE_NAME = PHXTELEMPROC

SOFTWARE_VERSION_ID = "V2.0 03-16-07"

SPICE_FILE_NAME = "phx.furn"

/* Data object definition */

OBJECT = TBL_TABLE

INTERCHANGE_FORMAT = BINARY

COLUMNS = 16

ROWS = 2

ROW_BYTES = 3056

OBJECT = COLUMN

COLUMN_NUMBER = 1

NAME = "CMDTIME WHOLE SECONDS"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 1

BYTES = 4

UNIT = SECOND

DESCRIPTION = "Spacecraft command receipt time,

whole seconds portion"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 2

NAME = "CMDTIME FRACTION"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 5

BYTES = 4

UNIT = "SECOND/2**32"

DESCRIPTION = "Spacecraft command receipt time,

fractional seconds portion

(value / 2**32)"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 3

NAME = "READTIME WHOLE SECONDS"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 9

BYTES = 4

UNIT = SECOND

DESCRIPTION = "Time at which this data was received

from the instrument, whole seconds

portion"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 4

NAME = "READTIME FRACTION"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 13

BYTES = 4

UNIT = "SECOND/2**32"

DESCRIPTION = "Time at which this data was received

from the instrument, fractional seconds

portion (value / 2**32)"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 5

NAME = "DATA LENGTH"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 17

BYTES = 4

DESCRIPTION = "Product length in bytes, minus headers"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 6

NAME = "OF TOTAL"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 21

BYTES = 2

DESCRIPTION = "Total number of records in this

product"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 7

NAME = "PART NUM"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 23

BYTES = 2

DESCRIPTION = "Number of this record within the

product (starting with 1)"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 8

NAME = "DATA TYPE"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 25

BYTES = 2

DESCRIPTION = "Telemetry type"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 9

NAME = "TABLE ID"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 27

BYTES = 1

DESCRIPTION = "Table type (0=STATE,

1=PARAMVALUES, 2=PARAMRANGES,

3=AFMATTRIBUTES, 4=COUPONS, 5=TIPS)"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 10

NAME = "INST"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 28

BYTES = 4

DESCRIPTION = "Unused (zero) TBR"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 11

NAME = "INST1"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 32

BYTES = 1

DESCRIPTION = "Unused (zero) TBR"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 12

NAME = "OPS TOKEN"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 33

BYTES = 4

DESCRIPTION = "Ops token"

END_OBJECT = COLUMN

OBJECT = CONTAINER

NAME = "TBL2 DATA"

BYTES = 3024

START_BYTE = 37

REPETITIONS = 189

DESCRIPTION = "Table contents for PARAMRANGES table downloads."

^STRUCTURE = "TBL_2_PARAMETER_RANGE_DATA.FMT"

END_OBJECT = CONTAINER

END_OBJECT = TBL_TABLE

END

Type 7: TECP

PDS_VERSION_ID = PDS3

LABEL_REVISION_NOTE = "2006-10-27, Initial"

/* File characteristics */

RECORD_TYPE = FIXED_LENGTH

RECORD_BYTES = 1936

LABEL_RECORDS = 5

FILE_RECORDS = 8

/* Pointers to object in file */

^TECP_TABLE = 9681 <BYTES>

/* Identification */

DATA_SET_ID = "PHX-M-MECA-2-NIEDR-V1.0"

DESCRIPTION = "UNK"

PRODUCT_ID = "PT___EM7_00_0076CABABABABM0"

PRODUCT_VERSION_ID = "V1.0 D-22850"

PRODUCT_TYPE = "MECA-EM7"

RELEASE_ID = "0001"

INSTRUMENT_HOST_NAME = "PHOENIX"

INSTRUMENT_HOST_ID = PHX

INSTRUMENT_NAME = "MECA THERMAL AND ELECTRICAL

CONDUCTIVITY PROBE"

INSTRUMENT_ID = "MECA_TECP"

INSTRUMENT_MODE_ID = "N/A"

MISSION_NAME = "PHOENIX"

OPS_TOKEN = "16#BABA#"

OPS_TOKEN_ACTIVITY = "16#BABA#"

OPS_TOKEN_PAYLOAD = "16#5#"

OPS_TOKEN_SEQUENCE = "16#BAB#"

TARGET_NAME = MARS

/* History */

PROCESSING_HISTORY_TEXT = "CODMAC LEVEL 1 to LEVEL 2 CONVERSION

VIA JPL/MIPL PHXTELEMPROC"

/* Telemetry */

TELEMETRY_SOURCE_TYPE = SFDU

/* Time information */

MISSION_PHASE_NAME = "TEST"

SPACECRAFT_CLOCK_START_COUNT = "870614869.051"

SPACECRAFT_CLOCK_STOP_COUNT = "870614869.051"

START_TIME = 2007-08-03T13:27:35.199

STOP_TIME = 2007-08-03T13:27:35.199

PLANET_DAY_NUMBER = UNK

EARTH_RECEIVED_START_TIME = 2006-12-08T17:27:51.895

EARTH_RECEIVED_STOP_TIME = 2006-12-08T17:27:51.895

LOCAL_TRUE_SOLAR_TIME = "21:04:39"

PRODUCT_CREATION_TIME = 2007-04-10T16:58:23.000

/* Processing information */

APPLICATION_PROCESS_ID = 60

APPLICATION_PROCESS_NAME = APID_MECA_TECP_KEY_STRAT

PRODUCER_FULL_NAME = "N/A"

PRODUCER_INSTITUTION_NAME = "MULTIMISSION IMAGE PROCESSING SUBSYSTEM,

JET PROPULSION LAB"

SOFTWARE_NAME = PHXTELEMPROC

SOFTWARE_VERSION_ID = "V2.0 03-16-07"

SPICE_FILE_NAME = "phx.furn"

/* Data object definition */

OBJECT = TECP_TABLE

INTERCHANGE_FORMAT = BINARY

COLUMNS = 21

ROWS = 3

ROW_BYTES = 1936

OBJECT = COLUMN

COLUMN_NUMBER = 1

NAME = "CMDTIME WHOLE SECONDS"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 1

BYTES = 4

UNIT = SECOND

DESCRIPTION = "Spacecraft command receipt time,

whole seconds portion"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 2

NAME = "CMDTIME FRACTION"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 5

BYTES = 4

UNIT = "SECOND/2**32"

DESCRIPTION = "Spacecraft command receipt time,

fractional seconds portion

(value / 2**32)"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 3

NAME = "READTIME WHOLE SECONDS"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 9

BYTES = 4

UNIT = SECOND

DESCRIPTION = "Time at which this data was received

from the instrument, whole seconds

portion"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 4

NAME = "READTIME FRACTION"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 13

BYTES = 4

UNIT = "SECOND/2**32"

DESCRIPTION = "Time at which this data was received

from the instrument, fractional seconds

portion (value / 2**32)"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 5

NAME = "DATA LENGTH"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 17

BYTES = 4

DESCRIPTION = "Product length in bytes, minus headers"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 6

NAME = "OF TOTAL"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 21

BYTES = 2

DESCRIPTION = "Total number of records in this

product"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 7

NAME = "PART NUM"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 23

BYTES = 2

DESCRIPTION = "Number of this record within the

product (starting with 1)"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 8

NAME = "DATA TYPE"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 25

BYTES = 2

DESCRIPTION = "Telemetry type"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 9

NAME = "SAMPLES"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 27

BYTES = 1

DESCRIPTION = "Number of samples in each record of

this product"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 10

NAME = "SAMPLE SIZE"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 28

BYTES = 1

DESCRIPTION = "Sample size in bytes"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 11

NAME = "INST"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 29

BYTES = 4

DESCRIPTION = "Unused (zero) TBR"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 12

NAME = "OPS TOKEN"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 33

BYTES = 4

DESCRIPTION = "Ops token"

END_OBJECT = COLUMN

OBJECT = CONTAINER

NAME = "TECP SAMPLE"

BYTES = 100

START_BYTE = 37

REPETITIONS = 19

DESCRIPTION = "One TECP record may contain up to 19

samples of 100 bytes each. The number of

samples per record may vary from one TECP

product to another, but it is the same

within a single TECP product. The keyword

REPETITIONS indicates the number of samples

in each record in this product."

^STRUCTURE = "TECP_SAMPLE.FMT"

END_OBJECT = CONTAINER

END_OBJECT = TECP_TABLE

END

Type 8: WCHEM

WCHEM types 9 through 15 have labels similar to this one for Type 8 and therefore are not given here.

PDS_VERSION_ID = PDS3

LABEL_REVISION_NOTE = "2006-10-27, Initial"

/* File characteristics */

RECORD_TYPE = FIXED_LENGTH

RECORD_BYTES = 212

LABEL_RECORDS = 61

FILE_RECORDS = 64

/* Pointers to object in file */

^WCHEM_TABLE = 8585 <BYTES>

/* Identification */

DATA_SET_ID = "PHX-M-MECA-2-NIEDR-V1.0"

DESCRIPTION = "UNK"

PRODUCT_ID = "WT___EM8_00_00070ABABABABM0"

PRODUCT_VERSION_ID = "V1.0 D-22850"

PRODUCT_TYPE = "MECA-EM8"

RELEASE_ID = "0001"

INSTRUMENT_HOST_NAME = "PHOENIX"

INSTRUMENT_HOST_ID = PHX

INSTRUMENT_NAME = "MECA WET CHEMISTRY LABORATORY"

INSTRUMENT_ID = "MECA_WCL"

INSTRUMENT_MODE_ID = "ISES"

MISSION_NAME = "PHOENIX"

OPS_TOKEN = "16#BABA#"

OPS_TOKEN_ACTIVITY = "16#BABA#"

OPS_TOKEN_PAYLOAD = "16#5#"

OPS_TOKEN_SEQUENCE = "16#BAB#"

TARGET_NAME = MARS

/* History */

PROCESSING_HISTORY_TEXT = "CODMAC LEVEL 1 to LEVEL 2 CONVERSION

VIA JPL/MIPL PHXTELEMPROC"

/* Telemetry */

TELEMETRY_SOURCE_TYPE = SFDU

/* Time information */

MISSION_PHASE_NAME = "TEST"

SPACECRAFT_CLOCK_START_COUNT = "870615466.027"

SPACECRAFT_CLOCK_STOP_COUNT = "870615466.027"

START_TIME = 2007-08-03T13:37:32.105

STOP_TIME = 2007-08-03T13:37:32.105

PLANET_DAY_NUMBER = UNK

EARTH_RECEIVED_START_TIME = 2006-12-08T17:34:29.169

EARTH_RECEIVED_STOP_TIME = 2006-12-08T17:34:29.169

LOCAL_TRUE_SOLAR_TIME = "21:14:20"

PRODUCT_CREATION_TIME = 2007-04-10T16:58:27.000

/* Processing information */

APPLICATION_PROCESS_ID = 63

APPLICATION_PROCESS_NAME = APID_MECA_WC_KEY_STRAT

PRODUCER_FULL_NAME = "N/A"

PRODUCER_INSTITUTION_NAME = "MULTIMISSION IMAGE PROCESSING SUBSYSTEM,

JET PROPULSION LAB"

SOFTWARE_NAME = PHXTELEMPROC

SOFTWARE_VERSION_ID = "V2.0 03-16-07"

SPICE_FILE_NAME = "phx.furn"

/* Data object definition */

OBJECT = WCHEM_TABLE

INTERCHANGE_FORMAT = BINARY

COLUMNS = 14

ROWS = 3

ROW_BYTES = 212

OBJECT = COLUMN

COLUMN_NUMBER = 1

NAME = "CMDTIME WHOLE SECONDS"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 1

BYTES = 4

UNIT = SECOND

DESCRIPTION = "Spacecraft command receipt time,

whole seconds portion"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 2

NAME = "CMDTIME FRACTION"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 5

BYTES = 4

UNIT = "SECOND/2**32"

DESCRIPTION = "Spacecraft command receipt time,

fractional seconds portion

(value / 2**32)"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 3

NAME = "READTIME WHOLE SECONDS"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 9

BYTES = 4

UNIT = SECOND

DESCRIPTION = "Time at which this data was received

from the instrument, whole seconds

portion"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 4

NAME = "READTIME FRACTION"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 13

BYTES = 4

UNIT = "SECOND/2**32"

DESCRIPTION = "Time at which this data was received

from the instrument, fractional seconds

portion (value / 2**32)"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 5

NAME = "DATA LENGTH"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 17

BYTES = 4

DESCRIPTION = "Product length in bytes, minus headers"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 6

NAME = "OF TOTAL"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 21

BYTES = 2

DESCRIPTION = "Total number of records in this

product"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 7

NAME = "PART NUM"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 23

BYTES = 2

DESCRIPTION = "Number of this record within the

product (starting with 1)"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 8

NAME = "DATA TYPE"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 25

BYTES = 2

DESCRIPTION = "Telemetry type"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 9

NAME = "INST_PART_1"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 27

BYTES = 2

DESCRIPTION = "Unused (zero) TBR"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 10

NAME = "INST_PART_2"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 29

BYTES = 4

DESCRIPTION = "Unused (zero) TBR"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 11

NAME = "OPS TOKEN"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 33

BYTES = 4

DESCRIPTION = "Ops token"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 12

NAME = "WCHEM DATA"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 37

BYTES = 112

ITEMS = 56

ITEM_BYTES = 2

ITEM_OFFSET = 2

BIT_MASK = 2#0000111111111111#

DESCRIPTION = "WCL data stream. Content varies depending

on command. See Microscopy, Electrochemistry

and Conductivity Analyzer (MECA) - Non-Imaging

Experiment Data Record (EDR). PHX-274-309.

Results from ISE measurements."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 13

NAME = "CME COMMAND"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 149

BYTES = 42

ITEMS = 42

ITEM_BYTES = 1

ITEM_OFFSET = 1

DESCRIPTION = "CME command."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 14

NAME = "CME STATUS"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 191

BYTES = 22

ITEMS = 22

ITEM_BYTES = 1

ITEM_OFFSET = 1

DESCRIPTION = "CME status."

END_OBJECT = COLUMN

END_OBJECT = WCHEM_TABLE

END

Appendix F. EDR Type 6 Table Contents

MECA EDR data of Type 6, Table Data, consists of the contents of any of six onboard tables that modify the operation of the MECA flight software (see Appendix B, section B.2.2). The six tables are the State Table, Parameter Values Table, Parameter Ranges Table, AFM Attributes Table, Coupons Table, and Tips Table. The structures of the tables vary slightly and are given below. Note that the headers (marked in gray) are not included in the EDR.

Table 0: State Table

The state table holds configuration items which may change in flight without explicit commands, and is maintained across reboots. The state table is uploaded by MECA flight software internals only; it may not be changed explicitly by command.

Section

Offset

Datatype

Description

Default (fixed if underlined)

Header

0

uint16

The table type (STATE, PARAMVALUES, PARAMRANGES, AFMATTRIBUTES, COUPONS, TIPS)

0

2

uint16

Table identifier (currently unused)

0

4

uint32

Table size in bytes, not including the header

88

Entries

8

uint32

State index 0 (AFM_STATUS)

0

12

uint32

Level of AFM initialization:

0 = Not booted

1 = Booted

2 = Tip tested (static mode)

3 = Frequency tested (dynamic mode)

Not saved across reboots. Zeroed on bootup.

0

16

uint32

State index 1 (CME_POWER)

1

20

uint32

A bitmask showing which MECA instrument circuits are powered:

00000001 LED breaker

00000002 Reagent actuator/stirrer breaker

00000004 Always 0

00000008 CME power

00000010 CME power

00000020 TECP breaker

00000040 TECP power

00000080 Beaker actuator/htr breaker

00000100 Beaker actuator/htr breaker

00000200 Beaker actuator/htr breaker

00000400 Beaker actuator/htr breaker

00000800 AFM breaker

00001000 AFM power

00002000 WCL breaker

00004000 WCL power

00008000 Always 0

00010000 Stirrer #1 power

00020000 Stirrer #2 power

00040000 Stirrer #3 power

00080000 Stirrer #4 power

00100000 Stage motor breaker

Not saved across reboots. Zeroed on bootup.

0

Entries

24

uint32

State index 2 (CURRENT_HW_OP)

2

28

uint32

The last operation started by the hardware task. Not saved across reboots. Zeroed at bootup.

0

32

uint32

State index 3 (CURRENT_TELEM_OP)

3

36

uint32

The last operation started by the telemetry task. Not saved across reboots. Zeroed at bootup.

0

40

uint32

State index 4 (ENABLED)

4

44

uint32

A bitmask showing which MECA components are enabled:

00000001 AFM

00000002 OM

00000004 Stage

00000008 TECP

00000010 Wet-chem

Not saved across reboots. Zeroed on bootup.

0

48

uint32

State index 5 (LEDS_ON)

5

52

uint32

Bitmask showing which LEDs are on:

00000001 Green #3

00000002 Blue #3

00000004 Blue #2

00000008 Green #2

00000010 Green #1

00000020 Blue #1

00000040 UV #3

00000080 Red #3

00000100 UV #2

00000200 UV #1

00000400 Red #2

00000800 Red #1

Not saved across reboots. Zeroed on bootup.

0

56

uint32

State index 6 (AFM_TIP)

6

60

uint32

Which AFM tip is currently in use. Saved across reboots.

0

64

uint32

State index 7 (POS_ROTATE)

7

68

uint32

The current stage rotation position in steps CW from the zero position. Saved across reboots.

0

72

uint32

State index 8 (POS_XLATE)

8

76

uint32

The current stage translation position in steps IN from the OUT limit switch, plus 10000. Saved across reboots.

0

80

uint32

State index 9 (MOTOR_INIT_MASK)

9

84

uint32

A bitmask showing which stage motors have been initialized:

00000001 Translation

00000002 Rotation

Saved across reboots.

0

Entries

88

uint32

State index 10 (TANKS_PUNCTURED_MASK)

10

92

uint32

A bitmask indicating which tanks have been punctured:

00000001 Cell 1

00000002 Cell 2

00000004 Cell 3

00000008 Cell 4

Saved across reboots.

0

96

uint32

State index 11 (REAGENTS_USED_WORD)

11

100

uint32

A nibblemask indicating how many reagents have been used for each cell:

000000xx Cell 1

0000xx00 Cell 2

00xx0000 Cell 3

xx000000 Cell 4

Saved across reboots.

0

104

uint32

State index 12 (OPS_TOKEN)

12

108

uint32

The current ops token, used by operations to indicate context. Saved across reboots.

0

112

uint32

State index 13 (LAST_CMD_NUM)

13

116

uint32

The number of commands dequeued by the main task, including pings and other system commands, as well as instrument commands. Saved across reboots.

0

120

uint32

State index 14 (CMDS_STARTED)

14

124

uint32

The number of instrument commands started; count doesn't include system commands. Saved across reboots.

0

128

uint32

State index 15 (CMDS_COMPLETED)

15

132

uint32

The number of instrument commands completed; count doesn't include system commands. May include commands which terminated early but which could not be identified as rejects. Saved across reboots.

0

136

uint32

State index 16 (CMDS_REJECTED)

16

140

uint32

The number of instrument commands rejected; count doesn't include system commands. Rejection may be for any reason, and count may include commands which generated some partial results before failing. Saved across reboots.

0

Table 1: Parameter Value Table

The parameter value table gives the current value of 200 different configuration parameters.

Section

Offset

Datatype

Description

Default (fixed if underlined)

Header

0

uint16

The table type (STATE, PARAMVALUES, PARAMRANGES, AFMATTRIBUTES, COUPONS, TIPS)

1

2

uint16

Table identifier (currently unused)

0

4

uint32

Table size in bytes, not including the header

1512

Entries

8

uint32

Identifier for parameter #0

0

12

uint32

Value for parameter #0

10

1592

uint32

Identifier for parameter #199

188

1596

uint32

Value for parameter #199

60

The actual parameters and their default values are:

#

Name

Default Value

Notes

0

AFMBRK_COUPON

16

The coupon index of the coupon to use for breaking tips, where the first coupon is numbered 0

1

AFMBRK_STEPS

17

The number of steps past AFM-near assertion required to break the tip (legacy value)

2

AFM_DYNAMIC_I_GAIN

6

I-gain to use for dynamic mode

3

AFM_DYNAMIC_P_GAIN

7

P-gain to use for dynamic mode

4

AFM_DYNAMIC_SETPOINT_HIVAP_IN_MV

10000

Setpoint used when Vap is high but not unusable

5

AFM_DYNAMIC_SETPOINT_LOVAP_IN_MV

2000

Setpoint used for nominal Vaps

6

AFM_GAP_VOLTAGE_IN_MV

-4000

Usage described in the AFM protocol manual

7

AFM_HEXFILE_LENGTH

31612

Length of the file in bytes

8

AFM_MAX_IMAGING_RESTARTS

10

The maximum number of times MECA FSW will restart imaging in dynamic mode after stopping for a bad Vap

9

AFM_MAX_RANGE

66

The max range in microns for both axes

10

AFM_MAX_TIP_NOISE

10

The maximum acceptable range of values during a tip test. Because the tip isn't in contact with a sample, the variation in values represents noise about the 0 point.

11

AFM_MAX_X

255

Unused. Duplicate of AFM_PHYSICAL_MAX_X_IN_UM

12

AFM_MAX_Y

255

Unused. Duplicate of AFM_PHYSICAL_MAX_Y_IN_UM

13

AFM_MAX_Z

255

Unused. Duplicate of AFM_PHYSICAL_MAX_Z_IN_DUM

14

AFM_MIDDLE_VAP_THRESHOLD_IN_MV

2000

If the Vap value is higher than this threshold, MECA FSW uses the higher setpoint specified by parameter #4 above.

15

AFM_NOISE_MIDDLE_THRESHOLD

40

The threshold against which the sum of min and max scan values from the tip test are compared. If scan values are centered around zero (which they should be in air), the sum of min and max should also be close to zero. A min+max sum above this threshold indicates a bad tip.

16

AFM_PHYSICAL_MAX_X_IN_UM

65

The physical maximum for the X dimension in micrometers

17

AFM_PHYSICAL_MAX_Y_IN_UM

65

The physical maximum for the Y dimension in micrometers

18

AFM_PHYSICAL_MAX_Z_IN_DUM

138

The physical maximum for the Z (height) dimension in tenths of a micrometer

19

AFM_PLL_I_GAIN_APPR

3

The PLL I-gain to use for approach

20

AFM_PLL_I_GAIN_FRQTEST

3

The PLL I-gain to use for the frequency test

21

AFM_PLL_LOOP_GAIN

0

The PLL loop gain, as described in the AFM protocol manual

22

AFM_PLL_STEPS_IN_SWEEP

1000

The number of steps the PLL should make in looking for a resonant frequency. This parameter multiplied by the step frequency in Hz (parameter #27) gives the total sweep range in Hz.

23

AFM_PRESCAN_Z_THRESHOLD

64

The maximum sample height expected by the prescan algorithm

24

AFM_STATIC_I_GAIN

14

I-gain to use for static mode

25

AFM_STATIC_P_GAIN

16

P-gain to use for static mode

26

AFM_STATIC_SETPOINT_IN_MV

-50

Default setpoint to use for static mode

27

AFM_STEP_FRQ_IN_HZ

15

The frequency step the PLL should use in looking for a resonant frequency

28

AFM_TIP_BREAK_ENABLED

0

If 0, tip breaking is disabled.

29

AFM_UPLOAD_LENGTH

30788

The number of bytes of AFM code actually uploaded to the AFM. Doesn't include file whitespace.

30

AFM_UPPER_VAP_THRESHOLD_IN_MV

5000

The highest Vap allowable in dynamic mode.

31

AFM_X2Y

0

A value between -10 and 10, scaled to the -1 to 1 range, indicating how X varies with changes in Y and vice versa. See the AFM user's guide for more details.

32

AFM_X_SLOPE_IN_DEG_CURRENT

0

The current estimated slope in X

33

AFM_X_SLOPE_IN_DEG_NOMINAL

0

The baseline slope in X

34

AFM_Y2X

0

A value between -10 and 10, scaled to the -1 to 1 range, indicating how X varies with changes in Y and vice versa. See the AFM user's guide for more details.

35

AFM_Y_SLOPE_IN_DEG_CURRENT

-5

The current estimated slope in Y

36

AFM_Y_SLOPE_IN_DEG_NOMINAL

-5

The baseline slope in Y

37

APID_AFM

50

The APID used for AFM science data, including low-level responses

38

APID_CME

52

The APID used for most low-level CME responses, including stage and wet chemistry mechanism control status

39

APID_OM

52

The APID used for OM-specific CME responses

40

APID_TABLE

52

The APID used for table downloads

41

APID_TECP

56

The APID used for TECP science data

42

APID_WCHEM

59

The APID used for wet chemistry science data. Actuator status responses are sent using the CME APID.

43

LS_OVERRIDES

0

Bitmask:

01 - ignore rotation zero-point

02 - ignore AFM near

04 - ignore safe-to-rotate

08 - ignore focus and out

10 - use alternate rotation switch

20 - use alternate safe-to-rotate switch

Note that FSW functionality diminishes when switches are ignored because movement is keyed to switch transitions.

44

LS_WORKING_MASK

0x0f

Which stage status bits can be assumed to be valid in CME responses

45

MTR_RETRIES

10

The number of attempts MECA FSW should make to "crawl onto" the limit switch when the FPGA stops movement but the status byte doesn't indicate switch actuation

46

MTR_ROT_BACKLASH_CCW

2

How many steps of play there are when reversing direction to counterclockwise. If MECA FSW must approach a target position from the counterclockwise direction, it will first overshoot by twice this amount.

47

MTR_ROT_BACKLASH_CW

1

How many steps of play there are when reversing direction to clockwise. If MECA FSW must approach a target position from the clockwise direction, it will first overshoot by twice this amount.

48

MTR_ROT_DRIVE_MODE

2

The required direction from which to approach a target position. 0 means finish movement clockwise, 1 means finish movement counterclockwise, and 2 means approach direction doesn't matter.

49

MTR_ROT_DUTY_CYCLE

8

The duty cycle value to use in rotation movements, per the HW/SW ICD

50

MTR_ROT_FUDGE_STEPS

3

The number of steps to move to nudge the stage onto the rotational switch

51

MTR_ROT_MAX_STEPS

24000

The number of steps in a complete wheel rotation

52

MTR_ROT_MOVEMENT_TOLERANCE

100

Step variability in the location of the switch expected during normal operation. If the switch is found further away than this tolerance, MECA FSW forces stage reinit.

53

MTR_ROT_PAUSE_WIDTH

0

The pause value to use in rotation movements, per the HW/SW ICD

54

MTR_ROT_POSN_OFF_CW

264

The step position at which the rotational switch nominally turns off when rotating clockwise

55

MTR_ROT_POSN_ON_CCW

264

The step position at which the rotational switch nominally turns on when rotating counterclockwise

56

MTR_ROT_PULSE_WIDTH

800

The pulse value to use in rotation movements, per the HW/SW ICD

57

MTR_ROT_TEST_CYCLES

3

The number of times MECA FSW should test wheel rotation during a stage healthcheck

58

MTR_ROT_VIRTUAL_REF_1

0

The real reference to use when rotation is commanded to virtual substrate 1 - set by sequence

59

MTR_ROT_VIRTUAL_REF_2

0

The real reference to use when rotation is commanded to virtual substrate 2 - set by sequence

60

MTR_ROT_VIRTUAL_REF_3

0

The real reference to use when rotation is commanded to virtual substrate 3 - set by sequence

61

MTR_ROT_VIRTUAL_REF_4

0

The real reference to use when rotation is commanded to virtual substrate 4 - set by sequence

62

MTR_ROT_VIRTUAL_REF_5

0

The real reference to use when rotation is commanded to virtual substrate 5 - set by sequence

63

MTR_ROT_VIRTUAL_REF_6

0

The real reference to use when rotation is commanded to virtual substrate 6 - set by sequence

64

MTR_ROT_VIRTUAL_REF_7

0

The real reference to use when rotation is commanded to virtual substrate 7 - set by sequence

65

MTR_ROT_VIRTUAL_REF_8

0

The real reference to use when rotation is commanded to virtual substrate 8 - set by sequence

66

MTR_ROT_VIRTUAL_REF_9

0

The real reference to use when rotation is commanded to virtual substrate 9 - set by sequence

67

MTR_ROT_VIRTUAL_REF_10

0

The real reference to use when rotation is commanded to virtual substrate 10 - set by sequence

68

MTR_ROT_VIRTUAL_REF_11

0

The real reference to use when rotation is commanded to virtual substrate 11 - set by sequence

69

MTR_ROT_VIRTUAL_REF_12

0

The real reference to use when rotation is commanded to virtual substrate 12 - set by sequence

70

MTR_ROT_VIRTUAL_REF_13

0

The real reference to use when rotation is commanded to virtual substrate 13 - set by sequence

71

MTR_ROT_VIRTUAL_REF_14

0

The real reference to use when rotation is commanded to virtual substrate 14 - set by sequence

72

MTR_ROT_VIRTUAL_REF_15

0

The real reference to use when rotation is commanded to virtual substrate 15 - set by sequence

73

MTR_ROT_VIRTUAL_REF_16

0

The real reference to use when rotation is commanded to virtual substrate 16 - set by sequence

74

MTR_ROT_VIRTUAL_REF_17

0

The real reference to use when rotation is commanded to virtual substrate 17 - set by sequence

75

MTR_ROT_VIRTUAL_REF_18

0

The real reference to use when rotation is commanded to virtual substrate 18 - set by sequence

76

MTR_ROT_VIRTUAL_REF_19

0

The real reference to use when rotation is commanded to virtual substrate 19 - set by sequence

77

MTR_ROT_VIRTUAL_REF_20

0

The real reference to use when rotation is commanded to virtual substrate 20 - set by sequence

78

MTR_ROT_WAVEFORM

0

The waveform to use for rotation, per the HW/SW ICD (bit 3 of byte 7 in the FPGA command)

79

MTR_XLATE_AFM_APPR_ITERATIONS

100

The number of iterations MECA FSW should make looking for AFM-near from the focus position. Each iteration moves the number of steps identified by parameter #80.

80

MTR_XLATE_AFM_APPR_ITER_STEPS

20

The number of steps to make at a time when moving in from the focus position, looking for AFM-near. See also parameter #79 above.

81

MTR_XLATE_BACKLASH_IN

1

How many steps of play there are when reversing direction to "in". If MECA FSW must approach a target position from the "in" direction, it will first overshoot by twice this amount.

82

MTR_XLATE_BACKLASH_OUT

2

How many steps of play there are when reversing direction to "out". If MECA FSW must approach a target position from the "out" direction, it will first overshoot by twice this amount.

83

MTR_XLATE_DRIVE_MODE

2

The required direction from which to approach a target position. 0 means finish movement moving "in", 1 means finish movement moving "out", and 2 means approach direction doesn't matter.

84

MTR_XLATE_DUTY_CYCLE

8

The duty cycle value to use in translation movements, per the HW/SW ICD

85

MTR_XLATE_FUDGE_STEPS

3

The number of steps to move to nudge the stage onto a translational switch switch

86

MTR_XLATE_MAX_STEPS

50500

Both the maximum number of steps that can be moved and the maximum value to which the current position can be forced through the MECA_STG_FORCPOS command

87

MTR_XLATE_MOVEMENT_TOLERANCE

400

Step variability in the locations of switches expected during normal operation. If a switch is found further away than this tolerance, MECA FSW forces stage reinit.

88

MTR_XLATE_PAUSE_WIDTH

0

The pause value to use in translation movements, per the HW/SW ICD

89

MTR_XLATE_POSN_AFM_NEAR_ON

50000

The step position at which the AFM-near switch is nominally expected to actuate

90

MTR_XLATE_POSN_FOCUS

48811

The nominal focus position in steps. This value may be adjusted separately from the focus-switch-on position if samples are found to not be in focus when the switch is actuated.

91

MTR_XLATE_POSN_FOCUS_ON

49511

The step position at which the in-focus switch is nominally expected to actuate

92

MTR_XLATE_POSN_OUT_OFF

10274

The step position at which the "out" limit switch turns off when moving in

93

MTR_XLATE_POSN_OUT_ON

10000

The step position at which the "out" limit switch turns on when moving out

94

MTR_XLATE_POSN_ROTATE

45124

The nominal safe-to-rotate position in steps. This value may be adjusted separately from the safe-switch-on position.

95

MTR_XLATE_POSN_SAFE_OFF

44664

The step position at which the "safe to rotate" switch turns off when moving out

96

MTR_XLATE_POSN_SAFE_ON

45124

The step position at which the "safe to rotate" switch turns on when moving in.

97

MTR_XLATE_POSN_SAMPLE

9500

The nominal sample-receive position in steps. The value may be adjusted separately from the out-switch-on position.

98

MTR_XLATE_PULSE_WIDTH

1000

The pulse value to use in translation movements, per the HW/SW ICD

99

MTR_XLATE_WAVEFORM

0

The waveform to use for translation, per the HW/SW ICD (bit 3 of byte 7 in the FPGA command)

100

NANNY_SEM_WAIT

30

How long in seconds the nanny task can go before checking for a spacecraft ping. This is a tuning parameter for the spacecraft interface only.

101

OPS_TOKEN

0xaaaaaaaa

The current ops context, as specified by the sequence

102

RDPOWER_MAX_READ_INTERVAL

100

The maximum amount of time between read-power samplings (in seconds)

103

RDPOWER_MAX_READ_TIME

36000

The maximum amount of time over which read-power sampling can take place (in seconds)

104

TECP_MAX_READ_INTERVAL

100

The maximum amount of time between TECP readings (in seconds)

105

TECP_MAX_READ_TIME

36000

The maximum amount of time over which TECP readings can take place (in seconds)

106

TELEM_PACKET_SIZE

2005

The maximum packet size in bytes, including MECA science headers

107

WCHEM_AS_ADCREADCOUNT

0

Usage per the HW/SW ICD

108

WCHEM_AS_DACHOLD

0

Usage per the HW/SW ICD

109

WCHEM_AS_DACINC

15

Usage per the HW/SW ICD

110

WCHEM_AS_DACMAX

3500

Usage per the HW/SW ICD

111

WCHEM_AS_DACMIN

500

Usage per the HW/SW ICD

112

WCHEM_AS_SAMPLES

0

Usage per the HW/SW ICD

113

WCHEM_AS_SELECT0

0x21

Usage per the HW/SW ICD

114

WCHEM_AS_STEPINC

14

Usage per the HW/SW ICD

115

WCHEM_AS_STEPTICKS

200

Usage per the HW/SW ICD

116

WCHEM_CHRONOAS_ADCREADCOUNT

0

Usage per the HW/SW ICD

117

WCHEM_CHRONOAS_DACHOLD

0

Usage per the HW/SW ICD

118

WCHEM_CHRONOAS_DACINC

15

Usage per the HW/SW ICD

119

WCHEM_CHRONOAS_DACMAX

3500

Usage per the HW/SW ICD

120

WCHEM_CHRONOAS_DACMIN

500

Usage per the HW/SW ICD

121

WCHEM_CHRONOAS_SAMPLES

0

Usage per the HW/SW ICD

122

WCHEM_CHRONOAS_SELECT0

0x21

Usage per the HW/SW ICD

123

WCHEM_CHRONOAS_STEPINC

14

Usage per the HW/SW ICD

124

WCHEM_CHRONOAS_STEPTICKS

200

Usage per the HW/SW ICD

125

WCHEM_CHRONOCV_ADCREADCOUNT

0

Usage per the HW/SW ICD

126

WCHEM_CHRONOCV_DACHOLD

0

Usage per the HW/SW ICD

127

WCHEM_CHRONOCV_DACINC

15

Usage per the HW/SW ICD

128

WCHEM_CHRONOCV_DACMAX

3500

Usage per the HW/SW ICD

129

WCHEM_CHRONOCV_DACMIN

500

Usage per the HW/SW ICD

130

WCHEM_CHRONOCV_SAMPLES

0

Usage per the HW/SW ICD

131

WCHEM_CHRONOCV_SELECT0

0x21

Usage per the HW/SW ICD

132

WCHEM_CHRONOCV_STEPINC

14

Usage per the HW/SW ICD

133

WCHEM_CHRONOCV_STEPTICKS

200

Usage per the HW/SW ICD

134

WCHEM_COND_ADCREADCOUNT

0

Usage per the HW/SW ICD

135

WCHEM_COND_KHZCLK

0

Usage per the HW/SW ICD

136

WCHEM_COND_SELECT0

0

Usage per the HW/SW ICD

137

WCHEM_COND_SELECT1

0

Usage per the HW/SW ICD

138

WCHEM_COND_STEPTICKS

0

Usage per the HW/SW ICD

139

WCHEM_CV_ADCREADCOUNT

0

Usage per the HW/SW ICD

140

WCHEM_CV_DACHOLD

0

Usage per the HW/SW ICD

141

WCHEM_CV_DACINC

15

Usage per the HW/SW ICD

142

WCHEM_CV_DACMAX

3500

Usage per the HW/SW ICD

143

WCHEM_CV_DACMIN

500

Usage per the HW/SW ICD

144

WCHEM_CV_SAMPLES

0

Usage per the HW/SW ICD

145

WCHEM_CV_SELECT0

0x21

Usage per the HW/SW ICD

146

WCHEM_CV_STEPINC

14

Usage per the HW/SW ICD

147

WCHEM_CV_STEPTICKS

200

Usage per the HW/SW ICD

148

WCHEM_DOX_ADCREADCOUNT

0

Usage per the HW/SW ICD

149

WCHEM_DOX_DACHOLD

0

Usage per the HW/SW ICD

150

WCHEM_DOX_DACINC

15

Usage per the HW/SW ICD

151

WCHEM_DOX_DACMAX

3500

Usage per the HW/SW ICD

152

WCHEM_DOX_DACMIN

500

Usage per the HW/SW ICD

153

WCHEM_DOX_SAMPLES

0

Usage per the HW/SW ICD

154

WCHEM_DOX_SELECT0

0x11

Usage per the HW/SW ICD

155

WCHEM_DOX_STEPINC

14

Usage per the HW/SW ICD

156

WCHEM_DOX_STEPTICKS

200

Usage per the HW/SW ICD

157

WCHEM_DRAWER_CLOSE_RETRIES

1

Default number of times MECA should reattempt drawer close after a failure; used when command argument is -1

158

WCHEM_DRAWER_CLOSE_WAIT

180

Nominal amount of time required to close a drawer

159

WCHEM_DRAWER_OPEN_CHECK_INTERVAL

10

Interval in seconds on which MECA FSW should check the drawer-open switch

160

WCHEM_DRAWER_RECLOSE_WAIT

12

How long (in seconds) MECA FSW should wait before checking drawer-closed switch on retry

161

WCHEM_DRAWER_REOPEN_WAIT

90

On a drawer close retry, the amount of time (in seconds) over which MECA FSW should reopen the drawer before retrying the close

162

WCHEM_ISE_ADCREADCOUNT

0

Usage per the HW/SW ICD

163

WCHEM_ISE_SELECT0

0

Usage per the HW/SW ICD

164

WCHEM_ISE_SELECT1

0

Usage per the HW/SW ICD

165

WCHEM_ISE_STEPTICKS

0

Usage per the HW/SW ICD

166

WCHEM_MAX_DRWR_ACTR_TIME

1200

Maximum time in seconds the drawer open actuator can be powered

167

WCHEM_MAX_DRWR_CLOSE_RETRIES

3

The maximum number of drawer-close retries allowable

168

WCHEM_MAX_DRWR_HOLD_TIME

1200

The maximum time (in seconds) for which the drawer can be held open

169

WCHEM_MAX_DUTY_INTERVAL

150

The maximum number of seconds for which stirring can take place uninterrupted. Constant stirring can be performed for longer intervals by using a 0 value for the rest interval, parameter #174.

170

WCHEM_MAX_H2O_WAIT

6000

The maximum amount of time (in seconds) over which the water-release actuator can be powered

171

WCHEM_MAX_HEAT_TIME

36000

The maximum commandable duration (in seconds) for temperature control

172

WCHEM_MAX_READ_INTERVAL

100

The maximum interval (in seconds) between wet chemistry sensor reads

173

WCHEM_MAX_REAGENT_TIME

300

The maximum amount of time (in seconds) over which the reagent-release actuator can be powered

174

WCHEM_MAX_REST_INTERVAL

150

The maximum number of seconds of stirring "rest" per stirring interval

175

WCHEM_MAX_STIR_TIME

36000

The maximum duration (in seconds) for stirring

176

WCHEM_MAX_TOTAL_WCHEM_TIME

36000

The maximum duration in seconds for wet chemistry sensor reading

177

WCHEM_MIN_STIRRING_TEMP

0

The minimum beaker temperature (in DN) required for stirring

178

WCHEM_MIN_WATER_RELEASE_TEMP

0

The minimum tank temperature (in DN) required for water release

179

WCHEM_PT_ADCREADCOUNT

0

Usage per the HW/SW ICD

180

WCHEM_PT_STEPTICKS

0

Usage per the HW/SW ICD

181

WCHEM_REAGENTS_PER_CELL

5

The number of reagents available in each cell

182

WCHEM_REAGENT_RELEASE_TIME

0

Default time to release reagent into beaker, used if command specifies 0 time

183

WCHEM_STIR_EQUIL_TIME

15

The number of seconds to wait after stirring starts before starting a sensor read

184

WCHEM_STIR_SETTLING_TIME

15

The number of seconds to wait after stirring stops before starting a sensor read

185

WCHEM_STIR_SUPPRESSION_MASK

0x33

A bitmask indicating which temp sensors should only be sampled with stirring off:

80 - ISES

40 - Pressure/temp

20 - CV

10 - ASV

08 - DOX

04 - Conductivity

02 - Chrono CV

01 - Chrono AS

186

WCHEM_TEMP_CONTROL_CHECK_INTERVAL

2

Interval in seconds on which heaters should be adjusted when MECA FSW is controlling temperature

187

WCHEM_TEMP_MAX

4095

The absolute highest that monitored temperature should get during heater control. If temp reads above this value, heater control is disabled.

188

WCHEM_WATER_RELEASE_TIME

60

Default time to release water from tank into beaker, used if command specifies 0 time

189

WCHEM_WRITABLE_CELL

0

The number of the cell that is enabled for heater/actuator operations. Valid range is 0-3

190

CME_05V_LOGIC_LOW_LIMIT

614

The threshold for the CME voltage test upon a MECA_CMD_ENABLE. If the voltage is less than this value, the enable command fails. Units of DN

191

CME_05V_LOGIC_HI_LIMIT

751

The threshold for the CME voltage test upon a MECA_CMD_ENABLE. If the voltage is greater than this value, the enable command fails. Units of DN

192

CME_05V_LOAD_LOW_LIMIT

614

The threshold for the +5V load supply (used for TECP, LED, WCHEM stir and reagent) voltage test upon a MECA_CMD_ENABLE. If the voltage is less than this value, the enable command fails. Units of DN

193

CME_05V_LOAD_HI_LIMIT

751

The threshold for the +5V load supply (used for TECP, LED, AFM, WCHEM stir and reagent) voltage test upon a MECA_CMD_ENABLE. If the voltage is greater than this value, the enable command fails. Units of DN

194

CME_15V_LOAD_LOW_LIMIT

1843

The threshold for the +15V load supply (used for STAGE, WCHEM) voltage test upon a MECA_CMD_ENABLE. If the voltage is less than this value, the enable command fails. Units of DN

195

CME_15V_LOAD_HI_LIMIT

2252

The threshold for the +15V load supply (used for STAGE, WCHEM) voltage test upon a MECA_CMD_ENABLE. If the voltage is greater than this value, the enable command fails. Units of DN

196

CME_15V_AFM_LOW_LIMIT

1843

The threshold for the +15V AFM supply voltage test upon a MECA_CMD_ENABLE. If the voltage is less than this value, the enable command fails. Units of DN

197

CME_15V_AFM_HI_LIMIT

2252

The threshold for the +15V AFM supply voltage test upon a MECA_CMD_ENABLE. If the voltage is greater than this value, the enable command fails. Units of DN

198

CME_PS_SETTLING_TIME_IN_MS

1000

The time delay in milliseconds after which to apply the voltage check during MECA_CMD_ENABLE

199

BASE TIMEOUT FOR CME

Table 2: Parameter Range Table

The parameter range table indicates for each parameter the flight software task that updates the value, if necessary, and the range within which a new value must fall

Section

Offset

Datatype

Description

Default (fixed if underlined)

Header

0

uint16

The table type (STATE, PARAMVALUES, PARAMRANGES, AFMATTRIBUTES, COUPONS, TIPS)

2

2

uint16

Table identifier (currently unused)

0

4

uint32

Table size in bytes, not including the header

3024

Entries

8

uint32

Identifier for parameter #0

0

12

uint32

FSW task responsible for parameter #0 (0 = HW, 1 = TELEM)

0

16

varies in 32 bits

The minimum value allowed for the parameter

0

20

varies in 32 bits

The maximum value allowed for the parameter

68

3176

uint32

Identifier for parameter #188

188

3180

uint32

FSW task responsible for parameter #188 (0 = HW, 1 = TELEM)

0

3184

varies in 32 bits

The minimum value allowed for the parameter

0

3188

varies in 32 bits

The maximum value allowed for the parameter

120

Table 3: AFM Attribute Table

The AFM Attributes table lists the range of permissible values of AFM settings that are accessible to MECA flight software. The actual values are not stored in the table, but can be queried and reported in AFM: RESPONSE telemetry (Type 1).

Section

Offset

Datatype

Description

Default (fixed if underlined)

Header

0

uint16

The table type (STATE, PARAMVALUES, PARAMRANGES, AFMATTRIBUTES, COUPONS, TIPS)

3

2

uint16

Table identifier (currently unused)

0

4

uint32

Table size in bytes, not including the header

860

Entries

8

uint32

Identifier for attribute #0

0

12

uint32

AFM identifier for the setting

97 (61 hex)

16

varies in 32 bits

The minimum value allowed for the parameter

0

20

varies in 32 bits

The maximum value allowed for the parameter

1

24

uint32

The parameter's datatype (0=uint8, 1=int16, 2=uint16, 3=uint24, 4=uint32)

0

848

uint32

Identifier for parameter #42

42

852

uint32

AFM identifier for the setting

67 (43 hex)

856

varies in 32 bits

The minimum value allowed for the parameter

-32768

860

varies in 32 bits

The maximum value allowed for the parameter

32767

864

uint32

The parameter's datatype (0=uint8, 1=int16, 2=uint16, 3=uint24, 4=uint32)

1

The actual parameters with their default values are:

Attribute Name

AFM ID

Minimum value

Maximum value

Datatype

AUTO_Z_MODE

0x61

0

1

uint8

AUTO_CH1_GAIN

0x80

0

1

uint8

AXIS_SELECT

0x3A

0

1

uint8

AXIS_RANGE

0x44

2

65535

uint16

AXIS_POSITION

0x4B

-32767

32767

int16

BRIDGE_NEG

0x71

-32767

32767

int16

BRIDGE_OFF

0x72

-32767

32767

int16

CHAN_GAIN

0x46

0

8

uint8

CHAN_OFFSET

0x57

-32767

32767

int16

CHAN_SELECT

0x3B

0

2

uint8

CHAN_VALUE

0x4C

-32767

32767

int16

DYN_MODE

0x73

0

1

uint8

DYN_STATUS

0x77

0

1

uint8

GAP_VOLTAGE

0x3C

-32767

32767

int16

LEVER_ALIVE_MASK

0x7F

0

0xFF

uint8

LEVER_AMP

0x70

-32767

32767

int16

LEVER_SELECT

0x6F

0

7

uint8

PLL_CTR_FRQ

0x75

0

0xFFFFFF

uint24

PLL_I_GAIN

0x7C

0

4

uint8

PLL_LOOP_GAIN

0x76

0

1

uint8

PLL_MODE

0x7E

0

1

uint8

PLL_PHASE

0x7D

0

7

uint8

PLL_REPEAT

0x7B

0

65535

uint16

PLL_START_FRQ

0x79

0

0xFFFFFF

uint24

PLL_STEP_FRQ

0x7A

0

0xFFFFFF

uint24

REG_HOLD

0x3D

0

1

uint8

REG_I_GAIN

0x3F

0

16

uint8

REG_INPUT_CORR

0x60

0

2

uint8

REG_LOCKED

0x4D

-1

1

uint8

REG_P_GAIN

0x40

0

16

uint8

REG_POL_MASK

0x5F

0

0xFF

uint8

REG_SET_POINT

0x4A

-32767

32767

int16

REG_ZERO

0x3E

0

1

uint8

RETRACT

0x5C

-32767

32767

int16

SAMPLE_MASK

0x56

0

0xFF

uint8

SERIAL_NR

0x6D

0x80000000

0x7FFFFFFF

uint32

TIME_PER_UNIT

0x45

1

65535

uint16

OFFSET_X

0x47

-32767

32767

int16

AXIS_UNITS_X

0x41

-32767

32767

int16

OFFSET_Y

0x48

-32767

32767

int16

AXIS_UNITS_Y

0x42

-32767

32767

int16

OFFSET_Z

0x49

-32767

32767

int16

AXIS_UNITS_Z

0x43

-32767

32767

int16

Table 4: Coupons Table

The coupons table lists the rotation offset (in steps CW from the zero position) for each substrate, along with the substrate's height.

Section

Offset

Datatype

Description

Default (fixed if underlined)

Header

0

uint16

The table type (STATE, PARAMVALUES, PARAMRANGES, AFMATTRIBUTES, COUPONS, TIPS)

4

2

uint16

Table identifier (currently unused)

0

4

uint32

Table size in bytes, not including the header

276

Entries

8

uint16

Rotation offset for substrate #0

19003

12

uint16

Height of substrate #0

0

280

uint16

Rotation offset for substrate #68

17670

282

uint16

Height of substrate #68

0

Table 5: Tips Table

The AFM tips table lists current information about each of the AFM's tips.

Section

Offset

Datatype

Description

Default (fixed if underlined)

Header

0

uint16

The table type (STATE, PARAMVALUES, PARAMRANGES, AFMATTRIBUTES, COUPONS, TIPS)

5

2

uint16

Table identifier (currently unused)

0

4

uint32

Table size in bytes, not including the header

288

Entries

8

int32

Default amplitude in mV for tip #0

-1000

12

uint32

Default phase for tip #0 (0-8)

For positive amplitudes, degrees = 20 * phase. For negative amplitudes, degrees = 20 * phase + 180.

0

16

uint32

X offset for tip #0 (steps)

0

20

uint32

The center frequency in Hz for tip #0

20000

24

uint32

The frequency at which to start the frequency test for tip #0

30000

28

uint32

Tip #0 state (0=NOT_TESTED, 1=DEAD, 2=NOT_CENTERED, 3=OUT_OF_RANGE, 4=NOISY, 5=OK)

This value is written by the software, and not usefully initialized to anything other than 0.

0

176

uint32

Default amplitude in mV for tip #7

-1000

180

uint32

Default phase for tip #7 (0-8)

For positive amplitudes, degrees = 20 * phase. For negative amplitudes, degrees = 20 * phase + 180.

0

184

uint32

X offset for tip #7 (steps)

225

188

uint32

The center frequency in Hz for tip #7

20000

192

uint32

The frequency at which to start the frequency test for tip #7

30000

196

uint32

Tip #7 state (0=NOT_TESTED, 1=DEAD, 2=NOT_CENTERED, 3=OUT_OF_RANGE, 4=NOISY, 5=OK)

This value is written by the software, and not usefully initialized to anything other than 0.

0

Appendix G. Format Files

The PDS labels for some MECA EDR non-imaging products use the ^STRUCTURE keyword to indicate column definitions to be read from a separate file and treated as if they were included in the label. This is done to keep labels short and to easily maintain the static part of a label in a single location. The separate column definitions are stored in files called format files, with the extension FMT. They are kept in the LABEL directory of the archive. There are nine such files for the MECA EDR non-imaging data set, given below.

AFM_FREQUENCY_SAMPLE.FMT

This file is included in labels for MECA EDR Type 0 data.

OBJECT = COLUMN

COLUMN_NUMBER = 12

NAME = "CURRENT TIP"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 1

BYTES = 1

DESCRIPTION = "Current tip (0-7)."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 13

NAME = "INITIAL VAP"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 2

BYTES = 1

DESCRIPTION = "Initial Vap (volts = value/25.5)."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 14

NAME = "PAD 1"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 3

BYTES = 2

DESCRIPTION = "Unused."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 15

NAME = "INITIAL FREQUENCY IN HZ"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 5

BYTES = 4

DESCRIPTION = "Unused."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 16

NAME = "VAP VALUES PASS 1"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 9

BYTES = 9

ITEMS = 9

ITEM_BYTES = 1

DESCRIPTION = "Vap values for pass1, phases 0, 20, ...,

160 deg (volts = value/25.5)."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 17

NAME = "VAP VALUES PASS 2"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 18

BYTES = 9

ITEMS = 9

ITEM_BYTES = 1

DESCRIPTION = "Vap values for pass2, phases 180, 200, ...,

340 deg (volts = value/25.5)."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 18

NAME = "PAD 2"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 27

BYTES = 2

DESCRIPTION = "Unused."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 19

NAME = "CENTER FREQUENCY PASS 1"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 29

BYTES = 36

ITEMS = 9

ITEM_BYTES = 4

DESCRIPTION = "Vap values for pass 1, phases 0, 20, ...,

160 deg (volts = value/25.5)."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 20

NAME = "CENTER FREQUENCY PASS 2"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 65

BYTES = 36

ITEMS = 9

ITEM_BYTES = 4

DESCRIPTION = "Vap values for pass 2, phases 180, 200, ...,

340 deg (volts = value/25.5)."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 21

NAME = "LOWEST VAP"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 101

BYTES = 1

DESCRIPTION = "Lowest Vap found in this test

(volts = value/25.5)."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 22

NAME = "NEW PHASE"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 102

BYTES = 1

DESCRIPTION = "Phase where lowest Vap found

(0=0 deg, 1=20, ...)."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 23

NAME = "NEW LOWEST VAP"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 103

BYTES = 1

DESCRIPTION = "Unused."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 24

NAME = "PAD 3"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 104

BYTES = 1

DESCRIPTION = "Unused."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 25

NAME = "NEW AMPLITUDE IN MV"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 105

BYTES = 4

DESCRIPTION = "New amplitude (signed - if negative,

add 180 deg to phase."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 26

NAME = "NEW CENTER FREQUENCY IN HZ"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 109

BYTES = 4

DESCRIPTION = "New center frequency."

END_OBJECT = COLUMN

AFM_TIPS.FMT

This file is included in labels for MECA EDR Type 3 data.

OBJECT = COLUMN

COLUMN_NUMBER = 12

NAME = "CURRENT TIP"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 1

BYTES = 1

DESCRIPTION = "Current tip (0-7)."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 13

NAME = "PAD1"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 2

BYTES = 1

DESCRIPTION = "Unused."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 14

NAME = "PAD2"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 3

BYTES = 2

DESCRIPTION = "Unused."

END_OBJECT = COLUMN

OBJECT = CONTAINER

NAME = "TIP DATA"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 5

BYTES = 1040

REPETITIONS = 8

DESCRIPTION = "Tip data."

OBJECT = COLUMN

COLUMN_NUMBER = 15

NAME = "BRIDGE OFFSET 1"

DATA_TYPE = MSB_INTEGER

START_BYTE = 1

BYTES = 4

DESCRIPTION = "Bridge offset, pass 1."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 16

NAME = "BRIDGE OFFSET 2"

DATA_TYPE = MSB_INTEGER

START_BYTE = 5

BYTES = 4

DESCRIPTION = "Bridge offset, pass 2."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 17

NAME = "LEVER STATE 1"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 9

BYTES = 4

DESCRIPTION = "Lever state, pass 1,

(0=NOT_TESTED, 1=DEAD,

2=NOT_CENTERD, 3=OUT_OF_RANGE,

4=NOISY, 5=OK)."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 18

NAME = "LEVER STATE 2"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 13

BYTES = 4

DESCRIPTION = "Lever state, pass 2,

(0=NOT_TESTED, 1=DEAD,

2=NOT_CENTERD, 3=OUT_OF_RANGE,

4=NOISY, 5=OK)."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 19

NAME = "SCAN RESULTS 1"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 17

BYTES = 512

ITEMS = 512

ITEM_BYTES = 1

DESCRIPTION = "Scan results, pass 1."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 20

NAME = "SCAN RESULTS 2"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 529

BYTES = 512

ITEMS = 512

ITEM_BYTES = 1

DESCRIPTION = "Scan results, pass 2."

END_OBJECT = COLUMN

END_OBJECT = CONTAINER

TBL_0_STATE_DATA.FMT

This file is included in labels for MECA EDR Type 6, state table data.

OBJECT = COLUMN

NAME = "STATE INDEX 0"

COLUMN_NUMBER = 13

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 37

BYTES = 4

DESCRIPTION = "AFM_STATUS"

END_OBJECT = COLUMN

OBJECT = COLUMN

NAME = "AFM INITIALIZATION LEVEL"

COLUMN_NUMBER = 14

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 41

BYTES = 4

DESCRIPTION = "0=Not booted, 1=Booted,

2=Tip tested (static mode),

3=Frequency tested (dynamic mode)."

END_OBJECT = COLUMN

OBJECT = COLUMN

NAME = "STATE INDEX 1"

COLUMN_NUMBER = 15

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 45

BYTES = 4

DESCRIPTION = "CME_POWER"

END_OBJECT = COLUMN

OBJECT = COLUMN

NAME = "CIRCUIT POWER BITMASK"

COLUMN_NUMBER = 16

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 49

BYTES = 4

DESCRIPTION = "Bitmask showing which MECA instrument

circuits are powerd."

END_OBJECT = COLUMN

OBJECT = COLUMN

NAME = "STATE INDEX 2"

COLUMN_NUMBER = 17

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 53

BYTES = 4

DESCRIPTION = "CURRENT_HW_OP"

END_OBJECT = COLUMN

OBJECT = COLUMN

NAME = "LAST HARDWARE OP"

COLUMN_NUMBER = 18

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 57

BYTES = 4

DESCRIPTION = "The last operation started by the

hardware task. Not saved across

reboots. Zeroed at bootup."

END_OBJECT = COLUMN

OBJECT = COLUMN

NAME = "STATE INDEX 3"

COLUMN_NUMBER = 19

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 61

BYTES = 4

DESCRIPTION = "CURRENT_TELEM_OP"

END_OBJECT = COLUMN

OBJECT = COLUMN

NAME = "LAST TELEMETRY OP"

COLUMN_NUMBER = 20

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 65

BYTES = 4

DESCRIPTION = "The last operation started by the

telemetry task. Not saved across

reboots. Zeroed at bootup."

END_OBJECT = COLUMN

OBJECT = COLUMN

NAME = "STATE INDEX 4"

COLUMN_NUMBER = 21

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 69

BYTES = 4

DESCRIPTION = "ENABLED"

END_OBJECT = COLUMN

OBJECT = COLUMN

NAME = "ENABLED MECA COMPONENTS"

COLUMN_NUMBER = 22

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 73

BYTES = 4

DESCRIPTION = "A bitmask showing which MECA

components are enabled. Not

saved across reboots. Zeroed

at bootup."

END_OBJECT = COLUMN

OBJECT = COLUMN

NAME = "STATE INDEX 5"

COLUMN_NUMBER = 23

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 77

BYTES = 4

DESCRIPTION = "LEDS_ON"

END_OBJECT = COLUMN

OBJECT = COLUMN

NAME = "LED BITMASK"

COLUMN_NUMBER = 24

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 81

BYTES = 4

DESCRIPTION = "Bitmask showing which LEDs are one.

Not saved across reboots. Zeroed

on bootup."

END_OBJECT = COLUMN

OBJECT = COLUMN

NAME = "STATE INDEX 6"

COLUMN_NUMBER = 25

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 85

BYTES = 4

DESCRIPTION = "AFM_TIPS"

END_OBJECT = COLUMN

OBJECT = COLUMN

NAME = "AFM TIPS"

COLUMN_NUMBER = 26

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 89

BYTES = 4

DESCRIPTION = "Which AFM tip is currently in use.

Saved across reboots."

END_OBJECT = COLUMN

OBJECT = COLUMN

NAME = "STATE INDEX 7"

COLUMN_NUMBER = 27

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 93

BYTES = 4

DESCRIPTION = "POS_ROTATE"

END_OBJECT = COLUMN

OBJECT = COLUMN

NAME = "STAGE ROTATION POSITION"

COLUMN_NUMBER = 28

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 97

BYTES = 4

DESCRIPTION = "The current stage rotation position

in steps CW from the zero position.

Saved across reboots."

END_OBJECT = COLUMN

OBJECT = COLUMN

NAME = "STATE INDEX 8"

COLUMN_NUMBER = 29

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 101

BYTES = 4

DESCRIPTION = "POS_XLATE"

END_OBJECT = COLUMN

OBJECT = COLUMN

NAME = "STAGE TRANSLATION POSITION"

COLUMN_NUMBER = 30

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 105

BYTES = 4

DESCRIPTION = "The current stage translation

position in steps IN from the

OUT limit switch, plus 10000.

Saved across reboots."

END_OBJECT = COLUMN

OBJECT = COLUMN

NAME = "STATE INDEX 9"

COLUMN_NUMBER = 31

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 109

BYTES = 4

DESCRIPTION = "MOTOR_INIT_MASK"

END_OBJECT = COLUMN

OBJECT = COLUMN

NAME = "STAGE MOTOR BITMASK"

COLUMN_NUMBER = 32

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 113

BYTES = 4

DESCRIPTION = "A bitmask showing which stage motors

have been initialized."

END_OBJECT = COLUMN

OBJECT = COLUMN

NAME = "STATE INDEX 10"

COLUMN_NUMBER = 33

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 117

BYTES = 4

DESCRIPTION = "TANKS_PUNCTURED_MASK"

END_OBJECT = COLUMN

OBJECT = COLUMN

NAME = "PUNCTURED TANKS BITMASK"

COLUMN_NUMBER = 34

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 121

BYTES = 4

DESCRIPTION = "A bitmask indicating which tanks

have been punctured. Saved across

reboots."

END_OBJECT = COLUMN

OBJECT = COLUMN

NAME = "STATE INDEX 11"

COLUMN_NUMBER = 35

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 125

BYTES = 4

DESCRIPTION = "REAGENTS_USED_WORD"

END_OBJECT = COLUMN

OBJECT = COLUMN

NAME = "REAGENTS NIBBLEMASK"

COLUMN_NUMBER = 36

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 129

BYTES = 4

DESCRIPTION = "A nibblemask indicating how many

reagents have been used for each

cell. Saved across reboots."

END_OBJECT = COLUMN

OBJECT = COLUMN

NAME = "STATE INDEX 12"

COLUMN_NUMBER = 37

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 133

BYTES = 4

DESCRIPTION = "OPS_TOKEN"

END_OBJECT = COLUMN

OBJECT = COLUMN

NAME = "OPS TOKEN"

COLUMN_NUMBER = 38

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 137

BYTES = 4

DESCRIPTION = "The current ops token, used by

operations to indicate context.

Saved across reboots."

END_OBJECT = COLUMN

OBJECT = COLUMN

NAME = "STATE INDEX 13"

COLUMN_NUMBER = 39

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 141

BYTES = 4

DESCRIPTION = "LAST_CMD_NUM"

END_OBJECT = COLUMN

OBJECT = COLUMN

NAME = "DEQUED COMMANDS"

COLUMN_NUMBER = 40

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 145

BYTES = 4

DESCRIPTION = "The number of commands dequeued by

the main task, including pings and

other system commands, as well as

instrument commands. Saved across

reboots."

END_OBJECT = COLUMN

OBJECT = COLUMN

NAME = "STATE INDEX 14"

COLUMN_NUMBER = 41

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 149

BYTES = 4

DESCRIPTION = "CMDS_STARTED"

END_OBJECT = COLUMN

OBJECT = COLUMN

NAME = "NUMBER COMMANDS STARTED"

COLUMN_NUMBER = 42

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 153

BYTES = 4

DESCRIPTION = "The number of instrument commands

started; count does not include

system commands. Saved across

reboots."

END_OBJECT = COLUMN

OBJECT = COLUMN

NAME = "STATE INDEX 15"

COLUMN_NUMBER = 43

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 157

BYTES = 4

DESCRIPTION = "CMDS_COMPLETED"

END_OBJECT = COLUMN

OBJECT = COLUMN

NAME = "NUMBER COMMANDS COMPLETED"

COLUMN_NUMBER = 44

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 161

BYTES = 4

DESCRIPTION = "The number of instrument commands

completed; count does not include

system commands. May include

commands which terminated early

but which could not be identified

as rejects. Saved across reboots."

END_OBJECT = COLUMN

OBJECT = COLUMN

NAME = "STATE INDEX 16"

COLUMN_NUMBER = 45

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 165

BYTES = 4

DESCRIPTION = "CMDS_REJECTED"

END_OBJECT = COLUMN

OBJECT = COLUMN

NAME = "NUMBER COMMANDS REJECTED"

COLUMN_NUMBER = 46

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 169

BYTES = 4

DESCRIPTION = "The number of instrument commands

rejected; count does not include

system commands. Rejection may be

for any reason, and count may

include commands which generated

some partial results before failing.

Saved across reboots."

END_OBJECT = COLUMN

TBL_1_PARAMETER_VALUES_DATA.FMT

This file is included in labels for MECA EDR Type 6, parameter values table data.

OBJECT = COLUMN

NAME = "PARAMETER IDENTIFIER"

COLUMN_NUMBER = 1

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 1

BYTES = 4

DESCRIPTION = "Identifier for parameter."

END_OBJECT = COLUMN

OBJECT = COLUMN

NAME = "PARAMETER VALUE"

COLUMN_NUMBER = 2

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 5

BYTES = 4

DESCRIPTION = "Value for parameter."

END_OBJECT = COLUMN

TBL_2_PARAMETER_RANGE_DATA.FMT

This file is included in labels for MECA EDR Type 6, parameter range table data.

OBJECT = COLUMN

NAME = "PARAMETER IDENTIFIER"

COLUMN_NUMBER = 1

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 1

BYTES = 4

DESCRIPTION = "Identifier for parameter."

END_OBJECT = COLUMN

OBJECT = COLUMN

NAME = "FSW TASK"

COLUMN_NUMBER = 2

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 5

BYTES = 4

DESCRIPTION = "FSW task responsible for

parameter."

END_OBJECT = COLUMN

OBJECT = COLUMN

NAME = "MINIMUM VALUE"

COLUMN_NUMBER = 3

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 9

BYTES = 4

DESCRIPTION = "The minimum value allowed

for the parameter."

END_OBJECT = COLUMN

OBJECT = COLUMN

NAME = "MAXIMUM VALUE"

COLUMN_NUMBER = 4

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 13

BYTES = 4

DESCRIPTION = "The maximum value allowed

for the parameter."

END_OBJECT = COLUMN

TBL_3_AFM_ATTRIBUTE_DATA.FMT

This file is included in labels for MECA EDR Type 6, AFM attribute table data.

OBJECT = COLUMN

NAME = "PARAMETER IDENTIFIER"

COLUMN_NUMBER = 1

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 1

BYTES = 4

DESCRIPTION = "Identifier for parameter."

END_OBJECT = COLUMN

OBJECT = COLUMN

NAME = "AFM IDENTIFIER"

COLUMN_NUMBER = 2

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 5

BYTES = 4

DESCRIPTION = "AFM identifier for the

setting."

END_OBJECT = COLUMN

OBJECT = COLUMN

NAME = "MINIMUM VALUE"

COLUMN_NUMBER = 3

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 9

BYTES = 4

DESCRIPTION = "The minimum value allowed

for the parameter."

END_OBJECT = COLUMN

OBJECT = COLUMN

NAME = "MAXIMUM VALUE"

COLUMN_NUMBER = 4

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 13

BYTES = 4

DESCRIPTION = "The maximum alue allowed

for the parameter."

END_OBJECT = COLUMN

OBJECT = COLUMN

NAME = "PARAMETER DATATYPE"

COLUMN_NUMBER = 5

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 17

BYTES = 4

DESCRIPTION = "The parameter datatype (0=uint8,

1=int16, 2=uint16, 3=uint24,

4=uint32)."

END_OBJECT = COLUMN

TBL_4_COUPONS_DATA.FMT

This file is included in labels for MECA EDR Type 6, coupons table data.

OBJECT = COLUMN

NAME ="ROTATION OFFSET"

COLUMN_NUMBER = 1

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 1

BYTES = 2

DESCRIPTION = "Rotation offset for substrate."

END_OBJECT = COLUMN

OBJECT = COLUMN

NAME ="HEIGHT"

COLUMN_NUMBER = 2

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 3

BYTES = 2

DESCRIPTION = "Height of substrate."

END_OBJECT = COLUMN

TBL_5_TIPS_DATA.FMT

This file is included in labels for MECA EDR Type 6, tips table data.

OBJECT = COLUMN

NAME = "DEFAULT AMPLITUDE"

COLUMN_NUMBER = 1

DATA_TYPE = MSB_ INTEGER

START_BYTE = 1

BYTES = 4

DESCRIPTION = "Default amplitude in mV."

END_OBJECT = COLUMN

OBJECT = COLUMN

NAME = "DEFAULT PHASE"

COLUMN_NUMBER = 2

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 5

BYTES = 4

DESCRIPTION = "Default phase for tip (0-8).

For positive amplitudes,

degrees=20*phase. For negative

amplitudes, degrees=20*phase+180."

END_OBJECT = COLUMN

OBJECT = COLUMN

NAME = "X OFFSET"

COLUMN_NUMBER = 3

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 9

BYTES = 4

DESCRIPTION = "X offset for tip (steps)."

END_OBJECT = COLUMN

OBJECT = COLUMN

NAME = "CENTER FREQUENCY"

COLUMN_NUMBER = 4

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 13

BYTES = 4

DESCRIPTION = "The center frequency in Hz for tip."

END_OBJECT = COLUMN

OBJECT = COLUMN

NAME = "FREQUENCY"

COLUMN_NUMBER = 5

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 17

BYTES = 4

DESCRIPTION = "The frequency at which to start

the frequency test for tip."

END_OBJECT = COLUMN

OBJECT = COLUMN

NAME = "TIP STATE"

COLUMN_NUMBER = 6

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 21

BYTES = 4

DESCRIPTION = "Tip state (0=NOT_TESTED, 1=DEAD,

2=NOT_CENTERED, 3=OUT_OF_RANGE,

4=NOISY, 5=OK). This value is

written by the software, and not

usefully initialized to anything

other than 0."

END_OBJECT = COLUMN

TECP_SAMPLE.FMT

This file is included in labels for MECA EDR Type 7 data.

OBJECT = COLUMN

COLUMN_NUMBER = 13

NAME = "A TO D COUNTS"

DATA_TYPE = MSB_BIT_STRING

START_BYTE = 1

BYTES = 12

DESCRIPTION = "The A-to-D Counts column consists of eight

12-bit fields, as described by the BIT_COLUMN

objects below."

OBJECT = BIT_COLUMN

NAME = "THERMOCOUPLE 1"

BIT_DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BIT = 1

BITS = 12

DESCRIPTION = "Thermocouple 1"

END_OBJECT = BIT_COLUMN

OBJECT = BIT_COLUMN

NAME = "THERMOCOUPLE 2"

BIT_DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BIT = 13

BITS = 12

DESCRIPTION = "Thermocouple 2"

END_OBJECT = BIT_COLUMN

OBJECT = BIT_COLUMN

NAME = "THERMOCOUPLE 3"

BIT_DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BIT = 25

BITS = 12

DESCRIPTION = "Thermocouple 3"

END_OBJECT = BIT_COLUMN

OBJECT = BIT_COLUMN

NAME = "HUMIDITY"

BIT_DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BIT = 37

BITS = 12

DESCRIPTION = "Humidity"

END_OBJECT = BIT_COLUMN

OBJECT = BIT_COLUMN

NAME = "ELECTRICAL CONDUCTIVITY"

BIT_DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BIT = 49

BITS = 12

DESCRIPTION = "Electrical conductivity"

END_OBJECT = BIT_COLUMN

OBJECT = BIT_COLUMN

NAME = "BOARD TEMPERATURE"

BIT_DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BIT = 61

BITS = 12

DESCRIPTION = "Board temperature"

END_OBJECT = BIT_COLUMN

OBJECT = BIT_COLUMN

NAME = "DIELECTRIC"

BIT_DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BIT = 73

BITS = 12

DESCRIPTION = "Dielectric constant (permittivity)"

END_OBJECT = BIT_COLUMN

OBJECT = BIT_COLUMN

NAME = "HEATER CURRENT"

BIT_DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BIT = 85

BITS = 12

DESCRIPTION = "Heater current"

END_OBJECT = BIT_COLUMN

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 14

NAME = "SAMPLE READTIME WHOLE SECONDS"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 13

BYTES = 4

UNIT = SECOND

DESCRIPTION = "Time at which this sample was received

from the instrument, whole seconds

portion"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 15

NAME = "SAMPLE READTIME FRACTIONAL SECONDS"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 17

BYTES = 4

UNIT = "SECOND/2**32"

DESCRIPTION = "Time at which this sample was received

from the instrument, fractional seconds

portion (value / 2*32)"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 16

NAME = "RA ENCODER JOINT ANGLES"

DATA_TYPE = IEEE_REAL

START_BYTE = 21

BYTES = 16

ITEMS = 4

ITEM_BYTES = 4

ITEM_OFFSET = 4

UNIT = RADIAN

DESCRIPTION = " Joint angles from RA encoders. The order of

the angles is: (1) shoulder azimuth,

(2) shoulder elevation, (3) elbow, and (4) wrist.

The zero radians position for joints 1-3 is

with the RA stretched out parallel to the

Payload Frame x axis. The zero radians

position for the wrist joint is with a vector

from the wrist rotation axis to the scoop, which

bisects the scoop mounting bracket, being

parallel to the Payload Frame -z axis (pointing

up). The positive rotation axis (using the right-

hand rule) for joints 2-4 points to the left if

you are viewing the scoop from the shoulder

joint. The positive rotation axis for joint 1 is

the Payload Frame +z axis."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 17

NAME = "RA POTS JOINT ANGLES"

DATA_TYPE = IEEE_REAL

START_BYTE = 37

BYTES = 16

ITEMS = 4

ITEM_BYTES = 4

ITEM_OFFSET = 4

UNIT = RADIAN

DESCRIPTION = " Joint angles from RA potentiometers. Same

description as previous column (16)."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 18

NAME = "TECP POSITION"

DATA_TYPE = IEEE_REAL

START_BYTE = 53

BYTES = 12

ITEMS = 3

ITEM_BYTES = 4

ITEM_OFFSET = 4

UNIT = METER

DESCRIPTION = "Cartesian coordinates (x, y, z) of the

centroid of the TECP needle tips in the

Payload Frame"

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 19

NAME = "TECP ORIENTATION"

DATA_TYPE = IEEE_REAL

START_BYTE = 65

BYTES = 16

ITEMS = 4

ITEM_BYTES = 4

ITEM_OFFSET = 4

DESCRIPTION = "Elements of the quaternion describing the

orientation of the TECP reference frame with

respect to the Payload Frame. The order of the

elements is (s, v1, v2, v3) where

s=cos(theta/2), v1=n_x*sin(theta/2),

v2=n_y*sin(theta/2), v3=n_z*sin(theta/2); n_x,

n_y, and n_z are the components of the

normalized rotation axis in the Payload Frame;

and theta is the rotation angle. The TECP

frame has its origin at the needle tips

centroid with the +x axis parallel to a vector

from the tip of needle 4 to the tip of needle

1 and its +z axis parallel to a vector from

the base of a needle to its tip."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 20

NAME = "RA JOINT TEMPERATURE"

DATA_TYPE = IEEE_REAL

START_BYTE = 81

BYTES = 16

UNIT = DEGC

ITEMS = 4

ITEM_BYTES = 4

ITEM_OFFSET = 4

DESCRIPTION = "Temperature of each RA joint motor casing. The

order of the temperatures is (1) shoulder

azimuth, (2) shoulder elevation, (3) elbow, and

(4) wrist."

END_OBJECT = COLUMN

OBJECT = COLUMN

COLUMN_NUMBER = 21

NAME = "RA TOOL"

DATA_TYPE = MSB_UNSIGNED_INTEGER

START_BYTE = 97

BYTES = 4

DESCRIPTION = "RA tool references (fixed at

ra_tool_value_RA_TECP = 6)"

END_OBJECT = COLUMN

Appendix H. Acronyms

AFM

MECA Atomic Force Microscope

ASCII

American Standard Code for Information Interchange

CME

MECA Control and Measurement Electronics

DN

Data numbers (arbitrary units to be resolved through calibration)

EDR

Experiment Data Record

FEI

File Exchange Interface, a secure files subscription service developed at JPL

FSW

Flight Software

GDS

Ground Data System

ICD

Interface Control Document

JPL

Jet Propulsion Laboratory

MECA

Microscopy, Electrochemistry, and Conductivity Analyzer

MGSS-IOS

Multi-mission Ground Systems and Services, Instrument Operations element

MIPL

Multi-mission Instrument Processing Laboratory

NASA

National Aeronautics and Space Administration

OM

MECA Optical Microscope

OPGS

Operations Product Generation Subsystem

PAWG

Phoenix Archive Working Group

PDS

Planetary Data System

RA

Robotic Arm

RAC

Robotic Arm Camera

RDR

Reduced Data Record

RSVP

Rover Sequencing and Visualization Program

SCLK

Spacecraft Clock

SFDU

Standard Format Data Unit

SIS

Software Interface Specification

SOC

Science Operations Center

SPICE

Spacecraft, Planet, Instrument, C-matrix, Events kernels

SSI

Surface Stereoscopic Imager

TBD

To Be Determined

TECP

Thermal and Electrical Conductivity Probe

WCL

MECA Wet Chemistry Laboratory