EIR-OPS-006.9: ADCS/GPS Operations


Objective

To complete the ADCS and GPS Operations Test for the commissioning phase of the satellite.


Introduction

This procedure will confirm that the ADCS can determine and control the attitude of EIRSAT-1 post-launch.


Procedure

This procedure has 5 sub-procedures as follows:

Tip

In addition to plotting the most recent data downlinked in the following sections, check how the parameters of interest changed with time using Grafana.


A. Detumble Mode Test for Fixed Time Duration

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 used during the pass in MCS before the pass begins!

Note

The TimeAction component is used to automatically trigger an on-board action (i.e. to Invoke an action or Set a parameter) after a user-defined period of time. In this procedure, the TimeAction component will be used to disable TC authentication after the user-defined time period has elapsed. This is a safety feature to ensure that communication with the spacecraft can be secured with TC authentication enabled before permanently enabling authentication.

A.1.

  • To first ensure the TimeAction is ready for use, 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 )

Note

The second entry of the cdh.scheduling.TimeAction component contains the ADCS Mode Timeout by default. This is the reason for setting the action argument, and later First row and Last row , = 1. However, this is only the case while a primary image is booted! 0 should instead be used if failsafe is booted.


A.2.

  • 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


A.3.

  • If the 4 bytes noted in the previous step are not 00000000 (hex), edit these bytes in the data field of the cdh.scheduling.TimeAction.entryListPacked parameter window and Set the parameter with First row = Last row = 1.

  • Else, skip ahead to Step A.5.

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, 00000000

TM Details

Data Expected from TC

No ( + ACK )


A.4.

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


A.5.

  • Set the cdh.scheduling.TimeAction.entryTime parameter, with First row = Last row = 1, to the desired TimeAction time-out (in seconds). This is the time the OBC will wait before automatically configuring the ADCS to operate in Stand-by Mode/Nadir State.

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, the desired TimeAction time-out (in seconds)

TM Details

Data Expected from TC

No ( + ACK )


A.6.

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


A.7.

  • 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


A.8.

  • 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 )


A.9.

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


A.10.

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

  • Ensure 0x0000 (i.e. Stand-by Mode/Nadir State) is returned.

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

Expected Value(s)

00000000

Where…

adcsMode (hex)

ADCS Mode

0000

Standby (Default)

0001

Detumble

0002

Spin Stabilised

5550

Test

adcsState (hex)

ADCS State

0000

Nadir (Default)

AAA8

Test


A.11.

  • Now Set the parameter platform.ADCS.adcsModeState to 00010000 (hex, i.e. Detumble Mode/Nadir State).

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 tables above

Expected Value(s)

00010000 (hex)

TM Details

Data Expected from TC

No ( + ACK )


A.12.

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


A.13.

  • During the next communication passes, the Operator should downlink ADCS HK and Debug data from on-board storage according to EIR-OPS-011: Downlink Data From Storage .

  • Provide the ADCS Engineer with all the downlinked data and confirm with them that the ADCS is functional in Detumble Mode before proceeding to Section B.



B. Detumble Mode

Warning

Section A must be completed and successful before following the steps in this section to set the ADCS Mode as Detumble without a timeout.

B.1.

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

  • Ensure 0x0000 (i.e. Stand-by Mode/Nadir State) is returned.

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

Expected Value(s)

00000000

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.

  • Now Set the parameter platform.ADCS.adcsModeState to 00010000 (hex, i.e. Detumble Mode/Nadir State).

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 tables above

Expected Value(s)

00010000 (hex)

TM Details

Data Expected from TC

No ( + ACK )


B.3.

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



C. Attitude Determination Test

Danger

PRIOR TO ENABLING THE ADCS MANAGER, discuss with the ADCS Engineer and/or the Systems Team whether the ADCS Manager bug (that keeps the GPS powered ON) is present in this image. IF THIS BUG IS PRESENT, discuss whether TimeActions (see EIR-OPS-037: Set-Up a TimeAction ) should instead be used to control the powered state of the GPS. Alternatively, the uplinked SVs may be used instead of GPS SVs.

C.1.

  • To enable the ADCS Manager, Set the mission.ADCSManager.enabled parameter to 1.

TC Details

MCS Operation

Set

Action/Param Name

mission.ADCSManager.enabled

Data Expected with TC

Yes

Data Size

Boolean

Data Info

State of the ADCS Manager

Allowed Value(s)

0 (disable), 1 (enable)

Expected Value(s)

1

TM Details

Data Expected from TC

No ( + ACK )


C.2.

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


C.3.

  • During the next communication passes, the Operator should downlink ADCS Debug data from the on-board storage according to the EIR-OPS-011: Downlink Data From Storage procedure.

  • Provide the ADCS Engineer with all the downlinked data and confirm with them that:

    • GPS lock has been achieved,

    • The spacecraft can determine its attitude,

    • The GPS is updating the the ADCS correctly, and

    • The ADCS is correctly propagating the State Vector.



D. Spin Stabilisation Test for Fixed Time Duration

D.1.

  • To first ensure the TimeAction is ready for use, 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 )


D.2.

  • 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


D.3.

  • If the 4 bytes noted in the previous step are not 00000000 (hex), edit these bytes in the data field of the cdh.scheduling.TimeAction.entryListPacked parameter window and Set the parameter with First row = Last row = 1.

  • Else, skip ahead to Step D.5.

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, 00000000

TM Details

Data Expected from TC

No ( + ACK )


D.4.

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


D.5.

  • Set the cdh.scheduling.TimeAction.entryTime parameter, with First row = Last row = 1, to the desired TimeAction time-out (in seconds). This is the time the OBC will wait before automatically configuring the ADCS to operate in Stand-by Mode/Nadir State.

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, the desired TimeAction time-out (in seconds)

TM Details

Data Expected from TC

No ( + ACK )


D.6.

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


D.7.

  • 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


D.8.

  • 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 )


D.9.

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


D.10.

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

  • Ensure 0x0000 (i.e. Stand-by Mode/Nadir State) or 0x0001000 (i.e. Detumble Mode/Nadir State) is returned.

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

Expected Value(s)

00000000 or 00010000 (hex)

Where…

adcsMode (hex)

ADCS Mode

0000

Standby (Default)

0001

Detumble

0002

Spin Stabilised

5550

Test

adcsState (hex)

ADCS State

0000

Nadir (Default)

AAA8

Test


D.11.

  • Now Set the parameter platform.ADCS.adcsModeState to 00020000 (hex, i.e. Spin Stabalised Mode/Nadir State).

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 tables above

Expected Value(s)

00020000 (hex)

TM Details

Data Expected from TC

No ( + ACK )


D.12.

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


D.13.

  • During the next communication passes, the Operator should downlink ADCS HK and Debug data from on-board storage according to EIR-OPS-011: Downlink Data From Storage .

  • Provide the ADCS Engineer with all the downlinked data and confirm with them that the ADCS is functional in Spin Stabalised Mode before proceeding to Section E.



E. Spin Stabilisation

Warning

Section D must be completed and successful before following the steps in this section to set the ADCS Mode to Spin Stabilised without a timeout.

E.1.

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

  • Ensure 0x0000 (i.e. Stand-by Mode/Nadir State) or 0x0001000 (i.e. Detumble Mode/Nadir State) is returned.

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

Expected Value(s)

00000000 or 00010000 (hex)

Where…

adcsMode (hex)

ADCS Mode

0000

Standby (Default)

0001

Detumble

0002

Spin Stabilised

5550

Test

adcsState (hex)

ADCS State

0000

Nadir (Default)

AAA8

Test


E.2.

  • Now Set the parameter platform.ADCS.adcsModeState to 00020000 (hex, i.e. Spin Stabalised Mode/Nadir State).

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 tables above

Expected Value(s)

00020000 (hex)

TM Details

Data Expected from TC

No ( + ACK )


E.3.

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


E.4.

  • The GPS/ADCS operational test has been completed. The Operator should now proceed with one of the sub-procedures listed in EIR-OPS-006: Commissioning that is yet to be completed.

Note

The sub-procedures listed in EIR-OPS-006: Commissioning do not necessarily need to be carried out in the order given. However, procedures ending in ‘Operation’ should only be completed after the relevant ‘Health Check’ procedure for that subsystem has been performed. The ‘EMOD Reprogramming’ procedure must also be performed prior to any EMOD activities. Lastly, ideally, payload operations should be the last item to consider in the commissioning of the spacecraft.



F. Disable Loggers

F.1.

  • Set the cdh.logging.ADCSDebugLogger.enabled parameter to 0 (i.e. disable).

TC Details

MCS Operation

Set

Action/Param Name

cdh.logging.ADCSDebugLogger.enabled

Data Expected with TC

enabled

Data Size

Boolean

Data Info

Enable (1) or disable (0) logging

Allowed Value(s)

0 - 1

Expected Value(s)

0

TM Details

Data Expected from TC

No ( + ACK )


F.2.

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


F.3.

  • Set the cdh.telemetry.ADCSHighResSampler.enabled parameter to 0 (i.e. disable).

TC Details

MCS Operation

Set

Action/Param Name

cdh.telemetry.ADCSHighResSampler.enabled

Data Expected with TC

enabled

Data Size

Boolean

Data Info

Enable (1) or disable (0) parameter sampling

Allowed Value(s)

0 - 1

Expected Value(s)

0

TM Details

Data Expected from TC

No ( + ACK )


F.4.

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


F.5.

  • Set the cdh.logging.GPSLogger.enabled parameter to 0 (i.e. disable).

TC Details

MCS Operation

Set

Action/Param Name

cdh.logging.GPSLogger.enabled

Data Expected with TC

enabled

Data Size

Boolean

Data Info

Enable (1) or disable (0) logging

Allowed Value(s)

0 - 1

Expected Value(s)

0

TM Details

Data Expected from TC

No ( + ACK )


F.6.

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


END OF PROCEDURE