The WISPR Flight Software (FSW) is developed by the APL IDPU team. It incorporates considerable heritage/commonality from other missions such as MESSENGER, MRO/CRISM, New Horizons, and Solar Orbiter/SIS. The common software makes use of heritage boot code, telemetry and command packet handling, macro (stored command script) implementation, memory management, autonomy, and reporting modules. The data interface with the spacecraft is SpaceWire and has a SPP-specific protocol with static bus schedule and Instrument Transfer Frames. Telemetry packets may be up to 4096 bytes and there are 64 APIDs available for WISPR to use for addressing destination. There is a critical status packet monitored by the spacecraft, which can request power off or power cycle. WISPR receives time and status from SPP at 1 Hz.
Software that is WISPR-specific includes camera control, image processing, observation scheduling including autonomous operations, and instrument health. There are 12 independently controlled operational heaters. The observation schedule time line is loaded prior to the start of the encounter. The concept is similar to the time line developed for the STEREO/SECCHI instrument. All the parameters of the time line are loaded—image time, exposure duration, number of images in the sum, subimage coordinates, image compression, etc. To smooth out the telemetry flow to the spacecraft a large memory buffer has been included on the instrument side of the interface. The size of the buffer is sufficient to store the data from more than one orbit. No ability to perform selective data transfers to the spacecraft data recorder is envisioned.
Camera operation involves loading, starting, and stopping various instances of “microcode”, and setting various registers which determine certain observations parameters. There are also calibration LEDs which need control. Most of the image processing is done in hardware (FPGA) and is orchestrated by the FSW. The possible image processing steps are: bias subtraction, clipping (max/min), cosmic ray scrub, divide by 2°ø, autonomous exposure control, pixel binning, image data compression (lossy or lossless), apply mask, and sum multiple images.
Image files received from the FPGA, including headers, are put in packets and assigned ApIDs to specify destination and downlink priority. The FSW must also manage 3 areas of image memory: (1) 156 Mb SRAM serves as an image output buffer (2) ∼3 Gb of SDRAM is available for image processing and secondary image output buffer (3) 64 Gb of Flash memory is available as tertiary image output buffer, if required. The SpaceWire output to spacecraft is limited to 350 kbps. For observation scheduling, the FSW must conduct activities such as load microcode, specify to FPGA what processing is to be done with each image received from the camera, implementing post-FPGA processing, and handle image telemetry priorities. Since this is an encounter mission with limited contact, the scheduling must be tolerant of instrument power cycles. Hence, the nominal mode of operations is “Autonomous Mode” where observations are resumed at the current mission experiment time. It is possible to specify that WISPR boot into “Manual Mode” where commanding is required to conduct operations.