EIR-OPS-016: Upload Payload Image


Objective

To upload a new firmware to the OBC for later reprogramming of the GMOD/EMOD MSP.


Introduction

Using this procedure, the Operator will upload a new firmware to a storage channel on the OBC.


Procedure

This procedure contains the following sub-procedures:

Important

Section A does not require a communication pass and should be carried out prior to the pass. Section B requires a communication pass and may require multiple passes to complete.


A. Pre-Pass Preparations

A.1.

  • Prior to the first pass in which Section B is followed, the Operators must ensure they have access to:

    • The image to be uplinked (needed for Steps A.2 and B.6),

    • An MD5 checksum for this image (Step A.2), and

    • The length of the image in rows (Steps B.6 and B.8).

Warning

The image to be uplinked must be located on the same computer as MCS (or at least a file system that MCS can access).


A.2.

  • Calculate an MD5 checksum for the image to be uplinked using:

    • certutil -hashfile <file> MD5 in a terminal on a windows computer, or

    • md5 <file> in a terminal on a Mac.

  • Ensure this checksum matches the checksum from the previous step.


A.3.

  • If not already known, the Operators should consult with the Software Engineer to determine the ID of the OBC flash channel to which the image should be uplinked (needed throughout Section B). The storage channels on the OBC that are intended for firmware image uploads are provided in the table below.

ChID (Dec)

Assigned FW Type

83

GMOD Exp

84

GMOD Exp

85

GMOD CPLD

86

EMOD

87

EMOD



B. Upload a New Firmware to OBC

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 open and set-up the parameters/actions that will be required before the pass starts!

B.1.

  • Query the parameter core.storage.channelContent with Parameter index in block = the Channel ID established in Section A.

TC Details

MCS Operation

Query

Action/Param Name

core.storage.channelContent

Data Expected with TC

Parameter index in block

Data Size

2 bytes

Data Info

The ChID of storage channel

Allowed Value(s)

0001 - FFFF (Hex)

Expected Value(s)

ChID identified in Section A

TM Details

Data Expected from TC

rows ( + ACK )

Data Size

2 bytes

Data Info

The number of rows of data in ChID

Allowed Value(s)

0000 - FFFF (Hex)


B.2.

  • If 0 is returned from the previous step, the Operator can now proceed to Step B.4.

  • Else, data is already occupying this storage channel. Therefore:

    • The Operator should now consult with the Software Engineer to confirm it is ok to wipe this data from the channel.

    • If the Software Engineer gives permission, the Operator should Invoke the action core.storage.Wipe with action argument = the channel ID established in Section A.

TC Details

MCS Operation

Invoke

Action/Param Name

core.storage.Wipe

Data Expected with TC

ChannelID

Data Size

2 bytes

Data Info

The ID of the storage channel you wish to wipe

Allowed Value(s)

0001 - FFFF (Hex)

Expected Value(s)

ChID identified in Section A

TM Details

Data Expected from TC

No ( + ACK )


B.3.

  • Query the parameter core.storage.channelContent with Parameter index in block = the channel ID established in Section A.

  • Confirm 0 (rows) is returned to confirm the wipe was successful.

TC Details

MCS Operation

Query

Action/Param Name

core.storage.channelContent

Data Expected with TC

Parameter index in block

Data Size

2 bytes

Data Info

The ChID of storage channel

Allowed Value(s)

0001 - FFFF (Hex)

Expected Value(s)

ChID identified in Section A

TM Details

Data Expected from TC

rows ( + ACK )

Data Size

2 bytes

Data Info

The number of rows of data in ChID

Allowed Value(s)

0000 - FFFF (Hex)

Expected Value

0000


B.4.

  • Set the parameter core.storage.rowLength to 41 (dec) with First Row = Last Row = the channel ID established in Section A.

TC Details

MCS Operation

Set

Action/Param Name

core.storage.rowLength

Data Expected with TC

First Row , Last Row , rowLength

Data Size

4 bytes, 4 bytes, 4 bytes

Data Info

The range of ChIDs and row length to set

Allowed Value(s)

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

Expected Value(s)

First Row = Last Row = ChID identified in Section A, 41 (dec)

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.

Important

As you are about to perform a large uplink of data to the spacecraft, ensure that MCS’s Transfer Window is visible to the Operator before proceeding with this step.

  • The Operator can now Uplink the image to the OBC flash channel using the parameter core.storage.channelContent , with:

    • Parameter index in block = the channel ID identified in Section A,

    • First row = 0 and Last row = the length of the image in rows (from Section A) - 1, and

    • Resize ticked.

TC Details

MCS Operation

Uplink

Action/Param Name

core.storage.channelContent

Data Expected with TC

Parameter index in block , First row , Last row , binary file , Resize

Data Size

4 bytes , 4 bytes , 4 bytes , many bytes, 1 byte

Data Info

The ChID to uplink to, the row range to be written to, the image to uplink, whether the file should be resized into rows

Allowed Value(s)

1-87 (dec), 00000000-FFFFFFFF (hex), 00000000-FFFFFFFF (hex), N/A, 0-1

Expected Value(s)

ChID identified in Section A, 0, length of the image in rows - 1, binary file from Section A, 1

TM Details

Data Expected from TC

No ( + ACK )


B.7.

  • Wait for the Transfer Window on MCS to indicate that the uplink has completed successfully.

Note

Uplinking the image to the spacecraft may require multiple communication passes. At the end of each pass, MCS will automatically ‘Suspend’ the transfer. At the start of each pass, the Operator should ‘Resume’ the transfer after completing the EIR-OPS-003: Start a Communication Pass procedure.


B.8.

  • Query the parameter core.storage.channelContent with Parameter index in block = the channel ID established in Section A.

  • Ensure the data returned = the length of the image in rows (from Section A).

TC Details

MCS Operation

Query

Action/Param Name

core.storage.channelContent

Data Expected with TC

Parameter index in block

Data Size

2 bytes

Data Info

The ChID of storage channel

Allowed Value(s)

0001 - FFFF (Hex)

Expected Value(s)

ChID identified in Section A

TM Details

Data Expected from TC

rows ( + ACK )

Data Size

2 bytes

Data Info

The number of rows of data in ChID

Allowed Value(s)

0000 - FFFF (Hex)

Expected Value

The length of the image in rows from Section A


B.9.


END OF PROCEDURE