EIR-OPS-019: Reset/Power-cycle a Payload


Objective

To reset and/or power-cycle a payload.


Introduction

Using this procedure, the Operator will be instructed on how to:

  • Reset GMOD/EMOD (i.e. a software reset of the MSP), and/or

  • Power-cycle GMOD/EMOD.

Note

This procedure is largely written using GMOD as the example. For all steps where GMOD is mentioned, identical steps can be carried out for the EMOD MSP (e.g. for the SCDB Action/Param path payload.GMOD.FirmwareVersion, simply use payload.EMOD.FirmwareVersion to access the EMOD MSP firmware version.


Procedure

This procedure has the following subsections:

Note

Communication with the spacecraft will be required throughout this procedure.


A. Initial Checks

A.1.

  • Get the platform.EPS.actualSwitchStates parameter, with First row = 0 and Last row = 9.

  • If interested in GMOD, assess the status of rows 2, 5 and 8 of this parameter (i.e. PDMs 3, 6 and 9). If interested in EMOD, assess row 9 (i.e. PDM 10).

  • If 1 is returned for these rows/PDMs, the MSP is on.

Warning

PDM 8 (i.e. row 7 of this parameter) is drawing parasitic power. Therefore, when you Get the platform.EPS.actualSwitchStates parameter it will always read as on/1 even when it is powered off.

TC Details

MCS Operation

Get

Action/Param Name

platform.EPS.actualSwitchStates

Data Expected with TC

Yes

Data Size

2 bytes, 2 bytes

Data Info

First Row , Last Row

Allowed Value(s)

0-9, 0-9

Expected Value(s)

0, 9

TM Details

Data Expected from TC

actualSwitchStates ( + ACK )

Data Size

List[0:9] of Booleans

Data Info

SwitchState = 0 (Off), SwitchState = 1 (On)

Allowed Value(s)

0 or 1 for each switch


A.2.

  • If the above step shows that the MSP is on, proceed to Step A.4.

  • Else, if one or more of the MSP’s PDMs are powered off, Invoke the platform.EPS.TurnOnGMOD action. If interested in EMOD, instead use the platform.EPS.TurnOnEMOD action.

TC Details

MCS Operation

Invoke

Action/Param Name

platform.EPS.TurnOnGMOD

Data Expected with TC

No

TM Details

Data Expected from TC

No ( + ACK )


A.3.

  • To confirm that the MSP is now powered on, Get the platform.EPS.actualSwitchStates parameter, with First row = 0 and Last row = 9.

  • If interested in GMOD, ensure that rows 2, 5 and 8 of this parameter (i.e. PDMs 3, 6 and 9) now equal 1. If interested in EMOD, instead confirm row 9 (i.e. PDM 10) equals 1.

Warning

PDM 8 (i.e. row 7 of this parameter) is drawing parasitic power. Therefore, when you Get the platform.EPS.actualSwitchStates parameter it will always read as on/1 even when it is powered off.

TC Details

MCS Operation

Get

Action/Param Name

platform.EPS.actualSwitchStates

Data Expected with TC

Yes

Data Size

2 bytes, 2 bytes

Data Info

First Row , Last Row

Allowed Value(s)

0-9, 0-9

Expected Value(s)

0, 9

TM Details

Data Expected from TC

actualSwitchStates ( + ACK )

Data Size

List[0:9] of Booleans

Data Info

SwitchState = 0 (Off), SwitchState = 1 (On)

Allowed Value(s)

0 or 1 for each switch

Expected Value(s)

GMOD on: XX1XX1XX1X, EMOD on: XXXXXXXX1


A.4.

  • If the firmware currently running on the MSP is known to be non-responsive, skip ahead to Section B (reset) or C (power-cycle).

  • Else, Get the payload.GMOD.FirmwareVersion parameter.

  • Ensure the firmware version returned matches what was expected given the last firmware programmed onto the MSP.

TC Details

MCS Operation

Get

Action/Param Name

payload.GMOD.FirmwareVersion

Data Expected with TC

No

TM Details

Data Expected from TC

FirmwareVersion ( + ACK )

Data Size

2 bytes (3 bytes for EMOD.FirmwareVersion)

Data Info

The version of the firmware currently on the MSP

Allowed Value(s)

0000 - FFFF (000000 - FFFFFF for EMOD.FirmwareVersion)

Expected Value(s)

Firmware version last programmed onto the MSP


A.5.

  • Get the payload.GMOD.GMODMode parameter to assess which mode the firmware currently running on the MSP is operating in.

TC Details

MCS Operation

Get

Action/Param Name

payload.GMOD.GMODMode

Data Expected with TC

No

TM Details

Data Expected from TC

GMODMode ( + ACK )

Data Size

1 byte

Data Info

Payload operational mode

Allowed Value(s)

See table below

Where…

Firmware

Mode

Mode

GMOD

1

Idle

GMOD

2

Experiment

GMOD

3

CPLD

GMOD

4

Safe

EMOD

0

Idle

EMOD

1

Experiment

. |


A.6.

  • If the payload.GMOD.GMODMode parameter indicates that Idle Mode is on-going, skip ahead to Step A.8.

  • Else, now Set the GMODMode parameter to Idle Mode (i.e. ‘1’ for GMOD. ‘0’ for EMOD)

TC Details

MCS Operation

Set

Action/Param Name

payload.GMOD.GMODMode

Data Expected with TC

Yes

Data Size

1 byte

Data Info

The mode to set EMOD to

Allowed Value(s)

0-1

Expected Value(s)

1 (0 for EMOD.EMODMode)

TM Details

Data Expected from TC

No ( + ACK )


A.7.

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


A.8.

  • Before resetting/power-cycling the payload in Section B/C, Get the parameter payload.GMOD.ResetCounter to determine the number of times the payload has reset since the MSP was last programmed.

TC Details

MCS Operation

Get

Action/Param Name

payload.GMOD.ResetCounter

Data Expected with TC

No

TM Details

Data Expected from TC

ResetCounter ( + ACK )

Data Size

1 byte

Data Info

Number of resets since the firmware was last programmed

Allowed Value(s)

0 - 127


A.9.

  • Get the parameter payload.GMOD.LastResetType to determine the most recent type(s) of GMOD reset(s) that have occurred.

  • Continue to get this parameter until 0 is returned.

TC Details

MCS Operation

Get

Action/Param Name

payload.GMOD.LastResetType

Data Expected with TC

No

TM Details

Data Expected from TC

LastResetType ( + ACK )

Data Size

1 byte

Data Info

Last GMOD reset type(s)

Allowed Value(s)

00 - 2E

Where…

LastResetType

Reset Type

02

Brownout

04

Unknown

06

SW reboot

14

SW reboot

16

Watchdog reset


A.10.

  • If a payload reset is desired, proceed now to Section B.

  • Alternatively, if a payload power-cycle is desired, skip to Section C.



B. Payload Reset

B.1.

  • Invoke the action payload.GMOD.MSPReset to reset the MSP (via the bootstrap loader)

TC Details

MCS Operation

Invoke

Action/Param Name

payload.GMOD.MSPReset

Data Expected with TC

No

TM Details

Data Expected from TC

No ( + ACK )


B.2.

  • If a payload power-cycle is also desired, proceed now to Section C.

  • Else, skip to Section D.



C. Payload Power-Cycle

C.1.

  • Invoke the action platform.EPS.TurnOffGMOD to turn on GMOD. If interested in EMOD, instead use the platform.EPS.TurnOffEMOD action.

TC Details

MCS Operation

Invoke

Action/Param Name

platform.EPS.TurnOffGMOD

Data Expected with TC

No

TM Details

Data Expected from TC

No ( + ACK )


C.2.

  • To confirm that the MSP is now powered off, Get the platform.EPS.actualSwitchStates parameter, with First row = 0 and Last row = 9.

  • If interested in GMOD, ensure that rows 2, 5 and 8 of this parameter (i.e. PDMs 3, 6 and 9) now equal 0. If interested in EMOD, instead confirm row 9 (i.e. PDM 10) equals 0.

Warning

It will likely take ~40 seconds for GMOD’s PDM 3 to read as off/0.

Warning

PDM 8 (i.e. row 7 of this parameter) is drawing parasitic power. Therefore, when you Get the platform.EPS.actualSwitchStates parameter it will always read as on/1 even when it is powered off.

TC Details

MCS Operation

Get

Action/Param Name

platform.EPS.actualSwitchStates

Data Expected with TC

Yes

Data Size

2 bytes, 2 bytes

Data Info

First Row , Last Row

Allowed Value(s)

0-9, 0-9

Expected Value(s)

0, 9

TM Details

Data Expected from TC

actualSwitchStates ( + ACK )

Data Size

List[0:9] of Booleans

Data Info

SwitchState = 0 (Off), SwitchState = 1 (On)

Allowed Value(s)

0 or 1 for each switch

Expected Value(s)

GMOD off: XX0XX0XX0X, EMOD off: XXXXXXXX0


C.3.

  • Invoke the action platform.EPS.TurnOnGMOD to turn on GMOD. If interested in EMOD, instead use the platform.EPS.TurnOnEMOD action.

TC Details

MCS Operation

Invoke

Action/Param Name

platform.EPS.TurnOnGMOD

Data Expected with TC

No

TM Details

Data Expected from TC

No ( + ACK )


C.4.

  • To confirm that the MSP is now powered on, Get the platform.EPS.actualSwitchStates parameter, with First row = 0 and Last row = 9.

  • If interested in GMOD, ensure that rows 2, 5 and 8 of this parameter (i.e. PDMs 3, 6 and 9) now equal 1. If interested in EMOD, instead confirm row 9 (i.e. PDM 10) equals 1.

Warning

PDM 8 (i.e. row 7 of this parameter) is drawing parasitic power. Therefore, when you Get the platform.EPS.actualSwitchStates parameter it will always read as on/1 even when it is powered off.

TC Details

MCS Operation

Get

Action/Param Name

platform.EPS.actualSwitchStates

Data Expected with TC

Yes

Data Size

2 bytes, 2 bytes

Data Info

First Row , Last Row

Allowed Value(s)

0-9, 0-9

Expected Value(s)

0, 9

TM Details

Data Expected from TC

actualSwitchStates ( + ACK )

Data Size

List[0:9] of Booleans

Data Info

SwitchState = 0 (Off), SwitchState = 1 (On)

Allowed Value(s)

0 or 1 for each switch

Expected Value(s)

GMOD on: XX1XX1XX1X, EMOD on: XXXXXXXX1



D. Verification

D.1.

  • Get the payload.GMOD.FirmwareVersion parameter.

  • Ensure the firmware version returned matches what was expected given the last firmware programmed onto the MSP.

TC Details

MCS Operation

Get

Action/Param Name

payload.GMOD.FirmwareVersion

Data Expected with TC

No

TM Details

Data Expected from TC

FirmwareVersion ( + ACK )

Data Size

2 bytes (3 bytes for EMOD.FirmwareVersion)

Data Info

The version of the firmware currently on the MSP

Allowed Value(s)

0000 - FFFF (000000 - FFFFFF for EMOD.FirmwareVersion)

Expected Value(s)

Firmware version last programmed onto the MSP


D.2.

  • Get the payload.GMOD.GMODMode parameter.

  • Ensure the TM returned indicates that Idle Mode is the payload’s current operational mode.

TC Details

MCS Operation

Get

Action/Param Name

payload.GMOD.GMODMode

Data Expected with TC

No

TM Details

Data Expected from TC

GMODMode ( + ACK )

Data Size

1 byte

Data Info

Payload operational mode

Allowed Value(s)

See table below

Expected Value(s)

1 (0 for EMOD.EMODMode)

Where…

Firmware

Mode

Mode

GMOD

1

Idle

GMOD

2

Experiment

GMOD

3

CPLD

GMOD

4

Safe

EMOD

0

Idle

EMOD

1

Experiment


D.3.

  • Get the parameter payload.GMOD.ResetCounter to determine the number of times the payload has reset since the MSP was last programmed.

  • Ensure this parameter has increased by 1 since Step A.8 (only if Step A.8 was carried out).

TC Details

MCS Operation

Get

Action/Param Name

payload.GMOD.ResetCounter

Data Expected with TC

No

TM Details

Data Expected from TC

ResetCounter ( + ACK )

Data Size

1 byte

Data Info

Number of resets since the firmware was last programmed

Allowed Value(s)

0 - 127

Expected Value(s)

Increased by 1 since Step A.8


D.4.

  • Get the parameter payload.GMOD.LastResetType to determine the most recent type(s) of GMOD reset(s) that have occurred.

  • Continue to get this parameter until 0 is returned.

TC Details

MCS Operation

Get

Action/Param Name

payload.GMOD.LastResetType

Data Expected with TC

No

TM Details

Data Expected from TC

LastResetType ( + ACK )

Data Size

1 byte

Data Info

Last GMOD reset type(s)

Allowed Value(s)

00 - 2E

Where…

LastResetType

Reset Type

02

Brownout

04

Unknown

06

SW reboot

14

SW reboot

16

Watchdog reset


Note

If a health check is required after power-cycling the payload, proceed to EIR-OPS-006.6: GMOD Health Check or EIR-OPS-006.8: EMOD Health Check, depending on the payload just reset/power-cycled.


END OF PROCEDURE