EIR-OPS-038: WBC Experiment Set Up


Objective

To facilitate the Operator in setting up a WBC experiment.


Introduction

This procedure will guide the Operator through steps to set up a WBC experiment and enter WBC Mode manually without a user-defined timeout or for a fixed duration. The downlinking of WBC data is also discussed and steps are provided to exit WBC Mode, ending any on-going experiments.


Procedure

This procedure contains a number of sub-procedures.


A. Experiment Set-Up

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!


A.1.

  • Set the parameter cdh.logging.WBCLogger.enabled to 1 to enable the WBC Logger.

TC Details

MCS Operation

Set

Action/Param Name

cdh.logging.WBCLogger.enabled

Data Expected with TC

Yes

Data Size

bit1

Data Info

1 (i.e. Logging enabled) or 0 (i.e. Logging disabled)

Allowed Value(s)

0, 1

.. centered:: TM Details

Data Expected from TC

No ( + ACK )


A.2.

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


A.3.

  • Get the parameter core.Storage.numRows with First Row = Last Row = 78.

  • Note the number of rows of data in this storage channel. This will be used for comparison later to ensure WBC data is being logged after entering WBC Mode (via Section B or C).

TC Details

MCS Operation

Get

Action/Param Name

core.Storage.numRows

Data Expected with TC

Yes

Data Size

2 bytes, 2 bytes

Data Info

First Row , Last Row

Allowed Value(s)

1 - 87 (dec)

Expected Value(s)

78, 78 (dec)

TM Details

Data Expected from TC

numRows ( + ACK )

Data Size

4 bytes

Data Info

Number of rows in WBC channel

Allowed Value(s)

0 - 65535


A.4.

  • Prior to transitioning to WBC Mode, the parameters listed in the table below must be reviewed (e.g. via Get TCs and/or previous pass notes), and may need to be changed (i.e. via a Get - Set - Get ).

  • If the WBC Engineer has specified that one or more of the parameters in the table below needs to be configured, follow Steps A.5-A.7 for each of the parameters.

Parameter Name

Data Size

Data Info

Allowed Values

Default Value

sensorSelect

bit8

Bitmask used to select which sensors are read from the ADCS board
Row 0 (MSB): Magnetometer 1
Row 1: Magnetometer 2
Row 2: Gyroscope
Row 3: Coarse Sun Sensor
Row 4: Fine Sun Sensor
Row 5: Estimated Attitude Quaternion
Rows 6-7: Not Used

0 - 255

248 (0b11111000)

sensorReadOffset

uint8

Time offset in multiples of 50 ms from the start of each clock cycle to when sensor reads take place

0 - 19

0

determinationUpdateOffset

uint8

Time offset in multiples of 50 ms from the start of each clock cycle to when determination calculation takes place

0 - 19

0

mtmSelect

uint8

Used to select which MTM is used for determination and control algorithms
0: Average Value of Magnetometers 1 and 2
1: Magnetometer 1
2: Magnetometer 2

0 - 2

0

mtm1CalibrationMatrix

sint16[9]

Column-wise values of a 3 x 3 matrix used to correct for scale, rotation and orthogonality in the MTM 1 values.
Values are fixed-point signed integers with a fraction length of 13 (REAL_VALUE = INTEGER_VALUE/2^13).
May be used along with corresponding offset parameter to calibrate the MTM according to the equation:
MTM_CAL = MATRIX*MTM_RAW - OFFSET.

-32767 - 32768

-8192, 0, 0
0, -8192, 0
0, 0, 8192
Column-wise!

mtm1CalibrationOffset

sint16[3]

Values of a 3 x 1 column vector to correct for bias in the MTM 1 values
Values are fixed-point signed integers with a fraction length of 9 (REAL_VALUE = INTEGER_VALUE/2^9)
May be used along with corresponding matrix parameter to calibrate the MTM according to the equation:
MTM_CAL = MATRIX*MTM_RAW - OFFSET.

-32767 - 32768

0, 0, 0

mtm2CalibrationMatrix

sint16[9]

Column-wise values of a 3 x 3 matrix used to correct for scale, rotation and orthogonality in the MTM 2 values.
Parameter values are fixed-point signed integers with a fraction length of 13 (REAL_VALUE = INTEGER_VALUE/2^13).
May be used along with corresponding offset parameter to calibrate the MTM according to the equation:
MTM_CAL = MATRIX*MTM_RAW - OFFSET.

-32767 - 32768

-8192, 0, 0
0, -8192, 0
0, 0, 8192
Column-wise!

mtm2CalibrationOffset

sint16[3]

Values of a 3 x 1 column vector to correct for bias in the MTM 2 values
Values are fixed-point signed integers with a fraction length of 9 (REAL_VALUE = INTEGER_VALUE/2^9)
May be used along with corresponding matrix parameter to calibrate the MTM according to the equation:
MTM_CAL = MATRIX*MTM_RAW - OFFSET.

-32767 - 32768

0, 0, 0

gyroCalibrationMatrix

sint16[9]

Column-wise values of a 3 x 3 matrix used to correct for scale, rotation and orthogonality in the gyro values.
Values are fixed-point signed integers with a fraction length of 13 (REAL_VALUE = INTEGER_VALUE/2^13).
May be used along with corresponding offset parameter to calibrate the MTM according to the equation:
GYRO_CAL = MATRIX*GYRO_RAW - OFFSET.

-32767 - 32768

-8192, 0, 0
0, -8192, 0
0, 0, 8192
Column-wise!

gyroCalibrationOffset

sint16[3]

Values of a 3 x 1 column vector to correct for bias in the gyro values.
Values are fixed-point signed integers with a fraction length of 7 (REAL_VALUE = INTEGER_VALUE/2^7).
May be used along with corresponding matrix parameter to calibrate the MTM according to the equation:
GYRO_CAL = MATRIX*GYRO_RAW - OFFSET.

-32767 - 32768

0, 0, 0

cssGains

uint16[5]

A gain value for each of the 5 coarse sun sensors (1:-Z, 2:+X, 3:-Y, 4:+Y, 5:-X).
Values are fixed-point unsigned integers with a fraction length of 14 (REAL_VALUE = INTEGER_VALUE/2^14).
May be used along with corresponding offset parameter to calibrate the CSSs according to the equation:
CSS_CAL = CSS_GAIN*CSS_RAW - OFFSET.

0 - 65535

16384, 16384,
16384, 16384,
16384

cssOffsets

sint16[5]

An offset value for each of the 5 coarse sun sensors (1:-Z, 2:+X, 3:-Y, 4:+Y, 5:-X).
Values are fixed-point signed integers with a fraction length of 4 (REAL_VALUE = INTEGER_VALUE/2^4).
May be used along with corresponding gain parameter to calibrate the CSSs according to the equation:
CSS_CAL = CSS_GAIN*CSS_RAW - OFFSET.

-32767 - 32768

0, 0, 0, 0, 0

controlSelect

uint8

Used to select which control algorithm is active:
0: No control
1: Bang-bang B-dot
2: B-dot
3: B-dot with angular rates
4: Fixed MTQ Duty Cycle.

0 - 4

0

controlUpdateOffset

uint8

Time offset in multiples of 50 ms from the start of each clock cycle to when control update calculation takes place

0 - 19

0

mtqWriteOffset

uint8

Time offset in multiples of 50 ms from the start of each clock cycle to when magnetorquer writes take place

0 - 19

0

mtqPolaritySwitch

uint6

Bitmask used to set MTQ polarity with Rows: 0:+X, 1:+Y, 2:+Z, 3:-X, 4:-Y, 5:-Z (Row 0 is the most significant bit.)
1 indicates a swapped polarity.

0 - 63

57 (0b111001)

controlParams

raw64

These 64 bytes are used for controller specific configuration. Usage is defined in a particular controller’s implementation.

N/A

N/A

logEnabled

bit1

Bit should be set to 1 to enable logging of WBC data. (NOTE: To log WBC data both this bit AND the WBCLogger.enabled bit must be set to 1.)

logConfig

bit32

Bitmask to select which data should be logged:
Row 0 (MSB): cycleStartTime
Row 1: wbcClockCycles
Row 2: detExecutionCount
Row 3: controlExecutionCount
Row 4: mtm1
Row 5: mtm2
Row 6: gyro
Row 7: css
Row 8: fss
Row 9: q_ib_est
Row 10: mtm1_calib
Row 11: mtm2_calib
Row 12: gyro_calib
Row 13: css_calib
Row 14: fss_angles_fixdt
Row 15: testModeMtq
Row 16: bdot_1
Row 17: bdot_2
Row 18: executionCountDelta
Row 29-30: Unused
Row 31: timingInfoLastCycle.

0 - 0xFFFFFFFF

0xFFFFFFFF

logPeriod

uint8

Period at which to log WBC data if enabled in clock cycles.

0 - 255

1

syncEnable

bit1

Bit set high to enable automatic syncing of WBC with the ADCS via ADCS execution count.

0 - 1

1

syncUpdateOffset

uint8

Time offset in multiples of 50 ms from the start of each clock cycle to when sync update takes place.

0 - 255

10

syncPeriod

uint16

Period at which syncing takes place in clock cycles.

0 - 32767

16


A.5.

  • Get the parameter payload.WBC.XXXX, where XXXX is the parameter name from the table above.

TC Details

MCS Operation

Get

Action/Param Name

payload.WBC.XXXX

Data Expected with TC

Parameter-dependant

TM Details

Data Expected from TC

XXXX ( + ACK )


A.6.

  • If the parameter value is not as desired, Set the payload.WBC.XXXX parameter to the desired value now.

TC Details

MCS Operation

Set

Action/Param Name

payload.WBC.XXXX

Data Expected with TC

Yes

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



B. Transition to WBC Mode

B.1.

  • If the transition to WBC Mode is only desired for a fixed time duration, the Operator should follow the EIR-OPS-037: Set-Up a TimeAction procedure to set up and ENABLE a TimeAction to invoke the action mission.ModeManager.transitionToCommissioningMode after a fixed time duration.

  • Else, proceed to B.2.


B.2.

  • Get the parameter payload.WBC.clockCycleCount.

  • Record this value for later comparison.

TC Details

MCS Operation

Set

Action/Param Name

payload.WBC.clockCycleCount

Data Expected with TC

Yes

Data Size

uint8

Data Info

WBC controller execution count

Allowed Value(s)

0 - 255 (dec)

Expected Value(s)

0

TM Details

Data Expected from TC

No ( + ACK )


B.3.

  • Invoke the action mission.ModeManager.TransitionToWBCMode to enter the WBC Mode.

TC Details

MCS Operation

Invoke

Action/Param Name

mission.ModeManager.TransitionToWBCMode

Data Expected with TC

No

TM Details

Data Expected from TC

No ( + ACK )


B.4.

  • To confirm the mode transition, Get the mission.ModeManager.Mode parameter.

  • Ensure 03 (i.e. WBC Mode) is returned.

TC Details

MCS Operation

Get

Action/Param Name

mission.ModeManager.Mode

Data Expected with TC

No

TM Details

Data Expected from TC

Mode ( + ACK )

Data Size

1 byte

Data Info

Current Operational Mode of EIRSAT-1

Allowed Value(s)

00 - 04 (see table below)

Expected Value(s)

03

Where…

Mode

Operational Mode

00

Separation Sequence

01

Commissioning

02

Nominal

03

WBC

04

Safe


B.5.

  • To assess whether the mode change occurred without error, Get the mission.ModeManager.ExitErrorCount parameter.

  • Ensure 0 (i.e. no error) is returned.

TC Details

MCS Operation

Get

Action/Param Name

mission.ModeManager.ExitErrorCount

Data Expected with TC

No

TM Details

Data Expected from TC

mission.ModeManager.ExitErrorCount ( + ACK )

Data Size

1 byte

Data Info

Error count from last mode exit

Allowed Value(s)

00 - FF (Hex)

Expected Value(s)

0 (i.e. no errors)


B.6.

  • Also Get the mission.ModeManager.EntryErrorCount parameter.

  • Ensure 0 (i.e. no error) is returned.

TC Details

MCS Operation

Get

Action/Param Name

mission.ModeManager.EntryErrorCount

Data Expected with TC

No

TM Details

Data Expected from TC

mission.ModeManager.EntryErrorCount ( + ACK )

Data Size

1 byte

Data Info

Error count from last mode entry

Allowed Value(s)

00 - FF (Hex)

Expected Value(s)

0 (i.e. no errors)


B.7.

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

  • Ensure 0x5550AAA8 (i.e. Test Mode/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)

5550AAA8 (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


B.8.

  • To confirm that the WBC Monitor has been enabled, Get the cdh.monitoring.WBCMonitor.enabled parameter.

  • Ensure that 1 is returned.

TC Details

MCS Operation

Get

Action/Param Name

cdh.monitoring.WBCMonitor.enabled

Data Expected with TC

No

TM Details

Data Expected from TC

WBCMonitor.enabled ( + ACK )

Data Size

bit1

Data Info

WBC Monitor enabled (1) /disabled (0)

Allowed Value(s)

0, 1

Expected Value(s)

1


B.9.

  • To confirm that WBC experiment running has been enabled, Get the payload.WBC.enabled parameter.

  • Ensure that 1 is returned.

TC Details

MCS Operation

Get

Action/Param Name

payload.WBC.enabled

Data Expected with TC

No

TM Details

Data Expected from TC

WBCEnabled ( + ACK )

Data Size

bit1

Data Info

WBC Enabled (1) /Disabled (0)

Allowed Value(s)

0, 1

Expected Value(s)

1


B.10.

  • Get the parameter payload.WBC.clockCycleCount multiple times.

  • Ensure that the returned TM is increasing relative to the value obtained in Step B.2., further confirming that the WBC experiment is running.

TC Details

MCS Operation

Get

Action/Param Name

payload.WBC.clockCycleCount

Data Expected with TC

No

TM Details

Data Expected from TC

WBC.clockCycleCount ( + ACK )

Data Size

uint8

Data Info

WBC controller execution count

Allowed Value(s)

0 - 255 (dec)

Expected Value

Increasing


B.11.

  • Get the parameter core.Storage.numRows multiple times, with ~30 seconds between each TC, with First Row = Last Row = 78.

  • Ensure the value is increasing compared to numRows from Step A.7.

TC Details

MCS Operation

Get

Action/Param Name

core.Storage.numRows

Data Expected with TC

Yes

Data Size

2 bytes, 2 bytes

Data Info

First Row , Last Row

Allowed Value(s)

1 - 87 (dec)

Expected Value(s)

78, 78 (dec)

TM Details

Data Expected from TC

numRows ( + ACK )

Data Size

4 bytes

Data Info

Number of rows in WBC channel

Allowed Value(s)

0 - 65535

Expected Value(s)

Increasing w.r.t. Step A.7


B.12.

  • The spacecraft will now run the WBC Experiment/Mode and log data until:

    • the time duration specified with the TimeAction in Step B.1 has passed, or

    • WBC is manually exited, as in D. Manual Exit from WBC

  • The spacecraft will then transition back to Commissioning Mode.

  • The Operators should follow C. Data Downlink is subsequent passes to downlink data from the WBC storage channel.



D. Manual Exit from WBC

D.1.

  • Invoke the action mission.ModeManager.TransitionToCommissioningMode to enter the WBC Mode.

TC Details

MCS Operation

Invoke

Action/Param Name

mission.ModeManager.TransitionToCommissioningMode

Data Expected with TC

No

TM Details

Data Expected from TC

No ( + ACK )


D.2.

  • To confirm the mode transition, Get the mission.ModeManager.Mode parameter.

  • Ensure 01 (i.e. Commissioning Mode) is returned.

TC Details

MCS Operation

Get

Action/Param Name

mission.ModeManager.Mode

Data Expected with TC

No

TM Details

Data Expected from TC

Mode ( + ACK )

Data Size

1 byte

Data Info

Current Operational Mode of EIRSAT-1

Allowed Value(s)

00 - 04 (see table below)

Expected Value(s)

01

Where…

Mode

Operational Mode

00

Separation Sequence

01

Commissioning

02

Nominal

03

WBC

04

Safe


D.3.

  • To assess whether the mode change occurred without error, Get the mission.ModeManager.ExitErrorCount parameter.

  • Ensure 0 (i.e. no error) is returned.

TC Details

MCS Operation

Get

Action/Param Name

mission.ModeManager.ExitErrorCount

Data Expected with TC

No

TM Details

Data Expected from TC

mission.ModeManager.ExitErrorCount ( + ACK )

Data Size

1 byte

Data Info

Error count from last mode exit

Allowed Value(s)

00 - FF (Hex)

Expected Value(s)

0 (i.e. no errors)


D.4.

  • Also Get the mission.ModeManager.EntryErrorCount parameter.

  • Ensure 0 (i.e. no error) is returned.

TC Details

MCS Operation

Get

Action/Param Name

mission.ModeManager.EntryErrorCount

Data Expected with TC

No

TM Details

Data Expected from TC

mission.ModeManager.EntryErrorCount ( + ACK )

Data Size

1 byte

Data Info

Error count from last mode entry

Allowed Value(s)

00 - FF (Hex)

Expected Value(s)

0 (i.e. no errors)


D.5.

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

  • Ensure 00000000 (i.e. Standby 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 (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.6.

  • To confirm that the WBC Monitor has been disabled, Get the cdh.monitoring.WBCMonitor.enabled parameter.

  • Ensure that 0 is returned.

TC Details

MCS Operation

Get

Action/Param Name

cdh.monitoring.WBCMonitor.enabled

Data Expected with TC

No

TM Details

Data Expected from TC

WBCMonitor.enabled ( + ACK )

Data Size

bit1

Data Info

WBC Monitor enabled (1) /disabled (0)

Allowed Value(s)

0, 1

Expected Value(s)

0


D.7.

  • To confirm that WBC experiment running has been disabled, Get the payload.WBC.enabled parameter.

  • Ensure that 0 is returned.

TC Details

MCS Operation

Get

Action/Param Name

payload.WBC.enabled

Data Expected with TC

No

TM Details

Data Expected from TC

WBCEnabled ( + ACK )

Data Size

bit1

Data Info

WBC Enabled (1) /Disabled (0)

Allowed Value(s)

0, 1

Expected Value(s)

0


D.8.

  • Section C. Data Downlink should continue to be followed until the data generated during the WBC experiment are downlinked, even if the spacecraft is no longer in WBC Mode.


END OF PROCEDURE