UoSAT spacecraft Operation

Chris Jackson ZL2TPO/G7UPN

Introduction

Over the past 15 years UoSAT and SSTL have developed, built and launched a number of low cost 50kg microsatellites. A number of these spacecraft are available for amateur radio operators to use, although many amateur stations do not know the inner workings of these spacecraft. This paper provides an overview of the microsatellite platform operation - both hardware and software, and concludes with an summary into the routine operations performed on the spacecraft from the UoSAT/SSTL command station.

The UoSAT Microsatellite platform

The UoSAT microsatellite platform is designed to provide a modular bus that could accommodate various missions with minimal changes to the platform.

Structure

All UoSAT spacecraft since UoSAT-3 have been based around a modular stacking arrangement where the electronic module boxes comprise the basic satellite structure. The 'stack' is held together with spiral pins, and the solar panels are fixed to the outside of the spacecraft. One end of the spacecraft carries the 6 meter gravity gradient boom, while the other comprises the Earth observation platform.

The microsatellite platform features

Electronic Sub-Systems

To perform the primary housekeeping functions the satellite must incorporate the following primary elements,



Figure 1: Exploded view and flight configuration of UoSAT platform

Power System

The power system comprises 4 solar panels supplying power to a 14V NiCad battery pack. The Battery Charge Regulator (BCR) and Power Conditioning Module (PCM) are dual redundant systems designed to eliminate single point failures.

RF System

The RF system comprises three VHF receivers and two UHF transmitters. The three receivers are connected to a single antenna with RX0 primarily used for command and is not connected via the low noise amplifier to reduce the possibility of failure and overloading. The transmitters include an array of modulators and the output multiplexers allow switching of many different audio sources onto the downlink, including different modems and audio loopback from the receivers.

Attitude Determination and Control System

The ADCS system includes dual magnetometers, sun sensors and earth horizon sensors, and a magnetorquer system for attitude control. The ADCS control task runs on the On Board Computer reading information from the various sensors and firing the magnetorquers as required to ensure the spacecraft remains earth pointing. The system is capable of maintaining off pointing to well within 5 degrees.

The microsatellite spacecraft employ passive thermal control. This is achieved by the ADCS task spinning the spacecraft at approximately 0.6 degrees per second, or 10 minutes per revolution. This spinning maintains all sides of the spacecraft at approximately the same temperature, and failure of this would quickly result in a large temperature differential across the spacecraft of over 100 degrees Celsius.


Figure 2: Spacecraft block diagram

Telemetry and Telecommand System

The TTC system comprises a dedicated command decoder module and telemetry module. These systems are normally controlled via the on-board computers, however if the OBC is not operational for any reason it is possible to directly command the spacecraft and receive telemetry.

The command module comprises four redundant decoders, one of which is permanently connected to RX0 while the others scan a number of different inputs thus providing redundant control paths.

The telemetry system includes two redundant custom VLSI chips specifically designed to miniaturise the telemetry channel selection and formatting functions. If the OBC is not operational, these chips are capable of providing a formatted telemetry transmission direct to the downlink.

On Board Data Handling System

The primary on-board computer to date has been the OBC186 which includes between 512K and 768K of Error Detection and Correction (EDAC) protected program memory, and is connected to a 16MB RAMDisk for data storage. The OBC is able to command the rest of the spacecraft and has a direct link to both the telemetry and command modules.

OBC Software

The OBC has a small bootloader program loaded in EPROM which allows the computer software to be loaded following a reset. The bootloader is a very small and simple program which is necessary to ensure that there are no bugs in this code which will prevent the OBC being loaded. The bootloader provides no function other than to facilitate reloading of the flight code into RAM.

The OBC186 computer runs a multitasking operating system called SCOS (SpaceCraft Operating System). SCOS provides many of the basic functions required for the computer to operate such as memory allocation and task switching, as well as interprocess communication streams to allow tasks to communicate with one another. The SCOS Kernel is loaded by the bootloader and once the Kernel is running, the rest of the flight code can be loaded.

The functions performed by the OBC is carried out by a number of individual tasks. Generally, tasks can be terminated and reloaded without having to completely reload the OBC which allows most software upgrades to be performed without any interruption to spacecraft users.

In general there are seven tasks that perform the basic functions required for the spacecraft to operate as a store and forward communications system. These tasks comprise the following -:

QAX25 QAX25 provides the low level AX25 packet radio protocol functions for the uplink and downlink.

Loader The loader is responsible for interacting with the operating system to allow control stations to load new software into the computers memory.

TLM The telemetry server provides an interface for other tasks operating on the OBC to communicate with the telemetry system on board the spacecraft.

Mfile The file system provides a standard FAT type file system for accessing the RAMDisk with a single directory and a maximum of 800 files. Mfile can be restarted following a reload without loss of files on the spacecraft.

HIT The Housekeeping Integration Task performs many of the basic housekeeping functions required for the spacecraft to operate safely. It gathers telemetry from the telemetry server and transmits it on the downlink or stores it as a Whole Orbit Data (WOD) survey. HIT provides the command link with the control station and is also capable of automatically running scheduled spacecraft events.

FTL0 FTL0 is the primary task responsible for servicing user requests. It performs the broadcast downlink service as well as connected mode uploading. Up to 20 stations at once can have requests queued for downloading while 2 simultaneous uploads are taking place. FTL0 also performs the automatic deletion of old files in the RAMDisk to ensure that there is always at least 1MB of free memory and 50 free directory entries.

ADCS The ADCS task controls the spin and attitude of the spacecraft. It calculates the spacecraft position using the keplerian elements uploaded from the command station each week, and uses the magnetometers to measure the Earth's magnetic field, and compares this against a model of the Earth's magnetic field to calculate the spacecraft pointing angle. This data is used to calculate magnetorquer firing times, and it is capable of maintaining the spacecraft attitude to within 5 degrees of nadir pointing.

In addition, spacecraft payloads will have a support task running on the OBC to allow the payload to interact with the rest of the spacecraft. For example, the imaging payload support task is TST (Transputer Support Task). It is responsible for facilitating the transfer of CCD image data to the RAMDisk and commands from the OBC to the transputer system which carries out the imaging.

The on board software is designed to respond to any anomalies by transmitting a message on the downlink that the groundstation software can automatically detect. In the case of a severe error that the OBC can not rectify, the software can cause a 'screech' which safes the spacecraft and places the OBC software back into the bootloader. Under these circumstances, the command station can perform a memory dump of the program memory and analyse this to ascertain the cause of the problem.

Store and Forward System

The arrangement of the flight software results in the ability to pass files or 'messages' through the spacecraft using the OBC RAMDisk for message storage. This is the store and forward communications system and most users only consider it as a way to send other users email type messages. However, the store and forward system is an integral part of the UoSAT spacecraft as it not only allows messages to be passed from one groundstation to another, but is also the basis for all operational data transfer to and from the spacecraft. When commanding the spacecraft, configuration information is loaded into the store and forward system, and a secure command program is used to tell the spacecraft which file contains the information. Likewise, spacecraft housekeeping information is placed into the store and forward system and downloaded in the same way as user messages.

Surrey Mission Operations Centre

Spacecraft operations is traditionally a very expensive business because it normally involves continuos monitoring of spacecraft by operations staff. However, in the low cost satellite industry, this is not practical as the overhead can quickly become an appreciable percentage of total mission costs.

At UoSAT, the autonomous operation of the spacecraft is complemented by automatic operations and monitoring at the Surrey Mission Operations Centre (SMOC). The SMOC is only manned during normal working hours five days per week. At other times the groundstation and spacecraft telemetry are monitored automatically, and if there are any anomalies, the operations team is notified automatically by a pager system. The nature of the problem is displayed on an alpha-numeric display and the operator can make a decision as to what action to take. This reduces the operations overhead while still providing continuos monitoring of operational systems.

Commissioning Operations

When the spacecraft is launched, only the receivers, power system and command system are active. During the first transits over the command station, the spacecraft is powered up and telemetry is received and analysed to ensure the spacecraft is healthy. Once this is complete, the OBC flight software is loaded and control of the spacecraft is given to the housekeeping software.

When the spacecraft is released from the launcher it's attitude is a random tumbling. During the first few days following launch the ADCS system slows the satellite and removes the Z axis tumbling. The gravity gradient boom can then be deployed and the ADCS algorithm ensures that the satellite attitude is 'captured' earth pointing and locked. The algorithm can then automatically switch to delibration mode and the spacecraft is spun up to the nominal spin rate of one revolution every ten minutes.

Routine Command Operations

In low earth orbit (LEO), spacecraft are not in permanent view of a command station and therefore must be able to operate for extended periods of time without command station interaction. The UoSAT spacecraft operate autonomously in orbit and only require routine commanding to update configuration files.

The only routine operations requirement is for the ADCS system to be updated once per week with new keplerian data, and for the spacecraft schedule file to be loaded each month. These files are automatically prepared by the groundstation software and uploaded to the spacecraft. The operations staff need to use the secure command program to notify the spacecraft of the new configuration file.

The spacecraft time needs to be kept very accurate for the ADCS, and some payloads to perform correctly. The spacecraft is moving at approximately 7 ½ KM per second so if the time is not correct, the spacecraft position will be calculated incorrectly. The command station performs clock synchronisation with the satellite using a ground based GPS time standard and is capable of setting the time to within 10 ms. This ensures that the spacecraft clock is kept accurate to well within one second.

Housekeeping Data

The spacecraft transmits real time telemetry frames every five seconds. This telemetry is primarily useful for command purposes such that when a command is transmitted to the spacecraft, an immediate result can be observed.

Since this telemetry is only available while the spacecraft is in view of the groundstation, another means of collecting housekeeping data is required. This requirement is realised in the form of Whole Orbit Data surveys (WOD) and task log files where the data is stored on board the spacecraft in the file system and made available for download at the end of the day. These files are placed into the store and forward system and may be downloaded in exactly the same way as user traffic.

Of the primary tasks running on the spacecraft, the following log files are created:

ALyymmdd Activity logs. These are generated by FTL0 and log such information as upload sessions and automatic file deletion.

BLyymmdd Broadcast logs. These are also generated by FTL0 and log broadcast information such as number of bytes transmitted and number of stations heard.

CLyymmdd Callsign logs. This logs the callsigns heard by the spacecraft each day.

ELyymmdd Error logs. This is a log of the radiation induced errors detected and corrected in the OBC memory.

WDmmddnn Whole orbit data logs. This is stored telemetry sampled throughout the whole orbit.

Post Processing of housekeeping data

The Surrey Mission Operations Centre operated by SSTL currently monitors the 9 operational UoSAT class microsatellites and is the primary control station for 6 of these satellites. The control station automatically downloads all housekeeping files generated on the spacecraft as well as archiving real time telemetry. Once the files are downloaded, they are post processed and archived onto optical disk for long term storage. As it isn't easily possible to make all this data available full time, post processing is required to reduce the data to a manageable size.

A suite of programs have been developed at SSTL to allow this data set to be reduced to a level where it can be stored online and this allows us to view trend analyses data to observe the operation of spacecraft systems since launch. These programs take the minimum, maximum, average and standard deviation of the raw telemetry or WOD surveys, and provide statistical information on other log files received from the spacecraft. All data is stored using a common file format which ensures extraction and graphing of the data is simple.

Example: S80/T OBC Current

The S80/T spacecraft was launched in 1992 into a 1300km altitude, 66 degree inclination orbit. This orbit provides a very harsh radiation environment that is approximately six times greater than that for the 800km polar orbit. Over the past twelve months it has become apparent that some spacecraft systems are starting to show signs of total dose radiation effects.

The following graph shows the Primary OBC186 current for the past eighteen months. From this graph it can be seen that the current is rising rapidly following a logarithmic curve. Ultimately this will render the OBC inoperable probably due to a failure of the power switch when the current drain reaches 400 to 500 mA.

Appendix A: Task functions and status messages

FTL0 Task

Function

FTL0 is the primary task involved with uplink and downlink of users information. It supports connected mode uplink as well as the broadcast downlink protocol.

Status Messages

Message: Open 12a:

Purpose: The spacecraft will accept uplink requests. The 12 numbers correspond to spacecraft the receiver being used by any users, and this is generally arranged such that the 1 corresponds to the lowest frequency receiver and the 2 to the higher frequency receiver. If there is a user connected to the spacecraft then the number corresponding to the receiver being used will be replaced by a space, and the callsign of the station will be appended to the message.

Message: FULL 12a:

Purpose: Same as Open message except the maximum number of users has been reached and the spacecraft will not accept further requests.

Message: SHUT 12a:

Purpose: The control station has closed the spacecraft for general use. Only command stations can connect to the spacecraft when it is shut.

Message: PB:

Purpose: The PB message provides a list of stations that are in the broadcast queue to download information from the spacecraft. There is a maximum number of stations permitted to enter the broadcast queue (generally this is 20 stations). Each station will spend a maximum of 5 seconds at the head of the queue. If, after the 5 seconds is up, the spacecraft hasn't transmitted all the information requested by that station, then the station will return to the end of the queue, otherwise it will be removed from the queue.

Message: B:

Purpose: This is an incrementing count of the number of bytes of data that the spacecraft has transmitted. This is sent by the spacecraft approximately every 5 seconds and is used by groundstation software to give an indication of groundstation receive efficiency.

ADCS Task

Function

The Attitude Determination and Control System (ADCS) is responsible for maintaining the spacecraft attitude to ensure that the antennas point toward earth and that the spin rate of the spacecraft is maintained.

Status Messages

Message: ADCS T:823845222 LAT:41.734 LON:27.71

Purpose: Provides an indication of the ADCS calculation of spacecraft sub-satellite position. The T: number is the OBC time printed in Unix time format.

Message: SPIN:10.1 I:1 K:5 X:5000 Z:4748 E:2.13 G:2.56

Purpose: Provides status information from the ADCS system. Individual values are -:

SPIN value gives the +Z spin value of the satellite measured in minutes.

I values indicate which model the ADCS task is using to base its calculations upon (in this case the IGRF model).

K values indicate active Keplerian element and attitude filter support for the ADCS task.

X and Z values indicate the remaining number of firings programmed in the X and Z magnetourquers respectively. If these numbers reach 0 no further firings can occur.

E values shown indicate the current estimated off-pointing of the spacecraft.

G values shown are estimated worst case off-pointing during the reporting period as analysed by the ADCS routine during the past 24 hours.

OAK Task

Function

The OAK task is an improved ADCS task.

Status Messages

Message: OAKC T:827756601 E:1 M:0 C:1 R:658 P:-12 Y:3022 YR:603 TX:0 TY:0 TZ:0

Purpose: Provides status information from the OAK ADCS system. Individual values are -:

T OBC time in Unix format.

E Enable flag

M Incrementing counter. When this goes to 0 the magnetourquers will fire - this takes 10 minutes.

C Control flag

R Current attitude ROLL value. Divide by 500 to give value in degrees.

P Current attitude PITCH value. Divide by 500 to give value in degrees.

Y Current attitude YAW value. Divide by 10 to give value in degrees.

YR Current attitude YAW RATE value. Divide by 1000 to give value in degrees.

TX, TY, TZ Length of time of the last X, Y and Z magnetourquer firing respectively (In seconds).

HIT Task

HIT is the Housekeeping Integration Task. It performs many of the housekeeping functions on board the spacecraft such as gathering telemetry, performing WOD surveys and carrying out autonomous scheduled commands. It also provides a command link with the groundstation.

Status Messages

Message: Sked 1.3 file:530df next:Tue Mar 26 00:02:00 1996

Purpose: Provides schedule file status information. This shows the schedule file that is currently active as well as the time of the next scheduled event.

Message: Mon Mar 25 12:26:33 1996 Up: 14/3:8 EDAC= 44 F:85424 L:82256 d:0 [0].

Purpose: Provides general HIT status information and spacecraft OBC time. Individual values are -:

Up: The amount of time since the last software reload in Days/Hours:Minutes

EDAC The number of hardware errors detected and corrected since the last reload

F: The amount of free program memory available to load SCOS tasks

L: The largest free block of program memory

d: Digipeating flag

[0] Command status. If a command station is accessing the spacecraft then this indicates the state of the command system. The command station callsign will also appear on the end of the status message.

TST Task

Function

TST is the Transputer Support Task. Generally the transputer is used for experiments such as imaging and Global Position System (GPS) and TST provides the link between the Transputer and the OBC.

Status Messages

Message: TST: LF=TS960325,C IF=P1SD015B,C TN=7d45 DASH=UP FR=63 HC=5 EC=7 MR=20,13

LF indicates the file name of most recent TST log file. There is a marker [C] to indicate whether the log file is currently open or closed - it should typically be closed.

IF shows the file name of the most recent (or currently transferring) image file from the transputer. The two letter code identifies a wide angle image (IW), a narrow angle image (IN), a star sensor image (SA, SB, SC or SD), and the four number code reflect the image number selected when the image was captured. UoSAT-5 images all have the 'IM' tag. There is a marker [C] to indicate whether this image file is currently open or closed - unless an image transfer is in progress, it should typically be closed.

TN gives the operator the number allocated by the ramdisk file system for most recent thumb file. This allows the operator to grab the thumb file without having to wait for the directory to be up to date.

DASH indicates whether the DASH connection from the OBC to the transputer is established (up) or not (down).

FR A message from the transputer scheduler contains one or more DASH frames. This entry shows the number of frames received in the most recent (possibly currently ongoing) message. A message is considered ongoing until it receives the next new message.

HC Shows the most recent HIT command to the TST task.

EC Shows the most recent TDPE scheduler command issued by TST. These commands in are:

capture [EIS] image : 0

transmit [EIS] image : 4

set [scheduler] clock : 5

get [EIS] image status : 6

get scheduler status : 7

capture and transmit [EIS] image : 8

get non-EDAC [memory] status : 9

wash EDAC memory : 10

test non-EDAC memory : 11

adjust [T1] processor speed : 13

get EDAC memory status : 17

capture SIS image : 18

transmit SIS image : 19

SIS [image] capture and transmit : 20

get SIS status : 21

MR Similarly, this indicates the most recent message type received from the scheduler. The message type number matches the command (see above) that instigated the data transfer. Not all commands (e.g. set clock, adjust processor speed, capture image, etc.) result in a message returning from the transputer. The second parameter is incremented with each new message, which can assist in message tracing and debugging.