EIR-OPS-034: NACK/Timeout/Unexpected TM
Objective
To determine why EIRSAT-1 is not responding to TCs as expected.
Introduction
Using this procedure, the Operator will try to determine why EIRSAT-1 is not responding to TCs as expected. This procedure takes into account three possible scenarios where the expected TM is not received from the spacecraft.
By determining the cause for the NACK/Timeout/unexpected TM, this procedure should also help Operators to overcome the issue.
Procedure
The following three scenarios are considered:
A. Unexpected TM - TM is returned from the spacecraft in response to TCs with a positive acknowledgment (i.e. an ‘ACK’). However, the TM returned is not as expected. For example, let’s say we justed invoked the
mission.ModeManager.transitionToCommissioningaction but themission.ModeManager.Modeparameter is not returning ‘01’ (Commissioning Mode).B. NACK - TM is returned in response to TCs but rather than a TC acknowledgment (i.e. an ‘ACK’), the spacecraft is returning a negative acknowledge (i.e. a ‘NACK’) indicating that the operation associated with the TC failed due to some error.
C. Timeout - No TM at all is returned from the spacecraft in response to TCs.
The Operator should skip to the section that is relevant to their circumstances.
Important
As this is a failure/unexpected scenario, this procedure is a guide of the questions to consider rather than a strict set of instructions.
A. Unexpected TM
A.1.
If the spacecraft returns TM to a TC that is not consistent with an expected/allowed response to that TC, the first thing the Operator should do is verify that the correct spacecraft database (SCDB) is loaded into MCS. As the spacecraft may have rebooted into a different image since the last communication pass (or even since the last TC), the Operator should
Gettheplatform.obc.OBC.currBootImageparameter to confirm that the SCDB matches the currently operating image.
Note
The platform.obc.OBC.currBootImage parameter should have the same parameter ID in all SCDBs so the spacecraft should respond no matter what SCDB is loaded into MCS when sending the TC.
TC Details |
|
MCS Operation |
|
Action/Param Name |
|
Data Expected with TC |
No |
TM Details |
|
Data Expected from TC |
|
Data Size |
Integer 8 (1 hex value) |
Data Info |
Index of currently executing softwware image |
Allowed Value(s) |
0, 1 or 2 |
A.2.
For further verification is needed, the Operator should also consult with the Software Engineer to ensure that the correct versions of the SCDB are being loaded into MCS by the Operators.
B. NACK
B.1.
If the spacecraft returns a NACK, we at least know that the TC sent by the GS is getting accepted by the spacecraft’s CMC and is then being passed to the OBC as a valid space packet received over RF. The issue is instead related to the execution of the TC by the OBC. Therefore, the Operator should consider the following:
Is the NACK a once-off (i.e. does the same TC get an ‘ACK’ response when sent a second time)? While receiving NACKs from the spacecraft is not ideal, infrequent NACK responses to TCs is acceptable/expected.
If NACKs are consistently returned by the spacecraft, are NACKs received for only this/certain TCs or all TCs (e.g. is the response to
GettheVersion.satelliteStringa NACK)?If NACKs are only returned for certain commands, the Operator should determine if the correct SCDB is loaded into MCS? To gain confidence in the SCDB being used the Operator should do either of the below:
Use the data from the beacon automatically transmitted by the spacecraft to determine the current boot image (i.e. the
platform.obc.OBC.currBootImageparameter) and/orGettheplatform.obc.OBC.currBootImageparameter to confirm that the SCDB matches the current operating image.
Note
The
platform.obc.OBC.currBootImageparameter should have the same parameter ID in all SCDBs so the spacecraft should respond no matter what SCDB is loaded into MCS when sending the TC.TC Details
MCS Operation
GetAction/Param Name
platform.obc.OBC.currBootImageData Expected with TC
No
TM Details
Data Expected from TC
currBootImage( + ACK )Data Size
Integer 8 (1 hex value)
Data Info
Index of currently executing softwware image
Allowed Value(s)
0, 1 or 2
If the correct SCDB is loaded into MCS, the Operator should confirm that the data being sent with the TC ‘valid’? e.g.:
If a parameter is a multi-row parameter, when the parameter window is opened on MCS, the Operator should either be able to
Querythe number of rows in the parameter (if the parameter has a variable number of rows) or the fixed number of rows in the parameter should be displayed next to the greyed-outQuerybutton. If the Operator tries toGetorSetmore than than the number of parameter rows available, a NACK will be sent by the OBC as theGet/Setdata was invalid.If a parameter or action argument has allowed value ranges (which are hard-coded into the OBSW or subsystem firmwares), a NACK may be returned if these ranges are exceeded.
If
Invokeis called with an action argument larger/smaller than the max/min number of bytes allowed for the action argument, a NACK will be returned.
An event is commonly raised with a NACK. If a communication pass was started (i.e. via the EIR-OPS-003: Start a Communication Pass procedure) events should be transmitted live by the spacecraft with the NACK. Alternatively, the Event log can be downlinked from the spacecraft (i.e. via the EIR-OPS-011: Downlink Data From Storage procedure). The Operator should assess if/what event was raised to determine if it offers any useful information on the reason for the NACK response.
C. Timeout
C.1.
If instead no response is at all observed to TCs from the UCD GS. The Operator should confirm the following:
Some TCs take time to execute. Although the parameter/action window on MCS may indicate that a timeout has occurred, the Operator should still verify using MCS’s Packet Monitor that no response (i.e. no ACK/NACK) is eventually returned.
Has the ‘hardware’ beacon (i.e. the beacon automatically transmitted by the CMC when OBC-to-CMC communications fail) been observed by either the UCD GS and/or the amateur radio community? If this beacon is the ONLY TM being received from the spacecraft, the Operator should:
Consider using the EIR-OPS-031: DTMF Reboot procedure to reset the OBC, or/and
Discuss if/when the OBSW’s CMCAliveCheck functionality is expected to reset the OBC.
Is any of the data automatically transmitted by the spacecraft being observed/processed/parsed by the UCD GS? If it is, we know that at the very least the Rx chain of the GS is operational and so, the following steps should be taken:
Confirm that MCS’s connection settings are correct, and that the bottom right-hand side of the main MCS GUI indicates the connection is enabled.
Confirm that MCS is adding authentication framing to the TCs as this is expected by the spacecraft:
Tip
Although authentication framing must be added to TCs, a correct HMAC key and sequence number are only relevant if TC authentication is enabled. Therefore, dismiss the following two bullet points if TC authentication is known to be disabled at this time.
Confirm with the Software and/or Systems Engineer that the HMAC key being used is correct (for security reasons, this HMAC key will not be saved on-line/distributed to the full team).
Confirm that the Sequence number (i.e. the ACK’d TC counter) matches the sequence number maintained by the OBSW. Beacon data, automatically transmitted by the spacecraft, should be used to determine the up-to-date OBSW sequence number (i.e. the
comms.HMAC.sequenceNumberparameter).
Assess whether a fault has occurred in the Tx chain of the GS (e.g. compare the format of a TC sent out from the GS to the expected format for that command).
Confirm that the GS transmission power is as expected.
If data being automatically transmitted by the spacecraft is instead observed by ONLY the amateur radio community (and not by the UCD GS when a pass is expected to be on-going), assess whether a larger fault has occurred in the full GS system.
If data being automatically transmitted by the spacecraft in not observed by ANY ground stations (i.e. complete silence from spacecraft), consider the possibility that RF transmission from the spacecraft has become disabled. In this case, the Operator should consider sending
SetTCs to the spacecraft’s predicted location on the sky to enabled thecomms.TMTCBuffer.spacelinkTxEnableparameter.
Important
As this parameter has a different parameter ID in different SCDBs, the Operator should send this TC using the SCDB for both the failsafe and primary images.
Danger
If antenna deployment/initial AOS has NOT YET been confirmed/achieved, take extreme care prior to enabling RF transmission - if the UHF antenna elements are not fully deployed, RF transmissions could damage the CMC. Have you allowed enough time for the possibility of (multiple) reboots during the post-launch wait to ADM burns and/or for repeated antenna deployment attempts?
TC Details
MCS Operation
SetAction/Param Name
comms.TMTCBuffer.spacelinkTxEnableData Expected with TC
Yes
Data Size
1 byte
Data Info
Whether RF transmission is enabled (1) or disabled (0)
Allowed Value(s)
0 - 1
Expected Value(s)
1
TM Details
Data Expected from TC
No ( + ACK )
END OF PROCEDURE