EIRSAT-1 Operations Manual Logo
  • The EIRSAT-1 Mission
  • Real-Time Operations
    • 1. The MCS GUI
    • 2. Spacecraft Database
    • 3. Prerequisite Knowledge ❗
    • 4. Operator Tips
    • 5. EIR_OPS
      • Operational Procedures
        • EIR-OPS-002: Pre-Communication Pass Checklist
        • EIR-OPS-003: Start a Communication Pass
        • EIR-OPS-011: Downlink Data From Storage
        • EIR-OPS-025: Safe Mode Entered
        • EIR-OPS-029: Failsafe Entered
        • Parameter Accessors (Gets/Sets)
        • Action Accessors (Invokes)
        • Events
EIRSAT-1 Operations Manual
  • Real-Time Operations
  • Operational Procedures
  • EIR-OPS-011: Downlink Data From Storage

EIR-OPS-011: Downlink Data From Storage


Objective

To downlink the contents of an on-board storage channel.


Introduction

Using this procedure, the Operator will downlink multiple rows of data from a specific on-board storage channel.


Procedure

This procedure contains the following sub-procedures:

A. Pre-Pass Preparations
B. Tx Convolutional Encoding Management
C. Data Downlink
D. Post-Pass Close-out

Note

Communication with the spacecraft is required for Sections B - C of this procedure.


A. Pre-Pass Preparations

A.1.

  • The Operator should now open ROW . This Google Sheet aims to help the Operator to quickly determine what First Row and Last Row values to use when downlinking data from core.storage.channelContent in the next sections of this procedure.

  • To use this tool, the Operator must provide information from previous passes and so, this Google Sheet should be reviewed and filled-in as required prior to the up-coming pass, with the following questions in mind:

    • What data type(s) do you want to downlink?

    • What percentage of the pass time do you want to allocate to downlinking the different data types?

    • If constrained by the time, do you want to give priority to the newest or oldest rows of data?


A.2.

  • The Operator should also now take note of the cdh.logging.XXXLogger path(s) required to obtain the AbsRowsLogged parameter(s) in Step C.1, as well as the Channel ID(s) required for the Downlink TC in Step C.3. This information is provided in ROW .



B. Tx Convolutional Encoding Management

Important

To increase throughput when downlinking large amounts of data, Tx convolutional encoding should be disabled. To ensure good communication while encoding is disabled, the Z-axis MTQ cannot be active. Therefore, it will be necessary to place the ADCS into Standby Mode during this time. TimeActions will be used to return the ADCS and comms configurations to normal after the pass. This section of the procedure should only be carried out ONCE PER PASS.

Tip

If the Operators only intend to downlink a small quantity of data, this section may be skipped if it is acceptable that the downlink occurs at half the rate.

Warning

This section of the procedure SHOULD NOT BE FOLLOWED during the initial passes of the mission, until the GS team confirm that 2-way communications is sufficiently stable.


ADCS Mode TimeAction

Important

You are about to send the first TC of this procedure - Have you completed the EIR-OPS-003: Start a Communication Pass procedure? A Communication Pass must be started prior to carrying out the operations planned for the pass. Don’t forget to set up the parameters/actions that will be used during the pass in MCS before the pass begins!

B.1.

  • Get the parameter platform.ADCS.adcsModeState to determine the current ADCS mode and state.

  • Note the data returned for use in the next steps.

TC Details

MCS Operation

Get

Action/Param Name

platform.ADCS.adcsModeState

Data Expected with TC

No

TM Details

Data Expected from TC

adcsModeState ( + ACK )

Data Size

4 bytes

Data Info

The current mode (2 MSB) and state (2 LSB) of the ADCS

Allowed Value(s)

See tables below

Where…

adcsMode (hex)

ADCS Mode

0000

Standby (Default)

0001

Detumble

0002

Spin Stabilised

5550

Test

adcsState (hex)

ADCS State

0000

Nadir (Default)

AAA8

Test


B.2.

  • If:

    • Commissioning of the spacecraft is on-going, proceed to Step D.1 (unless instructed otherwise) as we do not want to disable convolutional encoding during this time.

    • adcsModeState = 5550AAA8 (hex), proceed to Step D.1 as we do not want to disable Tx convolutional encoding during test/WBC activities with the ADCS.

    • adcsModeState = 00000000 (hex), proceed to Step B.13 as the ADCS is already operating in Stand-by Mode.

Warning

If failsafe is the current boot image when following this procedure, the action argument should instead = 0 in this step.

  • Else, Invoke the cdh.scheduling.TimeAction.restartRelativeEntries action with the action argument = 1.

TC Details

MCS Operation

Invoke

Action/Param Name

cdh.scheduling.TimeAction.restartRelativeEntries

Data Expected with TC

rows

Data Size

1 byte

Data Info

The index of the relative entry to restart

Allowed Value(s)

0 - 255 (dec)

Expected Value(s)

1

TM Details

Data Expected from TC

No ( + ACK )


B.3.

Warning

If failsafe is the current boot image when following this procedure, First row = Last row = 0 should instead be used in this step.

  • Get the cdh.scheduling.TimeAction.entryListPacked parameter with First row = Last row = 1.

  • Take note of the last 4 bytes (i.e. the last 8 hex characters) of this parameter, which follow ‘04’ when viewed in hex format, for use in the next step.

TC Details

MCS Operation

Get

Action/Param Name

cdh.scheduling.TimeAction.entryListPacked

Data Expected with TC

First Row, Last Row

Data Size

2 bytes, 2 bytes

Data Info

The first and last rows/indexes of the parameter to get

Allowed Value(s)

0 - 511, 0 - 511 (dec)

Expected Value(s)

1, 1

TM Details

Data Expected from TC

cdh.scheduling.TimeAction.entryListPacked ( + ACK )

Data Size

19 bytes

Data Info

The schedule entry list as packed records


B.4.

Warning

If failsafe is the current boot image when following this procedure, First row = Last row = 0 should instead be used in this step.

  • If the 4 bytes noted in the previous step do not match adcsModeState from Step B.1, edit these bytes in the data field of the cdh.scheduling.TimeAction.entryListPacked parameter window to match adcsModeState from Step B.1 and Set the parameter with First row = Last row = 1.

  • Else, skip ahead to Step B.6.

TC Details

MCS Operation

Set

Action/Param Name

cdh.scheduling.TimeAction.entryListPacked

Data Expected with TC

First Row, Last Row, entryListPacked

Data Size

2 bytes, 2 bytes, 19 bytes

Data Info

The first and last rows/indexes of the parameter to set + the desired entryListPacked to set

Allowed Value(s)

0 - 511, 0 - 511 (dec), many variation allowed (hex)

Expected Value(s)

1, 1, last 4 bytes = adcsModeState (hex)

TM Details

Data Expected from TC

No ( + ACK )


B.5.

  • Confirm the Set in the previous step with a Get (i.e. confirm the value was set successfully).


B.6.

Warning

If failsafe is the current boot image when following this procedure, First row = Last row = 0 should instead be used in this step.

  • Set the cdh.scheduling.TimeAction.entryTime parameter, with First row = Last row = 1, to 600 (dec).

TC Details

MCS Operation

Set

Action/Param Name

cdh.scheduling.TimeAction.entryTime

Data Expected with TC

First Row, Last Row, entryTime

Data Size

2 bytes, 2 bytes, 4 bytes

Data Info

The first and last rows/indexes of the parameter to set + the desired entryTime to set

Allowed Value(s)

0 - 511, 0 - 511 (dec), 00000000 - FFFFFFFF (hex)

Expected Value(s)

1, 1, 600 (dec)

TM Details

Data Expected from TC

No ( + ACK )


B.7.

  • Confirm the Set in the previous step with a Get (i.e. confirm the value was set successfully).


B.8.

Warning

If failsafe is the current boot image when following this procedure, First row = Last row = 0 should instead be used in this step.

  • Prior to enabling this TimeAction, Get the cdh.scheduling.TimeAction.entryEnabled parameter, with First row = Last row = 1.

  • Ensure that it is 0 (disabled).

TC Details

MCS Operation

Get

Action/Param Name

cdh.scheduling.TimeAction.entryEnabled

Data Expected with TC

First Row, Last Row

Data Size

2 bytes, 2 bytes

Data Info

The first and last rows/indexes of the parameter to get

Allowed Value(s)

0 - 511, 0 - 511 (dec)

Expected Value(s)

1, 1

TM Details

Data Expected from TC

cdh.scheduling.TimeAction.entryEnabled ( + ACK )

Data Size

boolean

Data Info

Whether the TimeAction entry is enabled (1) or disabled (0)

Allowed Value(s)

0 - 1

Expected Value(s)

0


B.9.

Warning

If failsafe is the current boot image when following this procedure, First row = Last row = 0 should instead be used in this step.

  • Set the cdh.scheduling.TimeAction.entryEnabled parameter, with First row = Last row = 1, to 1 (i.e. enabled).

TC Details

MCS Operation

Set

Action/Param Name

cdh.scheduling.TimeAction.entryEnabled

Data Expected with TC

First Row, Last Row, entryEnabled

Data Size

2 bytes, 2 bytes, boolean

Data Info

The first and last rows/indexes of the parameter to set + the desired entryEnabled to set

Allowed Value(s)

0 - 511, 0 - 511, 0 - 1 (dec)

Expected Value(s)

1, 1, 1

TM Details

Data Expected from TC

No ( + ACK )


B.10.

  • Confirm the Set in the previous step with a Get (i.e. confirm the value was set successfully).


B.11.

  • Set the parameter platform.ADCS.adcsModeState to 00000000 (hex).

TC Details

MCS Operation

Set

Action/Param Name

platform.ADCS.adcsModeState

Data Expected with TC

adcsModeState

Data Size

4 bytes

Data Info

ADCS Mode and State to set

Allowed Value(s)

See table in Step B.1.

Expected Value(s)

00000000 (hex)

TM Details

Data Expected from TC

No ( + ACK )


B.12.

  • Confirm the Set in the previous step with a Get (i.e. confirm the value was set successfully).



Tx Convolution Encoding TimeAction

B.13.

Warning

If failsafe is the current boot image when following this procedure, the action argument should instead = 2 in this step.

  • Invoke the cdh.scheduling.TimeAction.restartRelativeEntries action with the action argument = 3.

TC Details

MCS Operation

Invoke

Action/Param Name

cdh.scheduling.TimeAction.restartRelativeEntries

Data Expected with TC

rows

Data Size

1 byte

Data Info

The index of the relative entry to restart

Allowed Value(s)

0 - 255 (dec)

Expected Value(s)

3

TM Details

Data Expected from TC

No ( + ACK )


B.14.

Warning

If failsafe is the current boot image when following this procedure, First row = Last row = 2 should instead be used in this step.

  • Set the cdh.scheduling.TimeAction.entryTime parameter, with First row = Last row = 3, to 600 (dec).

TC Details

MCS Operation

Set

Action/Param Name

cdh.scheduling.TimeAction.entryTime

Data Expected with TC

First Row, Last Row, entryTime

Data Size

2 bytes, 2 bytes, 4 bytes

Data Info

The first and last rows/indexes of the parameter to set + the desired entryTime to set

Allowed Value(s)

0 - 511, 0 - 511 (dec), 00000000 - FFFFFFFF (hex)

Expected Value(s)

3, 3, 600 (dec)

TM Details

Data Expected from TC

No ( + ACK )


B.15.

  • Confirm the Set in the previous step with a Get (i.e. confirm the value was set successfully).


B.16.

Warning

If failsafe is the current boot image when following this procedure, First row = Last row = 2 should instead be used in this step.

  • Prior to enabling this TimeAction, Get the cdh.scheduling.TimeAction.entryEnabled parameter, with First row = Last row = 3.

  • Ensure that it is 0 (disabled).

TC Details

MCS Operation

Get

Action/Param Name

cdh.scheduling.TimeAction.entryEnabled

Data Expected with TC

First Row, Last Row

Data Size

2 bytes, 2 bytes

Data Info

The first and last rows/indexes of the parameter to get

Allowed Value(s)

0 - 511, 0 - 511 (dec)

Expected Value(s)

3, 3

TM Details

Data Expected from TC

cdh.scheduling.TimeAction.entryEnabled ( + ACK )

Data Size

boolean

Data Info

Whether the TimeAction entry is enabled (1) or disabled (0)

Allowed Value(s)

0 - 1

Expected Value(s)

0


B.17.

Warning

If failsafe is the current boot image when following this procedure, First row = Last row = 2 should instead be used in this step.

  • Set the cdh.scheduling.TimeAction.entryEnabled parameter, with First row = Last row = 3, to 1 (i.e. enabled).

TC Details

MCS Operation

Set

Action/Param Name

cdh.scheduling.TimeAction.entryEnabled

Data Expected with TC

First Row, Last Row, entryEnabled

Data Size

2 bytes, 2 bytes, boolean

Data Info

The first and last rows/indexes of the parameter to set + the desired entryEnabled to set

Allowed Value(s)

0 - 511, 0 - 511, 0 - 1 (dec)

Expected Value(s)

3, 3, 1

TM Details

Data Expected from TC

No ( + ACK )


B.18.

  • Confirm the Set in the previous step with a Get (i.e. confirm the value was set successfully).


B.19.

  • Get the platform.CMC.txConvEnabled parameter.

  • Confirm it is 1 (i.e. convolutional encoding is enabled).

TC Details

MCS Operation

Get

Action/Param Name

platform.CMC.txConvEnabled

Data Expected with TC

No

TM Details

Data Expected from TC

platform.CMC.txConvEnabled ( + ACK )

Data Size

Boolean

Data Info

Whether convolutional encoding is enabled (1) or disabled (0)

Allowed Value(s)

0 - 1

Expected Value(s)

1


B.20.

  • To disable convolutional encoding, Set the platform.CMC.txConvEnabled parameter to 0 (disabled).

TC Details

MCS Operation

Set

Action/Param Name

platform.CMC.txConvEnabled

Data Expected with TC

txConvEnabled

Data Size

Boolean

Data Info

Enable (1) or disable (0) convolutional encoding

Allowed Value(s)

0 - 1

Expected Value(s)

0

TM Details

Data Expected from TC

No ( + ACK )


B.21.

  • Confirm the Set in the previous step with a Get (i.e. confirm the value was set successfully).



C. Data Downlink

C.1.

  • Get the cdh.logging.XXXLogger.AbsRowsLogged parameter for the Logger, where XXX = HK, TED, Event, ADCS, etc.

TC Details

MCS Operation

Get

Action/Param Name

cdh.logging.XXXLogger.AbsRowsLogged

Data Expected with TC

No

TM Details

Data Expected from TC

cdh.logging.XXXLogger.AbsRowsLogged ( + ACK )

Data Size

4 bytes

Data Info

The absolute number of rows ever logged to this channel

Allowed Value(s)

0 - FFFFFFFF (hex)


C.2.

  • Input the TM from the previous step into the relevant cell of ROW . When this value have been provided, the Google Sheet will automatically offer options for First Row and Last Row values to use in the next step.


C.3.

  • Downlink from the core.storage.channelContent parameter with:

    • The Parameter index in block field to equal the ID (in decimal) of the channel from which data is to be downlinked, and

    • The First row and Last Row fields to equal the chosen values from Step C.2.

Tip

When Downlink is clicked, MCS will prompt the Operator for a filename. To facilitate starting the LDT promptly, provide a short, temporary filename (e.g. ‘HK’, ‘TED’, etc.). A filename extension is not required.

TC Details

MCS Operation

Downlink

Action/Param Name

core.storage.channelContent

Data Expected with TC

Yes

Data Size

2 bytes; 2 bytes; 2 bytes

Data Info

Parameter index in block = channel ID (in decimal), First row and Last row

Allowed Value(s)

0001 - FFFF, 0000 - FFFF and 0000 - FFFF (Hex)

TM Details

Data Expected from TC

Data ( + ACK )

Data Size

n bytes, where n = size of requested data

Data Info

Requested data


C.4.

  • Confirm from the Transfer Window in MCS that the LDT is now on-going.

Warning

LDTs can sometimes fail in an acceptable way, e.g. due to the on-board storage being ‘busy’ when the OBSW attempted to access the requested data. When a transfer is progressing successfully, the Transfer Window should state the the LDT is ‘In progress’ (see Figure 1). However, if a fail occurs and ‘Suspended’ is instead observed, select the LDT in the Transfer Window and click the ‘Resume’ button.

This may happen multiple times but should not happen so frequently that the transfer does not progress by some amount (%) in-between the attempts to resume the transfer. If the transfer persistently fails, do NOT continue with attempts to resume the LDT or with the remainder of the procedure until the Software and/or Systems Engineer have reviewed the issue.

This option to ‘resume’ a failed LDT is only applicable to multi-part LDTs (referred to as ‘Multi-DLink’ LDTs in MCS/Figure 1). Smaller downlinks that do not generate an associated Multi-DLink pane in MCS must be restarted from scratch.

../../../_images/LDTStatus.png

Figure 1 - Transfer Window during an LDT. Top: In progress transfer. Bottom: Suspended transfer.



D. Post-Pass Close-out

D.1.

  • When the Transfer Window in MCS indicates that the transfer has completed successfully (i.e. when 100/100% is observed in the “Multi D-link” tab, shortly after which the LDT will disappear from the Transfer Window), update the ‘LastPassInfo’ Sheet of ROW with the value of the cdh.logging.XXXLogger.AbsRowsLogged parameter corresponding to the downlinked data.


D.2.

  • The file saved with a temporary filename in Step C.3. should now be renamed to match the following format

    [TYPE]_[YYYYMMDD]_[First Row]_[Last Row]_[AbsRowsLogged corresponding to Last Row],

    where [First Row], [Last Row] and [AbsRowsLogged corresponding to Last Row] should be taken from ROW.

  • This file should then be move to ~/Desktop/DataFromSC.


D.3.

  • If health check data was downlinked during the pass, this data should now be reviewed, calling on other team members for input where necessary and using, e.g., Grafana. If science data was downlinked, the relevant science teams should be notified.


END OF PROCEDURE


Previous Next

© Copyright EIRSAT-1 2024.

Built with Sphinx using a theme provided by Read the Docs.